[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