16#ifndef QGSMODELGRAPHICITEM_H
17#define QGSMODELGRAPHICITEM_H
22#include <QGraphicsObject>
25class QgsModelGraphicsView;
37class GUI_EXPORT QgsModelDesignerFlatButtonGraphicItem :
public QGraphicsObject
47 QgsModelDesignerFlatButtonGraphicItem( QGraphicsItem *parent
SIP_TRANSFERTHIS,
const QPicture &picture,
const QPointF &position,
const QSizeF &size = QSizeF( 16, 16 ) );
49 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
50 QRectF boundingRect()
const override;
51 void hoverEnterEvent( QGraphicsSceneHoverEvent *event )
override;
52 void hoverLeaveEvent( QGraphicsSceneHoverEvent *event )
override;
53 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
76 QPointF position()
const {
return mPosition; };
82 void setPosition(
const QPointF &position );
87 QgsModelGraphicsView *view();
100 void setPicture(
const QPicture &picture );
101 bool mHoverState =
false;
116class GUI_EXPORT QgsModelDesignerFoldButtonGraphicItem :
public QgsModelDesignerFlatButtonGraphicItem
128 QgsModelDesignerFoldButtonGraphicItem( QGraphicsItem *parent
SIP_TRANSFERTHIS,
bool folded,
const QPointF &position,
const QSizeF &size = QSizeF( 11, 11 ) );
130 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
142 void folded(
bool folded );
145 QPicture mPlusPicture;
146 QPicture mMinusPicture;
147 bool mFolded =
false;
157class GUI_EXPORT QgsModelDesignerSocketGraphicItem :
public QgsModelDesignerFlatButtonGraphicItem
169 QgsModelDesignerSocketGraphicItem( QgsModelComponentGraphicItem *parent
SIP_TRANSFERTHIS, QgsProcessingModelComponent *component,
int index,
const QPointF &position, Qt::Edge edge,
const QSizeF &size = QSizeF( 11, 11 ) );
171 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
176 int index()
const {
return mIndex; };
183 Qt::Edge edge()
const {
return mEdge; };
190 bool isInput()
const {
return mEdge == Qt::TopEdge; };
193 QgsProcessingModelComponent *component() {
return mComponent; };
196 QgsModelComponentGraphicItem *componentItem() {
return mComponentItem; };
202 QgsModelComponentGraphicItem *mComponentItem =
nullptr;
203 QgsProcessingModelComponent *mComponent =
nullptr;
205 Qt::Edge mEdge = Qt::Edge::TopEdge;
A mouse event which is the result of a user interaction with a QgsModelGraphicsView.