Skip to content
Permalink
Browse files

Update DD labels on drag&drop forms

Also make sure label expressions are evaluated
after form init.

Fixes #38531
  • Loading branch information
elpaso committed Sep 3, 2020
1 parent 4b8797d commit b1757d3965820b93d4ccb566ee449966bc104617
Showing with 22 additions and 0 deletions.
  1. +22 −0 src/gui/qgsattributeform.cpp
@@ -86,6 +86,7 @@ QgsAttributeForm::QgsAttributeForm( QgsVectorLayer *vl, const QgsFeature &featur
connect( this, &QgsAttributeForm::modeChanged, this, &QgsAttributeForm::updateContainersVisibility );

updateContainersVisibility();
updateLabels();

}

@@ -2047,6 +2048,27 @@ QgsAttributeForm::WidgetInfo QgsAttributeForm::createWidgetFromDef( const QgsAtt
else
{
QLabel *mypLabel = new QLabel( widgetInfo.labelText );

// Alias DD overrides
if ( childDef->type() == QgsAttributeEditorElement::AeTypeField )
{
const QgsAttributeEditorField *fieldDef { static_cast<QgsAttributeEditorField *>( childDef ) };
const QgsFields fields = vl->fields();
const int fldIdx = fieldDef->idx();
if ( fldIdx < fields.count() && fldIdx >= 0 )
{
const QString fieldName { fields.at( fldIdx ).name() };
if ( mLayer->editFormConfig().dataDefinedFieldProperties( fieldName ).hasProperty( QgsEditFormConfig::DataDefinedProperty::Alias ) )
{
const QgsProperty property { mLayer->editFormConfig().dataDefinedFieldProperties( fieldName ).property( QgsEditFormConfig::DataDefinedProperty::Alias ) };
if ( property.isActive() && ! property.expressionString().isEmpty() )
{
mLabelDataDefinedProperties[ mypLabel ] = property;
}
}
}
}

mypLabel->setToolTip( widgetInfo.toolTip );
if ( columnCount > 1 && !widgetInfo.labelOnTop )
{

0 comments on commit b1757d3

Please sign in to comment.
You can’t perform that action at this time.