mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
Use new vector edit macro support to batch Show/Hide Label tool's operation
This commit is contained in:
parent
2de2f2327e
commit
dd1bb457d2
@ -156,9 +156,15 @@ void QgsMapToolShowHideLabels::showHideLabels( QMouseEvent * e )
|
||||
|
||||
QgsDebugMsg( "Number of selected labels or features: " + QString::number( selectedFeatIds.size() ) );
|
||||
|
||||
if ( selectedFeatIds.isEmpty() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
bool labelChanged = false;
|
||||
QString editTxt = doHide ? tr( "Hid labels" ) : tr( "Showed labels" );
|
||||
|
||||
vlayer->beginEditCommand( editTxt );
|
||||
foreach ( const QgsFeatureId &fid, selectedFeatIds )
|
||||
{
|
||||
if ( showHideLabel( vlayer, fid, doHide ) )
|
||||
@ -167,11 +173,16 @@ void QgsMapToolShowHideLabels::showHideLabels( QMouseEvent * e )
|
||||
labelChanged = true;
|
||||
}
|
||||
}
|
||||
vlayer->endEditCommand();
|
||||
|
||||
if ( labelChanged )
|
||||
{
|
||||
mCanvas->refresh();
|
||||
}
|
||||
else
|
||||
{
|
||||
vlayer->destroyEditCommand();
|
||||
}
|
||||
}
|
||||
|
||||
bool QgsMapToolShowHideLabels::selectedFeatures( QgsVectorLayer* vlayer,
|
||||
@ -294,14 +305,10 @@ bool QgsMapToolShowHideLabels::showHideLabel( QgsVectorLayer* vlayer,
|
||||
}
|
||||
|
||||
// different attribute value, edit table
|
||||
QString editTxt = hide ? tr( "Hid label" ) : tr( "Showed label" );
|
||||
vlayer->beginEditCommand( editTxt );
|
||||
if ( !vlayer->changeAttributeValue( fid, showCol, curVal, false ) )
|
||||
{
|
||||
QgsDebugMsg( "Failed write to attribute table" );
|
||||
vlayer->endEditCommand();
|
||||
return false;
|
||||
}
|
||||
vlayer->endEditCommand();
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user