commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/gnuef/designer/src Instance.py MenuBar.py


From: Jason Cater
Subject: gnue/gnuef/designer/src Instance.py MenuBar.py
Date: Mon, 18 Jun 2001 03:13:08 -0700

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/06/18 03:13:08

Modified files:
        gnuef/designer/src: Instance.py MenuBar.py 

Log message:
        Implemented 'Save As...' and dirty project marker (* in titlebar if 
project has been modified)

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/Instance.py.diff?cvsroot=OldCVS&tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/MenuBar.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: gnue/gnuef/designer/src/Instance.py
diff -u gnue/gnuef/designer/src/Instance.py:1.5 
gnue/gnuef/designer/src/Instance.py:1.6
--- gnue/gnuef/designer/src/Instance.py:1.5     Sun Jun 17 22:41:25 2001
+++ gnue/gnuef/designer/src/Instance.py Mon Jun 18 03:13:08 2001
@@ -44,10 +44,11 @@
     GFInstance.GFInstance.__init__(self, app, -1, app.connections, None, 
disableSplash=1)
     wxFrame.__init__(self, NULL, -1, "")
 
+    self._isdirty = 0
+
     self._app = app
     self._lastGenericNameSeq = {}
     self.nameMappings = {}
-    app.addInstance(self) 
 
     self._pages = []
 
@@ -59,13 +60,14 @@
       GFObjects.GFOption(options, "height","12")
       GFObjects.GFOption(options, "width","40")
       GFObjects.GFPage(self._form)
-      self.SetTitle (TITLE + " - Untitled Form")
+      self.makeDirty()
     else: 
       self._path = location
       fileHandle = open(location,'r')
       self._form = GFParser.loadForm (fileHandle, self, initialize=0) 
       fileHandle.close()
-      self.SetTitle (TITLE + " - " + self._path)
+      self.makeClean()
+
 
     self.CreateStatusBar()
     self.SetStatusText('Moo!')
@@ -80,6 +82,7 @@
     hsplitter = wxSplitterWindow (vsplitter, -1, style=wxSP_3D|wxNO_3D)
     hsplitter.SetMinimumPaneSize (100)
 
+    self._form.walk(self.inventoryLoadedItems)
 
     # Create our tools
     self.tree = TreeView(self, self._form, hsplitter)
@@ -94,8 +97,6 @@
                              self.propertyEditor, 
                              self.triggerEditor ]
 
-    self._form.walk(self.inventoryLoadedItems)
-
     self._currentPage = self._pages[0]
     hsplitter.SplitHorizontally (self.tree, self.propertyEditor)
     vsplitter.SplitVertically(hsplitter, self.layoutEditor)
@@ -104,11 +105,36 @@
     self.layoutEditor.drawPage(self._currentPage)
     hsplitter.SetSashPosition (320, true)
     self.tree.Expand(self._form._treeItem)
-    self.Refresh()    
 
+    self._menubar.lastToolAdded()
+
+    app.addInstance(self) 
+
+    self.Refresh()
+
   def uiEventTrap(self, event): 
     pass
 
+
+  # Mark our form as "dirty" (unsaved changes)
+  def makeDirty(self): 
+    if not self._isdirty: 
+      self._isdirty = 1
+      if self._path == "": 
+        self.SetTitle( TITLE + " - Untitled Form *")
+      else: 
+        self.SetTitle( TITLE + " - " + self._path + " *")
+
+  def makeClean(self): 
+    self._isdirty = 0
+    if self._path == "": 
+      self.SetTitle( TITLE + " - Untitled Form")
+    else: 
+      self.SetTitle( TITLE + " - " + self._path)
+ 
+    
+
+
   def inventoryLoadedItems (self, object): 
 
     if object != self._form:
@@ -130,14 +156,17 @@
   def onCreateObject (self, object, handler):
     for listener in self.objectListeners: 
       listener.onCreateObject(object, handler)
+    self.makeDirty()
 
   def onModifyObject (self, object, handler, modifications):
     for listener in self.objectListeners: 
       listener.onModifyObject(object, handler)
+    self.makeDirty()
 
   def onDeleteObject (self, object, handler):
     for listener in self.objectListeners: 
       listener.onDeleteObject(object, handler)
+    self.makeDirty()
 
 
   def getNextGenericName (self, type): 
@@ -162,9 +191,9 @@
       fileHandle = open(location,'r')
       fileHandle2 = open(location + "~",'w')
       fileHandle2.writelines(fileHandle.readlines())
-#    except:
-#      pass
-    finally: 
+    except:
+      pass
+    else: 
       if fileHandle != None: 
         fileHandle.close()
       if fileHandle2 != None: 
@@ -220,6 +249,8 @@
           time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))))
     fileHandle.write(self._form.dumpXML(treeDump=1))
     fileHandle.close()
+
+    self.makeClean()
     
   def OnSave(self, event): 
     if not len(self._path): 
@@ -228,7 +259,16 @@
       self.saveForm()
  
   def OnSaveAs(self, event): 
-    pass
+    dlg = wxFileDialog(NULL, "Save GNUe Form As...", defaultDir=os.getcwd(),
+                           wildcard = "GNUe Form Definitions (*.gfd)|*.gfd|" +\
+                                      "GNUe Form Libraries (*.gfl)|*.gfl",
+                           style=wxSAVE)
+    if dlg.ShowModal() == wxID_OK:
+      self._path = dlg.GetPath()
+      self.SetTitle (TITLE + " - " + self._path)
+      self.saveForm()
+    dlg.Destroy()
+    
  
   def OnClose(self, event): 
     self._app.removeInstance(self) 
@@ -275,4 +315,5 @@
   def OnClose(self, event): 
     self.hide()
     event.Veto()
+
 
Index: gnue/gnuef/designer/src/MenuBar.py
diff -u gnue/gnuef/designer/src/MenuBar.py:1.2 
gnue/gnuef/designer/src/MenuBar.py:1.3
--- gnue/gnuef/designer/src/MenuBar.py:1.2      Sun Jun 17 22:41:25 2001
+++ gnue/gnuef/designer/src/MenuBar.py  Mon Jun 18 03:13:08 2001
@@ -92,4 +92,7 @@
     self._window.AppendItem(toolFrame._menu)
     EVT_MENU(self._frame, toolFrame._wxMenuID, toolFrame.OnMenuSelected)
 
+  def lastToolAdded(self): 
+   self._window.AppendSeparator()
+
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]