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(
173 QgsModelComponentGraphicItem *parent
SIP_TRANSFERTHIS, QgsProcessingModelComponent *component,
int index,
const QPointF &position, Qt::Edge edge,
const QSizeF &size = QSizeF( 11, 11 )
176 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
182 int index()
const {
return mIndex; };
190 Qt::Edge edge()
const {
return mEdge; };
197 bool isInput()
const {
return mEdge == Qt::TopEdge; };
202 QgsProcessingModelComponent *component() {
return mComponent; };
207 QgsModelComponentGraphicItem *componentItem() {
return mComponentItem; };
213 QColor socketColor()
const;
219 bool isDefaultParameterValue()
const;
225 QgsModelComponentGraphicItem *mComponentItem =
nullptr;
226 QgsProcessingModelComponent *mComponent =
nullptr;
228 Qt::Edge mEdge = Qt::Edge::TopEdge;
229 float mSocketOutlineWidth = 1.5;
238class GUI_EXPORT QgsModelDesignerFeatureCountGraphicItem :
public QGraphicsTextItem
SIP_SKIP
242 QgsModelDesignerFeatureCountGraphicItem( QgsModelArrowItem *link
SIP_TRANSFERTHIS,
const QString &text );
244 void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr )
override;
253 QgsModelArrowItem *mLink =
nullptr;
254 static constexpr int FONT_SIZE = 10;
A mouse event which is the result of a user interaction with a QgsModelGraphicsView.