From c5186d9c75fc186ab0d7cff0f3e66f4204b59960 Mon Sep 17 00:00:00 2001 From: HomeWorld Date: Tue, 23 Nov 2010 08:59:19 +0200 Subject: [PATCH] Revert "Revert "rm -rf pyfa on ctrl+w"" This reverts commit e0ab5554f2c2b3cfc16ca21927f7149bc9f05b7d. --- gui/chromeTabs.py | 5 +++++ gui/mainFrame.py | 7 ++++++- gui/multiSwitch.py | 6 +++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gui/chromeTabs.py b/gui/chromeTabs.py index 14e37ff7b..aa3859e27 100644 --- a/gui/chromeTabs.py +++ b/gui/chromeTabs.py @@ -118,6 +118,7 @@ class PFNotebook(wx.Panel): else: oldPage.Destroy() page.Reparent(self.pageContainer) + self.tabsContainer.tabs[i].closeButton =True if self.activePage == page: self.ShowActive() @@ -141,6 +142,9 @@ class PFNotebook(wx.Panel): def GetPageIndex(self, page): return self.pages.index(page) if page in self.pages else None + def CanClosePage(self, pageIndex): + return self.tabsContainer.tabs[pageIndex].closeButton + def GetSelection(self): return self.GetPageIndex(self.activePage) @@ -187,6 +191,7 @@ class PFNotebook(wx.Panel): self.ShowActive() else: self.activePage = None + self.AddPage(wx.Panel(self, size = (0,0)), "Empty Tab", showClose = False) def SwitchPages(self, src, dest, internal = False): diff --git a/gui/mainFrame.py b/gui/mainFrame.py index 956e2a52b..72f0c80dd 100644 --- a/gui/mainFrame.py +++ b/gui/mainFrame.py @@ -147,7 +147,12 @@ class MainFrame(wx.Frame): page = ms.GetSelection() if page is not None: - ms.DeletePage(page) + if ms.CanClosePage(page): + ms.DeletePage(page) + if ms.GetPageCount() == 0: + ms.AddPage(wx.Panel(self, size = (0,0)), "Empty Tab", showClose = False ) + else: + self.Close() def ExitApp(self, evt): try: diff --git a/gui/multiSwitch.py b/gui/multiSwitch.py index bd51ee594..3429a4d1a 100644 --- a/gui/multiSwitch.py +++ b/gui/multiSwitch.py @@ -23,7 +23,7 @@ import gui.chromeTabs class MultiSwitch(gui.chromeTabs.PFNotebook): def __init__(self, parent): gui.chromeTabs.PFNotebook.__init__(self, parent) - self.AddPage() + self.AddPage(showClose = False) self.handlers = handlers = [] for type in TabSpawner.tabTypes: handlers.append(type(self)) @@ -37,12 +37,12 @@ class MultiSwitch(gui.chromeTabs.PFNotebook): if h: h(type, info) - def AddPage(self, tabWnd=None, tabTitle="Empty Tab", tabImage=None): + def AddPage(self, tabWnd=None, tabTitle="Empty Tab", tabImage=None, showClose = True): if tabWnd is None: tabWnd = wx.Panel(self, size=(0, 0)) tabWnd.handleDrag = lambda type, info: self.handleDrag(type, info, False) - gui.chromeTabs.PFNotebook.AddPage(self, tabWnd, tabTitle, tabImage, True) + gui.chromeTabs.PFNotebook.AddPage(self, tabWnd, tabTitle, tabImage, showClose) class TabSpawner(object):