Viewer.py
changeset 56 7187e1c00975
parent 54 6688829ce624
child 58 39cd981ff242
--- a/Viewer.py	Wed Jul 25 10:06:29 2007 +0200
+++ b/Viewer.py	Thu Jul 26 17:23:21 2007 +0200
@@ -266,15 +266,24 @@
             self.SelectedElement.SetSelected(False)
             self.SelectedElement = None
             self.Refresh()
-
+    
     # Return current drawing mode
     def GetDrawingMode(self):
         return self.Parent.GetDrawingMode()
+    
+    # Buffer the last model state
+    def RefreshBuffer(self):
+        self.Controler.BufferProject()
+        self.Parent.RefreshTitle()
+        self.Parent.RefreshEditMenu()
 
 #-------------------------------------------------------------------------------
 #                          Refresh functions
 #-------------------------------------------------------------------------------
 
+    def ResetBuffer(self):
+        pass
+
     # Refresh Viewer elements
     def RefreshView(self):
         self.current_id = 0
@@ -849,6 +858,7 @@
                 self.SelectedElement.GeneratePoints()
                 self.SelectedElement.RefreshModel()
                 self.SelectedElement.SetSelected(True)
+                self.RefreshBuffer()
             else:
                 self.SelectedElement.Delete()
                 self.SelectedElement = None
@@ -927,6 +937,9 @@
             self.SelectedElement.Clean()
             self.SelectedElement.Delete()
             self.SelectedElement = None
+            self.RefreshBuffer()
+            self.RefreshScrollBars()
+            self.Refresh()
         elif keycode == WXK_LEFT:
             if event.ControlDown() and event.ShiftDown():
                 self.Scroll(0, ypos)
@@ -934,6 +947,9 @@
                 self.Scroll(max(0, xpos - 1), ypos)
             elif self.SelectedElement:
                 self.SelectedElement.Move(-scaling[0], 0)
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
+                self.Refresh()
         elif keycode == WXK_RIGHT:
             if event.ControlDown() and event.ShiftDown():
                 self.Scroll(xmax, ypos)
@@ -941,6 +957,9 @@
                 self.Scroll(min(xpos + 1, xmax), ypos)
             elif self.SelectedElement:
                 self.SelectedElement.Move(scaling[0], 0)
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
+                self.Refresh()
         elif keycode == WXK_UP:
             if event.ControlDown() and event.ShiftDown():
                 self.Scroll(xpos, 0)
@@ -948,6 +967,9 @@
                 self.Scroll(xpos, max(0, ypos - 1))
             elif self.SelectedElement:
                 self.SelectedElement.Move(0, -scaling[1])
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
+                self.Refresh()
         elif keycode == WXK_DOWN:
             if event.ControlDown() and event.ShiftDown():
                 self.Scroll(xpos, ymax)
@@ -955,7 +977,9 @@
                 self.Scroll(xpos, min(ypos + 1, ymax))
             elif self.SelectedElement:
                 self.SelectedElement.Move(0, scaling[1])
-        self.Refresh()
+                self.RefreshBuffer()
+                self.RefreshScrollBars()
+                self.Refresh()
 
 #-------------------------------------------------------------------------------
 #                          Model adding functions
@@ -977,6 +1001,7 @@
             self.AddBlock(block)
             self.Controler.AddCurrentElementEditingBlock(id)
             self.RefreshBlockModel(block)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1002,6 +1027,7 @@
             self.AddBlock(variable)
             self.Controler.AddCurrentElementEditingVariable(id, values["type"])
             self.RefreshVariableModel(variable)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1018,6 +1044,7 @@
             self.AddBlock(connection)
             self.Controler.AddCurrentElementEditingConnection(id, values["type"])
             self.RefreshConnectionModel(connection)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1034,6 +1061,7 @@
             self.AddComment(comment)
             self.Controler.AddCurrentElementEditingComment(id)
             self.RefreshCommentModel(comment)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1058,6 +1086,7 @@
             self.AddBlock(contact)
             self.Controler.AddCurrentElementEditingContact(id)
             self.RefreshContactModel(contact)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1085,6 +1114,7 @@
             self.AddBlock(coil)
             self.Controler.AddCurrentElementEditingCoil(id)
             self.RefreshCoilModel(contact)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1101,6 +1131,7 @@
             self.AddBlock(powerrail)
             self.Controler.AddCurrentElementEditingPowerRail(id, values["type"])
             self.RefreshPowerRailModel(powerrail)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1118,6 +1149,7 @@
             self.AddBlock(transition)
             self.Controler.AddCurrentElementEditingTransition(id)
             self.RefreshTransitionModel(transition)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1135,6 +1167,7 @@
             self.AddBlock(divergence)
             self.Controler.AddCurrentElementEditingDivergence(id, values["type"])
             self.RefreshDivergenceModel(divergence)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1158,6 +1191,7 @@
             block.SetSize(values["width"], values["height"])
             block.SetType(values["type"], values["extension"])
             self.RefreshBlockModel(block)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1187,6 +1221,7 @@
                 self.Controler.RemoveCurrentElementEditingInstance(id)
                 self.Controler.AddCurrentElementEditingVariable(id, values["type"])
             self.RefreshVariableModel(variable)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1207,6 +1242,7 @@
                 self.Controler.RemoveCurrentElementEditingInstance(id)
                 self.Controler.AddCurrentElementEditingConnection(id, values["type"])
             self.RefreshConnectionModel(connection)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1229,6 +1265,7 @@
             contact.SetType(values["type"])
             contact.SetSize(values["width"], values["height"])
             self.RefreshContactModel(contact)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1254,6 +1291,7 @@
             coil.SetType(values["type"])
             coil.SetSize(values["width"], values["height"])
             self.RefreshContactModel(coil)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()
@@ -1271,6 +1309,7 @@
                 self.Controler.RemoveCurrentElementEditingInstance(id)
                 self.Controler.AddCurrentElementEditingPowerRail(id, values["type"])
             self.RefreshPowerRailModel(powerrail)
+            self.RefreshBuffer()
             self.RefreshScrollBars()
             self.Refresh()
         dialog.Destroy()