@@ -127,6 +127,16 @@ QgsRelationReferenceWidget::QgsRelationReferenceWidget( QWidget* parent )
127
127
mAttributeEditorFrame ->setSizePolicy ( mAttributeEditorFrame ->sizePolicy ().horizontalPolicy (), QSizePolicy::Expanding );
128
128
mTopLayout ->addWidget ( mAttributeEditorFrame );
129
129
130
+ // invalid label
131
+ mInvalidLabel = new QLabel ( tr ( " The relation is not valid. Please make sure your relation definitions are ok." ) );
132
+ mInvalidLabel ->setWordWrap ( true );
133
+ QFont font = mInvalidLabel ->font ();
134
+ font.setItalic ( true );
135
+ mInvalidLabel ->setStyleSheet ( " QLabel { color: red; } " );
136
+ mInvalidLabel ->setFont ( font );
137
+ mTopLayout ->addWidget ( mInvalidLabel , 1 , 0 );
138
+ mInvalidLabel ->hide ();
139
+
130
140
// default mode is combobox, no geometric relation and no embed form
131
141
mLineEdit ->hide ();
132
142
mMapIdentificationButton ->hide ();
@@ -149,13 +159,14 @@ void QgsRelationReferenceWidget::setRelation( QgsRelation relation, bool allowNu
149
159
150
160
if ( relation.isValid () )
151
161
{
162
+ mInvalidLabel ->hide ();
163
+
152
164
mRelation = relation;
153
165
mReferencingLayer = relation.referencingLayer ();
154
166
mRelationName = relation.name ();
155
167
mReferencedLayer = relation.referencedLayer ();
156
168
mFkeyFieldIdx = mReferencedLayer ->fieldNameIndex ( relation.fieldPairs ().first ().second );
157
169
158
-
159
170
QgsAttributeEditorContext context ( mEditorContext , relation, QgsAttributeEditorContext::Single, QgsAttributeEditorContext::Embed );
160
171
161
172
if ( mEmbedForm )
@@ -168,13 +179,7 @@ void QgsRelationReferenceWidget::setRelation( QgsRelation relation, bool allowNu
168
179
}
169
180
else
170
181
{
171
- QLabel* lbl = new QLabel ( tr ( " The relation is not valid. Please make sure your relation definitions are ok." ) );
172
- lbl->setWordWrap ( true );
173
- QFont font = lbl->font ();
174
- font.setItalic ( true );
175
- lbl->setStyleSheet ( " QLabel { color: red; } " );
176
- lbl->setFont ( font );
177
- mTopLayout ->addWidget ( lbl, 1 , 0 );
182
+ mInvalidLabel ->show ();
178
183
}
179
184
180
185
if ( mShown && isVisible () )
0 commit comments