本文整理汇总了Python中GTG.core.plugins.engine.PluginEngine.activate_plugins方法的典型用法代码示例。如果您正苦于以下问题:Python PluginEngine.activate_plugins方法的具体用法?Python PluginEngine.activate_plugins怎么用?Python PluginEngine.activate_plugins使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GTG.core.plugins.engine.PluginEngine
的用法示例。
在下文中一共展示了PluginEngine.activate_plugins方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Manager
# 需要导入模块: from GTG.core.plugins.engine import PluginEngine [as 别名]
# 或者: from GTG.core.plugins.engine.PluginEngine import activate_plugins [as 别名]
class Manager(object):
############## init #####################################################
def __init__(self, req):
self.req = req
self.config_obj = self.req.get_global_config()
self.config = self.config_obj.conf_dict
self.task_config = self.config_obj.task_conf_dict
# Editors
self.opened_task = {} # This is the list of tasks that are already
# opened in an editor of course it's empty
# right now
self.browser = None
self.__start_browser_hidden = False
self.gtk_terminate = False #if true, the gtk main is not started
#Shared clipboard
self.clipboard = clipboard.TaskClipboard(self.req)
#Browser (still hidden)
self.browser = TaskBrowser(self.req, self)
self.__init_plugin_engine()
if not self.__start_browser_hidden:
self.show_browser()
#Deletion UI
self.delete_dialog = None
#Preferences and Backends windows
# Initialize dialogs
self.preferences_dialog = None
self.edit_backends_dialog = None
#DBus
DBusTaskWrapper(self.req, self)
Log.debug("Manager initialization finished")
def __init_plugin_engine(self):
self.pengine = PluginEngine(GTG.PLUGIN_DIR)
# initializes the plugin api class
self.plugin_api = PluginAPI(self.req, self)
self.pengine.register_api(self.plugin_api)
# checks the conf for user settings
try:
plugins_enabled = self.config["plugins"]["enabled"]
except KeyError:
plugins_enabled = []
for plugin in self.pengine.get_plugins():
plugin.enabled = plugin.module_name in plugins_enabled
# initializes and activates each plugin (that is enabled)
self.pengine.activate_plugins()
############## Browser #################################################
def open_browser(self):
if not self.browser:
self.browser = TaskBrowser(self.req, self)
Log.debug("Browser is open")
#FIXME : the browser should not be the center of the universe.
# In fact, we should build a system where view can register themselves
# as "stay_alive" views. As long as at least one "stay_alive" view
# is registered, gtg keeps running. It quit only when the last
# "stay_alive view" is closed (and then unregistered).
# Currently, the browser is our only "stay_alive" view.
def close_browser(self,sender=None):
self.hide_browser()
#may take a while to quit
self.quit()
def hide_browser(self,sender=None):
self.browser.hide()
def iconify_browser(self,sender=None):
self.browser.iconify()
def show_browser(self,sender=None):
self.browser.show()
def is_browser_visible(self,sender=None):
return self.browser.is_visible()
def get_browser(self):
#used by the plugin api to hook in the browser
return self.browser
def start_browser_hidden(self):
self.__start_browser_hidden = True
################# Task Editor ############################################
def get_opened_editors(self):
'''
Returns a dict of task_uid -> TaskEditor, one for each opened editor
window
#.........这里部分代码省略.........
示例2: __init__
# 需要导入模块: from GTG.core.plugins.engine import PluginEngine [as 别名]
# 或者: from GTG.core.plugins.engine.PluginEngine import activate_plugins [as 别名]
#.........这里部分代码省略.........
self.plugin_store.append((name, plugin.enabled, plugin.full_name,
plugin.short_description,
not plugin.error))
def activate(self):
""" Refresh status of plugins and show the dialog """
if len(self.plugin_tree.get_columns()) == 0:
self._init_plugin_tree()
else:
self._refresh_plugin_store()
self.dialog.show_all()
def on_close(self, widget, data=None):
""" Close the plugins dialog."""
self.dialog.hide()
return True
@classmethod
def on_help(cls, widget):
""" Open help for plugins """
help.show_help("plugins")
return True
def on_plugin_toggle(self, widget, path):
"""Toggle a plugin enabled/disabled."""
iterator = self.plugin_store.get_iter(path)
plugin_id = self.plugin_store.get_value(iterator, PLUGINS_COL_ID)
plugin = self.pengine.get_plugin(plugin_id)
plugin.enabled = not self.plugin_store.get_value(iterator,
PLUGINS_COL_ENABLED)
plugins_enabled = self.config.get("enabled")
plugins_disabled = self.config.get("disabled")
if plugin.enabled:
self.pengine.activate_plugins([plugin])
plugins_enabled.append(plugin.module_name)
if plugin.module_name in plugins_disabled:
plugins_disabled.remove(plugin.module_name)
else:
self.pengine.deactivate_plugins([plugin])
plugins_disabled.append(plugin.module_name)
if plugin.module_name in plugins_enabled:
plugins_enabled.remove(plugin.module_name)
self.config.set("enabled", plugins_enabled)
self.config.set("disabled", plugins_disabled)
self.plugin_store.set_value(iterator, PLUGINS_COL_ENABLED,
plugin.enabled)
self._update_plugin_configure(plugin)
self.config_obj.save()
def on_plugin_select(self, plugin_tree):
""" Callback when user select/unselect a plugin
Update the button "Configure plugin" sensitivity """
model, iterator = plugin_tree.get_selection().get_selected()
if iterator is not None:
plugin_id = model.get_value(iterator, PLUGINS_COL_ID)
plugin = self.pengine.get_plugin(plugin_id)
self._update_plugin_configure(plugin)
def _update_plugin_configure(self, plugin):
""" Enable the button "Configure Plugin" appropriate. """
configurable = plugin.active and plugin.is_configurable()
self.plugin_configure.set_property('sensitive', configurable)
def on_plugin_configure(self, widget):
示例3: Manager
# 需要导入模块: from GTG.core.plugins.engine import PluginEngine [as 别名]
# 或者: from GTG.core.plugins.engine.PluginEngine import activate_plugins [as 别名]
class Manager(GObject.GObject):
__object_signal__ = (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE,
(GObject.TYPE_PYOBJECT,))
__object_string_signal__ = (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE,
(GObject.TYPE_PYOBJECT, GObject.TYPE_STRING, ))
__gsignals__ = {'tasks-deleted': __object_signal__,
'task-status-changed': __object_string_signal__,
}
# init ##################################################################
def __init__(self, req):
GObject.GObject.__init__(self)
self.req = req
self.config_obj = self.req.get_global_config()
self.browser_config = self.config_obj.get_subconfig("browser")
self.plugins_config = self.config_obj.get_subconfig("plugins")
self.task_config = self.config_obj.get_taskconfig()
# Editors
# This is the list of tasks that are already opened in an editor
# of course it's empty right now
self.opened_task = {}
self.browser = None
self.__start_browser_hidden = False
self.gtk_terminate = False # if true, the gtk main is not started
# if true, closing the last window doesn't quit GTG
# (GTG lives somewhere else without GUI, e.g. notification area)
self.daemon_mode = False
# Shared clipboard
self.clipboard = clipboard.TaskClipboard(self.req)
# Initialize Timer
self.config = self.req.get_config('browser')
self.timer = Timer(self.config)
# Browser (still hidden)
self.browser = TaskBrowser(self.req, self)
self.__init_plugin_engine()
if not self.__start_browser_hidden:
self.show_browser()
# Deletion UI
self.delete_dialog = None
# Preferences and Backends windows
# Initialize dialogs
self.preferences = PreferencesDialog(self.req, self)
self.plugins = PluginsDialog(self.config_obj)
self.edit_backends_dialog = None
# Tag Editor
self.tag_editor_dialog = None
# DBus
DBusTaskWrapper(self.req, self)
Log.debug("Manager initialization finished")
def __init_plugin_engine(self):
self.pengine = PluginEngine(GTG.PLUGIN_DIR)
# initializes the plugin api class
self.plugin_api = PluginAPI(self.req, self)
self.pengine.register_api(self.plugin_api)
# checks the conf for user settings
try:
plugins_enabled = self.plugins_config.get("enabled")
except configparser.Error:
plugins_enabled = []
for plugin in self.pengine.get_plugins():
plugin.enabled = plugin.module_name in plugins_enabled
# initializes and activates each plugin (that is enabled)
self.pengine.activate_plugins()
# Browser ##############################################################
def open_browser(self):
if not self.browser:
self.browser = TaskBrowser(self.req, self)
# notify user if backup was used
backend_dic = self.req.get_all_backends()
for backend in backend_dic:
if backend.get_name() == "backend_localfile" and \
backend.used_backup():
backend.notify_user_about_backup()
Log.debug("Browser is open")
# FIXME : the browser should not be the center of the universe.
# In fact, we should build a system where view can register themselves
# as "stay_alive" views. As long as at least one "stay_alive" view
# is registered, gtg keeps running. It quit only when the last
# "stay_alive view" is closed (and then unregistered).
# Currently, the browser is our only "stay_alive" view.
def close_browser(self, sender=None):
self.hide_browser()
# may take a while to quit
self.quit()
#.........这里部分代码省略.........
示例4: __init__
# 需要导入模块: from GTG.core.plugins.engine import PluginEngine [as 别名]
# 或者: from GTG.core.plugins.engine.PluginEngine import activate_plugins [as 别名]
#.........这里部分代码省略.........
plugin_id = self.plugin_store.get_value(iter, PLUGINS_COL_ID)
p = self.pengine.get_plugin(plugin_id)
pad = self.plugin_about_dialog
pad.set_name(p.full_name)
pad.set_version(p.version)
authors = p.authors
if isinstance(authors, str):
authors = [authors, ]
pad.set_authors(authors)
pad.set_comments(p.description.replace(r'\n', "\n"))
self.plugin_depends.set_label(plugin_error_text(p))
pad.show_all()
def on_plugin_about_close(self, widget, *args):
"""Close the PluginAboutDialog."""
self.plugin_about_dialog.hide()
def on_plugin_configure(self, widget):
"""Configure a plugin."""
(junk, iter) = self.plugin_tree.get_selection().get_selected()
plugin_id = self.plugin_store.get_value(iter, PLUGINS_COL_ID)
# TODO: load plugin's configuration UI and insert into pc-vbox1 in
# position 0. Something like...
#pcd = self.plugin_config_dialog
#pcd.show_all()
# ...for now, use existing code.
self.pengine.get_plugin(plugin_id).instance.configure_dialog(self.dialog)
def on_plugin_config_close(self, widget):
"""Close the PluginConfigDialog."""
self.plugin_config_dialog.hide()
def on_plugin_select(self, plugin_tree):
(model, iter) = plugin_tree.get_selection().get_selected()
if iter is not None:
plugin_id = model.get_value(iter, PLUGINS_COL_ID)
self._update_plugin_configure(self.pengine.get_plugin(plugin_id))
def on_plugin_toggle(self, widget, path):
"""Toggle a plugin enabled/disabled."""
iter = self.plugin_store.get_iter(path)
plugin_id = self.plugin_store.get_value(iter, PLUGINS_COL_ID)
p = self.pengine.get_plugin(plugin_id)
p.enabled = not self.plugin_store.get_value(iter, PLUGINS_COL_ENABLED)
if p.enabled:
self.pengine.activate_plugins([p])
else:
self.pengine.deactivate_plugins([p])
self.plugin_store.set_value(iter, PLUGINS_COL_ENABLED, p.enabled)
self._update_plugin_configure(p)
def toggle_preview(self, widget):
"""Toggle previews in the task view on or off."""
self.config_priv.set("contents_preview_enable",widget.get_active())
def toggle_spellcheck(self, widget):
"""Toggle spell checking on or off."""
print __name__
def _update_plugin_configure(self, plugin):
"""Enable the "Configure Plugin" button if appropriate."""
configurable = plugin.active and plugin.is_configurable()
self.plugin_configure.set_property('sensitive', configurable)
def on_autostart_toggled(self, widget):
"""Toggle GTG autostarting with the GNOME desktop"""
autostart_path = os.path.join(self.__AUTOSTART_DIRECTORY, \
self.__AUTOSTART_FILE)
if widget.get_active() == False:
#Disable autostart, removing the file in autostart_path
if os.path.isfile(autostart_path):
os.remove(autostart_path)
else:
#Enable autostart
#We look for the desktop file
desktop_file_path = None
desktop_file_directories = ["../..",
"../../../applications",
"../../../../../share/applications"]
this_directory = os.path.dirname(os.path.abspath(__file__))
for path in desktop_file_directories:
fullpath = os.path.normpath(os.path.join(this_directory, path, \
self.__AUTOSTART_FILE))
if os.path.isfile(fullpath):
desktop_file_path = fullpath
break
#If we have found the desktop file, we make a link to in in
# autostart_path. If symbolic linking is not possible
# (that is, if we are running on Windows), then copy the file
if desktop_file_path:
if not os.path.exists(self.__AUTOSTART_DIRECTORY):
os.mkdir(self.__AUTOSTART_DIRECTORY)
if os.path.isdir(self.__AUTOSTART_DIRECTORY) and \
not os.path.exists(autostart_path):
if hasattr(os, "symlink"):
os.symlink(desktop_file_path, \
autostart_path)
else:
shutil.copyfile(desktop_file_path, \
autostart_path)