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 | |
| parent | 547f5f2edf23027731a3e9f13f2de60a32224c9f (diff) | |
Add special phrases in setup ui
Diffstat (limited to 'setup')
| -rw-r--r-- | setup/ibus-pinyin-preferences.ui | 361 | ||||
| -rw-r--r-- | setup/main.py | 78 |
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"><b>Others</b></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"><b>Others</b></property> + <property name="label" translatable="yes"><b>UI</b></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"><b>Dictionary option</b></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()) |
