diff options
| author | Huang Peng <shawn.p.huang@gmail.com> | 2008-07-30 11:37:27 +0800 |
|---|---|---|
| committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-07-30 11:37:27 +0800 |
| commit | 1e09758b224ec0ff1b98f08429a52fe92d703105 (patch) | |
| tree | 041847f990abcf9f1d545a1ec4b990f70dd382e6 /daemon/config.py | |
| parent | 1cc99dd2714e92d93a0fde0042d108f0b432b33a (diff) | |
| download | ibus-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.py | 86 |
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) |
