Add PluginDisabledEvent
Add...
Content-type: text/plain
Author: andar
Revision: 5706
Log:
Add PluginEnabledEvent
Add PluginDisabledEvent
Add event handlers to enable/disable plugins on events
Diff:
Modified: trunk/deluge/core/pluginmanager.py
===================================================================
--- trunk/deluge/core/pluginmanager.py 2009-08-26 08:53:58 UTC (rev 5705)
+++ trunk/deluge/core/pluginmanager.py 2009-08-26 16:59:29 UTC (rev 5706)
@@ -39,6 +39,7 @@
from twisted.internet import reactor
from twisted.internet.task import LoopingCall
+from deluge.event import PluginEnabledEvent, PluginDisabledEvent
import deluge.pluginmanagerbase
import deluge.component as component
from deluge.log import LOG as log
@@ -76,6 +77,18 @@
except Exception, e:
log.exception(e)
+ def enable_plugin(self, name):
+ if name not in self.plugins:
+ super(PluginManager, self).enable_plugin(name)
+ if name in self.plugins:
+ component.get("EventManager").emit(PluginEnabledEvent(name))
+
+ def disable_plugin(self, name):
+ if name in self.plugins:
+ super(PluginManager, self).disable_plugin(name)
+ if name not in self.plugins:
+ component.get("EventManager").emit(PluginDisabledEvent(name))
+
def get_status(self, torrent_id, fields):
"""Return the value of status fields for the selected torrent_id."""
status = {}
Modified: trunk/deluge/event.py
===================================================================
--- trunk/deluge/event.py 2009-08-26 08:53:58 UTC (rev 5705)
+++ trunk/deluge/event.py 2009-08-26 16:59:29 UTC (rev 5706)
@@ -190,3 +190,25 @@
:param value: the new value of the `:param:key`
"""
self._args = [key, value]
+
+class PluginEnabledEvent(DelugeEvent):
+ """
+ Emitted when a plugin is enabled in the Core.
+ """
+ def __init__(self, name):
+ """
+ :param name: the plugin name
+ :type name: string
+ """
+ self._args = [name]
+
+class PluginDisabledEvent(DelugeEvent):
+ """
+ Emitted when a plugin is disabled in the Core.
+ """
+ def __init__(self, name):
+ """
+ :param name: the plugin name
+ :type name: string
+ """
+ self._args = [name]
Modified: trunk/deluge/ui/console/eventlog.py
===================================================================
--- trunk/deluge/ui/console/eventlog.py 2009-08-26 08:53:58 UTC (rev 5705)
+++ trunk/deluge/ui/console/eventlog.py 2009-08-26 16:59:29 UTC (rev 5706)
@@ -58,6 +58,8 @@
client.register_event_handler("SessionPausedEvent",
self.on_session_paused_event)
client.register_event_handler("SessionResumedEvent",
self.on_session_resumed_event)
client.register_event_handler("ConfigValueChangedEvent",
self.on_config_value_changed_event)
+ client.register_event_handler("PluginEnabledEvent",
self.on_plugin_enabled_event)
+ client.register_event_handler("PluginDisabledEvent",
self.on_plugin_disabled_event)
def on_torrent_added_event(self, torrent_id):
def on_torrent_status(status):
@@ -101,3 +103,9 @@
self.console.write(self.prefix + "ConfigValueChanged: {!input!}%s:
%s%s" %
(key, color, value))
+
+ def on_plugin_enabled_event(self, name):
+ self.console.write(self.prefix + "PluginEnabled: {!info!}%s" % name)
+
+ def on_plugin_disabled_event(self, name):
+ self.console.write(self.prefix + "PluginDisabled: {!info!}%s" % name)
Modified: trunk/deluge/ui/gtkui/pluginmanager.py
===================================================================
--- trunk/deluge/ui/gtkui/pluginmanager.py 2009-08-26 08:53:58 UTC (rev
5705)
+++ trunk/deluge/ui/gtkui/pluginmanager.py 2009-08-26 16:59:29 UTC (rev
5706)
@@ -53,6 +53,9 @@
"on_show_prefs": []
}
+ client.register_event_handler("PluginEnabledEvent",
self._on_plugin_enabled_event)
+ client.register_event_handler("PluginDisabledEvent",
self._on_plugin_disabled_event)
+
def register_hook(self, hook, function):
"""Register a hook function with the plugin manager"""
try:
@@ -84,6 +87,12 @@
for plugin in enabled_plugins:
self.enable_plugin(plugin)
+ def _on_plugin_enabled_event(self, name):
+ self.enable_plugin(name)
+
+ def _on_plugin_disabled_event(self, name):
+ self.disable_plugin(name)
+
## Hook functions
def run_on_show_prefs(self):
"""This hook is run before the user is shown the preferences dialog.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"deluge-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/deluge-commit?hl=en
-~----------~----~----~----~------~----~------~--~---