From d9fc20b80cc93c1fac48049d94f07089be5a7aa3 Mon Sep 17 00:00:00 2001 From: Matteo Ghetta Date: Thu, 12 Sep 2024 10:43:32 +0200 Subject: [PATCH] Save edits button in fields properties tab (#58564) * save edits button in fields properties tab * change button order * remove iconset tag, we use theme folder * remove whatsthis and add new button to tabstop --- src/gui/vector/qgssourcefieldsproperties.cpp | 10 +++ src/gui/vector/qgssourcefieldsproperties.h | 1 + src/ui/qgssourcefieldsproperties.ui | 70 ++++++++++---------- 3 files changed, 46 insertions(+), 35 deletions(-) diff --git a/src/gui/vector/qgssourcefieldsproperties.cpp b/src/gui/vector/qgssourcefieldsproperties.cpp index 0ec81154e1d..699698607b3 100644 --- a/src/gui/vector/qgssourcefieldsproperties.cpp +++ b/src/gui/vector/qgssourcefieldsproperties.cpp @@ -40,12 +40,14 @@ QgsSourceFieldsProperties::QgsSourceFieldsProperties( QgsVectorLayer *layer, QWi mDeleteAttributeButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionDeleteAttribute.svg" ) ) ); mToggleEditingButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionToggleEditing.svg" ) ) ); mCalculateFieldButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionCalculateField.svg" ) ) ); + mSaveLayerEditsButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionSaveAllEdits.svg" ) ) ); //button signals connect( mToggleEditingButton, &QAbstractButton::clicked, this, &QgsSourceFieldsProperties::toggleEditing ); connect( mAddAttributeButton, &QAbstractButton::clicked, this, &QgsSourceFieldsProperties::addAttributeClicked ); connect( mDeleteAttributeButton, &QAbstractButton::clicked, this, &QgsSourceFieldsProperties::deleteAttributeClicked ); connect( mCalculateFieldButton, &QAbstractButton::clicked, this, &QgsSourceFieldsProperties::calculateFieldClicked ); + connect( mSaveLayerEditsButton, &QAbstractButton::clicked, this, &QgsSourceFieldsProperties::saveLayerEditsClicked ); //slots connect( mLayer, &QgsVectorLayer::editingStarted, this, &QgsSourceFieldsProperties::editingToggled ); @@ -381,6 +383,11 @@ void QgsSourceFieldsProperties::calculateFieldClicked() } } +void QgsSourceFieldsProperties::saveLayerEditsClicked() +{ + mLayer->commitChanges( false ); +} + void QgsSourceFieldsProperties::attributesListCellChanged( int row, int column ) { if ( column == AttrNameCol && mLayer && mLayer->isEditable() ) @@ -429,11 +436,14 @@ void QgsSourceFieldsProperties::updateButtons() mDeleteAttributeButton->setEnabled( cap & Qgis::VectorProviderCapability::DeleteAttributes ); mAddAttributeButton->setEnabled( cap & Qgis::VectorProviderCapability::AddAttributes ); mToggleEditingButton->setChecked( true ); + mSaveLayerEditsButton->setEnabled( true ); + mSaveLayerEditsButton->setChecked( true ); } else { mToggleEditingButton->setChecked( false ); mAddAttributeButton->setEnabled( false ); + mSaveLayerEditsButton->setEnabled( false ); // Enable delete button if items are selected mDeleteAttributeButton->setEnabled( !mFieldsList->selectedItems().isEmpty() ); diff --git a/src/gui/vector/qgssourcefieldsproperties.h b/src/gui/vector/qgssourcefieldsproperties.h index 80cee9be2f1..aaeed3a8ffc 100644 --- a/src/gui/vector/qgssourcefieldsproperties.h +++ b/src/gui/vector/qgssourcefieldsproperties.h @@ -104,6 +104,7 @@ class GUI_EXPORT QgsSourceFieldsProperties : public QWidget, private Ui_QgsSourc void addAttributeClicked(); void deleteAttributeClicked(); void calculateFieldClicked(); + void saveLayerEditsClicked(); void attributeAdded( int idx ); void attributeDeleted( int idx ); diff --git a/src/ui/qgssourcefieldsproperties.ui b/src/ui/qgssourcefieldsproperties.ui index e5a8106f485..e1eb22bdcda 100644 --- a/src/ui/qgssourcefieldsproperties.ui +++ b/src/ui/qgssourcefieldsproperties.ui @@ -23,26 +23,23 @@ 0 - - - Qt::Horizontal + + + Field calculator - - - 40 - 20 - + + - + + false + + Toggle editing mode - - Click to toggle table editing - @@ -51,6 +48,19 @@ + + + + Delete field + + + + + + Ctrl+X + + + @@ -65,39 +75,28 @@ - - - ../../../../.designer/backup/.designer/xpm/new_attribute.png../../../../.designer/backup/.designer/xpm/new_attribute.png - Ctrl+N - - - - Delete field + + + + Qt::Horizontal - - + + + 40 + 20 + - - - ../../../../.designer/backup/.designer/xpm/delete_attribute.png../../../../.designer/backup/.designer/xpm/delete_attribute.png - - - Ctrl+X - - + - + - Field calculator - - - Click to toggle table editing + Save Layer Edits @@ -116,6 +115,7 @@ mAddAttributeButton mDeleteAttributeButton mToggleEditingButton + mSaveLayerEditsButton mCalculateFieldButton