IDEFrame.py
changeset 970 0dd89c8eeef5
parent 930 4be515ac635e
child 980 c7ba67d01d65
equal deleted inserted replaced
969:1950fe687dde 970:0dd89c8eeef5
   716     def OnResize(self, event):
   716     def OnResize(self, event):
   717         if self.Starting:
   717         if self.Starting:
   718             self.RestoreLastLayout()
   718             self.RestoreLastLayout()
   719         event.Skip()
   719         event.Skip()
   720     
   720     
       
   721     def EnableSaveProjectState(self):
       
   722         return False
       
   723     
   721     def GetProjectConfiguration(self):
   724     def GetProjectConfiguration(self):
   722         projects = {}
   725         projects = {}
   723         try:
   726         try:
   724             if self.Config.HasEntry("projects"):
   727             if self.Config.HasEntry("projects"):
   725                 projects = cPickle.loads(str(self.Config.Read("projects")))
   728                 projects = cPickle.loads(str(self.Config.Read("projects")))
   885                                              (self.RightNoteBook, "rightnotebook")]:
   888                                              (self.RightNoteBook, "rightnotebook")]:
   886                     self.LoadTabLayout(notebook, notebooks.get(entry_name))
   889                     self.LoadTabLayout(notebook, notebooks.get(entry_name))
   887         except:
   890         except:
   888             self.ResetPerspective()
   891             self.ResetPerspective()
   889         
   892         
   890         self.LoadProjectLayout()
   893         if self.EnableSaveProjectState():
       
   894             self.LoadProjectLayout()
   891         
   895         
   892         self._Refresh(EDITORTOOLBAR)
   896         self._Refresh(EDITORTOOLBAR)
   893         
   897         
   894         if wx.Platform == '__WXMSW__':
   898         if wx.Platform == '__WXMSW__':
   895             wx.CallAfter(self.ResetStarting)
   899             wx.CallAfter(self.ResetStarting)
   912         
   916         
   913         pane = self.AUIManager.GetPane(self.TabsOpened)
   917         pane = self.AUIManager.GetPane(self.TabsOpened)
   914         if pane.IsMaximized():
   918         if pane.IsMaximized():
   915             self.AUIManager.RestorePane(pane)
   919             self.AUIManager.RestorePane(pane)
   916         self.Config.Write("perspective", self.AUIManager.SavePerspective())
   920         self.Config.Write("perspective", self.AUIManager.SavePerspective())
   917     
   921         
   918         self.SaveProjectLayout()
   922         if self.EnableSaveProjectState():
   919         
   923             self.SaveProjectLayout()
   920         for i in xrange(self.TabsOpened.GetPageCount()):
   924         
   921             self.SavePageState(self.TabsOpened.GetPage(i))
   925             for i in xrange(self.TabsOpened.GetPageCount()):
       
   926                 self.SavePageState(self.TabsOpened.GetPage(i))
   922         
   927         
   923         self.Config.Flush()
   928         self.Config.Flush()
   924 
   929 
   925     def SaveProjectLayout(self):
   930     def SaveProjectLayout(self):
   926         if self.Controler is not None:
   931         if self.Controler is not None:
   991         selected = self.TabsOpened.GetSelection()
   996         selected = self.TabsOpened.GetSelection()
   992         if selected > -1:
   997         if selected > -1:
   993             window = self.TabsOpened.GetPage(selected)
   998             window = self.TabsOpened.GetPage(selected)
   994             
   999             
   995             if window.CheckSaveBeforeClosing():
  1000             if window.CheckSaveBeforeClosing():
   996                 self.SavePageState(window)
  1001                 if self.EnableSaveProjectState():
       
  1002                     self.SavePageState(window)
   997                 
  1003                 
   998                 # Refresh all window elements that have changed
  1004                 # Refresh all window elements that have changed
   999                 wx.CallAfter(self._Refresh, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU)
  1005                 wx.CallAfter(self._Refresh, TITLE, EDITORTOOLBAR, FILEMENU, EDITMENU, DISPLAYMENU)
  1000                 wx.CallAfter(self.RefreshTabCtrlEvent)
  1006                 wx.CallAfter(self.RefreshTabCtrlEvent)
  1001                 wx.CallAfter(self.CloseFindInPouDialog)
  1007                 wx.CallAfter(self.CloseFindInPouDialog)
  1853                 elif element == ITEM_DATATYPE:
  1859                 elif element == ITEM_DATATYPE:
  1854                     new_window = DataTypeEditor(self.TabsOpened, tagname, self, self.Controler)
  1860                     new_window = DataTypeEditor(self.TabsOpened, tagname, self, self.Controler)
  1855                     new_window.SetIcon(GetBitmap("DATATYPE"))
  1861                     new_window.SetIcon(GetBitmap("DATATYPE"))
  1856                     self.AddPage(new_window, "")
  1862                     self.AddPage(new_window, "")
  1857             if new_window is not None:
  1863             if new_window is not None:
  1858                 project_infos = self.GetProjectConfiguration()
  1864                 if self.EnableSaveProjectState():
  1859                 if project_infos.has_key("editors_state"):
  1865                     project_infos = self.GetProjectConfiguration()
  1860                     if new_window.IsDebugging():
  1866                     if project_infos.has_key("editors_state"):
  1861                         state = project_infos["editors_state"].get(new_window.GetInstancePath())
  1867                         if new_window.IsDebugging():
  1862                     else:
  1868                             state = project_infos["editors_state"].get(new_window.GetInstancePath())
  1863                         state = project_infos["editors_state"].get(tagname)
  1869                         else:
  1864                     if state is not None:
  1870                             state = project_infos["editors_state"].get(tagname)
  1865                         wx.CallAfter(new_window.SetState, state)
  1871                         if state is not None:
       
  1872                             wx.CallAfter(new_window.SetState, state)
  1866                 
  1873                 
  1867                 openedidx = self.IsOpened(tagname)
  1874                 openedidx = self.IsOpened(tagname)
  1868                 old_selected = self.TabsOpened.GetSelection()
  1875                 old_selected = self.TabsOpened.GetSelection()
  1869                 if old_selected != openedidx:
  1876                 if old_selected != openedidx:
  1870                     if old_selected >= 0:
  1877                     if old_selected >= 0:
  2064                     icon = GetBitmap("TRANSITION", bodytype)
  2071                     icon = GetBitmap("TRANSITION", bodytype)
  2065                 elif instance_category == ITEM_ACTION:
  2072                 elif instance_category == ITEM_ACTION:
  2066                     icon = GetBitmap("ACTION", bodytype)
  2073                     icon = GetBitmap("ACTION", bodytype)
  2067         
  2074         
  2068         if new_window is not None:
  2075         if new_window is not None:
  2069             project_infos = self.GetProjectConfiguration()
  2076             if self.EnableSaveProjectState():
  2070             if project_infos.has_key("editors_state"):
  2077                 project_infos = self.GetProjectConfiguration()
  2071                 state = project_infos["editors_state"].get(instance_path)
  2078                 if project_infos.has_key("editors_state"):
  2072                 if state is not None:
  2079                     state = project_infos["editors_state"].get(instance_path)
  2073                     wx.CallAfter(new_window.SetState, state)
  2080                     if state is not None:
       
  2081                         wx.CallAfter(new_window.SetState, state)
  2074             
  2082             
  2075             new_window.SetIcon(icon)
  2083             new_window.SetIcon(icon)
  2076             self.AddPage(new_window, "")
  2084             self.AddPage(new_window, "")
  2077             new_window.RefreshView()
  2085             new_window.RefreshView()
  2078             new_window.SetFocus()
  2086             new_window.SetFocus()