summaryrefslogtreecommitdiffstats
path: root/setup
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2009-02-17 12:55:12 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2009-02-17 12:55:12 +0800
commit65188367b7ae20b0c7a79d8c3dc9649e76ea433c (patch)
tree8c69629f4729cc65d3e539e9676c90fc05741976 /setup
parent2a608292745a8caedbb1b19e019346e27c535725 (diff)
downloadibus-65188367b7ae20b0c7a79d8c3dc9649e76ea433c.tar.gz
ibus-65188367b7ae20b0c7a79d8c3dc9649e76ea433c.tar.xz
ibus-65188367b7ae20b0c7a79d8c3dc9649e76ea433c.zip
Show 'Select an input method' in Engine select ComboBox.
Diffstat (limited to 'setup')
-rw-r--r--setup/enginecombobox.py19
1 files changed, 16 insertions, 3 deletions
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]