- changed status to closed
Beremiz constructor is strange!
Issue #13
closed
There is very strange code in Beremiz class constructor:
if projectOpen is not None:
projectOpen = DecodeFileSystemPath(projectOpen, False)
if projectOpen is not None and os.path.isdir(projectOpen):
self.CTR = ProjectController(self, self.Log)
self.Controler = self.CTR
result = self.CTR.LoadProject(projectOpen, buildpath)
if not result:
self.LibraryPanel.SetController(self.Controler)
self.ProjectTree.Enable(True)
self.PouInstanceVariablesPanel.SetController(self.Controler)
self.RefreshConfigRecentProjects(os.path.abspath(projectOpen))
self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
else:
self.ResetView()
self.ShowErrorMessage(result)
else:
self.CTR = ctr
self.Controler = ctr
if ctr is not None:
self.LibraryPanel.SetController(self.Controler)
self.ProjectTree.Enable(True)
self.PouInstanceVariablesPanel.SetController(self.Controler)
self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
In this code ctr argument is used only if projectOpen is not None, such things lead extra code in Beremiz based IDEs(see LPCManager), such as
CTR = LPCProjectController(None, Log, buildpath)
if projectOpen is not None and os.path.isdir(projectOpen):
result = CTR.LoadProject(projectOpen)
if result:
Log.write("Error: Invalid project directory", result)
else:
Log.write("Error: No such file or directory")
#...
frame = LPCBeremiz(None, ctr=CTR, debug=True)
I think that it's better to change Beremiz constructor in some way like:
if ctr is not None:
self.CTR = ctr
else:
self.CTR = ProjectController(self, self.Log)
self.Controler = self.CTR
if projectOpen is not None and os.path.isdir(projectOpen):
result = self.CTR.LoadProject(projectOpen, buildpath)
if not result:
self.LibraryPanel.SetController(self.Controler)
self.ProjectTree.Enable(True)
self.PouInstanceVariablesPanel.SetController(self.Controler)
self.RefreshConfigRecentProjects(os.path.abspath(projectOpen))
self._Refresh(PROJECTTREE, POUINSTANCEVARIABLESPANEL, LIBRARYTREE)
else:
self.ResetView()
self.ShowErrorMessage(result)
else:
#show error message here
In such case people will have to write less code in their IDEs, but some old code like LPCManager will be broken.
Actually LPCManager is already broken as debuger data formats have changed!
Comments (1)
-
- Log in to comment
merge Beremiz launcher support
Closes
#13→ <<cset 9a91faac4d95>>