--- 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()