From: Huang Peng Date: Tue, 15 Jul 2008 08:35:28 +0000 (+0800) Subject: Extend tab to spaces. X-Git-Tag: 0.1.0.20080810~205 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b92c71a7d004766256333870525a00faea87b722;p=platform%2Fupstream%2Fibus.git Extend tab to spaces. --- diff --git a/setup/main.py b/setup/main.py index d29e820..cfcefae 100644 --- a/setup/main.py +++ b/setup/main.py @@ -1,4 +1,4 @@ -# vim:set noet ts=4: +# vim:set et ts=4: # # ibus - The Input Bus # @@ -27,141 +27,141 @@ from gtk import gdk, glade import dbus.mainloop.glib ( - NAME_COLUMN, - ENABLE_COLUMN, - VISIBLE_COLUMN, - ICON_COLUMN, - DATA_COLUMN, + NAME_COLUMN, + ENABLE_COLUMN, + VISIBLE_COLUMN, + ICON_COLUMN, + DATA_COLUMN, ) = range (5) class Setup: - def __init__ (self): - self._conn = ibus.Connection () - self._ibus = self._conn.get_ibus () - glade_file = path.join (path.dirname (__file__), "./setup.glade") - self._xml = glade.XML (glade_file) - self._dialog = self._xml.get_widget ("dialog_setup") - self._tree = self._xml.get_widget ("treeview_engines") - model = self.__create_model () - self._tree.set_model (model) - - # add icon search path - icon_theme = gtk.icon_theme_get_default () - dir = path.dirname (__file__) - icondir = path.join (dir, "..", "icons") - icon_theme.prepend_search_path (icondir) - - # column for holiday names - column = gtk.TreeViewColumn () - column.set_title ("Name") - - renderer = gtk.CellRendererPixbuf() - renderer.set_property("xalign", 0.5) - - column.pack_start (renderer) - column.set_attributes (renderer, icon_name = ICON_COLUMN, visible = VISIBLE_COLUMN) - - renderer = gtk.CellRendererText() - renderer.set_property("xalign", 0.0) - - # column.set_clickable(True) - column.pack_start (renderer) - column.set_attributes (renderer, text = NAME_COLUMN) - - self._tree.append_column(column) - - # column for holiday names - renderer = gtk.CellRendererToggle() - renderer.set_data ('column', ENABLE_COLUMN) - renderer.set_property("xalign", 0.5) - renderer.connect("toggled", self.__item_toggled_cb, model) - - #col_offset = gtk.TreeViewColumn("Holiday", renderer, text=HOLIDAY_NAME_COLUMN) - column = gtk.TreeViewColumn("Started", renderer, active = ENABLE_COLUMN, visible = VISIBLE_COLUMN) - column.set_clickable (True) - column.set_resizable (False) - column.set_fixed_width (50) - self._tree.append_column(column) - - - def _init_ui (self): - model = self.__create_model () - - def __item_toggled_cb (self, cell, path_str, model): - - # get toggled iter - iter = model.get_iter_from_string(path_str) - data = model.get_value (iter, DATA_COLUMN) - - # do something with the value - if data[6] == False: - try: - self._ibus.RegisterStartEngine (data[1], data[0]) - except Exception, e: - dlg = gtk.MessageDialog (type = gtk.MESSAGE_ERROR, - buttons = gtk.BUTTONS_CLOSE, - message_format = str(e)) - dlg.run () - return - else: - try: - self._ibus.RegisterStopEngine (data[1], data[0]) - except Exception, e: - dlg = gtk.MessageDialog (type = gtk.MESSAGE_ERROR, - buttons = gtk.BUTTONS_CLOSE, - message_format = str(e)) - dlg.run () - return - data[6] = not data[6] - - # set new value - model.set(iter, ENABLE_COLUMN, data[6]) - - - def __create_model (self): - # create tree store - model = gtk.TreeStore ( - gobject.TYPE_STRING, - gobject.TYPE_BOOLEAN, - gobject.TYPE_BOOLEAN, - gobject.TYPE_STRING, - gobject.TYPE_PYOBJECT) - - langs = {} - - for name, lang, icon, author, credits, _exec, started in self._ibus.RegisterListEngines (): - _lang = ibus.LANGUAGES.get (lang, "other") - if _lang not in langs: - langs[_lang] = [] - langs[_lang].append ([name, lang, icon, author, credits, _exec, started]) - - keys = langs.keys () - keys.sort () - for key in keys: - iter = model.append (None) - model.set (iter, - NAME_COLUMN, key, - ENABLE_COLUMN, False, - VISIBLE_COLUMN, False, - ICON_COLUMN, None, - DATA_COLUMN, None) - langs[key].sort () - for name, lang, icon, author, credits, _exec, started in langs[key]: - child_iter = model.append (iter) - model.set (child_iter, - NAME_COLUMN, name, - ENABLE_COLUMN, started, - VISIBLE_COLUMN, True, - ICON_COLUMN, icon, - DATA_COLUMN, - [name, lang, icon, author, credits, _exec, started]) - - return model - - - def run (self): - return self._dialog.run () + def __init__ (self): + self._conn = ibus.Connection () + self._ibus = self._conn.get_ibus () + glade_file = path.join (path.dirname (__file__), "./setup.glade") + self._xml = glade.XML (glade_file) + self._dialog = self._xml.get_widget ("dialog_setup") + self._tree = self._xml.get_widget ("treeview_engines") + model = self.__create_model () + self._tree.set_model (model) + + # add icon search path + icon_theme = gtk.icon_theme_get_default () + dir = path.dirname (__file__) + icondir = path.join (dir, "..", "icons") + icon_theme.prepend_search_path (icondir) + + # column for holiday names + column = gtk.TreeViewColumn () + column.set_title ("Name") + + renderer = gtk.CellRendererPixbuf() + renderer.set_property("xalign", 0.5) + + column.pack_start (renderer) + column.set_attributes (renderer, icon_name = ICON_COLUMN, visible = VISIBLE_COLUMN) + + renderer = gtk.CellRendererText() + renderer.set_property("xalign", 0.0) + + # column.set_clickable(True) + column.pack_start (renderer) + column.set_attributes (renderer, text = NAME_COLUMN) + + self._tree.append_column(column) + + # column for holiday names + renderer = gtk.CellRendererToggle() + renderer.set_data ('column', ENABLE_COLUMN) + renderer.set_property("xalign", 0.5) + renderer.connect("toggled", self.__item_toggled_cb, model) + + #col_offset = gtk.TreeViewColumn("Holiday", renderer, text=HOLIDAY_NAME_COLUMN) + column = gtk.TreeViewColumn("Started", renderer, active = ENABLE_COLUMN, visible = VISIBLE_COLUMN) + column.set_clickable (True) + column.set_resizable (False) + column.set_fixed_width (50) + self._tree.append_column(column) + + + def _init_ui (self): + model = self.__create_model () + + def __item_toggled_cb (self, cell, path_str, model): + + # get toggled iter + iter = model.get_iter_from_string(path_str) + data = model.get_value (iter, DATA_COLUMN) + + # do something with the value + if data[6] == False: + try: + self._ibus.RegisterStartEngine (data[1], data[0]) + except Exception, e: + dlg = gtk.MessageDialog (type = gtk.MESSAGE_ERROR, + buttons = gtk.BUTTONS_CLOSE, + message_format = str(e)) + dlg.run () + return + else: + try: + self._ibus.RegisterStopEngine (data[1], data[0]) + except Exception, e: + dlg = gtk.MessageDialog (type = gtk.MESSAGE_ERROR, + buttons = gtk.BUTTONS_CLOSE, + message_format = str(e)) + dlg.run () + return + data[6] = not data[6] + + # set new value + model.set(iter, ENABLE_COLUMN, data[6]) + + + def __create_model (self): + # create tree store + model = gtk.TreeStore ( + gobject.TYPE_STRING, + gobject.TYPE_BOOLEAN, + gobject.TYPE_BOOLEAN, + gobject.TYPE_STRING, + gobject.TYPE_PYOBJECT) + + langs = {} + + for name, lang, icon, author, credits, _exec, started in self._ibus.RegisterListEngines (): + _lang = ibus.LANGUAGES.get (lang, "other") + if _lang not in langs: + langs[_lang] = [] + langs[_lang].append ([name, lang, icon, author, credits, _exec, started]) + + keys = langs.keys () + keys.sort () + for key in keys: + iter = model.append (None) + model.set (iter, + NAME_COLUMN, key, + ENABLE_COLUMN, False, + VISIBLE_COLUMN, False, + ICON_COLUMN, None, + DATA_COLUMN, None) + langs[key].sort () + for name, lang, icon, author, credits, _exec, started in langs[key]: + child_iter = model.append (iter) + model.set (child_iter, + NAME_COLUMN, name, + ENABLE_COLUMN, started, + VISIBLE_COLUMN, True, + ICON_COLUMN, icon, + DATA_COLUMN, + [name, lang, icon, author, credits, _exec, started]) + + return model + + + def run (self): + return self._dialog.run () if __name__ == "__main__": - dbus.mainloop.glib.DBusGMainLoop (set_as_default = True) - Setup ().run () + dbus.mainloop.glib.DBusGMainLoop (set_as_default = True) + Setup ().run ()