Skip to content

Commit dd1bb45

Browse files
committed
Use new vector edit macro support to batch Show/Hide Label tool's operation
1 parent 2de2f23 commit dd1bb45

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/app/qgsmaptoolshowhidelabels.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,15 @@ void QgsMapToolShowHideLabels::showHideLabels( QMouseEvent * e )
156156

157157
QgsDebugMsg( "Number of selected labels or features: " + QString::number( selectedFeatIds.size() ) );
158158

159+
if ( selectedFeatIds.isEmpty() )
160+
{
161+
return;
162+
}
159163

160164
bool labelChanged = false;
165+
QString editTxt = doHide ? tr( "Hid labels" ) : tr( "Showed labels" );
161166

167+
vlayer->beginEditCommand( editTxt );
162168
foreach ( const QgsFeatureId &fid, selectedFeatIds )
163169
{
164170
if ( showHideLabel( vlayer, fid, doHide ) )
@@ -167,11 +173,16 @@ void QgsMapToolShowHideLabels::showHideLabels( QMouseEvent * e )
167173
labelChanged = true;
168174
}
169175
}
176+
vlayer->endEditCommand();
170177

171178
if ( labelChanged )
172179
{
173180
mCanvas->refresh();
174181
}
182+
else
183+
{
184+
vlayer->destroyEditCommand();
185+
}
175186
}
176187

177188
bool QgsMapToolShowHideLabels::selectedFeatures( QgsVectorLayer* vlayer,
@@ -294,14 +305,10 @@ bool QgsMapToolShowHideLabels::showHideLabel( QgsVectorLayer* vlayer,
294305
}
295306

296307
// different attribute value, edit table
297-
QString editTxt = hide ? tr( "Hid label" ) : tr( "Showed label" );
298-
vlayer->beginEditCommand( editTxt );
299308
if ( !vlayer->changeAttributeValue( fid, showCol, curVal, false ) )
300309
{
301310
QgsDebugMsg( "Failed write to attribute table" );
302-
vlayer->endEditCommand();
303311
return false;
304312
}
305-
vlayer->endEditCommand();
306313
return true;
307314
}

0 commit comments

Comments
 (0)