=== modified file 'terminatorlib/terminatorterm.py' --- terminatorlib/terminatorterm.py 2008-08-12 23:17:40 +0000 +++ terminatorlib/terminatorterm.py 2008-08-24 05:01:00 +0000 @@ -91,16 +91,19 @@ #self._vte.set_double_buffered(True) self._vte.set_size (80, 24) self.reconfigure_vte () + self._vte._expose_data = None self._vte.show () - + + self.session_title = None + self._termbox = gtk.HBox () self._termbox.show() self._title = gtk.Label() self._title.show() self._titlebox = gtk.EventBox() self._titlebox.add(self._title) - + self._search_string = None self._searchbox = gtk.HBox() self._searchinput = gtk.Entry() @@ -487,7 +490,7 @@ logutmp = update_records, directory=self.cwd) dbg ('SEGBUG: Forked command') - + self.on_vte_title_change(self._vte) # Force an initial update of our titles if self._pid == -1: @@ -661,6 +664,28 @@ def do_title_toggle (self): self.toggle_widget_visibility (self._titlebox) + def show_rename_session (self): + dialog = gtk.Dialog() + dialog.set_title("Rename the current session") + + entry = gtk.Entry () + entry.set_max_length (100) + entry.set_width_chars (50) + entry.set_activates_default (True) + entry.show () + entry.set_text(self.get_window_title ()) + entry.connect("activate", lambda entry: self.do_rename_session (entry)) + + dialog.vbox.pack_start (entry) + + dialog.show() + + def do_rename_session(self, widget): + name = widget.get_text() + self.session_title = name + self.on_vte_title_change(self._vte) + widget.parent.parent.destroy() + def toggle_widget_visibility (self, widget): if not isinstance (widget, gtk.Widget): raise TypeError @@ -900,6 +925,10 @@ item.connect ("toggled", lambda menu_item: self.do_title_toggle ()) menu.append (item) + item = gtk.MenuItem(_("_Rename Session")) + item.connect("activate", lambda menu_item: self.show_rename_session ()) + menu.append(item) + self._do_encoding_items (menu) item = gtk.MenuItem () @@ -1030,12 +1059,15 @@ submenu.append (radioitem) def get_window_title(self, vte = None): - if vte is None: - vte = self._vte - title = vte.get_window_title () - if title is None: - title = str(self.command) - return title + #need to check for string value of None because of the way Terminator starts up + #otherwise, the session gets named "none" + if self.session_title is None or self.session_title == "None": + if vte is None: + vte = self._vte + self.session_title = vte.get_window_title () + if self.session_title is None or self.session_title == "None": + self.session_title = str(self.command) + return self.session_title def on_vte_title_change(self, vte): title = self.get_window_title(vte)