diff --git a/ibus-hangul-HEAD.patch b/ibus-hangul-HEAD.patch new file mode 100644 index 0000000..a467486 --- /dev/null +++ b/ibus-hangul-HEAD.patch @@ -0,0 +1,424 @@ +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/ibus-hangul-add-hangul-hotkey.patch b/ibus-hangul-add-hangul-hotkey.patch deleted file mode 100644 index 57934d4..0000000 --- a/ibus-hangul-add-hangul-hotkey.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: ibus-hangul-1.4.0/src/hangul.xml.in.in -=================================================================== ---- ibus-hangul-1.4.0.orig/src/hangul.xml.in.in -+++ ibus-hangul-1.4.0/src/hangul.xml.in.in -@@ -22,6 +22,7 @@ - Korean Input Method - 99 - -+ Control+space,Hangul - - - diff --git a/ibus-hangul-engine-name.patch b/ibus-hangul-engine-name.patch deleted file mode 100644 index 70d21b2..0000000 --- a/ibus-hangul-engine-name.patch +++ /dev/null @@ -1,23 +0,0 @@ -From f1b2a97b428d8432604ec782505516b9ea1fe565 Mon Sep 17 00:00:00 2001 -From: Choe Hwanjin -Date: Mon, 22 Oct 2012 01:39:51 +0900 -Subject: [PATCH] Rename this engine to "Hangul" - -"Hangul" means this engine is using libhangul. ---- - src/hangul.xml.in.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -Index: ibus-hangul-1.4.1/src/hangul.xml.in.in -=================================================================== ---- ibus-hangul-1.4.1.orig/src/hangul.xml.in.in -+++ ibus-hangul-1.4.1/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/ibus-hangul-setup-gi.patch b/ibus-hangul-setup-gi.patch deleted file mode 100644 index b082e56..0000000 --- a/ibus-hangul-setup-gi.patch +++ /dev/null @@ -1,232 +0,0 @@ -From 010540d2a05fee1f8f4971db5ffa5885981aba29 Mon Sep 17 00:00:00 2001 -From: Daiki Ueno -Date: Wed, 25 Jan 2012 11:46:33 +0900 -Subject: [PATCH] ibus-setup-hangul: use gobject-introspection instead ibus - python library. - ---- - setup/keycapturedialog.py | 20 +++++++------- - setup/main.py | 65 +++++++++++++++++++++++++-------------------- - 2 files changed, 46 insertions(+), 39 deletions(-) - -Index: ibus-hangul-1.4.1/setup/keycapturedialog.py -=================================================================== ---- ibus-hangul-1.4.1.orig/setup/keycapturedialog.py -+++ ibus-hangul-1.4.1/setup/keycapturedialog.py -@@ -1,5 +1,5 @@ --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) -@@ -7,10 +7,10 @@ _ = lambda a : gettext.dgettext("ibus-ha - 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 = 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" -@@ -30,13 +30,13 @@ class KeyCaptureDialog (): - - def on_keypress(self, widget, event, data = None): - self.__key_str = "" -- if event.state & gdk.CONTROL_MASK : -+ if event.state & Gdk.ModifierType.CONTROL_MASK : - self.__key_str += "Control+" -- if event.state & gdk.MOD1_MASK : -+ if event.state & Gdk.ModifierType.MOD1_MASK : - self.__key_str += "Alt+" -- if event.state & gdk.SHIFT_MASK : -+ if event.state & Gdk.ModifierType.SHIFT_MASK : - self.__key_str += "Shift+" - -- self.__key_str += gdk.keyval_name(event.keyval) -+ self.__key_str += Gdk.keyval_name(event.keyval) - - self.__dialog.format_secondary_markup('%s' % self.__key_str) -Index: ibus-hangul-1.4.1/setup/main.py -=================================================================== ---- ibus-hangul-1.4.1.orig/setup/main.py -+++ ibus-hangul-1.4.1/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 -@@ -38,7 +38,7 @@ class Setup (): - 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 = Gtk.Builder() - self.__builder.set_translation_domain(config.gettext_package) - self.__builder.add_from_file(ui_file) - -@@ -47,7 +47,7 @@ class Setup (): - list = pipe.communicate()[0].split('\n') - - self.__hangul_keyboard = self.__builder.get_object("HangulKeyboard") -- model = gtk.ListStore(str, str, int) -+ model = Gtk.ListStore(str, str, int) - i = 0 - for line in list: - items = line.split('\t') -@@ -56,11 +56,12 @@ class Setup (): - i+=1 - - self.__hangul_keyboard.set_model(model) -- renderer = gtk.CellRendererText() -- self.__hangul_keyboard.pack_start(renderer) -+ renderer = Gtk.CellRendererText() -+ self.__hangul_keyboard.pack_start(renderer, True) - self.__hangul_keyboard.add_attribute(renderer, "text", 0) - -- current = self.__read("HangulKeyboard", "2") -+ 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]) -@@ -68,11 +69,13 @@ class Setup (): - - self.__word_commit = self.__builder.get_object("WordCommit") - -- word_commit = self.__read("WordCommit", False) -+ 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) -+ default = GLib.Variant.new_boolean(True) -+ auto_reorder = self.__read("AutoReorder", default).get_boolean() - self.__auto_reorder.set_active(auto_reorder) - - # hanja tab -@@ -82,19 +85,20 @@ class Setup (): - 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") -+ 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 = Gtk.TreeViewColumn() - column.set_title("key") -- renderer = gtk.CellRendererText() -- column.pack_start(renderer) -+ renderer = Gtk.CellRendererText() -+ column.pack_start(renderer, True) - column.add_attribute(renderer, "text", 0) - self.__hanja_key_list.append_column(column) - -@@ -115,17 +119,20 @@ class Setup (): - - def run(self): - res = self.__window.run() -- if (res == gtk.RESPONSE_OK): -+ 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]) -+ self.__write("HangulKeyboard", GLib.Variant.new_string(model[i][1])) - - word_commit = self.__word_commit.get_active() -- self.__write("WordCommit", word_commit) -+ 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 = "" -@@ -137,13 +144,13 @@ class Setup (): - else: - str += model.get_value(iter, 0) - iter = model.iter_next(iter) -- self.__write("HanjaKeys", str) -+ self.__write("HanjaKeys", GLib.Variant.new_string(str)) - - def on_response(self, widget, id, data = None): -- if id == gtk.RESPONSE_APPLY: -+ if id == Gtk.ResponseType.APPLY: - self.apply() - widget.emit_stop_by_name("response") -- if id == gtk.RESPONSE_NONE: -+ if id == Gtk.ResponseType.NONE: - widget.emit_stop_by_name("response") - - def on_ok(self): -@@ -152,7 +159,7 @@ class Setup (): - def on_hanja_key_add(self, widget, data = None): - dialog = KeyCaptureDialog(_("Select Hanja key"), self.__window) - res = dialog.run() -- if res == gtk.RESPONSE_OK: -+ if res == Gtk.ResponseType.OK: - key_str = dialog.get_key_string() - if len(key_str) > 0: - model = self.__hanja_key_list.get_model() -@@ -185,7 +192,10 @@ class Setup (): - 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 +204,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/ibus-hangul.spec b/ibus-hangul.spec index 6a90e45..14b4bc6 100644 --- a/ibus-hangul.spec +++ b/ibus-hangul.spec @@ -1,9 +1,10 @@ %global require_ibus_version 1.3.99 %global require_libhangul_version 0.1.0 -%if 0%{?fedora} > 15 || 0%{?rhel} > 6 -%define have_bridge_hotkey 1 -%else +# bridge hotkey local feature was enabled in ibus for F-15 and F-16 +%if 0%{?fedora} > 16 || 0%{?rhel} > 6 %define have_bridge_hotkey 0 +%else +%define have_bridge_hotkey 1 %endif # ibus pulls pygobject3 since F-17 %if 0%{?fedora} > 16 || 0%{?rhel} > 6 @@ -14,18 +15,18 @@ Name: ibus-hangul Version: 1.4.1 -Release: 6%{?dist} +Release: 7%{?dist} Summary: The Hangul engine for IBus input platform License: GPLv2+ Group: System Environment/Libraries URL: http://code.google.com/p/ibus/ Source0: http://ibus.googlecode.com/files/%{name}-%{version}.tar.gz -#Patch0: ibus-hangul-HEAD.patch -Patch1: ibus-hangul-setup-gi.patch +# upstreamed patches +Patch0: ibus-hangul-HEAD.patch +# not upstreamed patches %if %have_bridge_hotkey Patch2: ibus-hangul-add-hangul-hotkey.patch %endif -Patch3: ibus-hangul-engine-name.patch BuildRequires: gettext-devel BuildRequires: intltool @@ -47,15 +48,12 @@ libhangul. %prep %setup -q -#patch0 -p1 -b .HEAD -%patch1 -p1 -b .setup-gi +%patch0 -p1 -b .HEAD %if %have_bridge_hotkey %patch2 -p1 -b .add-hangul-hotkey %endif -%patch3 -p1 -b .engine-name - %build autoreconf %configure --disable-static %{?_with_hotkeys} @@ -93,6 +91,10 @@ fi %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Nov 15 2012 Daiki Ueno - 1.4.1-7 +- Re-add ibus-hangul-HEAD.patch based on recent upstream change +- Apply ibus-hangul-add-hangul-hotkey.patch only for F-15 and F-16 + * Wed Oct 31 2012 Daiki Ueno - 1.4.1-6 - Add ibus-hangul-engine-name.patch - Update ibus-hangul-setup-gi.patch