diff --git a/.gitignore b/.gitignore index cfe7325..e254b8f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ ibus-hangul-1.3.0.20100329.tar.gz /ibus-hangul-1.3.2.tar.gz /ibus-hangul-1.4.0.tar.gz /ibus-hangul-1.4.1.tar.gz +/ibus-hangul-1.4.2.tar.gz diff --git a/ibus-hangul-HEAD.patch b/ibus-hangul-HEAD.patch deleted file mode 100644 index a467486..0000000 --- a/ibus-hangul-HEAD.patch +++ /dev/null @@ -1,424 +0,0 @@ -diff --git a/setup/ibus-setup-hangul.desktop.in b/setup/ibus-setup-hangul.desktop.in -index a956593..882abbc 100644 ---- a/setup/ibus-setup-hangul.desktop.in -+++ b/setup/ibus-setup-hangul.desktop.in -@@ -4,6 +4,7 @@ _Name=IBus Hangul Preferences - _Comment=Set IBus Hangul Preferences - Exec=ibus-setup-hangul - Icon=ibus-setup-hangul -+NoDisplay=true - Terminal=false - Type=Application - StartupNotify=true -diff --git a/setup/keycapturedialog.py b/setup/keycapturedialog.py -index a6c9cff..a431221 100644 ---- a/setup/keycapturedialog.py -+++ b/setup/keycapturedialog.py -@@ -1,42 +1,42 @@ --import gtk --import gtk.gdk as gdk -+from gi.repository import Gtk -+from gi.repository import Gdk - import gettext - - _ = lambda a : gettext.dgettext("ibus-hangul", a) - - class KeyCaptureDialog (): - def __init__ (self, title, parent): -- self.__key_str = '' -- self.__dialog = gtk.MessageDialog(parent, -- gtk.DIALOG_MODAL, -- gtk.MESSAGE_INFO, -- gtk.BUTTONS_OK_CANCEL, -- "") -- self.__dialog.set_markup(_("Press any key which you want to use as hanja key. " -+ self.__key_str = '' -+ self.__dialog = Gtk.MessageDialog(parent, -+ Gtk.DialogFlags.MODAL, -+ Gtk.MessageType.INFO, -+ Gtk.ButtonsType.OK_CANCEL, -+ "") -+ self.__dialog.set_markup(_("Press any key which you want to use as hanja key. " - "The key you pressed is displayed below.\n" - "If you want to use it, click \"Ok\" or click \"Cancel\"")) - -- self.__dialog.format_secondary_markup(" ") -- self.__dialog.connect("key-press-event", self.on_keypress, None) -+ self.__dialog.format_secondary_markup(" ") -+ self.__dialog.connect("key-press-event", self.on_keypress, None) - - def destroy(self): -- self.__dialog.destroy() -+ self.__dialog.destroy() - - def run(self): -- return self.__dialog.run() -+ return self.__dialog.run() - - def get_key_string(self): -- return self.__key_str -+ return self.__key_str - - def on_keypress(self, widget, event, data = None): -- self.__key_str = "" -- if event.state & gdk.CONTROL_MASK : -- self.__key_str += "Control+" -- if event.state & gdk.MOD1_MASK : -- self.__key_str += "Alt+" -- if event.state & gdk.SHIFT_MASK : -- self.__key_str += "Shift+" -- -- self.__key_str += gdk.keyval_name(event.keyval) -- -- self.__dialog.format_secondary_markup('%s' % self.__key_str) -+ self.__key_str = "" -+ if event.state & Gdk.ModifierType.CONTROL_MASK : -+ self.__key_str += "Control+" -+ if event.state & Gdk.ModifierType.MOD1_MASK : -+ self.__key_str += "Alt+" -+ if event.state & Gdk.ModifierType.SHIFT_MASK : -+ self.__key_str += "Shift+" -+ -+ self.__key_str += Gdk.keyval_name(event.keyval) -+ -+ self.__dialog.format_secondary_markup('%s' % self.__key_str) -diff --git a/setup/main.py b/setup/main.py -index 28a66a9..ce33db7 100644 ---- a/setup/main.py -+++ b/setup/main.py -@@ -20,9 +20,9 @@ - - import sys - import os --import gobject --import gtk --import ibus -+from gi.repository import GLib -+from gi.repository import Gtk -+from gi.repository import IBus - import locale - import gettext - import config -@@ -35,157 +35,166 @@ class Setup (): - def __init__ (self, bus): - self.__bus = bus - self.__config = self.__bus.get_config() -- self.__config.connect("value-changed", self.on_value_changed, None) -- -- ui_file = os.path.join(os.path.dirname(__file__), "setup.ui") -- self.__builder = gtk.Builder() -- self.__builder.set_translation_domain(config.gettext_package) -- self.__builder.add_from_file(ui_file) -- -- # Hangul tab -- pipe = subprocess.Popen([config.setuplibdir + '/hangul_keyboard_list'], stdout = subprocess.PIPE) -- list = pipe.communicate()[0].split('\n') -- -- self.__hangul_keyboard = self.__builder.get_object("HangulKeyboard") -- model = gtk.ListStore(str, str, int) -- i = 0 -- for line in list: -- items = line.split('\t') -- if len(items) > 1: -- model.append([items[1], items[0], i]) -- i+=1 -- -- self.__hangul_keyboard.set_model(model) -- renderer = gtk.CellRendererText() -- self.__hangul_keyboard.pack_start(renderer) -- self.__hangul_keyboard.add_attribute(renderer, "text", 0) -- -- current = self.__read("HangulKeyboard", "2") -- for i in model: -- if i[1] == current: -- self.__hangul_keyboard.set_active(i[2]) -- break -- -- self.__word_commit = self.__builder.get_object("WordCommit") -- -- word_commit = self.__read("WordCommit", False) -+ self.__config.connect("value-changed", self.on_value_changed, None) -+ -+ ui_file = os.path.join(os.path.dirname(__file__), "setup.ui") -+ self.__builder = Gtk.Builder() -+ self.__builder.set_translation_domain(config.gettext_package) -+ self.__builder.add_from_file(ui_file) -+ -+ # Hangul tab -+ pipe = subprocess.Popen([config.setuplibdir + '/hangul_keyboard_list'], stdout = subprocess.PIPE) -+ list = pipe.communicate()[0].split('\n') -+ -+ self.__hangul_keyboard = self.__builder.get_object("HangulKeyboard") -+ model = Gtk.ListStore(str, str, int) -+ i = 0 -+ for line in list: -+ items = line.split('\t') -+ if len(items) > 1: -+ model.append([items[1], items[0], i]) -+ i+=1 -+ -+ self.__hangul_keyboard.set_model(model) -+ renderer = Gtk.CellRendererText() -+ self.__hangul_keyboard.pack_start(renderer, True) -+ self.__hangul_keyboard.add_attribute(renderer, "text", 0) -+ -+ default = GLib.Variant.new_string("2") -+ current = self.__read("HangulKeyboard", default).get_string() -+ for i in model: -+ if i[1] == current: -+ self.__hangul_keyboard.set_active(i[2]) -+ break -+ -+ self.__word_commit = self.__builder.get_object("WordCommit") -+ -+ default = GLib.Variant.new_boolean(False) -+ word_commit = self.__read("WordCommit", default).get_boolean() - self.__word_commit.set_active(word_commit) - -- self.__auto_reorder = self.__builder.get_object("AutoReorder") -- auto_reorder = self.__read("AutoReorder", True) -+ self.__auto_reorder = self.__builder.get_object("AutoReorder") -+ default = GLib.Variant.new_boolean(True) -+ auto_reorder = self.__read("AutoReorder", default).get_boolean() - self.__auto_reorder.set_active(auto_reorder) - -- # hanja tab -- button = self.__builder.get_object("HanjaKeyListAddButton") -- button.connect("clicked", self.on_hanja_key_add, None) -+ # hanja tab -+ button = self.__builder.get_object("HanjaKeyListAddButton") -+ button.connect("clicked", self.on_hanja_key_add, None) - -- button = self.__builder.get_object("HanjaKeyListRemoveButton") -- button.connect("clicked", self.on_hanja_key_remove, None) -+ button = self.__builder.get_object("HanjaKeyListRemoveButton") -+ button.connect("clicked", self.on_hanja_key_remove, None) - -- model = gtk.ListStore(str) -+ model = Gtk.ListStore(str) - -- keylist_str = self.__read("HanjaKeys", "Hangul_Hanja,F9") -- self.__hanja_key_list_str = keylist_str.split(',') -- for i in self.__hanja_key_list_str: -- model.append([i]) -+ default = GLib.Variant.new_string("Hangul_Hanja,F9") -+ keylist_str = self.__read("HanjaKeys", default).get_string() -+ self.__hanja_key_list_str = keylist_str.split(',') -+ for i in self.__hanja_key_list_str: -+ model.append([i]) - -- self.__hanja_key_list = self.__builder.get_object("HanjaKeyList") -- self.__hanja_key_list.set_model(model) -- column = gtk.TreeViewColumn() -- column.set_title("key") -- renderer = gtk.CellRendererText() -- column.pack_start(renderer) -- column.add_attribute(renderer, "text", 0) -- self.__hanja_key_list.append_column(column) -+ self.__hanja_key_list = self.__builder.get_object("HanjaKeyList") -+ self.__hanja_key_list.set_model(model) -+ column = Gtk.TreeViewColumn() -+ column.set_title("key") -+ renderer = Gtk.CellRendererText() -+ column.pack_start(renderer, True) -+ column.add_attribute(renderer, "text", 0) -+ self.__hanja_key_list.append_column(column) - -+ # advanced tab -+ notebook = self.__builder.get_object("SetupNotebook") -+ notebook.remove_page(2) - -- # advanced tab -- notebook = self.__builder.get_object("SetupNotebook") -- notebook.remove_page(2) -+ # setup dialog -+ self.__window = self.__builder.get_object("SetupDialog") -+ icon_file = os.path.join(config.pkgdatadir, "icons", "ibus-hangul.svg") -+ self.__window.set_icon_from_file(icon_file) -+ self.__window.connect("response", self.on_response, None) -+ self.__window.show() - -- # setup dialog -- self.__window = self.__builder.get_object("SetupDialog") -- icon_file = os.path.join(config.pkgdatadir, "icons", "ibus-hangul.svg") -- self.__window.set_icon_from_file(icon_file) -- self.__window.connect("response", self.on_response, None) -- self.__window.show() -- -- ok_button = self.__builder.get_object("button_cancel") -- ok_button.grab_focus() -+ ok_button = self.__builder.get_object("button_cancel") -+ ok_button.grab_focus() - - def run(self): -- res = self.__window.run() -- if (res == gtk.RESPONSE_OK): -- self.on_ok() -- self.__window.destroy() -+ res = self.__window.run() -+ if (res == Gtk.ResponseType.OK): -+ self.on_ok() -+ self.__window.destroy() - - def apply(self): -- model = self.__hangul_keyboard.get_model() -- i = self.__hangul_keyboard.get_active() -- self.__write("HangulKeyboard", model[i][1]) -+ model = self.__hangul_keyboard.get_model() -+ i = self.__hangul_keyboard.get_active() -+ self.__write("HangulKeyboard", GLib.Variant.new_string(model[i][1])) - - word_commit = self.__word_commit.get_active() -- self.__write("WordCommit", word_commit) -- -- model = self.__hanja_key_list.get_model() -- str = "" -- iter = model.get_iter_first() -- while iter: -- if len(str) > 0: -- str += "," -- str += model.get_value(iter, 0) -- else: -- str += model.get_value(iter, 0) -- iter = model.iter_next(iter) -- self.__write("HanjaKeys", str) -+ self.__write("WordCommit", GLib.Variant.new_boolean(word_commit)) -+ -+ auto_reorder = self.__auto_reorder.get_active() -+ self.__write("AutoReorder", GLib.Variant.new_boolean(auto_reorder)) -+ -+ model = self.__hanja_key_list.get_model() -+ str = "" -+ iter = model.get_iter_first() -+ while iter: -+ if len(str) > 0: -+ str += "," -+ str += model.get_value(iter, 0) -+ else: -+ str += model.get_value(iter, 0) -+ iter = model.iter_next(iter) -+ self.__write("HanjaKeys", GLib.Variant.new_string(str)) - - def on_response(self, widget, id, data = None): -- if id == gtk.RESPONSE_APPLY: -- self.apply() -- widget.emit_stop_by_name("response") -- if id == gtk.RESPONSE_NONE: -- widget.emit_stop_by_name("response") -+ if id == Gtk.ResponseType.APPLY: -+ self.apply() -+ widget.emit_stop_by_name("response") -+ if id == Gtk.ResponseType.NONE: -+ widget.emit_stop_by_name("response") - - def on_ok(self): -- self.apply() -+ self.apply() - - def on_hanja_key_add(self, widget, data = None): -- dialog = KeyCaptureDialog(_("Select Hanja key"), self.__window) -- res = dialog.run() -- if res == gtk.RESPONSE_OK: -- key_str = dialog.get_key_string() -- if len(key_str) > 0: -- model = self.__hanja_key_list.get_model() -- iter = model.get_iter_first() -- while iter: -- str = model.get_value(iter, 0) -- if str == key_str: -- model.remove(iter) -- break -- iter = model.iter_next(iter) -- -- model.append([key_str]) -- dialog.destroy() -+ dialog = KeyCaptureDialog(_("Select Hanja key"), self.__window) -+ res = dialog.run() -+ if res == Gtk.ResponseType.OK: -+ key_str = dialog.get_key_string() -+ if len(key_str) > 0: -+ model = self.__hanja_key_list.get_model() -+ iter = model.get_iter_first() -+ while iter: -+ str = model.get_value(iter, 0) -+ if str == key_str: -+ model.remove(iter) -+ break -+ iter = model.iter_next(iter) -+ -+ model.append([key_str]) -+ dialog.destroy() - - def on_hanja_key_remove(self, widget, data = None): -- selection = self.__hanja_key_list.get_selection() -- (model, iter) = selection.get_selected() -- if model and iter: -- model.remove(iter) -+ selection = self.__hanja_key_list.get_selection() -+ (model, iter) = selection.get_selected() -+ if model and iter: -+ model.remove(iter) - - def on_value_changed(self, config, section, name, value, data): -- if section == "engine/Hangul": -- if name == "HangulKeyboard": -- model = self.__hangul_keyboard.get_model() -- for i in model: -- if i[1] == value: -- self.__hangul_keyboard.set_active(i[2]) -- break -- elif name == "HanjaKeys": -- self.__hanja_key_list_str = value.split(',') -+ if section == "engine/Hangul": -+ if name == "HangulKeyboard": -+ model = self.__hangul_keyboard.get_model() -+ for i in model: -+ if i[1] == value: -+ self.__hangul_keyboard.set_active(i[2]) -+ break -+ elif name == "HanjaKeys": -+ self.__hanja_key_list_str = value.split(',') - - def __read(self, name, v): -- return self.__config.get_value("engine/Hangul", name, v) -+ value = self.__config.get_value("engine/Hangul", name) -+ if value is None: -+ return v -+ return value - - def __write(self, name, v): - return self.__config.set_value("engine/Hangul", name, v) -@@ -194,14 +203,13 @@ if __name__ == "__main__": - locale.bindtextdomain(config.gettext_package, config.localedir) - locale.bind_textdomain_codeset(config.gettext_package, "UTF-8") - -- try: -- bus = ibus.Bus() -- except: -+ bus = IBus.Bus() -+ if bus.is_connected(): -+ Setup(bus).run() -+ else: - message = _("IBus daemon is not running.\nHangul engine settings cannot be saved.") -- dialog = gtk.MessageDialog(type = gtk.MESSAGE_ERROR, -- buttons = gtk.BUTTONS_CLOSE, -+ dialog = Gtk.MessageDialog(type = Gtk.MessageType.ERROR, -+ buttons = Gtk.ButtonsType.CLOSE, - message_format = message) - dialog.run() - sys.exit(1) -- -- Setup(bus).run() -diff --git a/src/hangul.xml.in.in b/src/hangul.xml.in.in -index c175437..71f9043 100644 ---- a/src/hangul.xml.in.in -+++ b/src/hangul.xml.in.in -@@ -18,7 +18,7 @@ - Peng Huang <shawn.p.huang@gmail.com> - ibus-hangul - us -- Korean -+ Hangul - Korean Input Method - 99 - diff --git a/sources b/sources index 4e271b7..3f874f4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c9615a9f704a4c29252028407329e1c3 ibus-hangul-1.4.1.tar.gz +0229eab9481355bb5f54230890bfa910 ibus-hangul-1.4.2.tar.gz