diff -r 3f3f1b8fcb07 -r 78b5fa92dd1c canfestival/canfestival.py --- a/canfestival/canfestival.py Thu Jun 14 18:50:28 2012 +0200 +++ b/canfestival/canfestival.py Fri Jun 15 18:08:26 2012 +0200 @@ -112,6 +112,7 @@ ConfigTreeNode._OpenView(self) if self._View is not None: self._View.SetBusId(self.GetCurrentLocation()) + return self._View ConfNodeMethods = [ {"bitmap" : "NetworkEdit", @@ -120,10 +121,6 @@ "method" : "_OpenView"}, ] - def OnCTNClose(self): - if self._View: - self._View.Close() - def CTNTestModified(self): return self.ChangesToSave or self.OneFileHasChanged() @@ -201,6 +198,8 @@ def GetBufferState(self): return self.GetCurrentBufferState() + ConfNodeMethods = [] + class _NodeListCTN(NodeList): XSD = """ @@ -238,37 +237,37 @@ return result - def _OpenView(self): - ConfigTreeNode._OpenView(self) - if self._View is not None: - self._View.SetBusId(self.GetCurrentLocation()) - - _GeneratedView = None - def _ShowMasterGenerated(self): - if self._GeneratedView is None: - buildpath = self._getBuildPath() - # Eventually create build dir - if not os.path.exists(buildpath): - self.GetCTRoot().logger.write_error(_("Error: No PLC built\n")) - return + _GeneratedMasterView = None + def _ShowGeneratedMaster(self): + self._OpenView("Generated master") + + def _OpenView(self, name=None): + if name == "Generated master": + if self._GeneratedMasterView is None: + buildpath = self._getBuildPath() + # Eventually create build dir + if not os.path.exists(buildpath): + self.GetCTRoot().logger.write_error(_("Error: No PLC built\n")) + return + + masterpath = os.path.join(buildpath, "MasterGenerated.od") + if not os.path.exists(masterpath): + self.GetCTRoot().logger.write_error(_("Error: No Master generated\n")) + return + + app_frame = self.GetCTRoot().AppFrame + + manager = MiniNodeManager(self, masterpath, self.CTNFullName() + ".generated_master") + self._GeneratedMasterView = SlaveEditor(app_frame.TabsOpened, manager, app_frame, False) + + app_frame.EditProjectElement(self._GeneratedMasterView, name) - masterpath = os.path.join(buildpath, "MasterGenerated.od") - if not os.path.exists(masterpath): - self.GetCTRoot().logger.write_error(_("Error: No Master generated\n")) - return - - app_frame = self.GetCTRoot().AppFrame - - manager = MiniNodeManager(self, masterpath, self.CTNFullName() + ".generated_master") - self._GeneratedView = SlaveEditor(app_frame.TabsOpened, manager, app_frame, False) - - app_frame.EditProjectElement(self._GeneratedView, "MasterGenerated") - - def _CloseGenerateView(self): - if self._GeneratedView is not None: - app_frame = self.GetCTRoot().AppFrame - if app_frame is not None: - app_frame.DeletePage(self._GeneratedView) + return self._GeneratedMasterView + else: + ConfigTreeNode._OpenView(self) + if self._View is not None: + self._View.SetBusId(self.GetCurrentLocation()) + return self._View ConfNodeMethods = [ {"bitmap" : "NetworkEdit", @@ -278,17 +277,17 @@ {"bitmap" : "ShowMaster", "name" : _("Show Master"), "tooltip" : _("Show Master generated by config_utils"), - "method" : "_ShowMasterGenerated"} + "method" : "_ShowGeneratedMaster"} ] def OnCloseEditor(self, view): ConfigTreeNode.OnCloseEditor(self, view) - if self._GeneratedView == view: - self._GeneratedView = None - + if self._GeneratedMasterView == view: + self._GeneratedMasterView = None + def OnCTNClose(self): ConfigTreeNode.OnCTNClose(self) - self._CloseGenerateView() + self._CloseView(self._GeneratedMasterView) return True def CTNTestModified(self): @@ -311,7 +310,7 @@ }, ...] @return: [(C_file_name, CFLAGS),...] , LDFLAGS_TO_APPEND """ - self._CloseGenerateView() + self._CloseView(self._GeneratedMasterView) current_location = self.GetCurrentLocation() # define a unique name for the generated C file prefix = "_".join(map(str, current_location))