diff -r e24d2f917c7e -r 7187e1c00975 Viewer.py --- 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()