16#ifndef QGSMODELGRAPHICITEM_H
17#define QGSMODELGRAPHICITEM_H
24#include <QGraphicsObject>
25#include <QGraphicsTextItem>
30class QgsModelGraphicsView;
42class GUI_EXPORT QgsModelDesignerFlatButtonGraphicItem :
public QGraphicsObject
52 QgsModelDesignerFlatButtonGraphicItem( QGraphicsItem *parent,
const QPicture &picture,
const QPointF &position,
const QSizeF &size = QSizeF( 16, 16 ) );
54 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
55 QRectF boundingRect()
const override;
56 void hoverEnterEvent( QGraphicsSceneHoverEvent *event )
override;
57 void hoverLeaveEvent( QGraphicsSceneHoverEvent *event )
override;
58 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
78 QPointF position()
const {
return mPosition; };
84 void setPosition(
const QPointF &position );
89 QgsModelGraphicsView *view();
102 void setPicture(
const QPicture &picture );
103 bool mHoverState =
false;
118class GUI_EXPORT QgsModelDesignerFoldButtonGraphicItem :
public QgsModelDesignerFlatButtonGraphicItem
130 QgsModelDesignerFoldButtonGraphicItem( QGraphicsItem *parent,
bool folded,
const QPointF &position,
const QSizeF &size = QSizeF( 11, 11 ) );
132 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
133 void modelPressEvent( QgsModelViewMouseEvent *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(
170 QgsModelComponentGraphicItem *parent, QgsProcessingModelComponent *component,
int index,
const QPointF &position, Qt::Edge edge,
const QSizeF &size = QSizeF( 11, 11 )
173 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
179 int index()
const {
return mIndex; };
187 Qt::Edge edge()
const {
return mEdge; };
194 bool isInput()
const {
return mEdge == Qt::TopEdge; };
199 QgsProcessingModelComponent *component() {
return mComponent; };
204 QgsModelComponentGraphicItem *componentItem() {
return mComponentItem; };
210 QColor socketColor()
const;
216 bool isDefaultParameterValue()
const;
222 QgsModelComponentGraphicItem *mComponentItem =
nullptr;
223 QgsProcessingModelComponent *mComponent =
nullptr;
225 Qt::Edge mEdge = Qt::Edge::TopEdge;
226 float mSocketOutlineWidth = 1.5;
A mouse event which is the result of a user interaction with a QgsModelGraphicsView.