summaryrefslogtreecommitdiffstats
path: root/daemon/config.py
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-07-30 11:37:27 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-07-30 11:37:27 +0800
commit1e09758b224ec0ff1b98f08429a52fe92d703105 (patch)
tree041847f990abcf9f1d545a1ec4b990f70dd382e6 /daemon/config.py
parent1cc99dd2714e92d93a0fde0042d108f0b432b33a (diff)
downloadibus-1e09758b224ec0ff1b98f08429a52fe92d703105.tar.gz
ibus-1e09758b224ec0ff1b98f08429a52fe92d703105.tar.xz
ibus-1e09758b224ec0ff1b98f08429a52fe92d703105.zip
Make gconf as DefaultConfig.
Diffstat (limited to 'daemon/config.py')
-rw-r--r--daemon/config.py86
1 files changed, 46 insertions, 40 deletions
diff --git a/daemon/config.py b/daemon/config.py
index bce5119..7b80b78 100644
--- a/daemon/config.py
+++ b/daemon/config.py
@@ -19,9 +19,15 @@
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
+__all__ = (
+ "Config",
+ "DefaultConfig"
+)
+
import weakref
import gobject
import ibus
+import defaultconfig
class Config(ibus.Object):
__gsignals__ = {
@@ -69,7 +75,7 @@ class Config(ibus.Object):
gobject.type_register(Config)
-class DummyConfig(ibus.Object):
+class DefaultConfig(ibus.Object):
__gsignals__ = {
"value-changed" : (
gobject.SIGNAL_RUN_FIRST,
@@ -77,44 +83,44 @@ class DummyConfig(ibus.Object):
(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)),
}
- def get_value(self, key, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"](0)
- else:
- return 0
-
- def set_value(self, key, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"]()
-
- def get_string(self, key, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"]("")
- else:
- return ""
-
- def get_int(self, key, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"](0)
- else:
- return 0
-
- def get_bool(self, key, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"](True)
- else:
- return True
-
- def set_string(self, key, value, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"]()
+ def __init__(self):
+ super(DefaultConfig, self).__init__()
+ self.__config = defaultconfig.Config()
+ self.__handler_id = self.__config.connect("value-changed", self.__value_changed_cb)
- def set_int(self, key, value, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"]()
-
- def set_bool(self, key, value, **kargs):
- if "reply_handler" in kargs:
- kargs["reply_handler"]()
+ def get_value(self, key, **kargs):
+ try:
+ value = self.__config.get_value(key)
+ if "reply_handler" in kargs:
+ kargs["reply_handler"](value)
+ else:
+ return value
+ except Exception, e:
+ if "error_handler" in kargs:
+ kargs["error_handler"](e)
+ else:
+ raise e
-gobject.type_register(DummyConfig)
+ def set_value(self, key, value, **kargs):
+ try:
+ self.__config.set_value(key, value)
+ if "reply_handler" in kargs:
+ kargs["reply_handler"]()
+ else:
+ return
+ except Exception, e:
+ if "error_handler" in kargs:
+ kargs["error_handler"](e)
+ else:
+ raise e
+
+ def __value_changed_cb(self, config, key, value):
+ self.emit("value-changed", key, value)
+
+ def do_destroy(self):
+ if self.__config:
+ self.__config.disconnect(self.__handler_id)
+ self.__config.destroy()
+ self.__config = None
+
+gobject.type_register(DefaultConfig)