check if visibilityexpression is enabled (#8141)

before adding the containers to the mContainerVisibilityInformation

fix: #20045
This commit is contained in:
signedav 2018-10-08 22:10:52 +02:00 committed by Denis Rouzaud
parent 425fe74908
commit f5d2b88dba

View File

@ -818,7 +818,6 @@ void QgsAttributeForm::updateConstraints( QgsEditorWidgetWrapper *eww )
void QgsAttributeForm::updateContainersVisibility()
{
mExpressionContext << QgsExpressionContextUtils::formScope( QgsFeature( mFeature ), mContext.attributeFormModeString() );
const QVector<ContainerInformation *> infos = mContainerVisibilityInformation;
@ -1198,7 +1197,10 @@ void QgsAttributeForm::init()
tabWidget = nullptr;
WidgetInfo widgetInfo = createWidgetFromDef( widgDef, formWidget, mLayer, mContext );
layout->addWidget( widgetInfo.widget, row, column, 1, 2 );
if ( containerDef->visibilityExpression().enabled() )
{
registerContainerInformation( new ContainerInformation( widgetInfo.widget, containerDef->visibilityExpression().data() ) );
}
column += 2;
}
else
@ -1744,8 +1746,11 @@ QgsAttributeForm::WidgetInfo QgsAttributeForm::createWidgetFromDef( const QgsAtt
if ( childDef->type() == QgsAttributeEditorElement::AeTypeContainer )
{
QgsAttributeEditorContainer *containerDef = static_cast<QgsAttributeEditorContainer *>( childDef );
if ( containerDef->visibilityExpression().enabled() )
{
registerContainerInformation( new ContainerInformation( widgetInfo.widget, containerDef->visibilityExpression().data() ) );
}
}
if ( widgetInfo.labelText.isNull() )
{