Skip to content

Commit f268b09

Browse files
committedMar 31, 2020
Also show child input values
1 parent 5963b90 commit f268b09

File tree

11 files changed

+74
-1
lines changed

11 files changed

+74
-1
lines changed
 

‎python/gui/auto_generated/processing/models/qgsmodelcomponentgraphicitem.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,11 @@ Ownership of ``child`` is transferred to the item.
392392
void setResults( const QVariantMap &results );
393393
%Docstring
394394
Sets the results obtained for this child algorithm for the last model execution through the dialog.
395+
%End
396+
397+
void setInputs( const QVariantMap &inputs );
398+
%Docstring
399+
Sets the inputs used for this child algorithm for the last model execution through the dialog.
395400
%End
396401

397402
protected:

‎python/gui/auto_generated/processing/models/qgsmodeldesignerdialog.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ Returns ``False`` if the cancel option was selected
100100
void setLastRunChildAlgorithmResults( const QVariantMap &results );
101101
%Docstring
102102
Sets the results of child algorithms for the last run of the model through the designer window.
103+
%End
104+
105+
void setLastRunChildAlgorithmInputs( const QVariantMap &inputs );
106+
%Docstring
107+
Sets the inputs for child algorithms for the last run of the model through the designer window.
103108
%End
104109

105110
};

‎python/gui/auto_generated/processing/models/qgsmodelgraphicsscene.sip.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ Clears any selected items and sets ``item`` as the current selection.
117117
void setChildAlgorithmResults( const QVariantMap &results );
118118
%Docstring
119119
Sets the results for child algorithms for the last model execution.
120+
%End
121+
122+
void setChildAlgorithmInputs( const QVariantMap &inputs );
123+
%Docstring
124+
Sets the inputs for child algorithms for the last model execution.
120125
%End
121126

122127
signals:

‎python/plugins/processing/modeler/ModelerDialog.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def runModel(self):
122122

123123
def on_finished(successful, results):
124124
self.setLastRunChildAlgorithmResults(dlg.results()['CHILD_RESULTS'])
125+
self.setLastRunChildAlgorithmInputs(dlg.results()['CHILD_INPUTS'])
125126

126127
dlg = AlgorithmDialog(self.model().create(), parent=self)
127128
dlg.setParameters(self.model().designerParameterValues())

‎src/core/processing/models/qgsprocessingmodelalgorithm.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,8 @@ QVariantMap QgsProcessingModelAlgorithm::processAlgorithm( const QVariantMap &pa
253253
QgsExpressionContext baseContext = createExpressionContext( parameters, context );
254254

255255
QVariantMap childResults;
256+
QVariantMap childInputs;
257+
256258
QVariantMap finalResults;
257259
QSet< QString > executed;
258260
bool executedAlg = true;
@@ -299,6 +301,7 @@ QVariantMap QgsProcessingModelAlgorithm::processAlgorithm( const QVariantMap &pa
299301
if ( feedback && !skipGenericLogging )
300302
feedback->setProgressText( QObject::tr( "Running %1 [%2/%3]" ).arg( child.description() ).arg( executed.count() + 1 ).arg( toExecute.count() ) );
301303

304+
childInputs.insert( childId, childParams );
302305
QStringList params;
303306
for ( auto childParamIt = childParams.constBegin(); childParamIt != childParams.constEnd(); ++childParamIt )
304307
{
@@ -403,6 +406,7 @@ QVariantMap QgsProcessingModelAlgorithm::processAlgorithm( const QVariantMap &pa
403406

404407
mResults = finalResults;
405408
mResults.insert( QStringLiteral( "CHILD_RESULTS" ), childResults );
409+
mResults.insert( QStringLiteral( "CHILD_INPUTS" ), childInputs );
406410
return mResults;
407411
}
408412

‎src/gui/processing/models/qgsmodelcomponentgraphicitem.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -954,7 +954,11 @@ QString QgsModelChildAlgorithmGraphicItem::linkPointText( Qt::Edge edge, int ind
954954
return param->flags() & QgsProcessingParameterDefinition::FlagHidden || param->isDestination();
955955
} ), params.end() );
956956

957-
return truncatedTextForItem( params.at( index )->description() );
957+
958+
QString title = params.at( index )->description();
959+
if ( !mInputs.value( params.at( index )->name() ).toString().isEmpty() )
960+
title += QStringLiteral( ": %1" ).arg( mInputs.value( params.at( index )->name() ).toString() );
961+
return truncatedTextForItem( title );
958962
}
959963

960964
case Qt::LeftEdge:
@@ -993,6 +997,16 @@ void QgsModelChildAlgorithmGraphicItem::setResults( const QVariantMap &results )
993997
emit updateArrowPaths();
994998
}
995999

1000+
void QgsModelChildAlgorithmGraphicItem::setInputs( const QVariantMap &inputs )
1001+
{
1002+
if ( mInputs == inputs )
1003+
return;
1004+
1005+
mInputs = inputs;
1006+
update();
1007+
emit updateArrowPaths();
1008+
}
1009+
9961010
void QgsModelChildAlgorithmGraphicItem::deleteComponent()
9971011
{
9981012
if ( const QgsProcessingModelChildAlgorithm *child = dynamic_cast< const QgsProcessingModelChildAlgorithm * >( component() ) )

‎src/gui/processing/models/qgsmodelcomponentgraphicitem.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,11 @@ class GUI_EXPORT QgsModelChildAlgorithmGraphicItem : public QgsModelComponentGra
457457
*/
458458
void setResults( const QVariantMap &results );
459459

460+
/**
461+
* Sets the inputs used for this child algorithm for the last model execution through the dialog.
462+
*/
463+
void setInputs( const QVariantMap &inputs );
464+
460465
protected:
461466

462467
QColor fillColor( State state ) const override;
@@ -481,6 +486,7 @@ class GUI_EXPORT QgsModelChildAlgorithmGraphicItem : public QgsModelComponentGra
481486
QPicture mPicture;
482487
QPixmap mPixmap;
483488
QVariantMap mResults;
489+
QVariantMap mInputs;
484490
};
485491

486492

‎src/gui/processing/models/qgsmodeldesignerdialog.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,13 @@ void QgsModelDesignerDialog::setLastRunChildAlgorithmResults( const QVariantMap
445445
mScene->setChildAlgorithmResults( mChildResults );
446446
}
447447

448+
void QgsModelDesignerDialog::setLastRunChildAlgorithmInputs( const QVariantMap &inputs )
449+
{
450+
mChildInputs = inputs;
451+
if ( mScene )
452+
mScene->setChildAlgorithmInputs( mChildInputs );
453+
}
454+
448455
void QgsModelDesignerDialog::zoomIn()
449456
{
450457
mView->setTransformationAnchor( QGraphicsView::NoAnchor );

‎src/gui/processing/models/qgsmodeldesignerdialog.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,11 @@ class GUI_EXPORT QgsModelDesignerDialog : public QMainWindow, public Ui::QgsMode
125125
*/
126126
void setLastRunChildAlgorithmResults( const QVariantMap &results );
127127

128+
/**
129+
* Sets the inputs for child algorithms for the last run of the model through the designer window.
130+
*/
131+
void setLastRunChildAlgorithmInputs( const QVariantMap &inputs );
132+
128133
private slots:
129134
void zoomIn();
130135
void zoomOut();
@@ -170,6 +175,7 @@ class GUI_EXPORT QgsModelDesignerDialog : public QMainWindow, public Ui::QgsMode
170175
int mBlockRepaints = 0;
171176

172177
QVariantMap mChildResults;
178+
QVariantMap mChildInputs;
173179

174180
bool isDirty() const;
175181

‎src/gui/processing/models/qgsmodelgraphicsscene.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ void QgsModelGraphicsScene::createItems( QgsProcessingModelAlgorithm *model, Qgs
104104
addItem( item );
105105
item->setPos( it.value().position().x(), it.value().position().y() );
106106
item->setResults( mChildResults.value( it.value().childId() ).toMap() );
107+
item->setInputs( mChildInputs.value( it.value().childId() ).toMap() );
107108
mChildAlgorithmItems.insert( it.value().childId(), item );
108109
connect( item, &QgsModelComponentGraphicItem::requestModelRepaint, this, &QgsModelGraphicsScene::rebuildRequired );
109110
connect( item, &QgsModelComponentGraphicItem::changed, this, &QgsModelGraphicsScene::componentChanged );
@@ -279,6 +280,19 @@ void QgsModelGraphicsScene::setChildAlgorithmResults( const QVariantMap &results
279280
}
280281
}
281282

283+
void QgsModelGraphicsScene::setChildAlgorithmInputs( const QVariantMap &inputs )
284+
{
285+
mChildInputs = inputs;
286+
287+
for ( auto it = mChildInputs.constBegin(); it != mChildInputs.constEnd(); ++it )
288+
{
289+
if ( QgsModelChildAlgorithmGraphicItem *item = mChildAlgorithmItems.value( it.key() ) )
290+
{
291+
item->setInputs( it.value().toMap() );
292+
}
293+
}
294+
}
295+
282296
QList<QgsModelGraphicsScene::LinkSource> QgsModelGraphicsScene::linkSourcesForParameterValue( QgsProcessingModelAlgorithm *model, const QVariant &value, const QString &childId, QgsProcessingContext &context ) const
283297
{
284298
QList<QgsModelGraphicsScene::LinkSource> res;

‎src/gui/processing/models/qgsmodelgraphicsscene.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,11 @@ class GUI_EXPORT QgsModelGraphicsScene : public QGraphicsScene
130130
*/
131131
void setChildAlgorithmResults( const QVariantMap &results );
132132

133+
/**
134+
* Sets the inputs for child algorithms for the last model execution.
135+
*/
136+
void setChildAlgorithmInputs( const QVariantMap &inputs );
137+
133138
signals:
134139

135140
/**
@@ -198,6 +203,7 @@ class GUI_EXPORT QgsModelGraphicsScene : public QGraphicsScene
198203
QMap< QString, QgsModelChildAlgorithmGraphicItem * > mChildAlgorithmItems;
199204
QMap< QString, QMap< QString, QgsModelComponentGraphicItem * > > mOutputItems;
200205
QVariantMap mChildResults;
206+
QVariantMap mChildInputs;
201207

202208
};
203209

0 commit comments

Comments
 (0)
Please sign in to comment.