From 676ddfdb0c2d4cc9ced00c0afa6b2f94180f0498 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Mon, 4 May 2009 01:51:01 +0100 Subject: [PATCH] Refactor window title code into a separate class --- terminatorlib/terminator.py | 36 +++++++++++++++++++++++++++++++-- terminatorlib/terminatorterm.py | 4 ++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/terminatorlib/terminator.py b/terminatorlib/terminator.py index 85b83f5b..ba70f637 100755 --- a/terminatorlib/terminator.py +++ b/terminatorlib/terminator.py @@ -38,6 +38,37 @@ except: "hide_window is not available.")) pass +class TerminatorWindowTitle(): + _window = None + _appname = APP_NAME.capitalize() + text = None + _forced = False + + def __init__ (self, window): + self._window = window + + def set_title (self, newtext): + if not self._forced: + self.text = newtext + self.update () + + def force_title (self, newtext): + if newtext: + self.set_title (newtext) + self._forced = True + else: + self._forced = False + + def update (self): + title = None + + if self._forced: + title = self.text + else: + title = "%s - %s" % (self.text, self._appname) + + self._window.set_title (title) + class TerminatorNotebookTabLabel(gtk.HBox): _terminator = None _notebook = None @@ -274,7 +305,8 @@ class Terminator: self.set_closebutton_style () self.window = gtk.Window () - self.window.set_title (APP_NAME.capitalize()) + self.windowtitle = TerminatorWindowTitle (self.window) + self.windowtitle.update () if self._geometry is not None: dbg("Geometry=%s" % self._geometry) @@ -538,7 +570,7 @@ class Terminator: """ Modifies Terminator window title """ - self.window.set_title(title) + self.windowtitle.set_title(title) def add(self, widget, terminal, pos = "bottom"): """ diff --git a/terminatorlib/terminatorterm.py b/terminatorlib/terminatorterm.py index 772a4522..38d6d405 100755 --- a/terminatorlib/terminatorterm.py +++ b/terminatorlib/terminatorterm.py @@ -1434,7 +1434,7 @@ text/plain vte.set_property ("tooltip-text", title) #set the title anyhow, titlebars setting only show/hide the label self._titlebox.set_terminal_title (title) - self.terminator.set_window_title("%s - %s" % (re.sub(' - %s' % APP_NAME.capitalize(), '', title), APP_NAME.capitalize())) + self.terminator.set_window_title (title) notebookpage = self.terminator.get_first_notebook_page(vte) while notebookpage != None: if notebookpage[0].get_tab_label(notebookpage[1]): @@ -1453,7 +1453,7 @@ text/plain def on_vte_focus(self, vte): title = self.get_window_title(vte) - self.terminator.set_window_title("%s - %s" % (title, APP_NAME.capitalize())) + self.terminator.set_window_title(title) notebookpage = self.terminator.get_first_notebook_page(vte) while notebookpage != None: if notebookpage[0].get_tab_label(notebookpage[1]):