本文整理汇总了Python中GTG.core.plugins.engine.PluginEngine.get_plugin方法的典型用法代码示例。如果您正苦于以下问题:Python PluginEngine.get_plugin方法的具体用法?Python PluginEngine.get_plugin怎么用?Python PluginEngine.get_plugin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GTG.core.plugins.engine.PluginEngine
的用法示例。
在下文中一共展示了PluginEngine.get_plugin方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from GTG.core.plugins.engine import PluginEngine [as 别名]
# 或者: from GTG.core.plugins.engine.PluginEngine import get_plugin [as 别名]
class PluginsDialog:
""" Dialog for Plugins configuration """
def __init__(self, config_obj):
self.config_obj = config_obj
self.config = self.config_obj.get_subconfig("plugins")
builder = Gtk.Builder()
builder.add_from_file(ViewConfig.PLUGINS_UI_FILE)
self.dialog = builder.get_object("PluginsDialog")
self.dialog.set_title(_("Plugins - %s" % info.NAME))
self.plugin_tree = builder.get_object("PluginTree")
self.plugin_configure = builder.get_object("plugin_configure")
self.plugin_about = builder.get_object("PluginAboutDialog")
self.plugin_depends = builder.get_object('PluginDepends')
help.add_help_shortcut(self.dialog, "plugins")
self.pengine = PluginEngine()
# plugin config initiation
if self.pengine.get_plugins():
self.config.set(
"disabled",
[p.module_name for p in self.pengine.get_plugins("disabled")],
)
self.config.set(
"enabled",
[p.module_name for p in self.pengine.get_plugins("enabled")],
)
# see constants PLUGINS_COL_* for column meanings
self.plugin_store = Gtk.ListStore(str, bool, str, str, bool)
builder.connect_signals({
'on_plugins_help':
self.on_help,
'on_plugins_close':
self.on_close,
'on_PluginsDialog_delete_event':
self.on_close,
'on_PluginTree_cursor_changed':
self.on_plugin_select,
'on_plugin_about':
self.on_plugin_about,
'on_plugin_configure':
self.on_plugin_configure,
'on_PluginAboutDialog_close':
self.on_plugin_about_close,
})
def _init_plugin_tree(self):
""" Initialize the PluginTree Gtk.TreeView.
The format is modelled after the one used in gedit; see
http://git.gnome.org/browse/gedit/tree/gedit/gedit-plugin-mapnager.c
"""
# force creation of the Gtk.ListStore so we can reference it
self._refresh_plugin_store()
# renderer for the toggle column
renderer = Gtk.CellRendererToggle()
renderer.set_property('xpad', 6)
renderer.connect('toggled', self.on_plugin_toggle)
# toggle column
column = Gtk.TreeViewColumn(None, renderer, active=PLUGINS_COL_ENABLED,
activatable=PLUGINS_COL_ACTIVATABLE,
sensitive=PLUGINS_COL_ACTIVATABLE)
self.plugin_tree.append_column(column)
# plugin name column
column = Gtk.TreeViewColumn()
column.set_spacing(6)
# icon renderer for the plugin name column
icon_renderer = Gtk.CellRendererPixbuf()
icon_renderer.set_property('stock-size', Gtk.IconSize.SMALL_TOOLBAR)
icon_renderer.set_property('xpad', 3)
column.pack_start(icon_renderer, False)
column.set_cell_data_func(icon_renderer, plugin_icon)
# text renderer for the plugin name column
name_renderer = Gtk.CellRendererText()
name_renderer.set_property('ellipsize', Pango.EllipsizeMode.END)
column.pack_start(name_renderer, True)
column.set_cell_data_func(name_renderer, plugin_markup, self)
self.plugin_tree.append_column(column)
# finish setup
self.plugin_tree.set_model(self.plugin_store)
self.plugin_tree.set_search_column(2)
def _refresh_plugin_store(self):
""" Refresh status of plugins and put it in a Gtk.ListStore """
self.plugin_store.clear()
self.pengine.recheck_plugin_errors(True)
for name, plugin in self.pengine.plugins.items():
# activateable if there is no error
self.plugin_store.append((name, plugin.enabled, plugin.full_name,
plugin.short_description,
not plugin.error))
#.........这里部分代码省略.........
示例2: __init__
# 需要导入模块: from GTG.core.plugins.engine import PluginEngine [as 别名]
# 或者: from GTG.core.plugins.engine.PluginEngine import get_plugin [as 别名]
#.........这里部分代码省略.........
'on_plugin_configure':
self.on_plugin_configure,
# the PluginAboutDialog
'on_PluginAboutDialog_close':
self.on_plugin_about_close,
'on_PluginAboutDialog_response':
self.on_plugin_about_close,
# the PluginConfigDialog
'on_PluginConfigClose_released':
self.on_plugin_config_close,
'on_PreferencesDialog_delete_event':
self.on_close,
'on_pref_autostart_toggled':
self.on_autostart_toggled,
}
return SIGNAL_CONNECTIONS_DIC
def activate(self, config_priv, widget=None):
"""Activate the preferences dialog."""
self.config_priv = config_priv
if len(self.plugin_tree.get_columns()) == 0:
# late setup of PluginTree
self._init_plugin_tree()
else:
self._refresh_plugin_store()
self._refresh_backend_store()
self._refresh_preferences_store()
self.dialog.present()
self.dialog.show_all()
def on_close(self, widget, data = None):
"""Close the preferences dialog."""
if self.pengine.get_plugins():
self.config["plugins"] = {}
self.config["plugins"]["disabled"] = \
[p.module_name for p in self.pengine.get_plugins("disabled")]
self.config["plugins"]["enabled"] = \
[p.module_name for p in self.pengine.get_plugins("enabled")]
self.config_obj.save()
self.dialog.hide()
return True
def on_help(self, widget):
"""Provide help for the preferences dialog."""
return True
def on_plugin_about(self, widget):
"""Display information about a plugin."""
(junk, iter) = self.plugin_tree.get_selection().get_selected()
if iter == None:
return
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()