Skip to content

Commit 504badb

Browse files
committed
Fix saving field configurations
1 parent a9464d7 commit 504badb

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

src/app/qgsfieldsproperties.cpp

+10-10
Original file line numberDiff line numberDiff line change
@@ -935,19 +935,21 @@ void QgsFieldsProperties::apply()
935935
{
936936
QSet<QString> excludeAttributesWMS, excludeAttributesWFS;
937937

938+
QgsEditFormConfig editFormConfig = mLayer->editFormConfig();
939+
938940
for ( int i = 0; i < mFieldsList->rowCount(); i++ )
939941
{
940942
int idx = mFieldsList->item( i, attrIdCol )->text().toInt();
941943
FieldConfig cfg = configForRow( i );
942944

943-
mLayer->editFormConfig().setReadOnly( i, !cfg.mEditable );
944-
mLayer->editFormConfig().setLabelOnTop( i, cfg.mLabelOnTop );
945-
mLayer->editFormConfig().setNotNull( i, cfg.mNotNull );
946-
mLayer->editFormConfig().setExpressionDescription( i, cfg.mConstraintDescription );
947-
mLayer->editFormConfig().setExpression( i, cfg.mConstraint );
945+
editFormConfig.setReadOnly( i, !cfg.mEditable );
946+
editFormConfig.setLabelOnTop( i, cfg.mLabelOnTop );
947+
editFormConfig.setNotNull( i, cfg.mNotNull );
948+
editFormConfig.setExpressionDescription( i, cfg.mConstraintDescription );
949+
editFormConfig.setExpression( i, cfg.mConstraint );
948950

949-
mLayer->editFormConfig().setWidgetType( idx, cfg.mEditorWidgetType );
950-
mLayer->editFormConfig().setWidgetConfig( idx, cfg.mEditorWidgetConfig );
951+
editFormConfig.setWidgetType( idx, cfg.mEditorWidgetType );
952+
editFormConfig.setWidgetConfig( idx, cfg.mEditorWidgetConfig );
951953

952954
if ( mFieldsList->item( i, attrWMSCol )->checkState() == Qt::Unchecked )
953955
{
@@ -960,7 +962,6 @@ void QgsFieldsProperties::apply()
960962
}
961963

962964
// tabs and groups
963-
QgsEditFormConfig editFormConfig = mLayer->editFormConfig();
964965
editFormConfig.clearTabs();
965966
for ( int t = 0; t < mDesignerTree->invisibleRootItem()->childCount(); t++ )
966967
{
@@ -969,9 +970,8 @@ void QgsFieldsProperties::apply()
969970
editFormConfig.addTab( createAttributeEditorWidget( tabItem, nullptr, false ) );
970971
}
971972

973+
editFormConfig.setUiForm( mEditFormLineEdit->text() );
972974
editFormConfig.setLayout(( QgsEditFormConfig::EditorLayout ) mEditorLayoutComboBox->currentIndex() );
973-
if ( mEditorLayoutComboBox->currentIndex() == QgsEditFormConfig::UiFileLayout )
974-
editFormConfig.setUiForm( mEditFormLineEdit->text() );
975975

976976
// Init function configuration
977977
editFormConfig.setInitFunction( mInitFunctionLineEdit->text() );

src/core/qgseditformconfig.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ void QgsEditFormConfig::setLayout( QgsEditFormConfig::EditorLayout editorLayout
172172
{
173173
d.detach();
174174
d->mEditorLayout = editorLayout;
175+
176+
if ( editorLayout == TabLayout )
177+
d->mConfiguredRootContainer = true;
175178
}
176179

177180
QString QgsEditFormConfig::uiForm() const
@@ -536,9 +539,9 @@ void QgsEditFormConfig::writeXml( QDomNode& node ) const
536539
QDomElement rootElem = d->mInvisibleRootContainer->toDomElement( doc );
537540
QDomNodeList elemList = rootElem.childNodes();
538541

539-
for ( int i = 0; i < elemList.size(); ++i )
542+
while ( !elemList.isEmpty() )
540543
{
541-
tabsElem.appendChild( elemList.at( i ) );
544+
tabsElem.appendChild( elemList.at( 0 ) );
542545
}
543546

544547
node.appendChild( tabsElem );

src/core/qgseditformconfig_p.h

-3
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@ class QgsEditFormConfigPrivate : public QSharedData
6060
/** This flag is set if the root container was configured by the user */
6161
bool mConfiguredRootContainer;
6262

63-
/** Map that stores the tab for attributes in the edit form. Key is the tab order and value the tab name*/
64-
QList< QgsEditFormConfig::TabData > mTabs;
65-
6663
QMap< QString, QString> mConstraints;
6764
QMap< QString, QString> mConstraintsDescription;
6865
QMap< QString, bool> mFieldEditables;

0 commit comments

Comments
 (0)