--- a/IDEFrame.py Thu Jun 06 17:03:19 2013 +0200
+++ b/IDEFrame.py Thu Jun 06 23:01:15 2013 +0200
@@ -1358,6 +1358,7 @@
tagname = window.GetTagName()
if not window.IsDebugging():
self.SelectProjectTreeItem(tagname)
+ self.PouInstanceVariablesPanel.SetPouType(tagname) self.EnsureTabVisible(self.LibraryPanel)
--- a/controls/PouInstanceVariablesPanel.py Thu Jun 06 17:03:19 2013 +0200
+++ b/controls/PouInstanceVariablesPanel.py Thu Jun 06 23:01:15 2013 +0200
@@ -114,15 +114,20 @@
def SetPouType(self, tagname, pou_instance=None):
if self.Controller is not None:
- self.PouTagName = tagname
- if self.PouTagName == "Project":
+ if tagname == "Project": config_name = self.Controller.GetProjectMainConfigurationName()
if config_name is not None:
- self.PouTagName = self.Controller.ComputeConfigurationName(config_name)
+ tagname = self.Controller.ComputeConfigurationName(config_name) if pou_instance is not None:
self.PouInstance = pou_instance
+ if self.PouTagName != tagname: + self.PouTagName = tagname + self.RefreshInstanceChoice() @@ -197,6 +202,14 @@
self.VariablesList.SetItemImage(item, self.ParentWindow.GetTreeImage(var_infos["class"]))
self.VariablesList.SetPyData(item, var_infos)
+ self.RefreshInstanceChoice() + def RefreshInstanceChoice(self): + if self.Controller is not None and self.PouInfos is not None: instances = self.Controller.SearchPouInstances(self.PouTagName, self.Debug)
for instance in instances:
self.InstanceChoice.Append(instance)
@@ -210,11 +223,7 @@
self.InstanceChoice.SetValue(_("Select an instance"))
def RefreshButtons(self):
enabled = self.InstanceChoice.GetSelection() != -1
self.ParentButton.Enable(enabled and self.PouInfos["class"] != ITEM_CONFIGURATION)
--- a/editors/Viewer.py Thu Jun 06 17:03:19 2013 +0200
+++ b/editors/Viewer.py Thu Jun 06 23:01:15 2013 +0200
@@ -271,6 +271,7 @@
self.ParentWindow.RefreshScrollBars()
self.ParentWindow.RefreshVisibleElements()
self.ParentWindow.RefreshVariablePanel()
+ self.ParentWindow.ParentWindow.RefreshPouInstanceVariablesPanel() self.ParentWindow.Refresh(False)
elif values[1] == "location":
if pou_type == "program":
@@ -318,6 +319,7 @@
if not var_name.upper() in [name.upper() for name in self.ParentWindow.Controler.GetEditedElementVariables(tagname, self.ParentWindow.Debug)]:
self.ParentWindow.Controler.AddEditedElementPouExternalVar(tagname, values[2], var_name)
self.ParentWindow.RefreshVariablePanel()
+ self.ParentWindow.ParentWindow.RefreshPouInstanceVariablesPanel() self.ParentWindow.AddVariableBlock(x, y, scaling, INPUT, var_name, values[2])
elif values[1] == "Constant":
self.ParentWindow.AddVariableBlock(x, y, scaling, INPUT, values[0], None)