Skip to content

Commit 90546b0

Browse files
committed
final relation cardinality combobox
1 parent 9b670d0 commit 90546b0

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

src/app/qgsattributerelationedit.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ QgsAttributeRelationEdit::~QgsAttributeRelationEdit()
1212
{
1313
}
1414

15-
void QgsAttributeRelationEdit::setCardinalityCombo( const QString &cardinalityComboItem )
15+
void QgsAttributeRelationEdit::setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData )
1616
{
17-
coCardinality->addItem( cardinalityComboItem );
17+
coCardinality->addItem( cardinalityComboItem, auserData );
1818
}
1919

2020
void QgsAttributeRelationEdit::setCardinality( const QString &cardinality )

src/app/qgsattributerelationedit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class APP_EXPORT QgsAttributeRelationEdit: public QWidget, private Ui::QgsAttrib
4545
/**
4646
* Setter for combo cardinality item
4747
*/
48-
void setCardinalityCombo( const QString &cardinalityComboItem );
48+
void setCardinalityCombo( const QString &cardinalityComboItem, const QVariant &auserData = QVariant() );
4949

5050
/**
5151
* Setter for combo cardinality

src/app/qgsattributesformproperties.cpp

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,7 @@ void QgsAttributesFormProperties::loadAttributeTypeDialog()
118118
}
119119

120120

121-
void QgsAttributesFormProperties::storeAttributeTypeDialog()
122-
{
121+
void QgsAttributesFormProperties::storeAttributeTypeDialog(){
123122
FieldConfig cfg;
124123

125124
cfg.mEditable = mAttributeTypeDialog->fieldEditable();
@@ -194,8 +193,17 @@ void QgsAttributesFormProperties::loadAttributeRelationEdit()
194193
RelationConfig cfg = currentItem->data( 0, RelationConfigRole ).value<RelationConfig>();
195194

196195
mAttributeRelationEdit = new QgsAttributeRelationEdit( currentItem->data( 0, FieldNameRole ).toString(), mAttributeTypeFrame );
197-
mAttributeRelationEdit->setCardinalityCombo( "testoption 1" );
198-
mAttributeRelationEdit->setCardinalityCombo( "testoption 2" );
196+
197+
mAttributeRelationEdit->setCardinalityCombo( tr( "Many to one relation" ) );
198+
199+
QgsRelation relation = QgsProject::instance()->relationManager()->relation( currentItem->data( 0, FieldNameRole ).toString() );
200+
201+
Q_FOREACH ( const QgsRelation &nmrel, QgsProject::instance()->relationManager()->referencingRelations( relation.referencingLayer() ) )
202+
{
203+
if ( nmrel.fieldPairs().at( 0 ).referencingField() != relation.fieldPairs().at( 0 ).referencingField() )
204+
mAttributeRelationEdit->setCardinalityCombo( QStringLiteral( "%1 (%2)" ).arg( nmrel.referencedLayer()->name(), nmrel.fieldPairs().at( 0 ).referencedField() ), nmrel.id() );
205+
}
206+
199207
mAttributeRelationEdit->setCardinality( cfg.mCardinality );
200208

201209
mAttributeRelationEdit->layout()->setMargin( 0 );
@@ -501,14 +509,9 @@ QgsAttributeEditorElement *QgsAttributesFormProperties::createAttributeEditorWid
501509

502510
void QgsAttributesFormProperties::apply()
503511
{
504-
if ( mAttributeTypeDialog )
505-
{
506-
storeAttributeTypeDialog();
507-
}
508-
else
509-
{
510-
storeAttributeRelationEdit();
511-
}
512+
513+
storeAttributeTypeDialog();
514+
storeAttributeRelationEdit();
512515

513516
QgsEditFormConfig editFormConfig = mLayer->editFormConfig();
514517

0 commit comments

Comments
 (0)