16#ifndef QGSMODELGRAPHICITEM_H
17#define QGSMODELGRAPHICITEM_H
23#include <QGraphicsObject>
26class QgsModelGraphicsView;
38class GUI_EXPORT QgsModelDesignerFlatButtonGraphicItem :
public QGraphicsObject
48 QgsModelDesignerFlatButtonGraphicItem( QGraphicsItem *parent
SIP_TRANSFERTHIS,
const QPicture &picture,
const QPointF &position,
const QSizeF &size = QSizeF( 16, 16 ) );
50 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
51 QRectF boundingRect()
const override;
52 void hoverEnterEvent( QGraphicsSceneHoverEvent *event )
override;
53 void hoverLeaveEvent( QGraphicsSceneHoverEvent *event )
override;
54 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
61 virtual void modelHoverEnterEvent( QgsModelViewMouseEvent *event );
66 virtual void modelHoverLeaveEvent( QgsModelViewMouseEvent *event );
71 virtual void modelPressEvent( QgsModelViewMouseEvent *event );
77 QPointF position()
const {
return mPosition; };
83 void setPosition(
const QPointF &position );
88 QgsModelGraphicsView *view();
101 void setPicture(
const QPicture &picture );
102 bool mHoverState =
false;
117class GUI_EXPORT QgsModelDesignerFoldButtonGraphicItem :
public QgsModelDesignerFlatButtonGraphicItem
129 QgsModelDesignerFoldButtonGraphicItem( QGraphicsItem *parent
SIP_TRANSFERTHIS,
bool folded,
const QPointF &position,
const QSizeF &size = QSizeF( 11, 11 ) );
131 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
133 void modelPressEvent( QgsModelViewMouseEvent *event )
override;
143 void folded(
bool folded );
146 QPicture mPlusPicture;
147 QPicture mMinusPicture;
148 bool mFolded =
false;
158class GUI_EXPORT QgsModelDesignerSocketGraphicItem :
public QgsModelDesignerFlatButtonGraphicItem
170 QgsModelDesignerSocketGraphicItem( QgsModelComponentGraphicItem *parent
SIP_TRANSFERTHIS, QgsProcessingModelComponent *component,
int index,
const QPointF &position, Qt::Edge edge,
const QSizeF &size = QSizeF( 11, 11 ) );
172 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
178 int index()
const {
return mIndex; };
186 Qt::Edge edge()
const {
return mEdge; };
193 bool isInput()
const {
return mEdge == Qt::TopEdge; };
198 QgsProcessingModelComponent *component() {
return mComponent; };
203 QgsModelComponentGraphicItem *componentItem() {
return mComponentItem; };
209 QColor socketColor()
const;
215 bool isDefaultParameterValue()
const;
221 QgsModelComponentGraphicItem *mComponentItem =
nullptr;
222 QgsProcessingModelComponent *mComponent =
nullptr;
224 Qt::Edge mEdge = Qt::Edge::TopEdge;
225 float mSocketOutlineWidth = 1.5;
A mouse event which is the result of a user interaction with a QgsModelGraphicsView.