mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-07 08:58:38 +00:00
add a webui plugin to core and gtk for integrating the web interface with the core
This commit is contained in:
parent
706c52dd1b
commit
352ec837d5
7 changed files with 482 additions and 0 deletions
7
deluge/plugins/webui/create_dev_link.sh
Executable file
7
deluge/plugins/webui/create_dev_link.sh
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
cd /home/damien/Projects/deluge/deluge/plugins/webui
|
||||||
|
mkdir temp
|
||||||
|
export PYTHONPATH=./temp
|
||||||
|
python setup.py build develop --install-dir ./temp
|
||||||
|
cp ./temp/WebUi.egg-link /home/damien/.config/deluge/plugins
|
||||||
|
rm -fr ./temp
|
70
deluge/plugins/webui/setup.py
Normal file
70
deluge/plugins/webui/setup.py
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
#
|
||||||
|
# setup.py
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Damien Churchill <damoxc@gmail.com>
|
||||||
|
#
|
||||||
|
# Basic plugin template created by:
|
||||||
|
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||||
|
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
|
||||||
|
#
|
||||||
|
# Deluge is free software.
|
||||||
|
#
|
||||||
|
# You may redistribute it and/or modify it under the terms of the
|
||||||
|
# GNU General Public License, as published by the Free Software
|
||||||
|
# Foundation; either version 3 of the License, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# deluge is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with deluge. If not, write to:
|
||||||
|
# The Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# In addition, as a special exception, the copyright holders give
|
||||||
|
# permission to link the code of portions of this program with the OpenSSL
|
||||||
|
# library.
|
||||||
|
# You must obey the GNU General Public License in all respects for all of
|
||||||
|
# the code used other than OpenSSL. If you modify file(s) with this
|
||||||
|
# exception, you may extend this exception to your version of the file(s),
|
||||||
|
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||||
|
# this exception statement from your version. If you delete this exception
|
||||||
|
# statement from all source files in the program, then also delete it here.
|
||||||
|
#
|
||||||
|
|
||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
__plugin_name__ = "WebUi"
|
||||||
|
__author__ = "Damien Churchill"
|
||||||
|
__author_email__ = "damoxc@gmail.com"
|
||||||
|
__version__ = "0.1"
|
||||||
|
__url__ = "http://deluge-torrent.org"
|
||||||
|
__license__ = "GPLv3"
|
||||||
|
__description__ = "Allows starting the web interface within the daemon."
|
||||||
|
__long_description__ = """"""
|
||||||
|
__pkg_data__ = {__plugin_name__.lower(): ["template/*", "data/*"]}
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name=__plugin_name__,
|
||||||
|
version=__version__,
|
||||||
|
description=__description__,
|
||||||
|
author=__author__,
|
||||||
|
author_email=__author_email__,
|
||||||
|
url=__url__,
|
||||||
|
license=__license__,
|
||||||
|
long_description=__long_description__ if __long_description__ else __description__,
|
||||||
|
|
||||||
|
packages=[__plugin_name__.lower()],
|
||||||
|
package_data = __pkg_data__,
|
||||||
|
|
||||||
|
entry_points="""
|
||||||
|
[deluge.plugin.core]
|
||||||
|
%s = %s:CorePlugin
|
||||||
|
[deluge.plugin.gtkui]
|
||||||
|
%s = %s:GtkUIPlugin
|
||||||
|
""" % ((__plugin_name__, __plugin_name__.lower())*2)
|
||||||
|
)
|
57
deluge/plugins/webui/webui/__init__.py
Normal file
57
deluge/plugins/webui/webui/__init__.py
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#
|
||||||
|
# __init__.py
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Damien Churchill <damoxc@gmail.com>
|
||||||
|
#
|
||||||
|
# Basic plugin template created by:
|
||||||
|
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||||
|
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
|
||||||
|
#
|
||||||
|
# Deluge is free software.
|
||||||
|
#
|
||||||
|
# You may redistribute it and/or modify it under the terms of the
|
||||||
|
# GNU General Public License, as published by the Free Software
|
||||||
|
# Foundation; either version 3 of the License, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# deluge is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with deluge. If not, write to:
|
||||||
|
# The Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# In addition, as a special exception, the copyright holders give
|
||||||
|
# permission to link the code of portions of this program with the OpenSSL
|
||||||
|
# library.
|
||||||
|
# You must obey the GNU General Public License in all respects for all of
|
||||||
|
# the code used other than OpenSSL. If you modify file(s) with this
|
||||||
|
# exception, you may extend this exception to your version of the file(s),
|
||||||
|
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||||
|
# this exception statement from your version. If you delete this exception
|
||||||
|
# statement from all source files in the program, then also delete it here.
|
||||||
|
#
|
||||||
|
|
||||||
|
from deluge.plugins.init import PluginInitBase
|
||||||
|
|
||||||
|
class CorePlugin(PluginInitBase):
|
||||||
|
def __init__(self, plugin_name):
|
||||||
|
from core import Core as _plugin_cls
|
||||||
|
self._plugin_cls = _plugin_cls
|
||||||
|
super(CorePlugin, self).__init__(plugin_name)
|
||||||
|
|
||||||
|
class GtkUIPlugin(PluginInitBase):
|
||||||
|
def __init__(self, plugin_name):
|
||||||
|
from gtkui import GtkUI as _plugin_cls
|
||||||
|
self._plugin_cls = _plugin_cls
|
||||||
|
super(GtkUIPlugin, self).__init__(plugin_name)
|
||||||
|
|
||||||
|
class WebUIPlugin(PluginInitBase):
|
||||||
|
def __init__(self, plugin_name):
|
||||||
|
from webui import WebUI as _plugin_cls
|
||||||
|
self._plugin_cls = _plugin_cls
|
||||||
|
super(WebUIPlugin, self).__init__(plugin_name)
|
41
deluge/plugins/webui/webui/common.py
Normal file
41
deluge/plugins/webui/webui/common.py
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#
|
||||||
|
# common.py
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Damien Churchill <damoxc@gmail.com>
|
||||||
|
#
|
||||||
|
# Basic plugin template created by:
|
||||||
|
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||||
|
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
|
||||||
|
#
|
||||||
|
# Deluge is free software.
|
||||||
|
#
|
||||||
|
# You may redistribute it and/or modify it under the terms of the
|
||||||
|
# GNU General Public License, as published by the Free Software
|
||||||
|
# Foundation; either version 3 of the License, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# deluge is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with deluge. If not, write to:
|
||||||
|
# The Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# In addition, as a special exception, the copyright holders give
|
||||||
|
# permission to link the code of portions of this program with the OpenSSL
|
||||||
|
# library.
|
||||||
|
# You must obey the GNU General Public License in all respects for all of
|
||||||
|
# the code used other than OpenSSL. If you modify file(s) with this
|
||||||
|
# exception, you may extend this exception to your version of the file(s),
|
||||||
|
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||||
|
# this exception statement from your version. If you delete this exception
|
||||||
|
# statement from all source files in the program, then also delete it here.
|
||||||
|
#
|
||||||
|
|
||||||
|
def get_resource(filename):
|
||||||
|
import pkg_resources, os
|
||||||
|
return pkg_resources.resource_filename("webui", os.path.join("data", filename))
|
119
deluge/plugins/webui/webui/core.py
Normal file
119
deluge/plugins/webui/webui/core.py
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
#
|
||||||
|
# core.py
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Damien Churchill <damoxc@gmail.com>
|
||||||
|
#
|
||||||
|
# Basic plugin template created by:
|
||||||
|
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||||
|
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
|
||||||
|
#
|
||||||
|
# Deluge is free software.
|
||||||
|
#
|
||||||
|
# You may redistribute it and/or modify it under the terms of the
|
||||||
|
# GNU General Public License, as published by the Free Software
|
||||||
|
# Foundation; either version 3 of the License, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# deluge is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with deluge. If not, write to:
|
||||||
|
# The Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# In addition, as a special exception, the copyright holders give
|
||||||
|
# permission to link the code of portions of this program with the OpenSSL
|
||||||
|
# library.
|
||||||
|
# You must obey the GNU General Public License in all respects for all of
|
||||||
|
# the code used other than OpenSSL. If you modify file(s) with this
|
||||||
|
# exception, you may extend this exception to your version of the file(s),
|
||||||
|
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||||
|
# this exception statement from your version. If you delete this exception
|
||||||
|
# statement from all source files in the program, then also delete it here.
|
||||||
|
#
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from deluge import common, component, configmanager
|
||||||
|
from deluge.log import LOG as log
|
||||||
|
from deluge.plugins.pluginbase import CorePluginBase
|
||||||
|
from deluge.core.rpcserver import export
|
||||||
|
|
||||||
|
from deluge.ui.web import server
|
||||||
|
|
||||||
|
DEFAULT_PREFS = {
|
||||||
|
"enabled": False,
|
||||||
|
"ssl": False,
|
||||||
|
"port": 8112
|
||||||
|
}
|
||||||
|
|
||||||
|
class Core(CorePluginBase):
|
||||||
|
|
||||||
|
|
||||||
|
def enable(self):
|
||||||
|
self.config = configmanager.ConfigManager("web_plugin.conf", DEFAULT_PREFS)
|
||||||
|
self.server = None
|
||||||
|
if self.config['enabled']:
|
||||||
|
self.start()
|
||||||
|
|
||||||
|
def disable(self):
|
||||||
|
if self.server:
|
||||||
|
self.server.stop()
|
||||||
|
|
||||||
|
def update(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def restart(self):
|
||||||
|
if self.server:
|
||||||
|
self.server.stop().addCallback(self.on_stop)
|
||||||
|
else:
|
||||||
|
self.start()
|
||||||
|
|
||||||
|
def on_stop(self, *args):
|
||||||
|
self.start()
|
||||||
|
|
||||||
|
@export
|
||||||
|
def start(self):
|
||||||
|
if not self.server:
|
||||||
|
self.server = server.DelugeWeb()
|
||||||
|
self.server.port = self.config["port"]
|
||||||
|
self.server.https = self.config["ssl"]
|
||||||
|
self.server.start(False)
|
||||||
|
|
||||||
|
@export
|
||||||
|
def stop(self):
|
||||||
|
if self.server:
|
||||||
|
self.server.stop()
|
||||||
|
|
||||||
|
@export
|
||||||
|
def set_config(self, config):
|
||||||
|
"sets the config dictionary"
|
||||||
|
|
||||||
|
action = None
|
||||||
|
if "enabled" in config:
|
||||||
|
if config["enabled"] != self.config["enabled"]:
|
||||||
|
action = config["enabled"] and 'start' or 'stop'
|
||||||
|
|
||||||
|
if "ssl" in config:
|
||||||
|
if not action:
|
||||||
|
action = 'restart'
|
||||||
|
|
||||||
|
for key in config.keys():
|
||||||
|
self.config[key] = config[key]
|
||||||
|
self.config.save()
|
||||||
|
|
||||||
|
if action == 'start':
|
||||||
|
self.start()
|
||||||
|
elif action == 'stop':
|
||||||
|
self.stop()
|
||||||
|
elif action == 'restart':
|
||||||
|
self.restart()
|
||||||
|
|
||||||
|
@export
|
||||||
|
def get_config(self):
|
||||||
|
"returns the config dictionary"
|
||||||
|
return self.config.config
|
109
deluge/plugins/webui/webui/data/config.glade
Normal file
109
deluge/plugins/webui/webui/data/config.glade
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<glade-interface>
|
||||||
|
<!-- interface-requires gtk+ 2.16 -->
|
||||||
|
<!-- interface-naming-policy toplevel-contextual -->
|
||||||
|
<widget class="GtkWindow" id="window1">
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="prefs_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkFrame" id="settings_frame">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<property name="shadow_type">none</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkAlignment" id="settings_alignment">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="top_padding">10</property>
|
||||||
|
<property name="left_padding">12</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkVBox" id="settings_vbox">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkCheckButton" id="enabled_checkbutton">
|
||||||
|
<property name="label" translatable="yes">Enable web interface</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkCheckButton" id="ssl_checkbutton">
|
||||||
|
<property name="label" translatable="yes">Enable SSL</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkHBox" id="port_hbox">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="port_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label" translatable="yes">Listening port:</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkSpinButton" id="port_spinbutton">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="invisible_char">●</property>
|
||||||
|
<property name="adjustment">8112 0 99999 1 10 0</property>
|
||||||
|
<property name="numeric">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">False</property>
|
||||||
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="settings_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label" translatable="yes"><b>Settings</b></property>
|
||||||
|
<property name="use_markup">True</property>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="type">label_item</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
<packing>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</child>
|
||||||
|
</widget>
|
||||||
|
</glade-interface>
|
79
deluge/plugins/webui/webui/gtkui.py
Normal file
79
deluge/plugins/webui/webui/gtkui.py
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
#
|
||||||
|
# gtkui.py
|
||||||
|
#
|
||||||
|
# Copyright (C) 2009 Damien Churchill <damoxc@gmail.com>
|
||||||
|
#
|
||||||
|
# Basic plugin template created by:
|
||||||
|
# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
|
||||||
|
# Copyright (C) 2007-2009 Andrew Resch <andrewresch@gmail.com>
|
||||||
|
#
|
||||||
|
# Deluge is free software.
|
||||||
|
#
|
||||||
|
# You may redistribute it and/or modify it under the terms of the
|
||||||
|
# GNU General Public License, as published by the Free Software
|
||||||
|
# Foundation; either version 3 of the License, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# deluge is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with deluge. If not, write to:
|
||||||
|
# The Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor
|
||||||
|
# Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# In addition, as a special exception, the copyright holders give
|
||||||
|
# permission to link the code of portions of this program with the OpenSSL
|
||||||
|
# library.
|
||||||
|
# You must obey the GNU General Public License in all respects for all of
|
||||||
|
# the code used other than OpenSSL. If you modify file(s) with this
|
||||||
|
# exception, you may extend this exception to your version of the file(s),
|
||||||
|
# but you are not obligated to do so. If you do not wish to do so, delete
|
||||||
|
# this exception statement from your version. If you delete this exception
|
||||||
|
# statement from all source files in the program, then also delete it here.
|
||||||
|
#
|
||||||
|
|
||||||
|
import gtk
|
||||||
|
|
||||||
|
from deluge.log import LOG as log
|
||||||
|
from deluge.ui.client import client
|
||||||
|
from deluge.plugins.pluginbase import GtkPluginBase
|
||||||
|
import deluge.component as component
|
||||||
|
import deluge.common
|
||||||
|
|
||||||
|
from common import get_resource
|
||||||
|
|
||||||
|
class GtkUI(GtkPluginBase):
|
||||||
|
def enable(self):
|
||||||
|
self.glade = gtk.glade.XML(get_resource("config.glade"))
|
||||||
|
|
||||||
|
component.get("Preferences").add_page("WebUi", self.glade.get_widget("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)
|
||||||
|
client.webui.get_config().addCallback(self.cb_get_config)
|
||||||
|
|
||||||
|
def disable(self):
|
||||||
|
component.get("Preferences").remove_page("WebUi")
|
||||||
|
component.get("PluginManager").deregister_hook("on_apply_prefs", self.on_apply_prefs)
|
||||||
|
component.get("PluginManager").deregister_hook("on_show_prefs", self.on_show_prefs)
|
||||||
|
|
||||||
|
def on_apply_prefs(self):
|
||||||
|
log.debug("applying prefs for WebUi")
|
||||||
|
config = {
|
||||||
|
"enabled": self.glade.get_widget("enabled_checkbutton").get_active(),
|
||||||
|
"ssl": self.glade.get_widget("ssl_checkbutton").get_active(),
|
||||||
|
"port": self.glade.get_widget("port_spinbutton").get_value_as_int()
|
||||||
|
}
|
||||||
|
client.webui.set_config(config)
|
||||||
|
|
||||||
|
def on_show_prefs(self):
|
||||||
|
client.webui.get_config().addCallback(self.cb_get_config)
|
||||||
|
|
||||||
|
def cb_get_config(self, config):
|
||||||
|
"callback for on show_prefs"
|
||||||
|
self.glade.get_widget("enabled_checkbutton").set_active(config["enabled"])
|
||||||
|
self.glade.get_widget("ssl_checkbutton").set_active(config["ssl"])
|
||||||
|
self.glade.get_widget("port_spinbutton").set_value(config["port"])
|
Loading…
Add table
Add a link
Reference in a new issue