clean up EditableLabel

This commit is contained in:
Chris Jones 2009-09-02 20:43:45 +01:00
parent 9d82f13989
commit 187484271c
3 changed files with 17 additions and 16 deletions

View File

@ -18,22 +18,23 @@
# , Boston, MA 02110-1301 USA # , Boston, MA 02110-1301 USA
# pylint: disable-msg=W0212 # pylint: disable-msg=W0212
''' Editable Label class''' """ Editable Label class"""
import gtk import gtk
class TerminatorEditableLabel( gtk.EventBox ): class EditableLabel(gtk.EventBox):
''' """
An eventbox that partialy emulate a gtk.Label An eventbox that partialy emulate a gtk.Label
On double-click, the label is editable, entering an empty will revert back to automatic text On double-click, the label is editable, entering an empty will revert back to automatic text
''' """
_label = None _label = None
_ebox = None _ebox = None
_autotext = None _autotext = None
_custom = None _custom = None
_entry = None _entry = None
_entry_handler_id = [] _entry_handler_id = []
def __init__(self, text = ""): def __init__(self, text = ""):
''' Class initialiser''' """ Class initialiser"""
gtk.EventBox.__init__(self) gtk.EventBox.__init__(self)
self._label = gtk.Label(text) self._label = gtk.Label(text)
self._custom = False self._custom = False
@ -42,21 +43,21 @@ class TerminatorEditableLabel( gtk.EventBox ):
self.connect ("button-press-event", self._on_click_text) self.connect ("button-press-event", self._on_click_text)
def set_angle(self, angle ): def set_angle(self, angle ):
'''set angle of the label''' """set angle of the label"""
self._label.set_angle( angle ) self._label.set_angle( angle )
def set_text( self, text, force=False): def set_text( self, text, force=False):
'''set the text of the label''' """set the text of the label"""
self._autotext = text self._autotext = text
if not self._custom or force: if not self._custom or force:
self._label.set_text(text) self._label.set_text(text)
def get_text( self ): def get_text( self ):
'''get the text from the label''' """get the text from the label"""
return self._label.get_text() return self._label.get_text()
def _on_click_text(self, widget, event): def _on_click_text(self, widget, event):
'''event handling text edition''' """event handling text edition"""
if event.type == gtk.gdk._2BUTTON_PRESS : if event.type == gtk.gdk._2BUTTON_PRESS :
self.remove (self._label) self.remove (self._label)
self._entry = gtk.Entry () self._entry = gtk.Entry ()
@ -77,7 +78,7 @@ class TerminatorEditableLabel( gtk.EventBox ):
return False return False
def _entry_to_label (self, widget, event): def _entry_to_label (self, widget, event):
'''replace gtk.Entry by the gtk.Label''' """replace gtk.Entry by the gtk.Label"""
if self._entry and self._entry in self.get_children(): if self._entry and self._entry in self.get_children():
#disconnect signals to avoid segfault :s #disconnect signals to avoid segfault :s
for sig in self._entry_handler_id: for sig in self._entry_handler_id:
@ -94,7 +95,7 @@ class TerminatorEditableLabel( gtk.EventBox ):
return False return False
def _on_entry_activated (self, widget): def _on_entry_activated (self, widget):
'''get the text entered in gtk.Entry''' """get the text entered in gtk.Entry"""
entry = self._entry.get_text () entry = self._entry.get_text ()
label = self._label.get_text () label = self._label.get_text ()
if entry == '': if entry == '':
@ -110,7 +111,7 @@ class TerminatorEditableLabel( gtk.EventBox ):
return return
def _on_entry_keypress (self, widget, event): def _on_entry_keypress (self, widget, event):
'''handle keypressed in gtk.Entry''' """handle keypressed in gtk.Entry"""
key = gtk.gdk.keyval_name (event.keyval) key = gtk.gdk.keyval_name (event.keyval)
if key == 'Escape': if key == 'Escape':
self._entry_to_label (None, None) self._entry_to_label (None, None)

View File

@ -29,7 +29,7 @@ from util import dbg, err, debug
from keybindings import TerminatorKeybindings from keybindings import TerminatorKeybindings
from terminatorterm import TerminatorTerm from terminatorterm import TerminatorTerm
from prefs_profile import ProfileEditor from prefs_profile import ProfileEditor
from terminatoreditablelabel import TerminatorEditableLabel from editablelabel import EditableLabel
import translation import translation
# FIXME: Move to notebook.py # FIXME: Move to notebook.py
@ -45,7 +45,7 @@ class TerminatorNotebookTabLabel(gtk.HBox):
self._notebook = notebook self._notebook = notebook
self._terminator = terminator self._terminator = terminator
self._label = TerminatorEditableLabel(title) self._label = EditableLabel(title)
self.update_angle() self.update_angle()
self.pack_start(self._label, True, True) self.pack_start(self._label, True, True)

View File

@ -30,7 +30,7 @@ from terminatorlib.util import dbg, err, debug
#import encoding list #import encoding list
from terminatorlib.encoding import TerminatorEncoding from terminatorlib.encoding import TerminatorEncoding
from terminatorlib.terminatoreditablelabel import TerminatorEditableLabel from editablelabel import EditableLabel
# import translation support # import translation support
from terminatorlib import translation from terminatorlib import translation
@ -62,7 +62,7 @@ class TerminatorTermTitle (gtk.EventBox):
def __init__ (self, terminal, terminator, configwanted = False): def __init__ (self, terminal, terminator, configwanted = False):
gtk.EventBox.__init__ (self) gtk.EventBox.__init__ (self)
self._title = TerminatorEditableLabel() self._title = EditableLabel()
self._group = gtk.Label () self._group = gtk.Label ()
self._separator = gtk.VSeparator () self._separator = gtk.VSeparator ()
self._ebox = gtk.EventBox () self._ebox = gtk.EventBox ()