[QGIS Commit] r8205 - in trunk/qgis/src/app: . legend
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Mar 11 19:42:09 EDT 2008
Author: jef
Date: 2008-03-11 19:42:09 -0400 (Tue, 11 Mar 2008)
New Revision: 8205
Modified:
trunk/qgis/src/app/legend/qgslegendlayerfile.cpp
trunk/qgis/src/app/legend/qgslegendlayerfile.h
trunk/qgis/src/app/qgisapp.cpp
Log:
Stop editing before layer remove if necessary
Modified: trunk/qgis/src/app/legend/qgslegendlayerfile.cpp
===================================================================
--- trunk/qgis/src/app/legend/qgslegendlayerfile.cpp 2008-03-11 21:51:18 UTC (rev 8204)
+++ trunk/qgis/src/app/legend/qgslegendlayerfile.cpp 2008-03-11 23:42:09 UTC (rev 8205)
@@ -476,6 +476,12 @@
}
+bool QgsLegendLayerFile::isEditing()
+{
+ QgsVectorLayer* vlayer = dynamic_cast<QgsVectorLayer*>(mLyr.layer());
+ return vlayer && vlayer->isEditable();
+}
+
void QgsLegendLayerFile::layerNameChanged()
{
QString name = mLyr.layer()->name();
Modified: trunk/qgis/src/app/legend/qgslegendlayerfile.h
===================================================================
--- trunk/qgis/src/app/legend/qgslegendlayerfile.h 2008-03-11 21:51:18 UTC (rev 8204)
+++ trunk/qgis/src/app/legend/qgslegendlayerfile.h 2008-03-11 23:42:09 UTC (rev 8205)
@@ -89,6 +89,9 @@
/**Toggle editing for layer*/
void toggleEditing();
+ /**Return editing status for layer*/
+ bool isEditing();
+
/**Toggle show in overview*/
void showInOverview();
Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp 2008-03-11 21:51:18 UTC (rev 8204)
+++ trunk/qgis/src/app/qgisapp.cpp 2008-03-11 23:42:09 UTC (rev 8205)
@@ -3774,6 +3774,11 @@
void QgisApp::removeLayer()
{
+ QgsLegendLayerFile* currentLayerFile = mMapLegend->currentLayerFile();
+ if(currentLayerFile && currentLayerFile->isEditing() )
+ {
+ currentLayerFile->toggleEditing();
+ }
mMapLegend->legendLayerRemove();
}
More information about the QGIS-commit
mailing list