diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2008-07-28 14:59:17 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-07-28 14:59:17 +0800 |
commit | f9efa76f89029b43fc8f2498a4fb69679d9bfc4f (patch) | |
tree | 924ba0af393e0d9a67924835d234351950763963 /gconf | |
parent | 0514cc8f4599954fa2ef0cd88e8cf6737ca9ea56 (diff) | |
download | ibus-f9efa76f89029b43fc8f2498a4fb69679d9bfc4f.tar.gz ibus-f9efa76f89029b43fc8f2498a4fb69679d9bfc4f.tar.xz ibus-f9efa76f89029b43fc8f2498a4fb69679d9bfc4f.zip |
Add Destroy for config.
Diffstat (limited to 'gconf')
-rw-r--r-- | gconf/config.py | 7 | ||||
-rw-r--r-- | gconf/main.py | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gconf/config.py b/gconf/config.py index 4c0ec8c..b8b2bfe 100644 --- a/gconf/config.py +++ b/gconf/config.py @@ -45,6 +45,9 @@ class Config(ibus.Object): def set_bool(self, key, value): pass + def do_destroy(self): + self.__proxy = None + def __value_changed_cb(self, gconf, key, value): value = self.__client.get_value(key) print key, type(value), value @@ -68,3 +71,7 @@ class ConfigProxy(interface.IConfig): self.__config.set_int(key, value) def SetBool(self, key, value): self.__config.set_bool(key, value) + def Destroy(self): + self.remove_from_connection() + self.__config.destroy() + self.__config = None diff --git a/gconf/main.py b/gconf/main.py index e5d81d6..a96ebe7 100644 --- a/gconf/main.py +++ b/gconf/main.py @@ -35,12 +35,16 @@ class GconfApplication: self.__ibus.call_on_disconnection(self.__disconnected_cb) self.__config = config.Config(self.__ibus, CONFIG_PATH) + self.__config.connect("destroy", self.__config_destroy_cb) self.__ibus.register_config(CONFIG_PATH, True) def run(self): self.__mainloop.run() + def __config_destroy_cb(self, config): + self.__mainloop.quit() + def __disconnected_cb(self, conn): print "disconnected" self.__mainloop.quit() |