Skip to content

Commit eef0367

Browse files
author
jef
committed
fix #1650
git-svn-id: http://svn.osgeo.org/qgis/trunk@12378 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 1002f8e commit eef0367

File tree

3 files changed

+77
-51
lines changed

3 files changed

+77
-51
lines changed

src/app/attributetable/qgsattributetabledialog.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -89,18 +89,21 @@ QgsAttributeTableDialog::QgsAttributeTableDialog( QgsVectorLayer *theLayer, QWid
8989
mZoomMapToSelectedRowsButton->setIcon( getThemeIcon( "/mActionZoomToSelected.png" ) );
9090
mInvertSelectionButton->setIcon( getThemeIcon( "/mActionInvertSelection.png" ) );
9191
mToggleEditingButton->setIcon( getThemeIcon( "/mActionToggleEditing.png" ) );
92+
mDeleteSelectedButton->setIcon( getThemeIcon( "/mActionDeleteSelected.png" ) );
9293
mOpenFieldCalculator->setIcon( getThemeIcon( "/mActionCalculateField.png" ) );
9394
mAddAttribute->setIcon( getThemeIcon( "/mActionNewAttribute.png" ) );
9495
mRemoveAttribute->setIcon( getThemeIcon( "/mActionDeleteAttribute.png" ) );
9596

9697
// toggle editing
9798
bool canChangeAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues;
99+
bool canDeleteFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures;
98100
bool canAddAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes;
99101
bool canDeleteAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes;
100102
mToggleEditingButton->setCheckable( true );
101103
mToggleEditingButton->setChecked( mLayer->isEditable() );
102104
mToggleEditingButton->setEnabled( canChangeAttributes );
103105
mOpenFieldCalculator->setEnabled( canChangeAttributes && mLayer->isEditable() );
106+
mDeleteSelectedButton->setEnabled( canDeleteFeatures && mLayer->isEditable() );
104107
mAddAttribute->setEnabled( canAddAttributes && mLayer->isEditable() );
105108
mRemoveAttribute->setEnabled( canDeleteAttributes && mLayer->isEditable() );
106109

@@ -230,6 +233,11 @@ void QgsAttributeTableDialog::on_mRemoveSelectionButton_clicked()
230233
mLayer->removeSelection();
231234
}
232235

236+
void QgsAttributeTableDialog::on_mDeleteSelectedButton_clicked()
237+
{
238+
mLayer->deleteSelectedFeatures();
239+
}
240+
233241
void QgsAttributeTableDialog::on_cbxShowSelectedOnly_toggled( bool theFlag )
234242
{
235243
mFilterModel->setHideUnselected( theFlag );
@@ -615,9 +623,11 @@ void QgsAttributeTableDialog::editingToggled()
615623
mToggleEditingButton->blockSignals( false );
616624

617625
bool canChangeAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues;
626+
bool canDeleteFeatures = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteFeatures;
618627
bool canAddAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes;
619628
bool canDeleteAttributes = mLayer->dataProvider()->capabilities() & QgsVectorDataProvider::DeleteAttributes;
620629
mOpenFieldCalculator->setEnabled( canChangeAttributes && mLayer->isEditable() );
630+
mDeleteSelectedButton->setEnabled( canDeleteFeatures && mLayer->isEditable() );
621631
mAddAttribute->setEnabled( canAddAttributes && mLayer->isEditable() );
622632
mRemoveAttribute->setEnabled( canDeleteAttributes && mLayer->isEditable() );
623633

src/app/attributetable/qgsattributetabledialog.h

+5
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,11 @@ class QgsAttributeTableDialog : public QDialog, private Ui::QgsAttributeTableDia
145145
*/
146146
void on_mOpenFieldCalculator_clicked();
147147

148+
/**
149+
* deletes the selected features
150+
*/
151+
void on_mDeleteSelectedButton_clicked();
152+
148153
signals:
149154
/**
150155
* Informs that editing mode ha been toggled

src/ui/qgsattributetabledialog.ui

+62-51
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,57 @@
2121
</property>
2222
</widget>
2323
</item>
24+
<item row="2" column="0">
25+
<layout class="QHBoxLayout">
26+
<item>
27+
<widget class="QCheckBox" name="cbxShowSelectedOnly">
28+
<property name="text">
29+
<string>Show selected records only</string>
30+
</property>
31+
</widget>
32+
</item>
33+
<item>
34+
<widget class="QCheckBox" name="cbxSearchSelectedOnly">
35+
<property name="text">
36+
<string>Search selected records only</string>
37+
</property>
38+
</widget>
39+
</item>
40+
<item>
41+
<spacer>
42+
<property name="orientation">
43+
<enum>Qt::Horizontal</enum>
44+
</property>
45+
<property name="sizeHint" stdset="0">
46+
<size>
47+
<width>40</width>
48+
<height>20</height>
49+
</size>
50+
</property>
51+
</spacer>
52+
</item>
53+
<item>
54+
<widget class="QLabel" name="label">
55+
<property name="text">
56+
<string>Advanced search</string>
57+
</property>
58+
</widget>
59+
</item>
60+
<item>
61+
<widget class="QToolButton" name="mAdvancedSearchButton">
62+
<property name="text">
63+
<string>...</string>
64+
</property>
65+
<property name="iconSize">
66+
<size>
67+
<width>12</width>
68+
<height>12</height>
69+
</size>
70+
</property>
71+
</widget>
72+
</item>
73+
</layout>
74+
</item>
2475
<item row="1" column="0">
2576
<layout class="QHBoxLayout" name="horizontalLayout">
2677
<item>
@@ -170,6 +221,17 @@
170221
</property>
171222
</widget>
172223
</item>
224+
<item>
225+
<widget class="QToolButton" name="mDeleteSelectedButton">
226+
<property name="text">
227+
<string>...</string>
228+
</property>
229+
<property name="icon">
230+
<iconset>
231+
<normaloff>../../images/themes/default/mActionDeleteSelected.png</normaloff>../../images/themes/default/mActionDeleteSelected.png</iconset>
232+
</property>
233+
</widget>
234+
</item>
173235
<item>
174236
<widget class="QToolButton" name="mAddAttribute">
175237
<property name="toolTip">
@@ -259,57 +321,6 @@
259321
</item>
260322
</layout>
261323
</item>
262-
<item row="2" column="0">
263-
<layout class="QHBoxLayout">
264-
<item>
265-
<widget class="QCheckBox" name="cbxShowSelectedOnly">
266-
<property name="text">
267-
<string>Show selected records only</string>
268-
</property>
269-
</widget>
270-
</item>
271-
<item>
272-
<widget class="QCheckBox" name="cbxSearchSelectedOnly">
273-
<property name="text">
274-
<string>Search selected records only</string>
275-
</property>
276-
</widget>
277-
</item>
278-
<item>
279-
<spacer>
280-
<property name="orientation">
281-
<enum>Qt::Horizontal</enum>
282-
</property>
283-
<property name="sizeHint" stdset="0">
284-
<size>
285-
<width>40</width>
286-
<height>20</height>
287-
</size>
288-
</property>
289-
</spacer>
290-
</item>
291-
<item>
292-
<widget class="QLabel" name="label">
293-
<property name="text">
294-
<string>Advanced search</string>
295-
</property>
296-
</widget>
297-
</item>
298-
<item>
299-
<widget class="QToolButton" name="mAdvancedSearchButton">
300-
<property name="text">
301-
<string>...</string>
302-
</property>
303-
<property name="iconSize">
304-
<size>
305-
<width>12</width>
306-
<height>12</height>
307-
</size>
308-
</property>
309-
</widget>
310-
</item>
311-
</layout>
312-
</item>
313324
</layout>
314325
</widget>
315326
<customwidgets>

0 commit comments

Comments
 (0)