Skip to content

Commit 55e8380

Browse files
committed
Conditional formatting on relation reference widget
in case we have additional display expressions there does use the conditional formatting for the row and in case there is only one fieldname used in the display expression it does use this as well Fix: #18521
1 parent d3e18e3 commit 55e8380

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

src/core/qgsfeaturefiltermodel.cpp

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -448,28 +448,23 @@ QgsConditionalStyle QgsFeatureFilterModel::featureStyle( const QgsFeature &featu
448448
QgsVectorLayer *layer = mSourceLayer;
449449
QgsFeatureId fid = feature.id();
450450
mExpressionContext.setFeature( feature );
451-
QgsConditionalStyle style;
452-
453-
if ( mEntryStylesMap.contains( fid ) )
454-
{
455-
style = mEntryStylesMap.value( fid );
456-
}
457451

458452
auto styles = QgsConditionalStyle::matchingConditionalStyles( layer->conditionalStyles()->rowStyles(), QVariant(), mExpressionContext );
459453

460-
if ( mDisplayExpression.isField() )
454+
if ( mDisplayExpression.referencedColumns().count() == 1 )
461455
{
462456
// Style specific for this field
463457
QString fieldName = *mDisplayExpression.referencedColumns().constBegin();
464458
const auto allStyles = layer->conditionalStyles()->fieldStyles( fieldName );
465459
const auto matchingFieldStyles = QgsConditionalStyle::matchingConditionalStyles( allStyles, feature.attribute( fieldName ), mExpressionContext );
466460

467461
styles += matchingFieldStyles;
468-
469-
style = QgsConditionalStyle::compressStyles( styles );
470-
mEntryStylesMap.insert( fid, style );
471462
}
472463

464+
QgsConditionalStyle style;
465+
style = QgsConditionalStyle::compressStyles( styles );
466+
mEntryStylesMap.insert( fid, style );
467+
473468
return style;
474469
}
475470

0 commit comments

Comments
 (0)