summaryrefslogtreecommitdiffstats
path: root/setup
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
parent547f5f2edf23027731a3e9f13f2de60a32224c9f (diff)
Add special phrases in setup ui
Diffstat (limited to 'setup')
-rw-r--r--setup/ibus-pinyin-preferences.ui361
-rw-r--r--setup/main.py78
2 files changed, 301 insertions, 138 deletions
diff --git a/setup/ibus-pinyin-preferences.ui b/setup/ibus-pinyin-preferences.ui
index b5a2dc1..91f6a33 100644
--- a/setup/ibus-pinyin-preferences.ui
+++ b/setup/ibus-pinyin-preferences.ui
@@ -363,90 +363,24 @@
</packing>
</child>
<child>
- <object class="GtkFrame" id="frame5">
+ <object class="GtkFrame" id="frame6">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
- <object class="GtkAlignment" id="alignment8">
+ <object class="GtkAlignment" id="alignment11">
<property name="visible">True</property>
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkVBox" id="vbox8">
+ <object class="GtkVBox" id="vbox11">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="spacing">6</property>
<child>
- <object class="GtkHBox" id="hbox3">
- <property name="visible">True</property>
- <property name="spacing">12</property>
- <property name="homogeneous">True</property>
- <child>
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Orientation of candidates:</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="LookupTableOrientation">
- <property name="visible">True</property>
- <property name="model">liststoreLookupTableOrientation</property>
- <property name="button_sensitivity">on</property>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox4">
- <property name="visible">True</property>
- <property name="spacing">12</property>
- <property name="homogeneous">True</property>
- <child>
- <object class="GtkLabel" id="label16">
- <property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes">Number of candidates:</property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkHScale" id="hscaleLookupTablePageSize">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes">Setup the number of candidates show in one page of lookup table.</property>
- <property name="update_policy">delayed</property>
- <property name="adjustment">LookupTablePageSize</property>
- <property name="digits">0</property>
- <property name="value_pos">left</property>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkTable" id="table5">
+ <object class="GtkTable" id="table2">
<property name="visible">True</property>
- <property name="n_rows">4</property>
+ <property name="n_rows">2</property>
<property name="n_columns">2</property>
<property name="column_spacing">6</property>
<property name="row_spacing">6</property>
@@ -457,7 +391,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Use left and right shift keys to select the second and thrid candidates.</property>
<property name="draw_indicator">True</property>
</object>
</child>
@@ -467,7 +400,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Use [-] [=] key to page up/down the lookup table.</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
@@ -482,7 +414,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Use [,] [.] key to page up/down the lookup table.</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</object>
@@ -497,7 +428,6 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Enable automatic commit phrase.</property>
<property name="draw_indicator">True</property>
</object>
<packing>
@@ -507,41 +437,156 @@
<property name="bottom_attach">2</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label20">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Others&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Pinyin mode</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment10">
+ <property name="visible">True</property>
+ <property name="top_padding">12</property>
+ <property name="bottom_padding">12</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox10">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="frame5">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox8">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <property name="homogeneous">True</property>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Orientation of candidates:</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
<child>
- <object class="GtkCheckButton" id="TradCandidate">
- <property name="label" translatable="yes">Show candidates in traditional Chinese</property>
+ <object class="GtkComboBox" id="LookupTableOrientation">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Show candidates in traditional Chinese, if the input method is in traditional Chinese inputing mode.</property>
- <property name="draw_indicator">True</property>
+ <property name="model">liststoreLookupTableOrientation</property>
+ <property name="button_sensitivity">on</property>
</object>
<packing>
- <property name="right_attach">2</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="position">1</property>
</packing>
</child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <property name="homogeneous">True</property>
<child>
- <object class="GtkCheckButton" id="DoublePinyinShowRaw">
- <property name="label" translatable="yes">Show raw input of Double Pinyin</property>
+ <object class="GtkLabel" id="label16">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Number of candidates:</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHScale" id="hscaleLookupTablePageSize">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Show raw input of Double Pinyin</property>
- <property name="draw_indicator">True</property>
+ <property name="update_policy">delayed</property>
+ <property name="adjustment">LookupTablePageSize</property>
+ <property name="digits">0</property>
+ <property name="value_pos">left</property>
</object>
<packing>
- <property name="right_attach">2</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="TradCandidate">
+ <property name="label" translatable="yes">Show candidates in traditional Chinese</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="DoublePinyinShowRaw">
+ <property name="label" translatable="yes">Show raw input of Double Pinyin</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="position">3</property>
+ </packing>
+ </child>
</object>
</child>
</object>
@@ -549,26 +594,36 @@
<child type="label">
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
- <property name="label" translatable="yes">&lt;b&gt;Others&lt;/b&gt;</property>
+ <property name="label" translatable="yes">&lt;b&gt;UI&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
- <property name="position">2</property>
+ <property name="position">0</property>
</packing>
</child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
</object>
</child>
</object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
</child>
<child type="tab">
- <object class="GtkLabel" id="label1">
+ <object class="GtkLabel" id="label13">
<property name="visible">True</property>
- <property name="label" translatable="yes">General</property>
+ <property name="label" translatable="yes">UI</property>
</object>
<packing>
+ <property name="position">1</property>
<property name="tab_fill">False</property>
</packing>
</child>
@@ -715,7 +770,7 @@
</child>
</object>
<packing>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child type="tab">
@@ -724,7 +779,7 @@
<property name="label" translatable="yes">Correct pinyin</property>
</object>
<packing>
- <property name="position">1</property>
+ <property name="position">2</property>
<property name="tab_fill">False</property>
</packing>
</child>
@@ -1147,7 +1202,7 @@
</child>
</object>
<packing>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
<child type="tab">
@@ -1156,26 +1211,106 @@
<property name="label" translatable="yes">Fuzzy pinyin</property>
</object>
<packing>
- <property name="position">2</property>
+ <property name="position">3</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
- <object class="GtkVBox" id="vbox5">
+ <object class="GtkAlignment" id="alignment12">
<property name="visible">True</property>
- <property name="orientation">vertical</property>
- <child>
- <placeholder/>
- </child>
- <child>
- <placeholder/>
- </child>
+ <property name="top_padding">12</property>
+ <property name="bottom_padding">12</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">12</property>
<child>
- <placeholder/>
+ <object class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="frame7">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment13">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox12">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkCheckButton" id="SpecialPhrases">
+ <property name="label" translatable="yes">Use custom phrases</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="EditSpecialPhrases">
+ <property name="label" translatable="yes">Edit custom phrases</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label17">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Dictionary option&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
</child>
</object>
<packing>
- <property name="position">3</property>
+ <property name="position">4</property>
</packing>
</child>
<child type="tab">
@@ -1184,7 +1319,7 @@
<property name="label" translatable="yes">Dictionary</property>
</object>
<packing>
- <property name="position">3</property>
+ <property name="position">4</property>
<property name="tab_fill">False</property>
</packing>
</child>
@@ -1275,7 +1410,7 @@
</child>
</object>
<packing>
- <property name="position">4</property>
+ <property name="position">5</property>
</packing>
</child>
<child type="tab">
@@ -1284,7 +1419,7 @@
<property name="label" translatable="yes">About</property>
</object>
<packing>
- <property name="position">4</property>
+ <property name="position">5</property>
<property name="tab_fill">False</property>
</packing>
</child>
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())