diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 76e54ef8d..624ce2083 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -91,8 +91,9 @@ class Plugin(QtCore.QObject): ``checkPreConditions()`` Provides the Plugin with a handle to check if it can be loaded. - ``getMediaManagerItem()`` - Returns an instance of MediaManagerItem to be used in the Media Manager. + ``createMediaManagerItem()`` + Creates a new instance of MediaManagerItem to be used in the Media + Manager. ``addImportMenuItem(import_menu)`` Add an item to the Import menu. @@ -100,8 +101,8 @@ class Plugin(QtCore.QObject): ``addExportMenuItem(export_menu)`` Add an item to the Export menu. - ``getSettingsTab()`` - Returns an instance of SettingsTabItem to be used in the Settings + ``createSettingsTab()`` + Creates a new instance of SettingsTabItem to be used in the Settings dialog. ``addToMenu(menubar)`` @@ -156,10 +157,10 @@ class Plugin(QtCore.QObject): self.icon = None self.media_item_class = media_item_class self.settings_tab_class = settings_tab_class + self.settings_tab = None + self.mediaItem = None self.weight = 0 self.status = PluginStatus.Inactive - # Set up logging - self.log = logging.getLogger(self.name) self.previewController = plugin_helpers[u'preview'] self.liveController = plugin_helpers[u'live'] self.renderer = plugin_helpers[u'renderer'] @@ -178,7 +179,7 @@ class Plugin(QtCore.QObject): Provides the Plugin with a handle to check if it can be loaded. Failing Preconditions does not stop a settings Tab being created - Returns True or False. + Returns ``True`` or ``False``. """ return True @@ -210,15 +211,14 @@ class Plugin(QtCore.QObject): """ return self.status == PluginStatus.Active - def getMediaManagerItem(self): + def createMediaManagerItem(self): """ Construct a MediaManagerItem object with all the buttons and things - you need, and return it for integration into openlp.org. + you need, and return it for integration into OpenLP. """ if self.media_item_class: - return self.media_item_class(self.mediadock.media_dock, self, - self.icon) - return None + self.mediaItem = self.media_item_class(self.mediadock.media_dock, + self, self.icon) def addImportMenuItem(self, importMenu): """ @@ -247,16 +247,15 @@ class Plugin(QtCore.QObject): """ pass - def getSettingsTab(self, parent): + def createSettingsTab(self, parent): """ - Create a tab for the settings window to display the configurable - options for this plugin to the user. + Create a tab for the settings window to display the configurable options + for this plugin to the user. """ if self.settings_tab_class: - return self.settings_tab_class(parent, self.name, + self.settings_tab = self.settings_tab_class(parent, self.name, self.getString(StringContent.VisibleName)[u'title'], self.icon_path) - return None def addToMenu(self, menubar): """ diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index db5d9b60e..d63a37dde 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -90,7 +90,7 @@ class PluginManager(object): thisdepth = len(path.split(os.sep)) if thisdepth - startdepth > 2: # skip anything lower down - continue + break modulename = os.path.splitext(path)[0] prefix = os.path.commonprefix([self.basepath, path]) # hack off the plugin base path @@ -113,7 +113,7 @@ class PluginManager(object): plugin_objects.append(plugin) except TypeError: log.exception(u'Failed to load plugin %s', unicode(p)) - plugins_list = sorted(plugin_objects, self.order_by_weight) + plugins_list = sorted(plugin_objects, key=lambda plugin: plugin.weight) for plugin in plugins_list: if plugin.checkPreConditions(): log.debug(u'Plugin %s active', unicode(plugin.name)) @@ -122,29 +122,13 @@ class PluginManager(object): plugin.status = PluginStatus.Disabled self.plugins.append(plugin) - def order_by_weight(self, x, y): + def hook_media_manager(self): """ - Sort two plugins and order them by their weight. - - ``x`` - The first plugin. - - ``y`` - The second plugin. - """ - return cmp(x.weight, y.weight) - - def hook_media_manager(self, mediadock): - """ - Loop through all the plugins. If a plugin has a valid media manager - item, add it to the media manager. - - ``mediatoolbox`` - The Media Manager itself. + Create the plugins' media manager items. """ for plugin in self.plugins: if plugin.status is not PluginStatus.Disabled: - plugin.mediaItem = plugin.getMediaManagerItem() + plugin.createMediaManagerItem() def hook_settings_tabs(self, settings_form=None): """ @@ -152,14 +136,12 @@ class PluginManager(object): item, add it to the settings tab. Tabs are set for all plugins not just Active ones - ``settingsform`` + ``settings_form`` Defaults to *None*. The settings form to add tabs to. """ for plugin in self.plugins: if plugin.status is not PluginStatus.Disabled: - plugin.settings_tab = plugin.getSettingsTab(settings_form) - else: - plugin.settings_tab = None + plugin.createSettingsTab(settings_form) settings_form.plugins = self.plugins def hook_import_menu(self, import_menu): @@ -225,7 +207,7 @@ class PluginManager(object): def get_plugin_by_name(self, name): """ - Return the plugin which has a name with value ``name`` + Return the plugin which has a name with value ``name``. """ for plugin in self.plugins: if plugin.name == name: diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 0974f53fb..ab21a9c19 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -655,7 +655,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.pluginManager.hook_settings_tabs(self.settingsForm) # Find and insert media manager items log.info(u'hook media') - self.pluginManager.hook_media_manager(self.mediaDockManager) + self.pluginManager.hook_media_manager() # Call the hook method to pull in import menus. log.info(u'hook menus') self.pluginManager.hook_import_menu(self.fileImportMenu) diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 97f749689..2825d899e 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -52,12 +52,12 @@ class MediaPlugin(Plugin): for ext in self.video_extensions_list: self.serviceManager.supportedSuffixes(ext[2:]) - def getSettingsTab(self, parent): + def createSettingsTab(self, parent): """ Create the settings Tab """ visible_name = self.getString(StringContent.VisibleName) - return MediaTab(parent, self.name, visible_name[u'title'], + self.settings_tab = MediaTab(parent, self.name, visible_name[u'title'], self.mediaController.mediaPlayers, self.icon_path) def about(self): diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 643ad14ad..e35659638 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -57,13 +57,13 @@ class PresentationPlugin(Plugin): self.icon_path = u':/plugins/plugin_presentations.png' self.icon = build_icon(self.icon_path) - def getSettingsTab(self, parent): + def createSettingsTab(self, parent): """ Create the settings Tab """ visible_name = self.getString(StringContent.VisibleName) - return PresentationTab(parent, self.name, visible_name[u'title'], - self.controllers, self.icon_path) + self.settings_tab = PresentationTab(parent, self.name, + visible_name[u'title'], self.controllers, self.icon_path) def initialise(self): """ @@ -94,11 +94,11 @@ class PresentationPlugin(Plugin): controller.kill() Plugin.finalise(self) - def getMediaManagerItem(self): + def createMediaManagerItem(self): """ Create the Media Manager List """ - return PresentationMediaItem( + self.mediaItem = PresentationMediaItem( self.mediadock.media_dock, self, self.icon, self.controllers) def registerControllers(self, controller): diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index c1566a639..776c3c88b 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -181,7 +181,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): plugin.status == PluginStatus.Active: self.audioAddFromMediaButton.setVisible(True) self.mediaForm.populateFiles( - plugin.getMediaManagerItem().getList(MediaType.Audio)) + plugin.mediaItem.getList(MediaType.Audio)) break def newSong(self):