Browse Source

wxGUI/modeler: OnModelNew implemeneted

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@41808 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 15 years ago
parent
commit
cf70c09a9d
1 changed files with 34 additions and 3 deletions
  1. 34 3
      gui/wxpython/gui_modules/gmodeler.py

+ 34 - 3
gui/wxpython/gui_modules/gmodeler.py

@@ -158,8 +158,39 @@ class ModelFrame(wx.Frame):
 
     def OnModelNew(self, event):
         """!Create new model"""
-        pass
-
+        Debug.msg(4, "ModelFrame.OnModelNew():")
+        
+        # ask user to save current model
+        if self.modelFile and self.modelChanged:
+            self.OnModelSave()
+        elif self.modelFile is None and \
+                (len(self.actions) > 0 or len(self.data) > 0):
+            dlg = wx.MessageDialog(self, message=_("Current model is not empty. "
+                                                   "Do you want to store current settings "
+                                                   "to model file?"),
+                                   caption=_("Create new model?"),
+                                   style=wx.YES_NO | wx.YES_DEFAULT |
+                                   wx.CANCEL | wx.ICON_QUESTION)
+            ret = dlg.ShowModal()
+            if ret == wx.ID_YES:
+                self.OnModelSaveAs()
+            elif ret == wx.ID_CANCEL:
+                dlg.Destroy()
+                return
+            
+            dlg.Destroy()
+        
+        # delete all items
+        self.canvas.GetDiagram().DeleteAllShapes()
+        self.actions = list()
+        self.data = list()
+        self.canvas.Refresh()
+        
+        # no model file loaded
+        self.modelFile = None
+        self.modelChanged = False
+        self.SetTitle(self.baseTitle)
+        
     def OnModelOpen(self, event):
         """!Load model from file"""
         filename = ''
@@ -183,7 +214,7 @@ class ModelFrame(wx.Frame):
         self.SetTitle(self.baseTitle + " - " +  os.path.basename(self.modelFile))
         self.SetStatusText(_('%d actions loaded into model') % len(self.actions), 0)
         
-    def OnModelSave(self, event):
+    def OnModelSave(self, event = None):
         """!Save model to file"""
         if self.modelFile:
             dlg = wx.MessageDialog(self, message=_("Model file <%s> already exists. "