浏览代码

wxGUI: close edited vector layer properly when window is closed
(merge from devbr6, https://trac.osgeo.org/grass/changeset/33007)


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@33008 15284696-431f-4ddb-bdfa-cd5b030d7da7

Martin Landa 16 年之前
父节点
当前提交
710dad9664
共有 2 个文件被更改,包括 16 次插入9 次删除
  1. 12 1
      gui/wxpython/gui_modules/mapdisp.py
  2. 4 8
      gui/wxpython/wxgui.py

+ 12 - 1
gui/wxpython/gui_modules/mapdisp.py

@@ -3183,13 +3183,24 @@ class MapFrame(wx.Frame):
         """
         pgnum = None
         self.Map.Clean()
+        
+        # close edited map properly
+        digitToolbar = self.toolbars['vdigit']
+        if digitToolbar:
+            maplayer = digitToolbar.GetLayer()
+            if maplayer:
+                self.toolbars['vdigit'].OnExit()
+                self.imgVectorMap = None
+        
         if self.page:
             pgnum = self.layerbook.GetPageIndex(self.page)
             if pgnum > -1:
                 self.layerbook.DeletePage(pgnum)
-
+        
         #self.Destroy()
 
+        event.Skip()
+        
     def GetRender(self):
         """
         Returns the current instance of render.Map()

+ 4 - 8
gui/wxpython/wxgui.py

@@ -1417,16 +1417,12 @@ class GMFrame(wx.Frame):
             if self.curr_page.maptree.GetPyData(layer)[0]['type'] == 'group':
                 self.curr_page.maptree.DeleteChildren(layer)
             self.curr_page.maptree.Delete(layer)
-
-    #Misc methods
+        
     def OnCloseWindow(self, event):
         """Cleanup when wxgui.py is quit"""
-        try:
-            for page in range(self.gm_cb.GetPageCount()):
-                self.gm_cb.GetPage(page).maptree.Map.Clean()
-            self.DeleteAllPages()
-        except:
-            pass
+        for page in range(self.gm_cb.GetPageCount()):
+            self.gm_cb.GetPage(page).maptree.mapdisplay.OnCloseWindow(event)
+        self.gm_cb.DeleteAllPages()
         # self.DestroyChildren()
         self._auimgr.UnInit()
         self.Destroy()