summaryrefslogtreecommitdiff
path: root/setup/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup/main.py')
-rw-r--r--setup/main.py719
1 files changed, 368 insertions, 351 deletions
diff --git a/setup/main.py b/setup/main.py
index 965bb49..32dac34 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -20,12 +20,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-from os import environ, getenv, getuid, path
-import os
-import gtk
-import pango
-from gtk import glade
-from ibus import keysyms, modifier, Bus
+from os import environ, getuid, path
+import os, sys
from gettext import dgettext, bindtextdomain
try:
@@ -33,13 +29,18 @@ try:
except:
pass
-from anthyprefs import AnthyPrefs
+from gi.repository import Gtk
+from gi.repository import Gdk
+from gi.repository import Pango
+from gi.repository import IBus
+import _config as config
+from anthyprefs import AnthyPrefs
_ = lambda a : dgettext('ibus-anthy', a)
def l_to_s(l):
- return str(sorted([str(s) for s in l])).replace("'", '')
+ return str(sorted([str(s) for s in l])).replace('\'', '')
def s_to_l(s):
return [] if s == '[]' else s[1:-1].replace(' ', '').split(',')
@@ -47,28 +48,34 @@ def s_to_l(s):
class AnthySetup(object):
def __init__(self):
- self.__config = Bus().get_config()
+ bindtextdomain('ibus-anthy', config.LOCALEDIR)
+ builder_file = path.join(path.dirname(__file__), 'setup.ui')
+ self.__builder = builder = Gtk.Builder()
+ builder.set_translation_domain('ibus-anthy')
+ builder.add_from_file(builder_file)
+
+ if IBus.get_address() == None:
+ builder.connect_signals(self)
+ # self.__run_message_dialog needs self.__builder.
+ self.__run_message_dialog(_("ibus is not running."),
+ Gtk.MessageType.ERROR)
+ return
+
+ self.__config = IBus.Bus().get_config()
self.__thumb_kb_layout_mode = None
self.__thumb_kb_layout = None
self.__japanese_ordered_dict = {}
self.prefs = prefs = AnthyPrefs(None, self.__config)
- localedir = getenv("IBUS_LOCALEDIR")
- bindtextdomain("ibus-anthy", localedir)
- glade.bindtextdomain("ibus-anthy", localedir)
- glade.textdomain("ibus-anthy")
- glade_file = path.join(path.dirname(__file__), "setup.glade")
- self.xml = xml = glade.XML(glade_file)
-
- # glade "icon_name" property has a custom scaling and it seems
+ # glade 'icon_name' property has a custom scaling and it seems
# to be difficult to show the complicated small icon in metacity.
# This can add the pixbuf without scaling.
anthydir = path.dirname(path.dirname(__file__))
if not anthydir:
- anthydir = "/usr/share/ibus-anthy"
- icon_path = path.join(anthydir, "icons", "ibus-anthy.png")
+ anthydir = '/usr/share/ibus-anthy'
+ icon_path = path.join(anthydir, 'icons', 'ibus-anthy.png')
if path.exists(icon_path):
- xml.get_widget('main').set_icon_from_file(icon_path)
+ builder.get_object('main').set_icon_from_file(icon_path)
for name in ['input_mode', 'typing_method', 'conversion_segment_mode',
'period_style', 'symbol_style', 'ten_key_mode',
@@ -77,80 +84,80 @@ class AnthySetup(object):
'thumb:keyboard_layout_mode', 'thumb:keyboard_layout',
'thumb:fmv_extension', 'thumb:handakuten']:
section, key = self.__get_section_key(name)
- xml.get_widget(name).set_active(prefs.get_value(section, key))
+ builder.get_object(name).set_active(prefs.get_value(section, key))
l = ['default', 'atok', 'wnn']
s_type = prefs.get_value('common', 'shortcut_type')
s_type = s_type if s_type in l else 'default'
- xml.get_widget('shortcut_type').set_active(l.index(s_type))
+ builder.get_object('shortcut_type').set_active(l.index(s_type))
- xml.get_widget('page_size').set_value(prefs.get_value('common',
- 'page_size'))
+ builder.get_object('page_size').set_value(prefs.get_value('common',
+ 'page_size'))
- tv = xml.get_widget('shortcut')
- tv.append_column(gtk.TreeViewColumn(_("Command"),
- gtk.CellRendererText(), text=0))
- renderer = gtk.CellRendererText()
- renderer.set_property("ellipsize", pango.ELLIPSIZE_END)
- tv.append_column(gtk.TreeViewColumn(_("Shortcut"),
+ tv = builder.get_object('shortcut')
+ tv.append_column(Gtk.TreeViewColumn(_("Command"),
+ Gtk.CellRendererText(), text=0))
+ renderer = Gtk.CellRendererText()
+ renderer.set_property('ellipsize', Pango.EllipsizeMode.END)
+ tv.append_column(Gtk.TreeViewColumn(_("Shortcut"),
renderer, text=1))
tv.get_selection().connect_after('changed',
self.on_selection_changed, 0)
- ls = gtk.ListStore(str, str)
+ ls = Gtk.ListStore(str, str)
sec = 'shortcut/' + s_type
for k in self.prefs.keys(sec):
ls.append([k, l_to_s(self.prefs.get_value(sec, k))])
tv.set_model(ls)
- self.__thumb_kb_layout_mode = xml.get_widget('thumb:keyboard_layout_mode')
- self.__thumb_kb_layout = xml.get_widget('thumb:keyboard_layout')
+ self.__thumb_kb_layout_mode = builder.get_object('thumb:keyboard_layout_mode')
+ self.__thumb_kb_layout = builder.get_object('thumb:keyboard_layout')
self.__set_thumb_kb_label()
for name in ['thumb:ls', 'thumb:rs']:
section, key = self.__get_section_key(name)
- xml.get_widget(name).set_text(prefs.get_value(section, key))
+ builder.get_object(name).set_text(prefs.get_value(section, key))
- tv = xml.get_widget('treeview2')
- tv.append_column(gtk.TreeViewColumn('', gtk.CellRendererText(), text=0))
+ tv = builder.get_object('treeview2')
+ tv.append_column(Gtk.TreeViewColumn('', Gtk.CellRendererText(), text=0))
tv.get_selection().connect_after('changed',
self.on_selection_changed, 1)
- tv.set_model(gtk.ListStore(str))
+ tv.set_model(Gtk.ListStore(str))
key = 'dict_admin_command'
cli = self.__get_dict_cli_from_list(prefs.get_value('common', key))
name = 'dict:entry_edit_dict_command'
- xml.get_widget(name).set_text(cli)
+ builder.get_object(name).set_text(cli)
key = 'add_word_command'
cli = self.__get_dict_cli_from_list(prefs.get_value('common', key))
name = 'dict:entry_add_word_command'
- xml.get_widget(name).set_text(cli)
+ builder.get_object(name).set_text(cli)
- tv = xml.get_widget('dict:view')
+ tv = builder.get_object('dict:view')
- column = gtk.TreeViewColumn((" "))
- renderer = gtk.CellRendererText()
+ column = Gtk.TreeViewColumn((' '))
+ renderer = Gtk.CellRendererText()
column.pack_start(renderer, False)
column.set_cell_data_func(renderer, self.__text_cell_data_cb, 1)
tv.append_column(column)
- column = gtk.TreeViewColumn(_("Description"))
- renderer = gtk.CellRendererText()
+ column = Gtk.TreeViewColumn(_("Description"))
+ renderer = Gtk.CellRendererText()
column.pack_start(renderer, False)
column.set_cell_data_func(renderer, self.__text_cell_data_cb, 2)
- column.set_max_width(300)
+ column.set_expand(True)
tv.append_column(column)
# Translators: "Embd" means a short word of 'embedded'.
- column = gtk.TreeViewColumn(_("Embd"))
- renderer = gtk.CellRendererToggle()
+ column = Gtk.TreeViewColumn(_("Embd"))
+ renderer = Gtk.CellRendererToggle()
renderer.set_radio(False)
column.pack_start(renderer, False)
column.set_cell_data_func(renderer, self.__toggle_cell_data_cb, 3)
tv.append_column(column)
# Translators: "Sgl" means a short word of 'single'.
- column = gtk.TreeViewColumn(_("Sgl"))
- renderer = gtk.CellRendererToggle()
+ column = Gtk.TreeViewColumn(_("Sgl"))
+ renderer = Gtk.CellRendererToggle()
renderer.set_radio(False)
column.pack_start(renderer, False)
column.set_cell_data_func(renderer, self.__toggle_cell_data_cb, 4)
@@ -159,22 +166,22 @@ class AnthySetup(object):
'''
Unfortunatelly reverse conversion is too slow.
# Translators: "Rev" means a short word of 'reverse'.
- column = gtk.TreeViewColumn(_("Rev"))
- renderer = gtk.CellRendererToggle()
+ column = Gtk.TreeViewColumn(_("Rev"))
+ renderer = Gtk.CellRendererToggle()
renderer.set_radio(False)
column.pack_start(renderer, False)
column.set_cell_data_func(renderer, self.__toggle_cell_data_cb, 5)
tv.append_column(column)
'''
- ls = gtk.ListStore(str, str, str, bool, bool, bool)
+ ls = Gtk.ListStore(str, str, str, bool, bool, bool)
tv.set_model(ls)
self.__append_dicts_in_model()
self.__init_japanese_sort()
self.__init_about_vbox(icon_path)
- xml.signal_autoconnect(self)
+ builder.connect_signals(self)
def __init_japanese_sort(self):
japanese_ordered_dict = {}
@@ -184,12 +191,12 @@ class AnthySetup(object):
self.__japanese_ordered_dict = japanese_ordered_dict;
def __init_about_vbox(self, icon_path):
- about_dialog = self.xml.get_widget("about_dialog")
- about_vbox = self.xml.get_widget("about_vbox")
+ about_dialog = self.__builder.get_object('about_dialog')
+ about_vbox = self.__builder.get_object('about_vbox')
about_dialog.set_version(self.prefs.get_version())
try:
- if getpreferredencoding().lower() == "utf-8":
+ if getpreferredencoding().lower() == 'utf-8':
copyright = about_dialog.get_copyright()
copyright = copyright.replace('(c)', '\xc2\xa9')
copyright = copyright.replace('-', '\xe2\x80\x93')
@@ -197,16 +204,15 @@ class AnthySetup(object):
except:
pass
if icon_path != None:
- image = gtk.image_new_from_file(icon_path)
+ image = Gtk.Image.new_from_file(icon_path)
about_dialog.set_logo(image.get_pixbuf())
content_area = about_dialog.get_content_area()
list = content_area.get_children()
vbox = list[0]
for w in vbox.get_children():
- old_parent = w.parent
+ old_parent = w.props.parent
w.unparent()
- w.set_parent_window(None)
- w.emit("parent-set", old_parent)
+ w.emit('parent-set', old_parent)
about_vbox.pack_start(w, False, False, 0)
def __get_userhome(self):
@@ -228,12 +234,11 @@ class AnthySetup(object):
key = name
return (section, key)
- def __run_message_dialog(self, message, type=gtk.MESSAGE_INFO):
- label = gtk.Label(message)
- dlg = gtk.MessageDialog(parent=self.xml.get_widget('main'),
- flags='modal',
- type=type,
- buttons=gtk.BUTTONS_OK,
+ def __run_message_dialog(self, message, type=Gtk.MessageType.INFO):
+ dlg = Gtk.MessageDialog(parent=self.__builder.get_object('main'),
+ flags=Gtk.DialogFlags.MODAL,
+ message_type=type,
+ buttons=Gtk.ButtonsType.OK,
message_format=message)
dlg.run()
dlg.destroy()
@@ -260,70 +265,70 @@ class AnthySetup(object):
def __get_romaji_treeview_custom_key_table(self, method):
prefs = self.prefs
rule = {}
- ls = gtk.ListStore(str, str, str)
- tv = self.xml.get_widget('treeview_custom_key_table')
+ ls = Gtk.ListStore(str, str, str)
+ tv = self.__builder.get_object('treeview_custom_key_table')
section_base = 'romaji_typing_rule'
- section = section_base + '/' + str(method)
+ section = section_base + '/' + prefs.str(method)
for key in prefs.keys(section):
- key = str(key)
+ key = prefs.str(key)
value = prefs.get_value(section, key)
# config.set_value(key, None) is not supported.
if value != None and value != '':
- rule[key] = str(value)
+ rule[key] = prefs.str(value)
for key in prefs.get_value(section_base, 'newkeys'):
- key = str(key)
+ key = prefs.str(key)
value = self.prefs.get_value_direct(section, key)
# config.set_value(key, None) is not supported.
if value != None and value != '':
- rule[key] = str(value)
+ rule[key] = prefs.str(value)
for key, value in sorted(rule.items(), \
cmp = self.__japanese_tuple_sort):
ls.append(['romaji', key, value])
- tv.append_column(gtk.TreeViewColumn(_(_("Input Chars")),
- gtk.CellRendererText(), text=1))
- tv.append_column(gtk.TreeViewColumn(_(_("Output Chars")),
- gtk.CellRendererText(), text=2))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Input Chars")),
+ Gtk.CellRendererText(), text=1))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Output Chars")),
+ Gtk.CellRendererText(), text=2))
tv.set_model(ls)
return tv
def __get_kana_treeview_custom_key_table(self, method):
prefs = self.prefs
rule = {}
- ls = gtk.ListStore(str, str, str)
- tv = self.xml.get_widget('treeview_custom_key_table')
+ ls = Gtk.ListStore(str, str, str)
+ tv = self.__builder.get_object('treeview_custom_key_table')
section_base = 'kana_typing_rule'
- section = section_base + '/' + str(method)
+ section = section_base + '/' + prefs.str(method)
for key in prefs.keys(section):
- key = str(key)
+ key = prefs.str(key)
value = prefs.get_value(section, key)
# config.set_value(key, None) is not supported.
if value != None and value != '':
- rule[key] = str(value)
+ rule[key] = prefs.str(value)
for key in prefs.get_value(section_base, 'newkeys'):
- key = str(key)
+ key = prefs.str(key)
value = self.prefs.get_value_direct(section, key)
# config.set_value(key, None) is not supported.
if value != None and value != '':
- rule[key] = str(value)
+ rule[key] = prefs.str(value)
for key, value in sorted(rule.items(), \
cmp = self.__japanese_tuple_sort):
ls.append(['kana', key, value])
- tv.append_column(gtk.TreeViewColumn(_(_("Input Chars")),
- gtk.CellRendererText(), text=1))
- tv.append_column(gtk.TreeViewColumn(_(_("Output Chars")),
- gtk.CellRendererText(), text=2))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Input Chars")),
+ Gtk.CellRendererText(), text=1))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Output Chars")),
+ Gtk.CellRendererText(), text=2))
tv.set_model(ls)
return tv
def __get_thumb_treeview_custom_key_table(self, method):
prefs = self.prefs
rule = {}
- ls = gtk.ListStore(str, str, str, str, str)
- tv = self.xml.get_widget('treeview_custom_key_table')
+ ls = Gtk.ListStore(str, str, str, str, str)
+ tv = self.__builder.get_object('treeview_custom_key_table')
section_base = 'thumb_typing_rule'
- section = section_base + '/' + str(method)
+ section = section_base + '/' + prefs.str(method)
for key in prefs.keys(section):
- key = str(key)
+ key = prefs.str(key)
value = prefs.get_value(section, key)
# config.set_value(key, None) is not supported.
if value != None and len(value) == 3 and \
@@ -331,11 +336,11 @@ class AnthySetup(object):
(value[1] != None and value[1] != '') or \
(value[2] != None and value[2] != '')):
rule[key] = {}
- rule[key][0] = str(value[0])
- rule[key][1] = str(value[1])
- rule[key][2] = str(value[2])
+ rule[key][0] = prefs.str(value[0])
+ rule[key][1] = prefs.str(value[1])
+ rule[key][2] = prefs.str(value[2])
for key in prefs.get_value(section_base, 'newkeys'):
- key = str(key)
+ key = prefs.str(key)
value = self.prefs.get_value_direct(section, key)
# config.set_value(key, None) is not supported.
if value != None and len(value) == 3 and \
@@ -343,30 +348,30 @@ class AnthySetup(object):
(value[1] != None and value[1] != '') or \
(value[2] != None and value[2] != '')):
rule[key] = {}
- rule[key][0] = str(value[0])
- rule[key][1] = str(value[1])
- rule[key][2] = str(value[2])
+ rule[key][0] = prefs.str(value[0])
+ rule[key][1] = prefs.str(value[1])
+ rule[key][2] = prefs.str(value[2])
for key, value in sorted(rule.items(), \
cmp = self.__japanese_thumb_sort):
ls.append(['thumb', key, value[0], value[2], value[1]])
- tv.append_column(gtk.TreeViewColumn(_(_("Input")),
- gtk.CellRendererText(), text=1))
- tv.append_column(gtk.TreeViewColumn(_(_("Single")),
- gtk.CellRendererText(), text=2))
- tv.append_column(gtk.TreeViewColumn(_(_("Left")),
- gtk.CellRendererText(), text=3))
- tv.append_column(gtk.TreeViewColumn(_(_("Right")),
- gtk.CellRendererText(), text=4))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Input")),
+ Gtk.CellRendererText(), text=1))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Single")),
+ Gtk.CellRendererText(), text=2))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Left")),
+ Gtk.CellRendererText(), text=3))
+ tv.append_column(Gtk.TreeViewColumn(_(_("Right")),
+ Gtk.CellRendererText(), text=4))
tv.set_model(ls)
return tv
def __show_dialog_custom_key_table_extention(self, mode):
- hbox_combo = self.xml.get_widget('hbox_for_combobox_custom_key_table')
- label_left = self.xml.get_widget('label_left_thumb_shift_custom_key')
- entry_left = self.xml.get_widget('entry_left_thumb_shift_custom_key')
- label_right = self.xml.get_widget('label_right_thumb_shift_custom_key')
- entry_right = self.xml.get_widget('entry_right_thumb_shift_custom_key')
- if mode == "thumb":
+ hbox_combo = self.__builder.get_object('hbox_for_combobox_custom_key_table')
+ label_left = self.__builder.get_object('label_left_thumb_shift_custom_key')
+ entry_left = self.__builder.get_object('entry_left_thumb_shift_custom_key')
+ label_right = self.__builder.get_object('label_right_thumb_shift_custom_key')
+ entry_right = self.__builder.get_object('entry_right_thumb_shift_custom_key')
+ if mode == 'thumb':
hbox_combo.show()
label_left.show()
entry_left.show()
@@ -380,104 +385,104 @@ class AnthySetup(object):
entry_right.hide()
def __connect_dialog_custom_key_table_buttons(self, mode):
- tv = self.xml.get_widget('treeview_custom_key_table')
+ tv = self.__builder.get_object('treeview_custom_key_table')
tv.get_selection().connect_after('changed',
self.on_selection_custom_key_table_changed, 0)
- entry = self.xml.get_widget('entry_input_custom_key')
+ entry = self.__builder.get_object('entry_input_custom_key')
entry.connect('changed', self.on_entry_custom_key_changed, mode)
- entry = self.xml.get_widget('entry_output_custom_key')
+ entry = self.__builder.get_object('entry_output_custom_key')
entry.connect('changed', self.on_entry_custom_key_changed, mode)
- entry = self.xml.get_widget('entry_left_thumb_shift_custom_key')
+ entry = self.__builder.get_object('entry_left_thumb_shift_custom_key')
entry.connect('changed', self.on_entry_custom_key_changed, mode)
- entry = self.xml.get_widget('entry_right_thumb_shift_custom_key')
+ entry = self.__builder.get_object('entry_right_thumb_shift_custom_key')
entry.connect('changed', self.on_entry_custom_key_changed, mode)
- button = self.xml.get_widget('button_add_custom_key')
+ button = self.__builder.get_object('button_add_custom_key')
button.set_sensitive(False)
button.connect('clicked', self.on_btn_add_custom_key, mode)
- button = self.xml.get_widget('button_remove_custom_key')
+ button = self.__builder.get_object('button_remove_custom_key')
button.set_sensitive(False)
button.connect('clicked', self.on_btn_remove_custom_key, tv)
def __disconnect_dialog_custom_key_table_buttons(self):
- tv = self.xml.get_widget('treeview_custom_key_table')
- combobox = self.xml.get_widget('combobox_custom_key_table')
+ tv = self.__builder.get_object('treeview_custom_key_table')
+ combobox = self.__builder.get_object('combobox_custom_key_table')
if tv != None:
for column in tv.get_columns():
tv.remove_column(column)
for child in tv.get_children():
tv.remove(child)
- entry = self.xml.get_widget('entry_input_custom_key')
+ entry = self.__builder.get_object('entry_input_custom_key')
entry.disconnect_by_func(self.on_entry_custom_key_changed)
entry.set_text('')
- entry = self.xml.get_widget('entry_output_custom_key')
+ entry = self.__builder.get_object('entry_output_custom_key')
entry.disconnect_by_func(self.on_entry_custom_key_changed)
entry.set_text('')
- entry = self.xml.get_widget('entry_left_thumb_shift_custom_key')
+ entry = self.__builder.get_object('entry_left_thumb_shift_custom_key')
entry.disconnect_by_func(self.on_entry_custom_key_changed)
- entry = self.xml.get_widget('entry_right_thumb_shift_custom_key')
+ entry = self.__builder.get_object('entry_right_thumb_shift_custom_key')
entry.disconnect_by_func(self.on_entry_custom_key_changed)
- button = self.xml.get_widget('button_add_custom_key')
+ button = self.__builder.get_object('button_add_custom_key')
button.disconnect_by_func(self.on_btn_add_custom_key)
- button = self.xml.get_widget('button_remove_custom_key')
+ button = self.__builder.get_object('button_remove_custom_key')
button.disconnect_by_func(self.on_btn_remove_custom_key)
combobox.clear()
combobox.disconnect_by_func(self.on_cb_custom_key_table_changed)
def __run_dialog_custom_key_table(self, mode):
prefs = self.prefs
- dlg = self.xml.get_widget('dialog_custom_key_table')
- label = self.xml.get_widget('label_custom_key_table')
- label_output = self.xml.get_widget('label_output_custom_key')
+ dlg = self.__builder.get_object('dialog_custom_key_table')
+ label = self.__builder.get_object('label_custom_key_table')
+ label_output = self.__builder.get_object('label_output_custom_key')
list_labels = []
- if mode == "romaji":
+ if mode == 'romaji':
dlg.set_title(_("Customize Romaji Key Table"))
label.set_label(_("_Romaji Key Table:"))
label_output.set_label(_("_Output Chars"))
- list_labels = [["default", _("Default")]]
+ list_labels = [['default', _("Default")]]
self.__show_dialog_custom_key_table_extention(mode)
- elif mode == "kana":
+ elif mode == 'kana':
dlg.set_title(_("Customize Kana Key Table"))
label.set_label(_("_Kana Key Table:"))
label_output.set_label(_("_Output Chars"))
- list_labels = [["default", _("Default")]]
+ list_labels = [['default', _("Default")]]
self.__show_dialog_custom_key_table_extention(mode)
- elif mode == "thumb":
+ elif mode == 'thumb':
dlg.set_title(_("Customize Thumb Shift Key Table"))
label.set_label(_("_Thumb Shift Key Table:"))
label_output.set_label(_("Single _Output Chars"))
- list_labels = [["base", _("Base")],
- ["nicola_j_table", _("NICOLA-J key extension")],
- ["nicola_a_table", _("NICOLA-A key extension")],
- ["nicola_f_table", _("NICOLA-F key extension")],
- ["kb231_j_fmv_table", _("FMV KB231-J key extension")],
- ["kb231_a_fmv_table", _("FMV KB231-A key extension")],
- ["kb231_f_fmv_table", _("FMV KB231-F key extension")],
- ["kb611_j_fmv_table", _("FMV KB611-J key extension")],
- ["kb611_a_fmv_table", _("FMV KB611-A key extension")],
- ["kb611_f_fmv_table", _("FMV KB611-F key extension")],
+ list_labels = [['base', _("Base")],
+ ['nicola_j_table', _("NICOLA-J key extension")],
+ ['nicola_a_table', _("NICOLA-A key extension")],
+ ['nicola_f_table', _("NICOLA-F key extension")],
+ ['kb231_j_fmv_table', _("FMV KB231-J key extension")],
+ ['kb231_a_fmv_table', _("FMV KB231-A key extension")],
+ ['kb231_f_fmv_table', _("FMV KB231-F key extension")],
+ ['kb611_j_fmv_table', _("FMV KB611-J key extension")],
+ ['kb611_a_fmv_table', _("FMV KB611-A key extension")],
+ ['kb611_f_fmv_table', _("FMV KB611-F key extension")],
]
self.__show_dialog_custom_key_table_extention(mode)
- ls = gtk.ListStore(str, str)
+ ls = Gtk.ListStore(str, str)
for s in list_labels:
ls.append([s[1], s[0]])
- renderer = gtk.CellRendererText()
- combobox = self.xml.get_widget('combobox_custom_key_table')
+ renderer = Gtk.CellRendererText()
+ combobox = self.__builder.get_object('combobox_custom_key_table')
combobox.pack_start(renderer, True)
- combobox.add_attribute(renderer, "text", 0)
+ combobox.add_attribute(renderer, 'text', 0)
combobox.set_model(ls)
tv = None
- if mode == "romaji":
+ if mode == 'romaji':
method = prefs.get_value('romaji_typing_rule', 'method')
if method == None:
method = 'default'
tv = self.__get_romaji_treeview_custom_key_table(method)
- if mode == "kana":
+ if mode == 'kana':
method = prefs.get_value('kana_typing_rule', 'method')
if method == None:
method = 'default'
tv = self.__get_kana_treeview_custom_key_table(method)
- if mode == "thumb":
+ if mode == 'thumb':
method = prefs.get_value('thumb_typing_rule', 'method')
if method == None:
method = 'base'
@@ -485,7 +490,7 @@ class AnthySetup(object):
self.__connect_dialog_custom_key_table_buttons(mode)
combobox.set_active(0)
- combobox.connect("changed", self.on_cb_custom_key_table_changed, mode)
+ combobox.connect('changed', self.on_cb_custom_key_table_changed, mode)
id = dlg.run()
dlg.hide()
@@ -496,17 +501,23 @@ class AnthySetup(object):
if self.__thumb_kb_layout_mode == None or \
self.__thumb_kb_layout == None:
return
- section, key = self.__get_section_key(self.__thumb_kb_layout_mode.name)
+ section, key = self.__get_section_key(
+ Gtk.Buildable.get_name(self.__thumb_kb_layout_mode))
layout_mode = self.prefs.get_value(section, key)
if layout_mode:
self.__thumb_kb_layout.set_sensitive(False)
else:
self.__thumb_kb_layout.set_sensitive(True)
+ try:
+ use_system_keyboard = self.__config.get_value('general',
+ 'use_system_keyboard_layout').get_boolean()
+ except:
+ use_system_keyboard = True
if layout_mode and \
- not self.__config.get_value('general', 'use_system_keyboard_layout', True):
- self.xml.get_widget('thumb:warning_hbox').show()
+ not use_system_keyboard:
+ self.__builder.get_object('thumb:warning_hbox').show()
else:
- self.xml.get_widget('thumb:warning_hbox').hide()
+ self.__builder.get_object('thumb:warning_hbox').hide()
def __get_dict_cli_from_list(self, cli_list):
cli_str = cli_list[0]
@@ -566,9 +577,9 @@ class AnthySetup(object):
section = 'dict/file/' + id
# user value is dbus.String
prefs.set_value(section, 'short_label',
- str(prefs.get_value(section, 'short_label')))
+ prefs.str(prefs.get_value(section, 'short_label')))
prefs.set_value(section, 'long_label',
- str(prefs.get_value(section, 'long_label')))
+ prefs.str(prefs.get_value(section, 'long_label')))
short_label = prefs.get_value(section, 'short_label')
long_label = prefs.get_value(section, 'long_label')
embed = prefs.get_value(section, 'embed')
@@ -576,7 +587,7 @@ class AnthySetup(object):
reverse = prefs.get_value(section, 'reverse')
if is_gettext:
long_label = _(long_label)
- l = self.xml.get_widget('dict:view').get_model()
+ l = self.__builder.get_object('dict:view').get_model()
l.append([id, short_label, long_label, embed, single, reverse])
def __append_dicts_in_model(self):
@@ -604,61 +615,61 @@ class AnthySetup(object):
if new:
if file in files:
self.__run_message_dialog(_("Your choosed file has already been added: ") + file,
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
if not path.exists(file):
self.__run_message_dialog(_("Your choosed file does not exist: ") + file,
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
if path.isdir(file):
self.__run_message_dialog(_("Your choosed file is a directory: " + file),
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
- if file.startswith(self.__get_userhome() + "/.anthy"):
+ if file.startswith(self.__get_userhome() + '/.anthy'):
self.__run_message_dialog(_("You cannot add dictionaries in the anthy private directory: " + file),
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
if new:
id = self.__get_quoted_id(file)
- if id == None or id == "":
+ if id == None or id == '':
self.__run_message_dialog(_("Your file path is not good: ") + file,
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
- single = self.xml.get_widget('dict:single').get_active()
- embed = self.xml.get_widget('dict:embed').get_active()
- reverse = self.xml.get_widget('dict:reverse').get_active()
- short_label = self.xml.get_widget('dict:short_entry').get_text()
- if len(unicode(short_label, "utf-8")) > 1:
- short_label = unicode(short_label, "utf-8")[0].encode("utf-8")
- long_label = self.xml.get_widget('dict:long_entry').get_text()
+ single = self.__builder.get_object('dict:single').get_active()
+ embed = self.__builder.get_object('dict:embed').get_active()
+ reverse = self.__builder.get_object('dict:reverse').get_active()
+ short_label = self.__builder.get_object('dict:short_entry').get_text()
+ if len(unicode(short_label, 'utf-8')) > 1:
+ short_label = unicode(short_label, 'utf-8')[0].encode('utf-8')
+ long_label = self.__builder.get_object('dict:long_entry').get_text()
if new:
files.append(file)
self.prefs.set_value('dict', 'files', files)
- if short_label == None or short_label == "":
+ if short_label == None or short_label == '':
short_label = id[0]
- if long_label == None or long_label == "":
+ if long_label == None or long_label == '':
long_label = id
self.__update_dict_values(new, id, short_label, long_label, embed, single, reverse)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
files = []
def __init_dict_chooser_dialog(self):
- self.xml.get_widget('dict:single').set_active(True)
- self.xml.get_widget('dict:embed').set_active(False)
- self.xml.get_widget('dict:reverse').set_active(False)
- short_entry = self.xml.get_widget('dict:short_entry')
+ self.__builder.get_object('dict:single').set_active(True)
+ self.__builder.get_object('dict:embed').set_active(False)
+ self.__builder.get_object('dict:reverse').set_active(False)
+ short_entry = self.__builder.get_object('dict:short_entry')
short_entry.set_text('')
short_entry.set_editable(True)
- long_entry = self.xml.get_widget('dict:long_entry')
+ long_entry = self.__builder.get_object('dict:long_entry')
long_entry.set_text('')
long_entry.set_editable(True)
def __get_selected_dict_id(self):
- l, it = self.xml.get_widget('dict:view').get_selection().get_selected()
+ l, it = self.__builder.get_object('dict:view').get_selection().get_selected()
if not it:
return None
@@ -679,14 +690,14 @@ class AnthySetup(object):
single = prefs.get_value(section, 'single')
reverse = prefs.get_value(section, 'reverse')
- if len(unicode(short_label, "utf-8")) > 1:
- short_label = unicode(short_label, "utf-8")[0].encode("utf-8")
- self.xml.get_widget('dict:single').set_active(single)
- self.xml.get_widget('dict:embed').set_active(embed)
- self.xml.get_widget('dict:reverse').set_active(reverse)
- short_entry = self.xml.get_widget('dict:short_entry')
+ if len(prefs.unicode(short_label)) > 1:
+ short_label = prefs.unicode(short_label)[0].encode('utf-8')
+ self.__builder.get_object('dict:single').set_active(single)
+ self.__builder.get_object('dict:embed').set_active(embed)
+ self.__builder.get_object('dict:reverse').set_active(reverse)
+ short_entry = self.__builder.get_object('dict:short_entry')
short_entry.set_text(short_label)
- long_entry = self.xml.get_widget('dict:long_entry')
+ long_entry = self.__builder.get_object('dict:long_entry')
if is_system_dict:
short_entry.set_editable(False)
long_entry.set_text(_(long_label))
@@ -705,11 +716,11 @@ class AnthySetup(object):
prefs.fetch_item(section, 'short_label')
# user value is dbus.String
prefs.set_value(section, 'short_label',
- str(prefs.get_value(section, 'short_label')))
+ prefs.str(prefs.get_value(section, 'short_label')))
prefs.set_new_key(section, 'long_label')
prefs.fetch_item(section, 'long_label')
prefs.set_value(section, 'long_label',
- str(prefs.get_value(section, 'long_label')))
+ prefs.str(prefs.get_value(section, 'long_label')))
prefs.set_new_key(section, 'embed')
prefs.fetch_item(section, 'embed')
prefs.set_new_key(section, 'single')
@@ -731,10 +742,10 @@ class AnthySetup(object):
long_label = prefs.get_value(section, 'long_label')
if new:
- l = self.xml.get_widget('dict:view').get_model()
+ l = self.__builder.get_object('dict:view').get_model()
l.append([id, short_label, long_label, embed, single, reverse])
else:
- l, i = self.xml.get_widget('dict:view').get_selection().get_selected()
+ l, i = self.__builder.get_object('dict:view').get_selection().get_selected()
if i :
l[i] = [id, short_label, long_label, embed, single, reverse]
@@ -749,24 +760,24 @@ class AnthySetup(object):
key = 'reverse'
prefs.set_value(section, key, reverse)
- def __text_cell_data_cb(self, layout, renderer, model, iter, id):
- l = self.xml.get_widget('dict:view').get_model()
+ def __text_cell_data_cb(self, column, renderer, model, iter, id):
+ l = self.__builder.get_object('dict:view').get_model()
text = l.get_value(iter, id)
renderer.set_property('text', text)
- def __toggle_cell_data_cb(self, layout, renderer, model, iter, id):
- l = self.xml.get_widget('dict:view').get_model()
+ def __toggle_cell_data_cb(self, column, renderer, model, iter, id):
+ l = self.__builder.get_object('dict:view').get_model()
active = l.get_value(iter, id)
renderer.set_property('active', active)
def on_selection_changed(self, widget, id):
- set_sensitive = lambda a, b: self.xml.get_widget(a).set_sensitive(b)
+ set_sensitive = lambda a, b: self.__builder.get_object(a).set_sensitive(b)
flg = True if widget.get_selected()[1] else False
for name in [['btn_default', 'btn_edit'], ['button5', 'button6']][id]:
set_sensitive(name, flg)
def on_selection_custom_key_table_changed(self, widget, id):
- button = self.xml.get_widget('button_remove_custom_key')
+ button = self.__builder.get_object('button_remove_custom_key')
button.set_sensitive(True)
def on_main_delete(self, widget, event):
@@ -774,30 +785,32 @@ class AnthySetup(object):
return True
def on_btn_ok_clicked(self, widget):
- if self.xml.get_widget('btn_apply').state == gtk.STATE_INSENSITIVE:
- gtk.main_quit()
+ if self.__builder.get_object('btn_apply').get_state() == \
+ Gtk.StateType.INSENSITIVE:
+ Gtk.main_quit()
return True
- dlg = self.xml.get_widget('quit_check')
+ dlg = self.__builder.get_object('quit_check')
dlg.set_markup('<big><b>%s</b></big>' % _('Confirm'))
dlg.format_secondary_text(_('Are you sure to close Setup?'))
id = dlg.run()
dlg.hide()
- if id == gtk.RESPONSE_OK:
+ if id == Gtk.ResponseType.OK:
self.prefs.commit_all()
- gtk.main_quit()
+ Gtk.main_quit()
return True
def on_btn_cancel_clicked(self, widget):
- if self.xml.get_widget('btn_apply').state == gtk.STATE_INSENSITIVE:
- gtk.main_quit()
+ if self.__builder.get_object('btn_apply').get_state() == \
+ Gtk.StateType.INSENSITIVE:
+ Gtk.main_quit()
return True
- dlg = self.xml.get_widget('quit_check_without_save')
+ dlg = self.__builder.get_object('quit_check_without_save')
dlg.set_markup('<big><b>%s</b></big>' % _('Notice!'))
dlg.format_secondary_text(_('Are you sure to close Setup without save configure?'))
id = dlg.run()
dlg.hide()
- if id == gtk.RESPONSE_OK:
- gtk.main_quit()
+ if id == Gtk.ResponseType.OK:
+ Gtk.main_quit()
return True
def on_btn_apply_clicked(self, widget):
@@ -805,12 +818,12 @@ class AnthySetup(object):
widget.set_sensitive(False)
def on_cb_changed(self, widget):
- section, key = self.__get_section_key(widget.name)
+ section, key = self.__get_section_key(Gtk.Buildable.get_name(widget))
self.prefs.set_value(section, key, widget.get_active())
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_cb_custom_key_table_changed(self, widget, user_data):
- tv = self.xml.get_widget('treeview_custom_key_table')
+ tv = self.__builder.get_object('treeview_custom_key_table')
mode = user_data
id = widget.get_active()
model = widget.get_model()
@@ -828,64 +841,65 @@ class AnthySetup(object):
tv = self.__get_thumb_treeview_custom_key_table(method)
def on_sb_changed(self, widget):
- section, key = self.__get_section_key(widget.name)
+ section, key = self.__get_section_key(Gtk.Buildable.get_name(widget))
self.prefs.set_value(section, key, widget.get_value_as_int())
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_ck_toggled(self, widget):
- section, key = self.__get_section_key(widget.name)
+ section, key = self.__get_section_key(Gtk.Buildable.get_name(widget))
self.prefs.set_value(section, key, widget.get_active())
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
if self.__thumb_kb_layout_mode and \
- widget.name == self.__thumb_kb_layout_mode.name:
+ Gtk.Buildable.get_name(widget) == \
+ Gtk.Buildable.get_name(self.__thumb_kb_layout_mode):
self.__set_thumb_kb_label()
def on_btn_edit_clicked(self, widget):
- ls, it = self.xml.get_widget('shortcut').get_selection().get_selected()
- m = self.xml.get_widget('treeview2').get_model()
+ ls, it = self.__builder.get_object('shortcut').get_selection().get_selected()
+ m = self.__builder.get_object('treeview2').get_model()
m.clear()
for s in s_to_l(ls.get(it, 1)[0]):
m.append([s])
- self.xml.get_widget('entry2').set_text('')
+ self.__builder.get_object('entry2').set_text('')
for w in ['checkbutton6', 'checkbutton7', 'checkbutton8']:
- self.xml.get_widget(w).set_active(False)
- dlg = self.xml.get_widget('edit_shortcut')
+ self.__builder.get_object(w).set_active(False)
+ dlg = self.__builder.get_object('edit_shortcut')
id = dlg.run()
dlg.hide()
- if id == gtk.RESPONSE_OK:
+ if id == Gtk.ResponseType.OK:
new = l_to_s([m[i][0] for i in range(len(m))])
if new != ls.get(it, 1)[0]:
sec = self._get_shortcut_sec()
self.prefs.set_value(sec, ls.get(it, 0)[0], s_to_l(new))
ls.set(it, 1, new)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_btn_default_clicked(self, widget):
- ls, it = self.xml.get_widget('shortcut').get_selection().get_selected()
+ ls, it = self.__builder.get_object('shortcut').get_selection().get_selected()
sec = self._get_shortcut_sec()
new = l_to_s(self.prefs.default[sec][ls.get(it, 0)[0]])
if new != ls.get(it, 1)[0]:
self.prefs.set_value(sec, ls.get(it, 0)[0], s_to_l(new))
ls.set(it, 1, new)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_btn_romaji_custom_table_clicked(self, widget):
- self.__run_dialog_custom_key_table("romaji")
+ self.__run_dialog_custom_key_table('romaji')
def on_btn_kana_custom_table_clicked(self, widget):
- self.__run_dialog_custom_key_table("kana")
+ self.__run_dialog_custom_key_table('kana')
def on_btn_thumb_custom_table_clicked(self, widget):
- self.__run_dialog_custom_key_table("thumb")
+ self.__run_dialog_custom_key_table('thumb')
def on_btn_add_custom_key(self, widget, user_data):
prefs = self.prefs
- input = self.xml.get_widget('entry_input_custom_key')
- output = self.xml.get_widget('entry_output_custom_key')
- left = self.xml.get_widget('entry_left_thumb_shift_custom_key')
- right = self.xml.get_widget('entry_right_thumb_shift_custom_key')
- model = self.xml.get_widget('treeview_custom_key_table').get_model()
- combobox = self.xml.get_widget('combobox_custom_key_table')
+ input = self.__builder.get_object('entry_input_custom_key')
+ output = self.__builder.get_object('entry_output_custom_key')
+ left = self.__builder.get_object('entry_left_thumb_shift_custom_key')
+ right = self.__builder.get_object('entry_right_thumb_shift_custom_key')
+ model = self.__builder.get_object('treeview_custom_key_table').get_model()
+ combobox = self.__builder.get_object('combobox_custom_key_table')
id = combobox.get_active()
model_combobox = combobox.get_model()
method = model_combobox[id][1]
@@ -939,11 +953,11 @@ class AnthySetup(object):
right.set_text('')
input.set_text('')
output.set_text('')
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_btn_remove_custom_key(self, widget, user_data):
prefs = self.prefs
- combobox = self.xml.get_widget('combobox_custom_key_table')
+ combobox = self.__builder.get_object('combobox_custom_key_table')
id = combobox.get_active()
model_combobox = combobox.get_model()
method = model_combobox[id][1]
@@ -973,54 +987,54 @@ class AnthySetup(object):
prefs.set_value(section, key, ['', '', ''])
l.remove(i)
widget.set_sensitive(False)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_btn_thumb_key_clicked(self, widget):
- if widget.name == 'thumb:button_ls':
+ if Gtk.Buildable.get_name(widget) == 'thumb:button_ls':
entry = 'thumb:ls'
- elif widget.name == 'thumb:button_rs':
+ elif Gtk.Buildable.get_name(widget) == 'thumb:button_rs':
entry = 'thumb:rs'
else:
return
- text = self.xml.get_widget(entry).get_text()
- m = self.xml.get_widget('treeview2').get_model()
+ text = self.__builder.get_object(entry).get_text()
+ m = self.__builder.get_object('treeview2').get_model()
m.clear()
if text != None:
m.append([text])
i = m.get_iter_first()
- self.xml.get_widget('treeview2').get_selection().select_iter(i)
- self.xml.get_widget('entry2').set_text('')
- self.xml.get_widget('button4').hide()
- self.xml.get_widget('button5').show()
- self.xml.get_widget('button6').hide()
+ self.__builder.get_object('treeview2').get_selection().select_iter(i)
+ self.__builder.get_object('entry2').set_text('')
+ self.__builder.get_object('button4').hide()
+ self.__builder.get_object('button5').show()
+ self.__builder.get_object('button6').hide()
for w in ['checkbutton6', 'checkbutton7', 'checkbutton8']:
- self.xml.get_widget(w).set_active(False)
- dlg = self.xml.get_widget('edit_shortcut')
+ self.__builder.get_object(w).set_active(False)
+ dlg = self.__builder.get_object('edit_shortcut')
id = dlg.run()
dlg.hide()
- self.xml.get_widget('button4').show()
- self.xml.get_widget('button5').hide()
- self.xml.get_widget('button6').show()
- if id == gtk.RESPONSE_OK:
- l, i = self.xml.get_widget('treeview2').get_selection().get_selected()
+ self.__builder.get_object('button4').show()
+ self.__builder.get_object('button5').hide()
+ self.__builder.get_object('button6').show()
+ if id == Gtk.ResponseType.OK:
+ l, i = self.__builder.get_object('treeview2').get_selection().get_selected()
new = l[i][0]
if new != text:
section, key = self.__get_section_key(entry)
self.prefs.set_value(section, key, new)
- self.xml.get_widget(entry).set_text(new)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object(entry).set_text(new)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_btn_dict_command_clicked(self, widget):
- if widget.name == 'dict:btn_edit_dict_command':
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_edit_dict_command':
key = 'dict_admin_command'
- elif widget.name == 'dict:btn_add_word_command':
+ elif Gtk.Buildable.get_name(widget) == 'dict:btn_add_word_command':
key = 'add_word_command'
else:
return
command = self.prefs.get_value('common', key)
if not path.exists(command[0]):
self.__run_message_dialog(_("Your file does not exist: ") + command[0],
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
os.spawnl(os.P_NOWAIT, *command)
@@ -1028,48 +1042,48 @@ class AnthySetup(object):
file = None
id = None
- if widget.name == "dict:btn_add":
- dlg = gtk.FileChooserDialog(title=_("Open Dictionary File"),
- parent=self.xml.get_widget('main'),
- action=gtk.FILE_CHOOSER_ACTION_OPEN,
- buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OPEN, gtk.RESPONSE_OK))
- if widget.name == "dict:btn_edit":
- dlg = gtk.Dialog(title=_("Edit Dictionary File"),
- parent=self.xml.get_widget('main'),
- flags='modal',
- buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK))
-
- vbox = self.xml.get_widget('dict:add_extra_vbox')
- if widget.name == "dict:btn_add":
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_add':
+ dlg = Gtk.FileChooserDialog(title=_("Open Dictionary File"),
+ parent=self.__builder.get_object('main'),
+ action=Gtk.FileChooserAction.OPEN,
+ buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
+ Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_edit':
+ dlg = Gtk.Dialog(title=_("Edit Dictionary File"),
+ parent=self.__builder.get_object('main'),
+ flags=Gtk.DialogFlags.MODAL,
+ buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
+ Gtk.STOCK_OK, Gtk.ResponseType.OK))
+
+ vbox = self.__builder.get_object('dict:add_extra_vbox')
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_add':
# Need to init for the second time
self.__init_dict_chooser_dialog()
dlg.set_extra_widget(vbox)
- if widget.name == "dict:btn_edit":
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_edit':
id = self.__set_selected_dict_to_dialog()
if id == None:
self.__run_message_dialog(_("Your choosed file is not correct."),
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
parent_vbox = dlg.vbox
parent_vbox.add(vbox)
vbox.show_all()
- if dlg.run() == gtk.RESPONSE_OK:
- if widget.name == "dict:btn_add":
+ if dlg.run() == Gtk.ResponseType.OK:
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_add':
file = dlg.get_filename()
if file[0] != '/':
dir = dlg.get_current_folder()
- file = dir + "/" + file
+ file = dir + '/' + file
self.__append_user_dict_from_dialog(file, None, True)
- elif widget.name == "dict:btn_edit":
+ elif Gtk.Buildable.get_name(widget) == 'dict:btn_edit':
self.__append_user_dict_from_dialog(None, id, False)
dlg.hide()
vbox.unparent()
def on_btn_dict_delete_clicked(self, widget):
- l, i = self.xml.get_widget('dict:view').get_selection().get_selected()
+ l, i = self.__builder.get_object('dict:view').get_selection().get_selected()
if not i:
return
@@ -1079,7 +1093,7 @@ class AnthySetup(object):
return
if self.__is_system_dict_file_from_id(selected_id):
self.__run_message_dialog(_("You cannot delete the system dictionary."),
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
file = self.__get_dict_file_from_id(selected_id)
@@ -1087,7 +1101,7 @@ class AnthySetup(object):
files = self.prefs.get_value('dict', 'files')
files.remove(file)
self.prefs.set_value('dict', 'files', files)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
l.remove(i)
return
@@ -1102,11 +1116,11 @@ class AnthySetup(object):
dict_file = self.__get_dict_file_from_id(selected_id)
if dict_file == None:
self.__run_message_dialog(_("Your file is not good."),
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
if not path.exists(dict_file):
self.__run_message_dialog(_("Your file does not exist: ") + dict_file,
- gtk.MESSAGE_ERROR)
+ Gtk.MessageType.ERROR)
return
if dict_file == None:
@@ -1122,7 +1136,7 @@ class AnthySetup(object):
section = 'dict/file/default'
encoding = self.prefs.get_value(section, 'encoding')
- lines = "";
+ lines = '';
for i, line in enumerate(file(dict_file)):
if nline >= 0 and i >= nline:
break;
@@ -1130,16 +1144,17 @@ class AnthySetup(object):
if encoding != None and encoding != 'utf-8':
lines = unicode(lines, encoding).encode('utf-8')
- dlg = gtk.Dialog(title=_("View Dictionary File"),
- parent=self.xml.get_widget('main'),
- flags='modal',
- buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK))
- buffer = gtk.TextBuffer()
+ dlg = Gtk.Dialog(title=_("View Dictionary File"),
+ parent=self.__builder.get_object('main'),
+ flags=Gtk.DialogFlags.MODAL,
+ buttons=(Gtk.STOCK_OK, Gtk.ResponseType.OK))
+ buffer = Gtk.TextBuffer()
buffer.set_text (lines)
- text_view = gtk.TextView(buffer)
+ text_view = Gtk.TextView.new_with_buffer(buffer)
text_view.set_editable(False)
- sw = gtk.ScrolledWindow()
+ sw = Gtk.ScrolledWindow()
sw.add(text_view)
+ sw.set_min_content_height(400)
parent_vbox = dlg.vbox
parent_vbox.add(sw)
sw.show_all()
@@ -1149,21 +1164,22 @@ class AnthySetup(object):
def on_btn_dict_order_clicked(self, widget):
dict_file = None
- l, it = self.xml.get_widget('dict:view').get_selection().get_selected()
+ l, it = self.__builder.get_object('dict:view').get_selection().get_selected()
if not it:
return
selected_path = l.get_path(it)
selected_id = l.get_value(it, 0)
+ index = selected_path.get_indices()[0]
- if widget.name == "dict:btn_up":
- if selected_path[0] <= 0:
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_up':
+ if index <= 0:
return
- next_path = (selected_path[0] - 1, )
- elif widget.name == "dict:btn_down":
- if selected_path[0] + 1 >= len(l):
+ next_path = (index - 1, )
+ elif Gtk.Buildable.get_name(widget) == 'dict:btn_down':
+ if index + 1 >= len(l):
return
- next_path = (selected_path[0] + 1, )
+ next_path = (index + 1, )
next_it = l.get_iter(next_path)
if next_it:
l.swap(it, next_it)
@@ -1175,11 +1191,11 @@ class AnthySetup(object):
return
i = files.index(dict_file)
- if widget.name == "dict:btn_up":
+ if Gtk.Buildable.get_name(widget) == 'dict:btn_up':
if i <= 0:
return
next_i = i - 1
- elif widget.name == "dict:btn_down":
+ elif Gtk.Buildable.get_name(widget) == 'dict:btn_down':
if i + 1 >= len(dict_file):
return
next_i = i + 1
@@ -1187,15 +1203,17 @@ class AnthySetup(object):
files[i] = files[next_i]
files[next_i] = f
self.prefs.set_value('dict', 'files', files)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def _get_shortcut_sec(self):
l = ['default', 'atok', 'wnn']
- s_type = self.xml.get_widget('shortcut_type').get_active_text().lower()
+ iter = self.__builder.get_object('shortcut_type').get_active_iter()
+ model = self.__builder.get_object('shortcut_type').get_model()
+ s_type = model[iter][0].lower()
return 'shortcut/' + (s_type if s_type in l else 'default')
def on_shortcut_type_changed(self, widget):
- ls = self.xml.get_widget('shortcut').get_model()
+ ls = self.__builder.get_object('shortcut').get_model()
ls.clear()
for a in widget.get_model():
@@ -1205,45 +1223,45 @@ class AnthySetup(object):
for k in self.prefs.keys(sec):
ls.append([k, l_to_s(self.prefs.get_value(sec, k))])
- section, key = self.__get_section_key(widget.name)
+ section, key = self.__get_section_key(Gtk.Buildable.get_name(widget))
self.prefs.set_value(section, key, sec[len('shortcut/'):])
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_shortcut_key_release_event(self, widget, event):
if event.hardware_keycode in [36, 65]:
self.on_btn_edit_clicked(None)
def on_shortcut_click_event(self, widget, event):
- if event.type == gtk.gdk._2BUTTON_PRESS:
+ if event.type == Gdk.EventType._2BUTTON_PRESS:
widget.dc = True
- elif event.type == gtk.gdk.BUTTON_RELEASE:
+ elif event.type == Gdk.EventType.BUTTON_RELEASE:
if hasattr(widget, 'dc') and widget.dc:
self.on_btn_edit_clicked(None)
widget.dc = False
def on_key_input_dialog_key_press_event(self, widget, event):
- widget.e = (event.keyval, event.state)
+ widget.e = (event.keyval, event.get_state())
return True
def on_key_input_dialog_key_release_event(self, widget, event):
- widget.response(gtk.RESPONSE_OK)
+ widget.response(Gtk.ResponseType.OK)
return True
def on_entry_custom_key_changed(self, widget, user_data):
mode = user_data
- input = self.xml.get_widget('entry_input_custom_key')
- output = self.xml.get_widget('entry_output_custom_key')
- left = self.xml.get_widget('entry_left_thumb_shift_custom_key')
- right = self.xml.get_widget('entry_right_thumb_shift_custom_key')
- button = self.xml.get_widget('button_add_custom_key')
- if mode != "thumb":
- if input.get_text() != "" and output.get_text() != "":
+ input = self.__builder.get_object('entry_input_custom_key')
+ output = self.__builder.get_object('entry_output_custom_key')
+ left = self.__builder.get_object('entry_left_thumb_shift_custom_key')
+ right = self.__builder.get_object('entry_right_thumb_shift_custom_key')
+ button = self.__builder.get_object('button_add_custom_key')
+ if mode != 'thumb':
+ if input.get_text() != '' and output.get_text() != '':
button.set_sensitive(True)
else:
button.set_sensitive(False)
else:
- if input.get_text() != "" and output.get_text() != "" and \
- left.get_text() != "" and right.get_text() != "":
+ if input.get_text() != '' and output.get_text() != '' and \
+ left.get_text() != '' and right.get_text() != '':
button.set_sensitive(True)
else:
button.set_sensitive(False)
@@ -1263,63 +1281,63 @@ class AnthySetup(object):
else:
list.insert(0, '/usr/bin/' + list[0])
list[1] = list[1][list[1].rfind('/') + 1:]
- if widget.name == 'dict:entry_edit_dict_command':
+ if Gtk.Buildable.get_name(widget) == 'dict:entry_edit_dict_command':
key = 'dict_admin_command'
- elif widget.name == 'dict:entry_add_word_command':
+ elif Gtk.Buildable.get_name(widget) == 'dict:entry_add_word_command':
key = 'add_word_command'
else:
return
self.prefs.set_value('common', key, list)
- self.xml.get_widget('btn_apply').set_sensitive(True)
+ self.__builder.get_object('btn_apply').set_sensitive(True)
def on_entry2_changed(self, widget):
if not widget.get_text():
- self.xml.get_widget('button4').set_sensitive(False)
+ self.__builder.get_object('button4').set_sensitive(False)
else:
- self.xml.get_widget('button4').set_sensitive(True)
+ self.__builder.get_object('button4').set_sensitive(True)
def on_button7_clicked(self, widget):
- dlg = self.xml.get_widget('key_input_dialog')
+ dlg = self.__builder.get_object('key_input_dialog')
dlg.set_markup('<big><b>%s</b></big>' % _('Please press a key (or a key combination)'))
dlg.format_secondary_text(_('The dialog will be closed when the key is released'))
id = dlg.run()
dlg.hide()
- if id == gtk.RESPONSE_OK:
+ if id == Gtk.ResponseType.OK:
key, state = dlg.e
- if (state & (modifier.CONTROL_MASK | modifier.ALT_MASK) and
+ if (state & (IBus.ModifierType.CONTROL_MASK | IBus.ModifierType.MOD1_MASK) and
ord('a') <= key <= ord('z')):
key = ord(chr(key).upper())
- self.xml.get_widget('entry2').set_text(keysyms.keycode_to_name(key))
+ self.__builder.get_object('entry2').set_text(IBus.keyval_name(key))
- for w, i in [('checkbutton6', modifier.CONTROL_MASK),
- ('checkbutton7', modifier.ALT_MASK),
- ('checkbutton8', modifier.SHIFT_MASK)]:
- self.xml.get_widget(w).set_active(True if state & i else False)
+ for w, i in [('checkbutton6', IBus.ModifierType.CONTROL_MASK),
+ ('checkbutton7', IBus.ModifierType.MOD1_MASK),
+ ('checkbutton8', IBus.ModifierType.SHIFT_MASK)]:
+ self.__builder.get_object(w).set_active(True if state & i else False)
def on_button4_clicked(self, widget):
- s = self.xml.get_widget('entry2').get_text()
- if not s or not keysyms.name_to_keycode(s):
- dlg = self.xml.get_widget('invalid_keysym')
- dlg.set_markup('<big><b>%s</b></big>' % _('Invalid keysym'))
- dlg.format_secondary_text(_('This keysym is not valid'))
+ s = self.__builder.get_object('entry2').get_text()
+ if not s or not IBus.keyval_from_name(s):
+ dlg = self.__builder.get_object('invalid_keysym')
+ dlg.set_markup('<big><b>%s</b></big>' % _("Invalid keysym"))
+ dlg.format_secondary_text(_("This keysym is not valid"))
dlg.run()
dlg.hide()
return True
for w, m in [('checkbutton6', 'Ctrl+'),
('checkbutton7', 'Alt+'),
('checkbutton8', 'Shift+')]:
- if self.xml.get_widget(w).get_active():
+ if self.__builder.get_object(w).get_active():
s = m + s
- l = self.xml.get_widget('treeview2').get_model()
+ l = self.__builder.get_object('treeview2').get_model()
for i in range(len(l)):
if l[i][0] == s:
return True
l.append([s])
def on_button5_clicked(self, widget):
- s = self.xml.get_widget('entry2').get_text()
- if not s or not keysyms.name_to_keycode(s):
- dlg = self.xml.get_widget('invalid_keysym')
+ s = self.__builder.get_object('entry2').get_text()
+ if not s or not IBus.keyval_from_name(s):
+ dlg = self.__builder.get_object('invalid_keysym')
dlg.set_markup('<big><b>%s</b></big>' % _('Invalid keysym'))
dlg.format_secondary_text(_('This keysym is not valid'))
dlg.run()
@@ -1328,21 +1346,20 @@ class AnthySetup(object):
for w, m in [('checkbutton6', 'Ctrl+'),
('checkbutton7', 'Alt+'),
('checkbutton8', 'Shift+')]:
- if self.xml.get_widget(w).get_active():
+ if self.__builder.get_object(w).get_active():
s = m + s
- l, i = self.xml.get_widget('treeview2').get_selection().get_selected()
+ l, i = self.__builder.get_object('treeview2').get_selection().get_selected()
l[i][0] = s
return True
def on_button6_clicked(self, widget):
- l, i = self.xml.get_widget('treeview2').get_selection().get_selected()
+ l, i = self.__builder.get_object('treeview2').get_selection().get_selected()
if i:
l.remove(i)
def run(self):
- gtk.main()
-
+ Gtk.main()
-if __name__ == "__main__":
+if __name__ == '__main__':
AnthySetup().run()