diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-19 14:52:21 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-19 14:52:21 +0000 |
commit | d1772d410235592b482e3b08b1863f6624d9fe6b (patch) | |
tree | accfb4b99c32e5e435089f8023d62e67a6951603 /deluge/plugins/Extractor/deluge_extractor/gtkui.py | |
parent | Initial commit. (diff) | |
download | deluge-d1772d410235592b482e3b08b1863f6624d9fe6b.tar.xz deluge-d1772d410235592b482e3b08b1863f6624d9fe6b.zip |
Adding upstream version 2.0.3.upstream/2.0.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'deluge/plugins/Extractor/deluge_extractor/gtkui.py')
-rw-r--r-- | deluge/plugins/Extractor/deluge_extractor/gtkui.py | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/deluge/plugins/Extractor/deluge_extractor/gtkui.py b/deluge/plugins/Extractor/deluge_extractor/gtkui.py new file mode 100644 index 0000000..113b33f --- /dev/null +++ b/deluge/plugins/Extractor/deluge_extractor/gtkui.py @@ -0,0 +1,96 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009 Andrew Resch <andrewresch@gmail.com> +# +# Basic plugin template created by: +# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com> +# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com> +# +# 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. +# + +from __future__ import unicode_literals + +import logging + +import gi # isort:skip (Required before Gtk import). + +gi.require_version('Gtk', '3.0') # NOQA: E402 + +# isort:imports-thirdparty +from gi.repository import Gtk + +# isort:imports-firstparty +import deluge.component as component +from deluge.plugins.pluginbase import Gtk3PluginBase +from deluge.ui.client import client + +# isort:imports-localfolder +from .common import get_resource + +log = logging.getLogger(__name__) + + +class GtkUI(Gtk3PluginBase): + def enable(self): + self.builder = Gtk.Builder() + self.builder.add_from_file(get_resource('extractor_prefs.ui')) + + component.get('Preferences').add_page( + _('Extractor'), self.builder.get_object('extractor_prefs_box') + ) + component.get('PluginManager').register_hook( + 'on_apply_prefs', self.on_apply_prefs + ) + component.get('PluginManager').register_hook( + 'on_show_prefs', self.on_show_prefs + ) + self.on_show_prefs() + + def disable(self): + component.get('Preferences').remove_page(_('Extractor')) + component.get('PluginManager').deregister_hook( + 'on_apply_prefs', self.on_apply_prefs + ) + component.get('PluginManager').deregister_hook( + 'on_show_prefs', self.on_show_prefs + ) + del self.builder + + def on_apply_prefs(self): + log.debug('applying prefs for Extractor') + if client.is_localhost(): + path = self.builder.get_object('folderchooser_path').get_filename() + else: + path = self.builder.get_object('entry_path').get_text() + + config = { + 'extract_path': path, + 'use_name_folder': self.builder.get_object('chk_use_name').get_active(), + } + + client.extractor.set_config(config) + + def on_show_prefs(self): + if client.is_localhost(): + self.builder.get_object('folderchooser_path').show() + self.builder.get_object('entry_path').hide() + else: + self.builder.get_object('folderchooser_path').hide() + self.builder.get_object('entry_path').show() + + def on_get_config(config): + if client.is_localhost(): + self.builder.get_object('folderchooser_path').set_current_folder( + config['extract_path'] + ) + else: + self.builder.get_object('entry_path').set_text(config['extract_path']) + + self.builder.get_object('chk_use_name').set_active( + config['use_name_folder'] + ) + + client.extractor.get_config().addCallback(on_get_config) |