diff options
author | Peng Huang <shawn.p.huang@gmail.com> | 2010-04-15 15:24:26 +0800 |
---|---|---|
committer | Peng Huang <shawn.p.huang@gmail.com> | 2010-04-15 15:25:26 +0800 |
commit | 9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2 (patch) | |
tree | d83120974e4b036428ea40ac9b7de3a00568159f /setup/main.py | |
parent | 547f5f2edf23027731a3e9f13f2de60a32224c9f (diff) | |
download | ibus-libpinyin-9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2.tar.gz ibus-libpinyin-9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2.tar.xz ibus-libpinyin-9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2.zip |
Add special phrases in setup ui
Diffstat (limited to 'setup/main.py')
-rw-r--r-- | setup/main.py | 78 |
1 files changed, 53 insertions, 25 deletions
diff --git a/setup/main.py b/setup/main.py index fed0c83..29769d4 100644 --- a/setup/main.py +++ b/setup/main.py @@ -4,6 +4,7 @@ import locale import os import version import gettext +from xdg import BaseDirectory _ = lambda a : gettext.dgettext("ibus-pinyin", a) @@ -24,8 +25,11 @@ class PreferencesDialog: self.__init_pinyin() self.__init_init_state() self.__init_others() + self.__init_ui() self.__init_correct_pinyin() self.__init_fuzzy_pinyin() + self.__init_dictionary() + self.__init_about() def __init_pinyin(self): # pinyin @@ -35,8 +39,6 @@ class PreferencesDialog: self.__double_pinyin_schema = self.__builder.get_object("DoublePinyinSchema") self.__double_pinyin_schema_label = self.__builder.get_object("labelDoublePinyinSchema") self.__double_pinyin_show_raw = self.__builder.get_object("DoublePinyinShowRaw") - self.__name_version = self.__builder.get_object("NameVersion") - self.__name_version.set_markup(_("<big><b>IBus Pinyin %s</b></big>") % version.get_version()) renderer = gtk.CellRendererText() self.__double_pinyin_schema.pack_start(renderer) @@ -46,17 +48,14 @@ class PreferencesDialog: self.__incomplete_pinyin.set_active(self.__get_value("IncompletePinyin", True)) self.__full_pinyin.set_active(not self.__get_value("DoublePinyin", False)) self.__double_pinyin_schema.set_active(self.__get_value("DoublePinyinSchema", 0)) - self.__double_pinyin_show_raw.set_active(self.__get_value("DoublePinyinShowRaw", False)) if self.__full_pinyin.get_active(): # self.__incomplete_pinyin.set_sensitive(True) self.__double_pinyin_schema.set_sensitive(False) self.__double_pinyin_schema_label.set_sensitive(False) - self.__double_pinyin_show_raw.set_sensitive(False) else: # self.__incomplete_pinyin.set_sensitive(False) self.__double_pinyin_schema.set_sensitive(True) self.__double_pinyin_schema_label.set_sensitive(True) - self.__double_pinyin_show_raw.set_sensitive(True) def __full_pinyin_toggled_cb(widget): val = widget.get_active() @@ -104,27 +103,37 @@ class PreferencesDialog: self.__init_simp.connect("toggled", self.__toggled_cb, "InitSimplifiedChinese") def __init_others(self): - #others - self.__lookup_table_page_size = self.__builder.get_object("LookupTablePageSize") - self.__lookup_table_orientation = self.__builder.get_object("LookupTableOrientation") - - renderer = gtk.CellRendererText() - self.__lookup_table_orientation.pack_start(renderer) - self.__lookup_table_orientation.set_attributes(renderer, text=0) - + # others self.__shift_select_candidate = self.__builder.get_object("ShiftSelectCandidate") self.__minus_equal_page = self.__builder.get_object("MinusEqualPage") self.__comma_period_page = self.__builder.get_object("CommaPeriodPage") self.__auto_commit = self.__builder.get_object("AutoCommit") - self.__trad_candidate = self.__builder.get_object("TradCandidate") # read values - self.__lookup_table_orientation.set_active(self.__get_value("LookupTableOrientation", 0)) - self.__lookup_table_page_size.set_value(self.__get_value("LookupTablePageSize", 5)) self.__shift_select_candidate.set_active(self.__get_value("ShiftSelectCandidate", False)) self.__minus_equal_page.set_active(self.__get_value("MinusEqualPage", True)) self.__comma_period_page.set_active(self.__get_value("CommaPeriodPage", True)) self.__auto_commit.set_active(self.__get_value("AutoCommit", False)) + + # connect signals + self.__shift_select_candidate.connect("toggled", self.__toggled_cb, "ShiftSelectCandidate") + self.__minus_equal_page.connect("toggled", self.__toggled_cb, "MinusEqualPage") + self.__comma_period_page.connect("toggled", self.__toggled_cb, "CommaPeriodPage") + self.__auto_commit.connect("toggled", self.__toggled_cb, "AutoCommit") + + def __init_ui(self): + # UI + self.__lookup_table_page_size = self.__builder.get_object("LookupTablePageSize") + self.__lookup_table_orientation = self.__builder.get_object("LookupTableOrientation") + self.__trad_candidate = self.__builder.get_object("TradCandidate") + + renderer = gtk.CellRendererText() + self.__lookup_table_orientation.pack_start(renderer) + self.__lookup_table_orientation.set_attributes(renderer, text=0) + + # read values + self.__lookup_table_orientation.set_active(self.__get_value("LookupTableOrientation", 0)) + self.__lookup_table_page_size.set_value(self.__get_value("LookupTablePageSize", 5)) self.__trad_candidate.set_active(self.__get_value("TradCandidate", False)) # connect signals @@ -136,17 +145,8 @@ class PreferencesDialog: self.__lookup_table_orientation.connect("changed", __lookup_table_orientation_changed_cb) self.__lookup_table_page_size.connect("value-changed", __lookup_table_page_size_changed_cb) - - self.__shift_select_candidate.connect("toggled", self.__toggled_cb, "ShiftSelectCandidate") - self.__minus_equal_page.connect("toggled", self.__toggled_cb, "MinusEqualPage") - self.__comma_period_page.connect("toggled", self.__toggled_cb, "CommaPeriodPage") - self.__auto_commit.connect("toggled", self.__toggled_cb, "AutoCommit") self.__trad_candidate.connect("toggled", self.__toggled_cb, "TradCandidate") - def __entry_activate_cb(widget, name): - text = widget.get_text() - self.__set_value(name, text) - def __init_correct_pinyin(self): # auto correct self.__correct_pinyin = self.__builder.get_object("CorrectPinyin") @@ -224,6 +224,34 @@ class PreferencesDialog: widget = self.__builder.get_object(name) widget.connect("toggled", self.__toggled_cb, name) + def __init_dictionary(self): + # dictionary + self.__special_phrases = self.__builder.get_object("SpecialPhrases") + self.__edit_special_phrases = self.__builder.get_object("EditSpecialPhrases") + + # read values + self.__special_phrases.set_active(self.__get_value("SpecialPhrases", True)) + + def __edit_special_phrases_clicked_cb(widget): + from xdg import BaseDirectory + import shutil + path = os.path.join(BaseDirectory.xdg_config_home, "ibus", "pinyin") + os.path.exists(path) or os.makedirs(path) + path = os.path.join(path, "phrases.txt") + if not os.path.exists(path): + datadir = os.getenv("IBUS_DATAROOTDIR") or "/usr/share/ibus-pinyin" + src = os.path.join(datadir, "phrases.txt") + shutil.copyfile(src, path) + os.system("xdg-open %s" % path) + + # connect signals + self.__special_phrases.connect("toggled", self.__toggled_cb, "SpecialPhrases") + self.__edit_special_phrases.connect("clicked", __edit_special_phrases_clicked_cb) + + def __init_about(self): + self.__name_version = self.__builder.get_object("NameVersion") + self.__name_version.set_markup(_("<big><b>IBus Pinyin %s</b></big>") % version.get_version()) + def __changed_cb(self, widget, name): self.__set_value(name, widget.get_active()) |