Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(9)

Delta Between Two Patch Sets: setup/enginecombobox.py

Issue 5517048: Merge the devel branch (Closed) Base URL: git@github.com:phuang/ibus.git@devel
Left Patch Set: Created 13 years, 2 months ago
Right Patch Set: Rebase on HEAD Created 13 years ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
LEFTRIGHT
1 # vim:set et sts=4 sw=4: 1 # vim:set et sts=4 sw=4:
2 # 2 #
3 # ibus - The Input Bus 3 # ibus - The Input Bus
4 # 4 #
5 # Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com> 5 # Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
6 # Copyright (c) 2007-2010 Red Hat, Inc. 6 # Copyright (c) 2007-2010 Red Hat, Inc.
7 # 7 #
8 # This library is free software; you can redistribute it and/or 8 # This library is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU Lesser General Public 9 # modify it under the terms of the GNU Lesser General Public
10 # License as published by the Free Software Foundation; either 10 # License as published by the Free Software Foundation; either
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 renderer.set_property("xalign", 0) 56 renderer.set_property("xalign", 0)
57 renderer.set_property("xpad", 2) 57 renderer.set_property("xpad", 2)
58 self.pack_start(renderer, True) 58 self.pack_start(renderer, True)
59 self.set_cell_data_func(renderer, self.__name_cell_data_cb, None) 59 self.set_cell_data_func(renderer, self.__name_cell_data_cb, None)
60 60
61 def set_engines(self, engines): 61 def set_engines(self, engines):
62 self.__model = Gtk.TreeStore(object) 62 self.__model = Gtk.TreeStore(object)
63 63
64 iter1 = self.__model.append(None) 64 iter1 = self.__model.append(None)
65 self.__model.set(iter1, 0, 0) 65 self.__model.set(iter1, 0, 0)
66 lang = {} 66 langs = {}
67 for e in engines: 67 for e in engines:
68 print e.get_language()
68 l = IBus.get_language_name(e.get_language()) 69 l = IBus.get_language_name(e.get_language())
69 if l == None: 70 if l == None:
70 l = "" 71 l = ""
71 if l not in lang: 72 if l not in langs:
72 lang[l] = [] 73 langs[l] = []
73 lang[l].append(e) 74 langs[l].append(e)
74 75
75 keys = lang.keys() 76 keys = langs.keys()
76 keys.sort(locale.strcoll) 77 keys.sort(locale.strcoll)
78 current_lang = IBus.get_language_name(locale.getlocale()[0])
79 # move current language to the first place
80 if current_lang in keys:
81 keys.remove(current_lang)
82 keys.insert(0, current_lang)
83
77 #add "Others" to the end of the combo box 84 #add "Others" to the end of the combo box
78 if IBus.get_language_name("Other") in keys: 85 if IBus.get_language_name("Other") in keys:
79 keys.remove(IBus.get_language_name("Other")) 86 keys.remove(IBus.get_language_name("Other"))
80 keys += [IBus.get_language_name("Other")] 87 keys += [IBus.get_language_name("Other")]
81 for l in keys: 88 for l in keys:
82 iter1 = self.__model.append(None) 89 iter1 = self.__model.append(None)
83 self.__model.set(iter1, 0, l) 90 self.__model.set(iter1, 0, l)
84 def cmp_engine(a, b): 91 def cmp_engine(a, b):
85 if a.get_rank() == b.get_rank(): 92 if a.get_rank() == b.get_rank():
86 return locale.strcoll(a.get_longname(), b.get_longname()) 93 return locale.strcoll(a.get_longname(), b.get_longname())
87 return int(b.get_rank() - a.get_rank()) 94 return int(b.get_rank() - a.get_rank())
88 lang[l].sort(cmp_engine) 95 langs[l].sort(cmp_engine)
89 for e in lang[l]: 96 for e in langs[l]:
90 iter2 = self.__model.append(iter1) 97 iter2 = self.__model.append(iter1)
91 self.__model.set(iter2, 0, e) 98 self.__model.set(iter2, 0, e)
92 99
93 self.set_model(self.__model) 100 self.set_model(self.__model)
94 self.set_active(0) 101 self.set_active(0)
95 102
96 def __icon_cell_data_cb(self, celllayout, renderer, model, iter, data): 103 def __icon_cell_data_cb(self, celllayout, renderer, model, iter, data):
97 engine = self.__model.get_value(iter, 0) 104 engine = self.__model.get_value(iter, 0)
98 105
99 if isinstance(engine, str) or isinstance (engine, unicode): 106 if isinstance(engine, str) or isinstance (engine, unicode):
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 def get_active_engine(self): 153 def get_active_engine(self):
147 return self.get_property("active-engine") 154 return self.get_property("active-engine")
148 155
149 if __name__ == "__main__": 156 if __name__ == "__main__":
150 combo = EngineComboBox() 157 combo = EngineComboBox()
151 combo.set_engines([IBus.EngineDesc(language="zh")]) 158 combo.set_engines([IBus.EngineDesc(language="zh")])
152 w = Gtk.Window() 159 w = Gtk.Window()
153 w.add(combo) 160 w.add(combo)
154 w.show_all() 161 w.show_all()
155 Gtk.main() 162 Gtk.main()
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b