From 70ab3b0f7139b827857fe3a6a7f6728d00a06d89 Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Thu, 22 Apr 2010 23:14:03 +0100 Subject: [PATCH] Store terminal titles in layouts --- terminatorlib/editablelabel.py | 7 +++++++ terminatorlib/terminal.py | 5 +++++ terminatorlib/titlebar.py | 12 ++++++++++++ 3 files changed, 24 insertions(+) diff --git a/terminatorlib/editablelabel.py b/terminatorlib/editablelabel.py index a970a3fd..f99578ed 100644 --- a/terminatorlib/editablelabel.py +++ b/terminatorlib/editablelabel.py @@ -130,4 +130,11 @@ class EditableLabel(gtk.EventBox): """Set the label foreground""" self._label.modify_fg(state, color) + def is_custom(self): + """Return whether or not we have a custom string set""" + return(self._custom) + + def set_custom(self): + """Set the customness of the string to True""" + self._custom = True gobject.type_register(EditableLabel) diff --git a/terminatorlib/terminal.py b/terminatorlib/terminal.py index a6d1f3cb..b1c43c12 100755 --- a/terminatorlib/terminal.py +++ b/terminatorlib/terminal.py @@ -1282,6 +1282,9 @@ for %s (%s)' % (name, urlplugin.__class__.__name__)) if layout != "default": # There's no point explicitly noting default profiles layout['profile'] = profile + title = self.titlebar.get_custom_string() + if title: + layout['title'] = title name = 'terminal%d' % count count = count + 1 global_layout[name] = layout @@ -1298,6 +1301,8 @@ for %s (%s)' % (name, urlplugin.__class__.__name__)) # This doesn't need/use self.titlebar, but it's safer than sending # None self.really_create_group(self.titlebar, layout['group']) + if layout.has_key('title') and layout['title'] != '': + self.titlebar.set_custom_string(layout['title']) # There now begins a great list of keyboard event handlers def key_zoom_in(self): diff --git a/terminatorlib/titlebar.py b/terminatorlib/titlebar.py index 4c9ae65e..78cc267d 100755 --- a/terminatorlib/titlebar.py +++ b/terminatorlib/titlebar.py @@ -244,4 +244,16 @@ class Titlebar(gtk.EventBox): self.bellicon.hide() return(False) + def get_custom_string(self): + """If we have a custom string set, return it, otherwise None""" + if self.label.is_custom(): + return(self.label.get_text()) + else: + return(None) + + def set_custom_string(self, string): + """Set a custom string""" + self.label.set_text(string) + self.label.set_custom() + gobject.type_register(Titlebar)