summaryrefslogtreecommitdiff
path: root/setup/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup/main.py')
-rw-r--r--setup/main.py62
1 files changed, 27 insertions, 35 deletions
diff --git a/setup/main.py b/setup/main.py
index 90573e3..dae7234 100644
--- a/setup/main.py
+++ b/setup/main.py
@@ -20,6 +20,7 @@
import sys
import os
+from gi.repository import Gio
from gi.repository import GLib
from gi.repository import Gtk
from gi.repository import IBus
@@ -53,8 +54,8 @@ def get_hangul_keyboard_list():
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)
+ self.__settings = Gio.Settings(schema="org.freedesktop.ibus.engine.hangul")
+ self.__settings.connect("changed", self.on_value_changed)
ui_file = os.path.join(os.path.dirname(__file__), "setup.ui")
self.__builder = Gtk.Builder()
@@ -76,26 +77,22 @@ class Setup ():
self.__hangul_keyboard.pack_start(renderer, True)
self.__hangul_keyboard.add_attribute(renderer, "text", 0)
- default = GLib.Variant.new_string("2")
- current = self.__read("hangul-keyboard", default).get_string()
+ current = self.__read("hangul-keyboard").get_string()
for i in model:
if i[1] == current:
self.__hangul_keyboard.set_active(i[2])
break
self.__start_in_hangul_mode = self.__builder.get_object("StartInHangulMode")
- default = GLib.Variant.new_string("latin")
- initial_input_mode = self.__read("initial-input-mode", default).get_string()
+ initial_input_mode = self.__read("initial-input-mode").get_string()
self.__start_in_hangul_mode.set_active(initial_input_mode == "hangul")
self.__word_commit = self.__builder.get_object("WordCommit")
- default = GLib.Variant.new_boolean(False)
- word_commit = self.__read("word-commit", default).get_boolean()
+ word_commit = self.__read("word-commit").get_boolean()
self.__word_commit.set_active(word_commit)
self.__auto_reorder = self.__builder.get_object("AutoReorder")
- default = GLib.Variant.new_boolean(True)
- auto_reorder = self.__read("auto-reorder", default).get_boolean()
+ auto_reorder = self.__read("auto-reorder").get_boolean()
self.__auto_reorder.set_active(auto_reorder)
button = self.__builder.get_object("HangulKeyListAddButton")
@@ -106,8 +103,7 @@ class Setup ():
model = Gtk.ListStore(str)
- default = GLib.Variant.new_string("Hangul,Shift+space")
- keylist_str = self.__read("switch-keys", default).get_string()
+ keylist_str = self.__read("switch-keys").get_string()
self.__hangul_key_list_str = keylist_str.split(',')
for i in self.__hangul_key_list_str:
model.append([i])
@@ -130,8 +126,7 @@ class Setup ():
model = Gtk.ListStore(str)
- default = GLib.Variant.new_string("Hangul_Hanja,F9")
- keylist_str = self.__read("hanja-keys", default).get_string()
+ keylist_str = self.__read("hanja-keys").get_string()
self.__hanja_key_list_str = keylist_str.split(',')
for i in self.__hanja_key_list_str:
model.append([i])
@@ -270,27 +265,24 @@ class Setup ():
if model and iter:
model.remove(iter)
- def on_value_changed(self, config, section, name, value, data):
- if section == "engine/Hangul":
- if name == "hangul-keyboard":
- model = self.__hangul_keyboard.get_model()
- for i in model:
- if i[1] == value:
- self.__hangul_keyboard.set_active(i[2])
- break
- elif name == "switch-keys":
- self.__hangul_key_list_str = value.split(',')
- elif name == "hanja-keys":
- self.__hanja_key_list_str = value.split(',')
-
- def __read(self, 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)
+ def on_value_changed(self, settings, key):
+ value = settings.get_value(key)
+ if key == "hangul-keyboard":
+ model = self.__hangul_keyboard.get_model()
+ for i in model:
+ if i[1] == value.get_string():
+ self.__hangul_keyboard.set_active(i[2])
+ break
+ elif key == "switch-keys":
+ self.__hangul_key_list_str = value.get_string().split(',')
+ elif key == "hanja-keys":
+ self.__hanja_key_list_str = value.get_string().split(',')
+
+ def __read(self, key):
+ return self.__settings.get_value(key)
+
+ def __write(self, key, v):
+ self.__settings.set_value(key, v)
if __name__ == "__main__":
locale.bindtextdomain(config.gettext_package, config.localedir)