Skip to content

Commit b3d15ed

Browse files
github-actions[bot]elpaso
andauthoredMar 29, 2021
Merge pull request #42384 from domi4484/missingNmRelationQgsAbstractRelationEditorConfigWidget (#42542)
Set missing nm relation for QgsAbstractRelationEditorConfigWidget Co-authored-by: Alessandro Pasotti <elpaso@itopen.it>
1 parent 9164e04 commit b3d15ed

File tree

5 files changed

+55
-0
lines changed

5 files changed

+55
-0
lines changed
 

‎python/gui/auto_generated/qgsabstractrelationeditorwidget.sip.in

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,19 @@ Returns the relation for which this configuration widget applies
323323
:return: The relation
324324
%End
325325

326+
virtual void setNmRelation( const QgsRelation &nmRelation );
327+
%Docstring
328+
Set the nm relation for this widget.
329+
330+
:param nmRelation: The nm relation
331+
%End
332+
333+
virtual QgsRelation nmRelation() const;
334+
%Docstring
335+
Returns the nm relation for which this configuration widget applies
336+
337+
:return: The nm relation
338+
%End
326339

327340
};
328341

‎src/gui/attributeformconfig/qgsattributewidgetedit.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,14 @@ QgsAttributeWidgetRelationEditWidget::QgsAttributeWidgetRelationEditWidget( QWid
100100
it.next();
101101
mWidgetTypeComboBox->addItem( it.value()->name(), it.key() );
102102
}
103+
104+
connect( mRelationCardinalityCombo, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsAttributeWidgetRelationEditWidget::relationCardinalityComboCurrentIndexChanged );
103105
}
104106

105107
void QgsAttributeWidgetRelationEditWidget::setRelationEditorConfiguration( const QgsAttributesFormProperties::RelationEditorConfiguration &config, const QString &relationId )
106108
{
107109
//load the combo mRelationCardinalityCombo
110+
mRelationCardinalityCombo->clear();
108111
setCardinalityCombo( tr( "Many to one relation" ) );
109112

110113
QgsRelation relation = QgsProject::instance()->relationManager()->relation( relationId );
@@ -163,6 +166,18 @@ QgsAttributesFormProperties::RelationEditorConfiguration QgsAttributeWidgetRelat
163166
return relEdCfg;
164167
}
165168

169+
void QgsAttributeWidgetRelationEditWidget::relationCardinalityComboCurrentIndexChanged( int index )
170+
{
171+
if ( index < 0 )
172+
return;
173+
174+
if ( !mConfigWidget )
175+
return;
176+
177+
QgsRelation nmRelation = QgsProject::instance()->relationManager()->relation( mRelationCardinalityCombo->currentData().toString() );
178+
mConfigWidget->setNmRelation( nmRelation );
179+
}
180+
166181
void QgsAttributeWidgetRelationEditWidget::setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData )
167182
{
168183
mRelationCardinalityCombo->addItem( cardinalityComboItem, auserData );

‎src/gui/attributeformconfig/qgsattributewidgetedit.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ class GUI_EXPORT QgsAttributeWidgetRelationEditWidget : public QWidget, private
7070

7171
static QString title() { return tr( "Relation" ); }
7272

73+
private slots:
74+
void relationCardinalityComboCurrentIndexChanged( int index );
75+
7376
private:
7477
void setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData = QVariant() );
7578
void setNmRelationId( const QVariant &auserData = QVariant() );

‎src/gui/qgsabstractrelationeditorwidget.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,16 @@ QgsRelation QgsAbstractRelationEditorConfigWidget::relation() const
655655
return mRelation;
656656
}
657657

658+
void QgsAbstractRelationEditorConfigWidget::setNmRelation( const QgsRelation &nmRelation )
659+
{
660+
mNmRelation = nmRelation;
661+
}
662+
663+
QgsRelation QgsAbstractRelationEditorConfigWidget::nmRelation() const
664+
{
665+
return mNmRelation;
666+
}
667+
658668

659669
///////////////////////////////////////////////////////////////////////////////
660670

‎src/gui/qgsabstractrelationeditorwidget.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,10 +351,24 @@ class GUI_EXPORT QgsAbstractRelationEditorConfigWidget : public QWidget
351351
*/
352352
QgsRelation relation() const;
353353

354+
/**
355+
* \brief Set the nm relation for this widget.
356+
*
357+
* \param nmRelation The nm relation
358+
*/
359+
virtual void setNmRelation( const QgsRelation &nmRelation );
360+
361+
/**
362+
* Returns the nm relation for which this configuration widget applies
363+
*
364+
* \returns The nm relation
365+
*/
366+
virtual QgsRelation nmRelation() const;
354367

355368
private:
356369
QgsVectorLayer *mLayer = nullptr;
357370
QgsRelation mRelation;
371+
QgsRelation mNmRelation;
358372
};
359373

360374

0 commit comments

Comments
 (0)
Please sign in to comment.