Skip to content

Commit

Permalink
Use new vector edit macro support to batch Show/Hide Label tool's ope…
Browse files Browse the repository at this point in the history
…ration
  • Loading branch information
dakcarto committed Feb 11, 2013
1 parent 2de2f23 commit dd1bb45
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions src/app/qgsmaptoolshowhidelabels.cpp
Expand Up @@ -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 ) )
Expand All @@ -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,
Expand Down Expand Up @@ -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;
}

0 comments on commit dd1bb45

Please sign in to comment.