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() |