Highlight invalid child algorithms in red in the designer

This commit is contained in:
Nyall Dawson 2020-04-14 16:04:07 +10:00
parent 2dc07ee8f7
commit e45b739a7b
2 changed files with 14 additions and 4 deletions

View File

@ -861,6 +861,9 @@ QgsModelChildAlgorithmGraphicItem::QgsModelChildAlgorithmGraphicItem( QgsProcess
} }
setLabel( child->description() ); setLabel( child->description() );
QStringList issues;
mIsValid = model->validateChildAlgorithm( child->childId(), issues );
} }
void QgsModelChildAlgorithmGraphicItem::contextMenuEvent( QGraphicsSceneContextMenuEvent *event ) void QgsModelChildAlgorithmGraphicItem::contextMenuEvent( QGraphicsSceneContextMenuEvent *event )
@ -893,7 +896,13 @@ void QgsModelChildAlgorithmGraphicItem::contextMenuEvent( QGraphicsSceneContextM
QColor QgsModelChildAlgorithmGraphicItem::fillColor( QgsModelComponentGraphicItem::State state ) const QColor QgsModelChildAlgorithmGraphicItem::fillColor( QgsModelComponentGraphicItem::State state ) const
{ {
QColor c( 255, 255, 255 ); QColor c;
if ( mIsValid )
c = QColor( 255, 255, 255 );
else
c = QColor( 208, 0, 0 );
switch ( state ) switch ( state )
{ {
case Selected: case Selected:
@ -914,17 +923,17 @@ QColor QgsModelChildAlgorithmGraphicItem::strokeColor( QgsModelComponentGraphicI
switch ( state ) switch ( state )
{ {
case Selected: case Selected:
return QColor( 50, 50, 50 ); return mIsValid ? QColor( 50, 50, 50 ) : QColor( 80, 0, 0 );
case Hover: case Hover:
case Normal: case Normal:
return Qt::gray; return mIsValid ? Qt::gray : QColor( 134, 0, 0 );
} }
return QColor(); return QColor();
} }
QColor QgsModelChildAlgorithmGraphicItem::textColor( QgsModelComponentGraphicItem::State ) const QColor QgsModelChildAlgorithmGraphicItem::textColor( QgsModelComponentGraphicItem::State ) const
{ {
return dynamic_cast< const QgsProcessingModelChildAlgorithm * >( component() )->isActive() ? Qt::black : Qt::gray; return mIsValid ? ( dynamic_cast< const QgsProcessingModelChildAlgorithm * >( component() )->isActive() ? Qt::black : Qt::gray ) : QColor( 255, 255, 255 );
} }
QPixmap QgsModelChildAlgorithmGraphicItem::iconPixmap() const QPixmap QgsModelChildAlgorithmGraphicItem::iconPixmap() const

View File

@ -493,6 +493,7 @@ class GUI_EXPORT QgsModelChildAlgorithmGraphicItem : public QgsModelComponentGra
QPixmap mPixmap; QPixmap mPixmap;
QVariantMap mResults; QVariantMap mResults;
QVariantMap mInputs; QVariantMap mInputs;
bool mIsValid = true;
}; };