summaryrefslogtreecommitdiffstats
path: root/setup/main.py
diff options
context:
space:
mode:
authorPeng Huang <shawn.p.huang@gmail.com>2010-04-15 15:24:26 +0800
committerPeng Huang <shawn.p.huang@gmail.com>2010-04-15 15:25:26 +0800
commit9e5ecb8182be4e5a7c91cb92e9c5c64ed63fe8a2 (patch)
treed83120974e4b036428ea40ac9b7de3a00568159f /setup/main.py
parent547f5f2edf23027731a3e9f13f2de60a32224c9f (diff)
downloadibus-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.py78
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())