diff -r b22f661cbcfb -r c798a68c5560 SFCViewer.py --- a/SFCViewer.py Thu Aug 23 09:50:35 2007 +0200 +++ b/SFCViewer.py Mon Aug 27 17:37:50 2007 +0200 @@ -46,7 +46,7 @@ def CreateTransition(self, connector, next = None): previous = connector.GetParentBlock() id = self.GetNewId() - transition = SFC_Transition(self, "reference", "", id) + transition = SFC_Transition(self, "reference", "", 0, id) pos = connector.GetPosition(False) transition.SetPosition(pos.x, pos.y + SFC_WIRE_MIN_SIZE) transition_connectors = transition.GetConnectors() @@ -384,7 +384,6 @@ self.AddBlock(step) self.Controler.AddCurrentElementEditingStep(id) self.RefreshStepModel(step) - self.Parent.RefreshProjectTree() self.RefreshBuffer() self.RefreshScrollBars() self.Refresh() @@ -439,7 +438,6 @@ self.SelectedElement.SetSelected(False) self.SelectedElement = step self.SelectedElement.SetSelected(True) - self.Parent.RefreshProjectTree() self.RefreshBuffer() self.RefreshScrollBars() self.Refresh() @@ -672,17 +670,28 @@ def AddDivergenceBranch(self, divergence): if isinstance(divergence, SFC_Divergence): - type = divergence.GetType() - if type in [SELECTION_DIVERGENCE, SIMULTANEOUS_DIVERGENCE]: + if self.GetDrawingMode() == FREEDRAWING_MODE: divergence.AddBranch() - divergence_connectors = divergence.GetConnectors() - if type == SELECTION_DIVERGENCE: - transition = self.CreateTransition(divergence_connectors["outputs"][-1]) - transition_connectors = transition.GetConnectors() - previous = transition_connectors["output"] - else: - previous = divergence_connectors["outputs"][-1] - step = self.CreateStep("Step", previous) + else: + type = divergence.GetType() + if type in [SELECTION_DIVERGENCE, SIMULTANEOUS_DIVERGENCE]: + divergence.AddBranch() + divergence_connectors = divergence.GetConnectors() + if type == SELECTION_DIVERGENCE: + transition = self.CreateTransition(divergence_connectors["outputs"][-1]) + transition_connectors = transition.GetConnectors() + previous = transition_connectors["output"] + else: + previous = divergence_connectors["outputs"][-1] + step = self.CreateStep("Step", previous) + self.RefreshBuffer() + self.RefreshScrollBars() + self.Refresh() + + def RemoveDivergenceBranch(self, divergence): + if isinstance(divergence, SFC_Divergence): + if self.GetDrawingMode() == FREEDRAWING_MODE: + divergence.RemoveHandledBranch() self.RefreshBuffer() self.RefreshScrollBars() self.Refresh() @@ -844,8 +853,7 @@ self.DeleteDivergence(next_block) else: self.RefreshDivergenceModel(next_block) - self.Parent.RefreshProjectTree() - + def DeleteDivergence(self, divergence): if self.GetDrawingMode() == FREEDRAWING_MODE: Viewer.DeleteDivergence(self, divergence) @@ -940,8 +948,7 @@ if isinstance(next_block, SFC_Divergence): next_block.RefreshPosition() previous_block.RefreshOutputModel(True) - self.Parent.RefreshProjectTree() - + def DeleteJump(self, jump): if self.GetDrawingMode() == FREEDRAWING_MODE: Viewer.DeleteJump(self, jump) @@ -976,8 +983,7 @@ self.DeleteDivergence(previous_block) else: previous_block.RefreshModel() - self.Parent.RefreshProjectTree() - + def DeleteActionBlock(self, actionblock): if self.GetDrawingMode() == FREEDRAWING_MODE: Viewer.DeleteActionBlock(self, actionblock) @@ -997,8 +1003,7 @@ self.RefreshStepModel(step) step.RefreshOutputPosition() step.RefreshOutputModel(True) - self.Parent.RefreshProjectTree() - + def DeleteWire(self, wire): if self.GetDrawingMode() == FREEDRAWING_MODE: Viewer.DeleteWire(self, wire)