diff --git a/src/app/attributetable/qgsattributetabledialog.cpp b/src/app/attributetable/qgsattributetabledialog.cpp index edbb0ab945b..1f0825934f2 100644 --- a/src/app/attributetable/qgsattributetabledialog.cpp +++ b/src/app/attributetable/qgsattributetabledialog.cpp @@ -89,18 +89,21 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *theLayer, QWid mZoomMapToSelectedRowsButton->setIcon( getThemeIcon( "/mActionZoomToSelected.png" ) ); mInvertSelectionButton->setIcon( getThemeIcon( "/mActionInvertSelection.png" ) ); mToggleEditingButton->setIcon( getThemeIcon( "/mActionToggleEditing.png" ) ); + mDeleteSelectedButton->setIcon( getThemeIcon( "/mActionDeleteSelected.png" ) ); mOpenFieldCalculator->setIcon( getThemeIcon( "/mActionCalculateField.png" ) ); mAddAttribute->setIcon( getThemeIcon( "/mActionNewAttribute.png" ) ); mRemoveAttribute->setIcon( getThemeIcon( "/mActionDeleteAttribute.png" ) ); // toggle editing bool canChangeAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues; + bool canDeleteFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures; bool canAddAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes; bool canDeleteAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes; mToggleEditingButton->setCheckable( true ); mToggleEditingButton->setChecked( mLayer->isEditable() ); mToggleEditingButton->setEnabled( canChangeAttributes ); mOpenFieldCalculator->setEnabled( canChangeAttributes && mLayer->isEditable() ); + mDeleteSelectedButton->setEnabled( canDeleteFeatures && mLayer->isEditable() ); mAddAttribute->setEnabled( canAddAttributes && mLayer->isEditable() ); mRemoveAttribute->setEnabled( canDeleteAttributes && mLayer->isEditable() ); @@ -230,6 +233,11 @@ void QgsAttributeTableDialog::on_mRemoveSelectionButton_clicked() mLayer->removeSelection(); } +void QgsAttributeTableDialog::on_mDeleteSelectedButton_clicked() +{ + mLayer->deleteSelectedFeatures(); +} + void QgsAttributeTableDialog::on_cbxShowSelectedOnly_toggled( bool theFlag ) { mFilterModel->setHideUnselected( theFlag ); @@ -615,9 +623,11 @@ void QgsAttributeTableDialog::editingToggled() mToggleEditingButton->blockSignals( false ); bool canChangeAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues; + bool canDeleteFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures; bool canAddAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes; bool canDeleteAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes; mOpenFieldCalculator->setEnabled( canChangeAttributes && mLayer->isEditable() ); + mDeleteSelectedButton->setEnabled( canDeleteFeatures && mLayer->isEditable() ); mAddAttribute->setEnabled( canAddAttributes && mLayer->isEditable() ); mRemoveAttribute->setEnabled( canDeleteAttributes && mLayer->isEditable() ); diff --git a/src/app/attributetable/qgsattributetabledialog.h b/src/app/attributetable/qgsattributetabledialog.h index 52c6a8826ea..f8205336f40 100644 --- a/src/app/attributetable/qgsattributetabledialog.h +++ b/src/app/attributetable/qgsattributetabledialog.h @@ -145,6 +145,11 @@ class QgsAttributeTableDialog : public QDialog, private Ui::QgsAttributeTableDia */ void on_mOpenFieldCalculator_clicked(); + /** + * deletes the selected features + */ + void on_mDeleteSelectedButton_clicked(); + signals: /** * Informs that editing mode ha been toggled diff --git a/src/ui/qgsattributetabledialog.ui b/src/ui/qgsattributetabledialog.ui index af353018b9f..1cc16550994 100644 --- a/src/ui/qgsattributetabledialog.ui +++ b/src/ui/qgsattributetabledialog.ui @@ -21,6 +21,57 @@ + + + + + + Show selected records only + + + + + + + Search selected records only + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Advanced search + + + + + + + ... + + + + 12 + 12 + + + + + + @@ -170,6 +221,17 @@ + + + + ... + + + + ../../images/themes/default/mActionDeleteSelected.png../../images/themes/default/mActionDeleteSelected.png + + + @@ -259,57 +321,6 @@ - - - - - - Show selected records only - - - - - - - Search selected records only - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Advanced search - - - - - - - ... - - - - 12 - 12 - - - - - -