relation cardinality bugfix

relation cardinality was handled with it's name as QString instead of it's value as QVector and this leaded to problems in the attribute form.

Fix #17805
This commit is contained in:
David 2018-01-11 19:11:38 +01:00 committed by Matthias Kuhn
parent 8074dc4cbf
commit 8eaecd1c22
4 changed files with 10 additions and 10 deletions

View File

@ -13,15 +13,15 @@ void QgsAttributeRelationEdit::setCardinalityCombo( const QString &cardinalityCo
coCardinality->addItem( cardinalityComboItem, auserData );
}
void QgsAttributeRelationEdit::setCardinality( const QString &cardinality )
void QgsAttributeRelationEdit::setCardinality( const QVariant &auserData )
{
int idx = coCardinality->findText( cardinality );
int idx = coCardinality->findData( auserData );
if ( idx != -1 )
coCardinality->setCurrentIndex( idx );
}
QString QgsAttributeRelationEdit::cardinality()
QVariant QgsAttributeRelationEdit::cardinality()
{
return coCardinality->currentText();
return coCardinality->currentData();
}

View File

@ -40,12 +40,12 @@ class APP_EXPORT QgsAttributeRelationEdit: public QWidget, private Ui::QgsAttrib
/**
* Setter for combo cardinality
*/
void setCardinality( const QString &cardinality );
void setCardinality( const QVariant &auserData = QVariant() );
/**
* Getter for combo cardinality
*/
QString cardinality();
QVariant cardinality();
QString mRelationId;
private:

View File

@ -707,7 +707,7 @@ void QgsAttributesFormProperties::apply()
RelationConfig relCfg = configForRelation( itemData.name() );
QVariantMap cfg;
cfg[QStringLiteral( "nm-rel" )] = relCfg.mCardinality;
cfg[QStringLiteral( "nm-rel" )] = relCfg.mCardinality.toString();
editFormConfig.setWidgetConfig( itemData.name(), cfg );
}
@ -749,7 +749,7 @@ QgsAttributesFormProperties::FieldConfig::operator QVariant()
* RelationConfig implementation
*/
QgsAttributesFormProperties::RelationConfig::RelationConfig()
: mCardinality( QString() )
: mCardinality( QVariant() )
{
}
@ -757,7 +757,7 @@ QgsAttributesFormProperties::RelationConfig::RelationConfig( QgsVectorLayer *lay
{
const QVariant nmrelcfg = layer->editFormConfig().widgetConfig( relationId ).value( QStringLiteral( "nm-rel" ) );
mCardinality = nmrelcfg.toString();
mCardinality = nmrelcfg;
}
QgsAttributesFormProperties::RelationConfig::operator QVariant()

View File

@ -159,7 +159,7 @@ class APP_EXPORT QgsAttributesFormProperties : public QWidget, private Ui_QgsAtt
RelationConfig();
RelationConfig( QgsVectorLayer *layer, const QString &relationId );
QString mCardinality;
QVariant mCardinality;
operator QVariant();
};