--- a/IDEFrame.py Thu May 16 17:40:32 2013 +0900
+++ b/IDEFrame.py Thu May 16 13:11:33 2013 +0200
@@ -1355,8 +1355,8 @@
window = self.TabsOpened.GetPage(selected)
tagname = window.GetTagName()
if not window.IsDebugging():
- wx.CallAfter(self.SelectProjectTreeItem, tagname)
- wx.CallAfter(self.PouInstanceVariablesPanel.SetPouType, tagname)
+ self.SelectProjectTreeItem(tagname) + self.PouInstanceVariablesPanel.SetPouType(tagname) self.EnsureTabVisible(self.LibraryPanel)
@@ -1429,10 +1429,7 @@
#-------------------------------------------------------------------------------
def RefreshProjectTree(self):
- if wx.Platform == '__WXMSW__':
- # Disconnect event when selection in treectrl changed
- self.Unbind(wx.EVT_TREE_SEL_CHANGED,
- id=ID_PLCOPENEDITORPROJECTTREE)
+ self.ProjectTree.SetEvtHandlerEnabled(False) # Extract current selected item tagname
selected = self.ProjectTree.GetSelection()
@@ -1452,14 +1449,9 @@
# Select new item corresponding to previous selected item
- wx.CallAfter(self.SelectProjectTreeItem, tagname)
- if wx.Platform == '__WXMSW__':
- # Reconnect event when selection in treectrl changed
- wx.CallAfter(self.Bind,
- wx.EVT_TREE_SEL_CHANGED,
- self.OnProjectTreeItemSelected,
- id=ID_PLCOPENEDITORPROJECTTREE)
+ self.SelectProjectTreeItem(tagname) + self.ProjectTree.SetEvtHandlerEnabled(True) def ResetSelectedItem(self):
@@ -1505,23 +1497,26 @@
self.ProjectTree.Delete(item)
def SelectProjectTreeItem(self, tagname):
+ self.ProjectTree.SetEvtHandlerEnabled(False) if self.ProjectTree is not None:
root = self.ProjectTree.GetRootItem()
words = tagname.split("::")
- return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_DATATYPE)])
+ result = self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_DATATYPE)]) - return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU)])
+ result = self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU)]) - return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_TRANSITION)])
+ result = self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_TRANSITION)]) - return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_ACTION)])
+ result = self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_POU), (words[2], ITEM_ACTION)]) - return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION)])
+ result = self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION)]) - return self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION), (words[2], ITEM_RESOURCE)])
+ result = self.RecursiveProjectTreeItemSelection(root, [(words[1], ITEM_CONFIGURATION), (words[2], ITEM_RESOURCE)]) + self.ProjectTree.SetEvtHandlerEnabled(True) def RecursiveProjectTreeItemSelection(self, root, items):
@@ -1534,8 +1529,8 @@
if (item_infos["name"].split(":")[-1].strip(), item_infos["type"]) == items[0]:
- wx.CallAfter(self.ProjectTree.SelectItem, item)
- wx.CallAfter(self.ResetSelectedItem)
+ self.ProjectTree.SelectItem(item) + self.ResetSelectedItem() found = self.RecursiveProjectTreeItemSelection(item, items[1:])