Skip to content

Commit 1053c5e

Browse files
committed
Better reflect layer capabilities in attribute dialog toolbar
1 parent 1156c8d commit 1053c5e

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/app/qgsattributetabledialog.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,11 +239,17 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *theLayer, QWid
239239
mActionSaveEdits->setEnabled( mActionToggleEditing->isEnabled() && mLayer->isEditable() );
240240
mActionReload->setEnabled( ! mLayer->isEditable() );
241241
mActionAddAttribute->setEnabled(( canChangeAttributes || canAddAttributes ) && mLayer->isEditable() );
242+
mActionRemoveAttribute->setEnabled( canDeleteAttributes && mLayer->isEditable() );
242243
mActionDeleteSelected->setEnabled( canDeleteFeatures && mLayer->isEditable() );
244+
if ( !canDeleteFeatures )
245+
mToolbar->removeAction( mActionDeleteSelected );
243246
mActionAddFeature->setEnabled( canAddFeatures && mLayer->isEditable() );
244247
if ( !canAddFeatures )
245248
mToolbar->removeAction( mActionAddFeature );
246249

250+
if ( canDeleteFeatures || canAddFeatures )
251+
mToolbar->insertSeparator( mActionExpressionSelect );
252+
247253
mMainViewButtonGroup->setId( mTableViewButton, QgsDualView::AttributeTable );
248254
mMainViewButtonGroup->setId( mAttributeViewButton, QgsDualView::AttributeEditor );
249255

@@ -748,8 +754,10 @@ void QgsAttributeTableDialog::editingToggled()
748754
bool canChangeAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues;
749755
bool canDeleteFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures;
750756
bool canAddAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes;
757+
bool canDeleteAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes;
751758
bool canAddFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddFeatures;
752759
mActionAddAttribute->setEnabled(( canChangeAttributes || canAddAttributes ) && mLayer->isEditable() );
760+
mActionRemoveAttribute->setEnabled( canDeleteAttributes && mLayer->isEditable() );
753761
mActionDeleteSelected->setEnabled( canDeleteFeatures && mLayer->isEditable() );
754762
mActionAddFeature->setEnabled( canAddFeatures && mLayer->isEditable() );
755763

src/ui/qgsattributetabledialog.ui

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@
170170
<addaction name="separator"/>
171171
<addaction name="mActionAddFeature"/>
172172
<addaction name="mActionDeleteSelected"/>
173-
<addaction name="separator"/>
174173
<addaction name="mActionExpressionSelect"/>
175174
<addaction name="mActionSelectAll"/>
176175
<addaction name="mActionInvertSelection"/>

0 commit comments

Comments
 (0)