From: Huang Peng Date: Tue, 17 Feb 2009 04:55:12 +0000 (+0800) Subject: Show 'Select an input method' in Engine select ComboBox. X-Git-Tag: 1.1.0.20090217~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=65188367b7ae20b0c7a79d8c3dc9649e76ea433c;p=platform%2Fupstream%2Fibus.git Show 'Select an input method' in Engine select ComboBox. --- diff --git a/setup/enginecombobox.py b/setup/enginecombobox.py index 7c65c5e..6db543a 100644 --- a/setup/enginecombobox.py +++ b/setup/enginecombobox.py @@ -22,15 +22,19 @@ import gtk import gobject import ibus - +import gettext from icon import load_icon +_ = lambda a : gettext.dgettext("ibus", a) + class EngineComboBox(gtk.ComboBox): def __init__(self, engines): super(EngineComboBox, self).__init__() self.__model = gtk.TreeStore(gobject.TYPE_PYOBJECT) + iter1 = self.__model.append(None) + self.__model.set(iter1, 0, 0) lang = {} for e in engines: l = ibus.get_language_name(e.language) @@ -57,11 +61,16 @@ class EngineComboBox(gtk.ComboBox): self.pack_start(renderer, True) self.set_cell_data_func(renderer, self.__name_cell_data_cb) + self.set_active(0) + def __icon_cell_data_cb(self, celllayout, renderer, model, iter): engine = self.__model.get_value(iter, 0) icon_size = gtk.icon_size_lookup(gtk.ICON_SIZE_LARGE_TOOLBAR)[0] - if isinstance (engine, str) or isinstance (engine, unicode): + if isinstance(engine, str) or isinstance (engine, unicode): + renderer.set_property("visible", False) + renderer.set_property("sensitive", False) + elif isinstance(engine, int): renderer.set_property("visible", False) renderer.set_property("sensitive", False) else: @@ -80,13 +89,17 @@ class EngineComboBox(gtk.ComboBox): if isinstance (engine, str) or isinstance (engine, unicode): renderer.set_property("sensitive", False) renderer.set_property("text", engine) + elif isinstance(engine, int): + renderer.set_property("sensitive", True) + renderer.set_property("text", _("Select an input method")) else: renderer.set_property("sensitive", True) renderer.set_property("text", engine.longname) def get_active_engine(self): + i = self.get_active() iter = self.get_active_iter() - if iter == None: + if i == 0 or i == -1: return None return self.get_model()[iter][0]