From 2e2851dc13d73352530dd4495c7e05603b2e520d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 23:38:38 +0200 Subject: Adding upstream version 2.1.2~dev0+20240219. Signed-off-by: Daniel Baumann --- deluge/ui/coreconfig.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 deluge/ui/coreconfig.py (limited to 'deluge/ui/coreconfig.py') diff --git a/deluge/ui/coreconfig.py b/deluge/ui/coreconfig.py new file mode 100644 index 0000000..1e2927b --- /dev/null +++ b/deluge/ui/coreconfig.py @@ -0,0 +1,51 @@ +# +# Copyright (C) 2008 Andrew Resch +# +# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with +# the additional special exception to link portions of this program with the OpenSSL library. +# See LICENSE for more details. +# + +import logging + +import deluge.component as component +from deluge.ui.client import client + +log = logging.getLogger(__name__) + + +class CoreConfig(component.Component): + def __init__(self): + log.debug('CoreConfig init..') + component.Component.__init__(self, 'CoreConfig') + self.config = {} + + def on_configvaluechanged_event(key, value): + self.config[key] = value + + client.register_event_handler( + 'ConfigValueChangedEvent', on_configvaluechanged_event + ) + + def start(self): + def on_get_config(config): + self.config = config + return config + + return client.core.get_config().addCallback(on_get_config) + + def stop(self): + self.config = {} + + def __contains__(self, key): + return key in self.config + + def __getitem__(self, key): + return self.config[key] + + def __setitem__(self, key, value): + client.core.set_config({key: value}) + + def __getattr__(self, attr): + # We treat this directly interacting with the dictionary + return getattr(self.config, attr) -- cgit v1.2.3