Jelajahi Sumber

wxGUI: new workspace bugfix

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@41670 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 15 tahun lalu
induk
melakukan
354a71ea06
2 mengubah file dengan 10 tambahan dan 6 penghapusan
  1. 3 2
      gui/wxpython/gui_modules/menuform.py
  2. 7 4
      gui/wxpython/wxgui.py

+ 3 - 2
gui/wxpython/gui_modules/menuform.py

@@ -468,8 +468,9 @@ class grassTask:
                 # Output only values that have been set, and different from defaults
                 cmd += [ '%s=%s' % ( p['name'], p['value'] ) ]
         
-        if ignoreErrors is False:
-            raise ValueError, '\n'.join(self.getCmdError())
+        errList = self.getCmdError()
+        if ignoreErrors is False and errList:
+            raise ValueError, '\n'.join(errList)
         
         return cmd
 

+ 7 - 4
gui/wxpython/wxgui.py

@@ -513,11 +513,11 @@ class GMFrame(wx.Frame):
         self.PopupMenu(menu)
         menu.Destroy()
 
-    def OnWorkspaceNew(self, event=None):
+    def OnWorkspaceNew(self, event = None):
         """!Create new workspace file
 
-        Erase current workspace settings first"""
-
+        Erase current workspace settings first
+        """
         Debug.msg(4, "GMFrame.OnWorkspaceNew():")
         
         # start new map display if no display is available
@@ -527,7 +527,9 @@ class GMFrame(wx.Frame):
         maptree = self.curr_page.maptree
         
         # ask user to save current settings
-        if maptree.GetCount() > 0:
+        if self.workspaceFile and self.workspaceChanged:
+            self.OnWorkspaceSave()
+        elif self.workspaceFile is None and maptree.GetCount() > 0:
              dlg = wx.MessageDialog(self, message=_("Current workspace is not empty. "
                                                     "Do you want to store current settings "
                                                     "to workspace file?"),
@@ -552,6 +554,7 @@ class GMFrame(wx.Frame):
         
         # no workspace file loaded
         self.workspaceFile = None
+        self.workspaceChanged = False
         self.SetTitle(self.baseTitle)
         
     def OnWorkspaceOpen(self, event=None):