16#ifndef QGSMODELGRAPHICSCENE_H
17#define QGSMODELGRAPHICSCENE_H
22#include <QGraphicsScene>
24class QgsProcessingModelAlgorithm;
25class QgsModelComponentGraphicItem;
26class QgsProcessingModelParameter;
27class QgsProcessingModelChildAlgorithm;
28class QgsProcessingModelOutput;
29class QgsProcessingModelComponent;
30class QgsProcessingModelComment;
31class QgsModelChildAlgorithmGraphicItem;
32class QgsProcessingModelGroupBox;
43class GUI_EXPORT QgsModelGraphicsScene :
public QGraphicsScene
63 FlagHideControls = 1 << 1,
64 FlagHideComments = 1 << 2,
66 Q_DECLARE_FLAGS( Flags, Flag )
73 QgsProcessingModelAlgorithm *model();
75 void setModel( QgsProcessingModelAlgorithm *model );
82 void setFlags( QgsModelGraphicsScene::Flags flags ) { mFlags = flags; }
90 void setFlag( QgsModelGraphicsScene::Flag flag,
bool on =
true );
97 QgsModelGraphicsScene::Flags flags()
const {
return mFlags; }
99 void mousePressEvent( QGraphicsSceneMouseEvent *event )
override;
109 QList<QgsModelComponentGraphicItem *> selectedComponentItems();
114 QgsModelComponentGraphicItem *componentItemAt( QPointF position )
const;
119 QgsModelComponentGraphicItem *groupBoxItem(
const QString &uuid );
126 QgsModelChildAlgorithmGraphicItem *childAlgorithmItem(
const QString &childId );
133 QgsModelComponentGraphicItem *parameterItem(
const QString &name );
151 void setSelectedItem( QgsModelComponentGraphicItem *item );
182 void requestRebuildRequired();
189 void rebuildRequired();
197 void componentAboutToChange(
const QString &text,
int id = 0 );
202 void componentChanged();
208 void selectedItemChanged( QgsModelComponentGraphicItem *selected );
222 void runFromChild(
const QString &childId );
229 void showChildAlgorithmOutputs(
const QString &childId );
236 void showChildAlgorithmLog(
const QString &childId );
242 virtual QgsModelComponentGraphicItem *createParameterGraphicItem( QgsProcessingModelAlgorithm *model, QgsProcessingModelParameter *param )
const SIP_FACTORY;
247 virtual QgsModelChildAlgorithmGraphicItem *createChildAlgGraphicItem( QgsProcessingModelAlgorithm *model, QgsProcessingModelChildAlgorithm *child )
const SIP_FACTORY;
252 virtual QgsModelComponentGraphicItem *createOutputGraphicItem( QgsProcessingModelAlgorithm *model, QgsProcessingModelOutput *output )
const SIP_FACTORY;
257 virtual QgsModelComponentGraphicItem *createCommentGraphicItem( QgsProcessingModelAlgorithm *model, QgsProcessingModelComment *comment, QgsModelComponentGraphicItem *parentItem )
const SIP_FACTORY;
262 QgsModelComponentGraphicItem *createGroupBoxGraphicItem( QgsProcessingModelAlgorithm *model, QgsProcessingModelGroupBox *box )
const SIP_FACTORY;
267 QgsModelComponentGraphicItem *item =
nullptr;
268 Qt::Edge edge = Qt::LeftEdge;
271 QList<LinkSource> linkSourcesForParameterValue( QgsProcessingModelAlgorithm *model,
const QVariant &value,
const QString &childId,
QgsProcessingContext &context )
const;
273 void addCommentItemForComponent( QgsProcessingModelAlgorithm *model,
const QgsProcessingModelComponent &component, QgsModelComponentGraphicItem *parentItem );
275 Flags mFlags = Flags();
277 QgsProcessingModelAlgorithm *mModel =
nullptr;
279 QMap<QString, QgsModelComponentGraphicItem *> mParameterItems;
280 QMap<QString, QgsModelChildAlgorithmGraphicItem *> mChildAlgorithmItems;
281 QMap<QString, QMap<QString, QgsModelComponentGraphicItem *>> mOutputItems;
282 QMap<QString, QgsModelComponentGraphicItem *> mGroupBoxItems;
MessageLevel
Level for messages This will be used both for message log and message bar in application.
@ Warning
Warning message.
A bar for displaying non-blocking messages to the user.
Contains information about the context in which a processing algorithm is executed.
Encapsulates the results of running a Processing model.
#define SIP_ENUM_BASETYPE(type)
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)