--- a/Beremiz.py Sat May 12 12:11:42 2012 +0200
+++ b/Beremiz.py Fri May 18 18:50:49 2012 +0200
@@ -147,11 +147,11 @@
from util.BrowseValuesLibraryDialog import BrowseValuesLibraryDialog
import types, time, re, platform, time, traceback, commands
from ProjectController import ProjectController, MATIEC_ERROR_MODEL
-from util import MiniTextControler
+from util.MiniTextControler import MiniTextControler
from util.ProcessLogger import ProcessLogger
from docutil import OpenHtmlFrame
-from PLCOpenEditor import IDEFrame, AppendMenu, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, SCALING, PAGETITLES, USE_AUI
+from PLCOpenEditor import IDEFrame, AppendMenu, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU, PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE, SCALING, PAGETITLES, USE_AUI
from PLCOpenEditor import EditorPanel, Viewer, TextViewer, GraphicViewer, ResourceEditor, ConfigurationEditor, DataTypeEditor
from PLCControler import LOCATION_CONFNODE, LOCATION_MODULE, LOCATION_GROUP, LOCATION_VAR_INPUT, LOCATION_VAR_OUTPUT, LOCATION_VAR_MEMORY
@@ -558,8 +558,9 @@
result = self.CTR.LoadProject(projectOpen, buildpath)
if not result:
self.LibraryPanel.SetControler(self.Controler)
+ self.PouInstanceVariablesPanel.SetController(self.Controler)
self.RefreshConfigRecentProjects(os.path.abspath(projectOpen))
- self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+ self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
self.RefreshAll()
else:
self.ResetView()
@@ -569,7 +570,8 @@
self.Controler = ctr
if ctr is not None:
self.LibraryPanel.SetControler(self.Controler)
- self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+ self.PouInstanceVariablesPanel.SetController(self.Controler)
+ self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
self.RefreshAll()
if self.EnableDebug:
self.DebugVariablePanel.SetDataProducer(self.CTR)
@@ -773,18 +775,22 @@
self.FileMenu.Enable(wx.ID_CLOSE_ALL, False)
def RefreshRecentProjectsMenu(self):
- for i in xrange(self.RecentProjectsMenu.GetMenuItemCount()):
- item = self.RecentProjectsMenu.FindItemByPosition(0)
- self.RecentProjectsMenu.Delete(item.GetId())
-
recent_projects = cPickle.loads(str(self.Config.Read("RecentProjects", cPickle.dumps([]))))
self.FileMenu.Enable(ID_FILEMENURECENTPROJECTS, len(recent_projects) > 0)
for idx, projectpath in enumerate(recent_projects):
- id = wx.NewId()
- AppendMenu(self.RecentProjectsMenu, help='', id=id,
- kind=wx.ITEM_NORMAL, text="%d: %s" % (idx + 1, projectpath))
+ text = u'%d: %s' % (idx + 1, projectpath)
+
+ if idx < self.RecentProjectsMenu.GetMenuItemCount():
+ item = self.RecentProjectsMenu.FindItemByPosition(idx)
+ id = item.GetId()
+ item.SetItemLabel(text)
+ self.Disconnect(id, id, wx.EVT_BUTTON._getEvtType())
+ else:
+ id = wx.NewId()
+ AppendMenu(self.RecentProjectsMenu, help='', id=id,
+ kind=wx.ITEM_NORMAL, text=text)
self.Bind(wx.EVT_MENU, self.GenerateOpenRecentProjectFunction(projectpath), id=id)
-
+
def GenerateOpenRecentProjectFunction(self, projectpath):
def OpenRecentProject(event):
if self.CTR is not None and not self.CheckSaveBeforeClosing():
@@ -1680,10 +1686,11 @@
self.CTR = ctr
self.Controler = self.CTR
self.LibraryPanel.SetControler(self.Controler)
+ self.PouInstanceVariablesPanel.SetController(self.Controler)
self.RefreshConfigRecentProjects(projectpath)
if self.EnableDebug:
self.DebugVariablePanel.SetDataProducer(self.CTR)
- self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+ self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
self.RefreshAll()
else:
self.ResetView()
@@ -1715,11 +1722,12 @@
result = self.CTR.LoadProject(projectpath)
if not result:
self.LibraryPanel.SetControler(self.Controler)
+ self.PouInstanceVariablesPanel.SetController(self.Controler)
self.RefreshConfigRecentProjects(projectpath)
if self.EnableDebug:
self.DebugVariablePanel.SetDataProducer(self.CTR)
self.LoadProjectOrganization()
- self._Refresh(TYPESTREE, INSTANCESTREE, LIBRARYTREE)
+ self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
self.RefreshAll()
else:
self.ResetView()