16#ifndef QGSMODELGRAPHICITEM_H
17#define QGSMODELGRAPHICITEM_H
24#include <QGraphicsObject>
25#include <QGraphicsTextItem>
28class QgsModelGraphicsView;
40class GUI_EXPORT QgsModelDesignerFlatButtonGraphicItem :
public QGraphicsObject
50 QgsModelDesignerFlatButtonGraphicItem( QGraphicsItem *parent
SIP_TRANSFERTHIS,
const QPicture &picture,
const QPointF &position,
const QSizeF &size = QSizeF( 16, 16 ) );
52 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
53 QRectF boundingRect()
const override;
54 void hoverEnterEvent( QGraphicsSceneHoverEvent *event )
override;
55 void hoverLeaveEvent( QGraphicsSceneHoverEvent *event )
override;
56 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
63 virtual void modelHoverEnterEvent( QgsModelViewMouseEvent *event );
68 virtual void modelHoverLeaveEvent( QgsModelViewMouseEvent *event );
73 virtual void modelPressEvent( QgsModelViewMouseEvent *event );
79 QPointF position()
const {
return mPosition; };
85 void setPosition(
const QPointF &position );
90 QgsModelGraphicsView *view();
103 void setPicture(
const QPicture &picture );
104 bool mHoverState =
false;
119class GUI_EXPORT QgsModelDesignerFoldButtonGraphicItem :
public QgsModelDesignerFlatButtonGraphicItem
131 QgsModelDesignerFoldButtonGraphicItem( QGraphicsItem *parent
SIP_TRANSFERTHIS,
bool folded,
const QPointF &position,
const QSizeF &size = QSizeF( 11, 11 ) );
133 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
135 void modelPressEvent( QgsModelViewMouseEvent *event )
override;
145 void folded(
bool folded );
148 QPicture mPlusPicture;
149 QPicture mMinusPicture;
150 bool mFolded =
false;
160class GUI_EXPORT QgsModelDesignerSocketGraphicItem :
public QgsModelDesignerFlatButtonGraphicItem
172 QgsModelDesignerSocketGraphicItem( QgsModelComponentGraphicItem *parent
SIP_TRANSFERTHIS, QgsProcessingModelComponent *component,
int index,
const QPointF &position, Qt::Edge edge,
const QSizeF &size = QSizeF( 11, 11 ) );
174 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
180 int index()
const {
return mIndex; };
188 Qt::Edge edge()
const {
return mEdge; };
195 bool isInput()
const {
return mEdge == Qt::TopEdge; };
200 QgsProcessingModelComponent *component() {
return mComponent; };
205 QgsModelComponentGraphicItem *componentItem() {
return mComponentItem; };
211 QColor socketColor()
const;
217 bool isDefaultParameterValue()
const;
223 QgsModelComponentGraphicItem *mComponentItem =
nullptr;
224 QgsProcessingModelComponent *mComponent =
nullptr;
226 Qt::Edge mEdge = Qt::Edge::TopEdge;
227 float mSocketOutlineWidth = 1.5;
236class GUI_EXPORT QgsModelDesignerFeatureCountGraphicItem :
public QGraphicsTextItem
SIP_SKIP
240 QgsModelDesignerFeatureCountGraphicItem( QgsModelArrowItem *link
SIP_TRANSFERTHIS,
const QString &text );
242 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
251 QgsModelArrowItem *mLink =
nullptr;
252 static constexpr int FONT_SIZE = 10;
A mouse event which is the result of a user interaction with a QgsModelGraphicsView.