Skip to content

Commit 32f3690

Browse files
committedJan 23, 2012
repaint layer after commiting
1 parent 53b6366 commit 32f3690

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4323,11 +4323,23 @@ bool QgisApp::toggleEditing( QgsMapLayer *layer, bool allowCancel )
43234323

43244324
if ( !vlayer->isEditable() && !vlayer->isReadOnly() )
43254325
{
4326-
vlayer->startEditing();
4327-
if ( !( vlayer->dataProvider()->capabilities() & QgsVectorDataProvider::EditingCapabilities ) )
4326+
if ( vlayer->dataProvider()->capabilities() & QgsVectorDataProvider::EditingCapabilities == 0 )
43284327
{
43294328
QMessageBox::information( 0, tr( "Start editing failed" ), tr( "Provider cannot be opened for editing" ) );
4330-
res = false;
4329+
return false;
4330+
}
4331+
4332+
vlayer->startEditing();
4333+
4334+
QSettings settings;
4335+
QString markerType = settings.value( "/qgis/digitizing/marker_style", "Cross" ).toString();
4336+
bool markSelectedOnly = settings.value( "/qgis/digitizing/marker_only_for_selected", false ).toBool();
4337+
4338+
// redraw only if markers will be drawn
4339+
if( ( !markSelectedOnly || vlayer->selectedFeatureCount() > 0 ) &&
4340+
( markerType == "Cross" || markerType == "SemiTransparentCircle" ) )
4341+
{
4342+
vlayer->triggerRepaint();
43314343
}
43324344
}
43334345
else if ( vlayer->isModified() )
@@ -4358,6 +4370,8 @@ bool QgisApp::toggleEditing( QgsMapLayer *layer, bool allowCancel )
43584370
// and try the commit again later
43594371
res = false;
43604372
}
4373+
4374+
vlayer->triggerRepaint();
43614375
break;
43624376

43634377
case QMessageBox::Discard:
@@ -4366,6 +4380,8 @@ bool QgisApp::toggleEditing( QgsMapLayer *layer, bool allowCancel )
43664380
QMessageBox::information( 0, tr( "Error" ), tr( "Problems during roll back" ) );
43674381
res = false;
43684382
}
4383+
4384+
vlayer->triggerRepaint();
43694385
break;
43704386

43714387
default:
@@ -4376,24 +4392,14 @@ bool QgisApp::toggleEditing( QgsMapLayer *layer, bool allowCancel )
43764392
{
43774393
vlayer->rollBack();
43784394
res = true;
4395+
vlayer->triggerRepaint();
43794396
}
43804397

43814398
if ( layer == activeLayer() )
43824399
{
43834400
activateDeactivateLayerRelatedActions( layer );
43844401
}
43854402

4386-
QSettings settings;
4387-
QString markerType = settings.value( "/qgis/digitizing/marker_style", "Cross" ).toString();
4388-
bool markSelectedOnly = settings.value( "/qgis/digitizing/marker_only_for_selected", false ).toBool();
4389-
4390-
// repaint only if the there will be/were markers
4391-
if (( !markSelectedOnly || vlayer->selectedFeatureCount() > 0 ) &&
4392-
( markerType == "Cross" || markerType == "SemiTransparentCircle" ) )
4393-
{
4394-
vlayer->triggerRepaint();
4395-
}
4396-
43974403
return res;
43984404
}
43994405

0 commit comments

Comments
 (0)
Please sign in to comment.