1006 if not window.IsDebugging(): |
1006 if not window.IsDebugging(): |
1007 tagname = window.GetTagName() |
1007 tagname = window.GetTagName() |
1008 if self.Controler.GetEditedElement(tagname) is None: |
1008 if self.Controler.GetEditedElement(tagname) is None: |
1009 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
1009 self.VariablePanelIndexer.RemoveVariablePanel(tagname) |
1010 self.TabsOpened.DeletePage(idx) |
1010 self.TabsOpened.DeletePage(idx) |
1011 |
|
1012 def CloseDebugTabs(self): |
|
1013 if self.EnableDebug: |
|
1014 idxs = range(self.TabsOpened.GetPageCount()) |
|
1015 idxs.reverse() |
|
1016 for idx in idxs: |
|
1017 window = self.TabsOpened.GetPage(idx) |
|
1018 if window.IsDebugging(): |
|
1019 self.TabsOpened.DeletePage(idx) |
|
1020 self.DebugVariablePanel.ResetGrid() |
|
1021 |
1011 |
1022 def OnUndoMenu(self, event): |
1012 def OnUndoMenu(self, event): |
1023 self.Controler.LoadPrevious() |
1013 self.Controler.LoadPrevious() |
1024 self.CloseTabsWithoutModel() |
1014 self.CloseTabsWithoutModel() |
1025 self.RefreshEditor() |
1015 self.RefreshEditor() |
1870 for i in xrange(self.TabsOpened.GetPageCount()): |
1860 for i in xrange(self.TabsOpened.GetPageCount()): |
1871 editor = self.TabsOpened.GetPage(i) |
1861 editor = self.TabsOpened.GetPage(i) |
1872 if isinstance(editor, GraphicViewer): |
1862 if isinstance(editor, GraphicViewer): |
1873 editor.ResetView() |
1863 editor.ResetView() |
1874 |
1864 |
|
1865 def CloseDebugTabs(self): |
|
1866 if self.EnableDebug: |
|
1867 idxs = range(self.TabsOpened.GetPageCount()) |
|
1868 idxs.reverse() |
|
1869 for idx in idxs: |
|
1870 window = self.TabsOpened.GetPage(idx) |
|
1871 if window.IsDebugging(): |
|
1872 self.TabsOpened.DeletePage(idx) |
|
1873 self.DebugVariablePanel.ResetGrid() |
|
1874 |
|
1875 def AddDebugVariable(self, iec_path): |
|
1876 if self.EnableDebug: |
|
1877 self.DebugVariablePanel.InsertValue(iec_path) |
|
1878 |
1875 #------------------------------------------------------------------------------- |
1879 #------------------------------------------------------------------------------- |
1876 # Library Tree Management Functions |
1880 # Library Tree Management Functions |
1877 #------------------------------------------------------------------------------- |
1881 #------------------------------------------------------------------------------- |
1878 |
1882 |
1879 def RefreshLibraryTree(self): |
1883 def RefreshLibraryTree(self): |
4027 values = None |
4031 values = None |
4028 if not isinstance(values, TupleType): |
4032 if not isinstance(values, TupleType): |
4029 message = _("Invalid value \"%s\" for debug variable")%data |
4033 message = _("Invalid value \"%s\" for debug variable")%data |
4030 values = None |
4034 values = None |
4031 if values is not None and values[1] == "debug": |
4035 if values is not None and values[1] == "debug": |
4032 self.ParentWindow.InsertValue(row, values[0]) |
4036 self.ParentWindow.InsertValue(values[0], row) |
4033 if message is not None: |
4037 if message is not None: |
4034 wx.CallAfter(self.ShowMessage, message) |
4038 wx.CallAfter(self.ShowMessage, message) |
4035 |
4039 |
4036 def ShowMessage(self, message): |
4040 def ShowMessage(self, message): |
4037 message = wx.MessageDialog(self.ParentWindow, message, _("Error"), wx.OK|wx.ICON_ERROR) |
4041 message = wx.MessageDialog(self.ParentWindow, message, _("Error"), wx.OK|wx.ICON_ERROR) |
4142 self.Table.Empty() |
4146 self.Table.Empty() |
4143 self.Freeze() |
4147 self.Freeze() |
4144 self.Table.ResetView(self.VariablesGrid) |
4148 self.Table.ResetView(self.VariablesGrid) |
4145 self.Thaw() |
4149 self.Thaw() |
4146 |
4150 |
4147 def GetForceVariableMenuFunction(self, iec_path): |
4151 def GetForceVariableMenuFunction(self, iec_path, item): |
4148 iec_type = self.GetDataType(iec_path) |
4152 iec_type = self.GetDataType(iec_path) |
4149 def ForceVariableFunction(event): |
4153 def ForceVariableFunction(event): |
4150 if iec_type is not None: |
4154 if iec_type is not None: |
4151 dialog = ForceVariableDialog(self, iec_type) |
4155 dialog = ForceVariableDialog(self, iec_type, str(item.GetValue())) |
4152 if dialog.ShowModal() == wx.ID_OK: |
4156 if dialog.ShowModal() == wx.ID_OK: |
4153 self.ForceDataValue(iec_path, dialog.GetValue()) |
4157 self.ForceDataValue(iec_path, dialog.GetValue()) |
4154 return ForceVariableFunction |
4158 return ForceVariableFunction |
4155 |
4159 |
4156 def GetReleaseVariableMenuFunction(self, iec_path): |
4160 def GetReleaseVariableMenuFunction(self, iec_path): |
4164 iec_path = self.Table.GetValueByName(row, "Variable").upper() |
4168 iec_path = self.Table.GetValueByName(row, "Variable").upper() |
4165 |
4169 |
4166 menu = wx.Menu(title='') |
4170 menu = wx.Menu(title='') |
4167 new_id = wx.NewId() |
4171 new_id = wx.NewId() |
4168 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Force value")) |
4172 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Force value")) |
4169 self.Bind(wx.EVT_MENU, self.GetForceVariableMenuFunction(iec_path.upper()), id=new_id) |
4173 self.Bind(wx.EVT_MENU, self.GetForceVariableMenuFunction(iec_path.upper(), self.Table.GetItem(row)), id=new_id) |
4170 new_id = wx.NewId() |
4174 new_id = wx.NewId() |
4171 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Release value")) |
4175 AppendMenu(menu, help='', id=new_id, kind=wx.ITEM_NORMAL, text=_("Release value")) |
4172 self.Bind(wx.EVT_MENU, self.GetReleaseVariableMenuFunction(iec_path.upper()), id=new_id) |
4176 self.Bind(wx.EVT_MENU, self.GetReleaseVariableMenuFunction(iec_path.upper()), id=new_id) |
4173 if self.Table.IsForced(row): |
4177 if self.Table.IsForced(row): |
4174 menu.Enable(new_id, True) |
4178 menu.Enable(new_id, True) |
4191 |
4195 |
4192 def OnDownButton(self, event): |
4196 def OnDownButton(self, event): |
4193 self.MoveValue(self.VariablesGrid.GetGridCursorRow(), 1) |
4197 self.MoveValue(self.VariablesGrid.GetGridCursorRow(), 1) |
4194 event.Skip() |
4198 event.Skip() |
4195 |
4199 |
4196 def InsertValue(self, idx, iec_path): |
4200 def InsertValue(self, iec_path, idx = None): |
|
4201 if idx is None: |
|
4202 idx = self.Table.GetNumberRows() |
4197 for item in self.Table.GetData(): |
4203 for item in self.Table.GetData(): |
4198 if iec_path == item.GetVariable(): |
4204 if iec_path == item.GetVariable(): |
4199 return |
4205 return |
4200 item = VariableTableItem(self, iec_path, "") |
4206 item = VariableTableItem(self, iec_path, "") |
4201 result = self.AddDataConsumer(iec_path.upper(), item) |
4207 result = self.AddDataConsumer(iec_path.upper(), item) |