diff --git a/openlp/core/lib/db.py b/openlp/core/lib/db.py index cafc867b3..86e0a0a30 100644 --- a/openlp/core/lib/db.py +++ b/openlp/core/lib/db.py @@ -182,6 +182,7 @@ class Manager(object): settings.beginGroup(plugin_name) self.db_url = u'' self.is_dirty = False + self.session = None db_type = unicode( settings.value(u'db type', QtCore.QVariant(u'sqlite')).toString()) if db_type == u'sqlite': diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index 277842167..db5d9b60e 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -158,6 +158,8 @@ class PluginManager(object): for plugin in self.plugins: if plugin.status is not PluginStatus.Disabled: plugin.settings_tab = plugin.getSettingsTab(settings_form) + else: + plugin.settings_tab = None settings_form.plugins = self.plugins def hook_import_menu(self, import_menu): diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index c529248a9..6933bd8fc 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -117,16 +117,17 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): self.pluginListWidget.currentItem().text().split(u'(')[0][:-1] self.activePlugin = None for plugin in self.parent().pluginManager.plugins: - if plugin.nameStrings[u'singular'] == plugin_name_singular: - self.activePlugin = plugin - break + if plugin.status != PluginStatus.Disabled: + if plugin.nameStrings[u'singular'] == plugin_name_singular: + self.activePlugin = plugin + break if self.activePlugin: self._setDetails() else: self._clearDetails() def onStatusComboBoxChanged(self, status): - if self.programaticChange: + if self.programaticChange or status == PluginStatus.Disabled: return if status == 0: Receiver.send_message(u'cursor_busy') diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 54b1d3f1f..a5f194f7b 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -64,6 +64,9 @@ class SongsPlugin(Plugin): self.icon_path = u':/plugins/plugin_songs.png' self.icon = build_icon(self.icon_path) + def checkPreConditions(self): + return self.manager.session is not None + def initialise(self): log.info(u'Songs Initialising') Plugin.initialise(self) diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 495d3103d..d09831052 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -54,6 +54,9 @@ class SongUsagePlugin(Plugin): self.inactiveIcon = build_icon(u':/songusage/song_usage_inactive.png') self.songUsageActive = False + def checkPreConditions(self): + return self.manager.session is not None + def addToolsMenuItem(self, tools_menu): """ Give the SongUsage plugin the opportunity to add items to the