Skip to content

Commit

Permalink
Merge pull request #42384 from domi4484/missingNmRelationQgsAbstractR…
Browse files Browse the repository at this point in the history
…elationEditorConfigWidget

Set missing nm relation for QgsAbstractRelationEditorConfigWidget
  • Loading branch information
elpaso authored and github-actions[bot] committed Mar 29, 2021
1 parent 0d261d2 commit 3f505e1
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 0 deletions.
13 changes: 13 additions & 0 deletions python/gui/auto_generated/qgsabstractrelationeditorwidget.sip.in
Expand Up @@ -316,6 +316,19 @@ Returns the relation for which this configuration widget applies
:return: The relation :return: The relation
%End %End


virtual void setNmRelation( const QgsRelation &nmRelation );
%Docstring
Set the nm relation for this widget.

:param nmRelation: The nm relation
%End

virtual QgsRelation nmRelation() const;
%Docstring
Returns the nm relation for which this configuration widget applies

:return: The nm relation
%End


}; };


Expand Down
15 changes: 15 additions & 0 deletions src/gui/attributeformconfig/qgsattributewidgetedit.cpp
Expand Up @@ -100,11 +100,14 @@ QgsAttributeWidgetRelationEditWidget::QgsAttributeWidgetRelationEditWidget( QWid
it.next(); it.next();
mWidgetTypeComboBox->addItem( it.value()->name(), it.key() ); mWidgetTypeComboBox->addItem( it.value()->name(), it.key() );
} }

connect( mRelationCardinalityCombo, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsAttributeWidgetRelationEditWidget::relationCardinalityComboCurrentIndexChanged );
} }


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


QgsRelation relation = QgsProject::instance()->relationManager()->relation( relationId ); QgsRelation relation = QgsProject::instance()->relationManager()->relation( relationId );
Expand Down Expand Up @@ -163,6 +166,18 @@ QgsAttributesFormProperties::RelationEditorConfiguration QgsAttributeWidgetRelat
return relEdCfg; return relEdCfg;
} }


void QgsAttributeWidgetRelationEditWidget::relationCardinalityComboCurrentIndexChanged( int index )
{
if ( index < 0 )
return;

if ( !mConfigWidget )
return;

QgsRelation nmRelation = QgsProject::instance()->relationManager()->relation( mRelationCardinalityCombo->currentData().toString() );
mConfigWidget->setNmRelation( nmRelation );
}

void QgsAttributeWidgetRelationEditWidget::setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData ) void QgsAttributeWidgetRelationEditWidget::setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData )
{ {
mRelationCardinalityCombo->addItem( cardinalityComboItem, auserData ); mRelationCardinalityCombo->addItem( cardinalityComboItem, auserData );
Expand Down
3 changes: 3 additions & 0 deletions src/gui/attributeformconfig/qgsattributewidgetedit.h
Expand Up @@ -70,6 +70,9 @@ class GUI_EXPORT QgsAttributeWidgetRelationEditWidget : public QWidget, private


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


private slots:
void relationCardinalityComboCurrentIndexChanged( int index );

private: private:
void setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData = QVariant() ); void setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData = QVariant() );
void setNmRelationId( const QVariant &auserData = QVariant() ); void setNmRelationId( const QVariant &auserData = QVariant() );
Expand Down
10 changes: 10 additions & 0 deletions src/gui/qgsabstractrelationeditorwidget.cpp
Expand Up @@ -650,6 +650,16 @@ QgsRelation QgsAbstractRelationEditorConfigWidget::relation() const
return mRelation; return mRelation;
} }


void QgsAbstractRelationEditorConfigWidget::setNmRelation( const QgsRelation &nmRelation )
{
mNmRelation = nmRelation;
}

QgsRelation QgsAbstractRelationEditorConfigWidget::nmRelation() const
{
return mNmRelation;
}



/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////


Expand Down
14 changes: 14 additions & 0 deletions src/gui/qgsabstractrelationeditorwidget.h
Expand Up @@ -346,10 +346,24 @@ class GUI_EXPORT QgsAbstractRelationEditorConfigWidget : public QWidget
*/ */
QgsRelation relation() const; QgsRelation relation() const;


/**
* \brief Set the nm relation for this widget.
*
* \param nmRelation The nm relation
*/
virtual void setNmRelation( const QgsRelation &nmRelation );

/**
* Returns the nm relation for which this configuration widget applies
*
* \returns The nm relation
*/
virtual QgsRelation nmRelation() const;


private: private:
QgsVectorLayer *mLayer = nullptr; QgsVectorLayer *mLayer = nullptr;
QgsRelation mRelation; QgsRelation mRelation;
QgsRelation mNmRelation;
}; };




Expand Down

0 comments on commit 3f505e1

Please sign in to comment.