BeremizIDE.py
changeset 4120 6b4e1452fa16
parent 4068 4f47609a5f62
equal deleted inserted replaced
4119:766f3e0e7277 4120:6b4e1452fa16
    63     LOCATION_VAR_MEMORY, \
    63     LOCATION_VAR_MEMORY, \
    64     ITEM_PROJECT, \
    64     ITEM_PROJECT, \
    65     ITEM_RESOURCE, \
    65     ITEM_RESOURCE, \
    66     ITEM_CONFNODE
    66     ITEM_CONFNODE
    67 
    67 
    68 from ProjectController import ProjectController, GetAddMenuItems, MATIEC_ERROR_MODEL
    68 from ProjectController import ProjectController, GetAddMenuItems, MATIEC_ERROR_MODEL, ToDoBeforeQuit
    69 
    69 
    70 from IDEFrame import \
    70 from IDEFrame import \
    71     TITLE,\
    71     TITLE,\
    72     EDITORTOOLBAR,\
    72     EDITORTOOLBAR,\
    73     FILEMENU,\
    73     FILEMENU,\
   612                 confnode = self.CTR.GetChildByName(page_infos[1])
   612                 confnode = self.CTR.GetChildByName(page_infos[1])
   613             return notebook.GetPageIndex(confnode._OpenView(*page_infos[2:]))
   613             return notebook.GetPageIndex(confnode._OpenView(*page_infos[2:]))
   614         else:
   614         else:
   615             return IDEFrame.LoadTab(self, notebook, page_infos)
   615             return IDEFrame.LoadTab(self, notebook, page_infos)
   616 
   616 
   617     # Strange hack required by WAMP connector, using twisted.
       
   618     # Twisted reactor needs to be stopped only before quit,
       
   619     # since it cannot be restarted
       
   620     ToDoBeforeQuit = []
       
   621 
       
   622     def AddToDoBeforeQuit(self, Thing):
       
   623         self.ToDoBeforeQuit.append(Thing)
       
   624 
       
   625     def TryCloseFrame(self):
   617     def TryCloseFrame(self):
   626         if self.CTR is None or self.CheckSaveBeforeClosing(_("Close Application")):
   618         if self.CTR is None or self.CheckSaveBeforeClosing(_("Close Application")):
   627             if self.CTR is not None:
   619             if self.CTR is not None:
   628                 self.CTR.KillDebugThread()
   620                 self.CTR.KillDebugThread()
   629                 self.CTR._Disconnect()
   621                 self.CTR._Disconnect()
   630             self.KillLocalRuntime()
   622             self.KillLocalRuntime()
   631 
   623 
   632             self.SaveLastState()
   624             self.SaveLastState()
   633 
   625 
   634             for Thing in self.ToDoBeforeQuit:
   626             for Thing in ToDoBeforeQuit:
   635                 Thing()
   627                 Thing()
   636             self.ToDoBeforeQuit = []
   628             ToDoBeforeQuit = []
   637 
   629 
   638             return True
   630             return True
   639         return False
   631         return False
   640 
   632 
   641     def OnCloseFrame(self, event):
   633     def OnCloseFrame(self, event):