From 2e888c469c2adf9f03f267ef3e812c3f84f8543c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 22 Mar 2021 08:51:39 +0100 Subject: [PATCH] Fix relation editor widget not visible if n:m relation name is empty (#42312) (#42320) Check relations for equality by Id instead of name and check only if the relation in context is valid. Co-authored-by: Damiano --- src/gui/editorwidgets/qgsrelationwidgetwrapper.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/gui/editorwidgets/qgsrelationwidgetwrapper.cpp b/src/gui/editorwidgets/qgsrelationwidgetwrapper.cpp index c31d014b0bad..1b05818fe53f 100644 --- a/src/gui/editorwidgets/qgsrelationwidgetwrapper.cpp +++ b/src/gui/editorwidgets/qgsrelationwidgetwrapper.cpp @@ -274,17 +274,16 @@ void QgsRelationWidgetWrapper::setNmRelationId( const QVariant &nmRelationId ) // If this widget is already embedded by the same relation, reduce functionality const QgsAttributeEditorContext *ctx = &context(); - do + while ( ctx && ctx->relation().isValid() ) { - if ( ( ctx->relation().name() == mRelation.name() && ctx->formMode() == QgsAttributeEditorContext::Embed ) - || ( mNmRelation.isValid() && ctx->relation().name() == mNmRelation.name() ) ) + if ( ( ctx->relation().id() == mRelation.id() && ctx->formMode() == QgsAttributeEditorContext::Embed ) + || ( mNmRelation.isValid() && ctx->relation().id() == mNmRelation.id() ) ) { mWidget->setVisible( false ); break; } ctx = ctx->parentContext(); } - while ( ctx ); mWidget->setRelations( mRelation, mNmRelation ); }