From b94d1d1b8fc682dbf9f31d77752bbb0d4608beab Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 3 Oct 2009 20:02:40 +0100 Subject: [PATCH] Sort out Settings tab items --- openlp/core/lib/plugin.py | 14 ++++++++++---- openlp/core/lib/pluginmanager.py | 7 +++---- openlp/core/ui/settingsform.py | 13 +++++++++++-- openlp/plugins/bibles/bibleplugin.py | 3 +-- openlp/plugins/images/imageplugin.py | 3 +-- openlp/plugins/media/mediaplugin.py | 3 +-- openlp/plugins/presentations/presentationplugin.py | 3 +-- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index e9124ef83..0e82aa8b5 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -120,6 +120,7 @@ class Plugin(object): self.config = PluginConfig(self.name) self.weight = 0 self.media_id = -1 + self.settings_id = -1 self.media_active = False self.status = PluginStatus.Inactive # Set up logging @@ -254,14 +255,19 @@ class Plugin(object): """ if self.media_id is not -1: self.mediatoolbox.removeItem(self.media_id) - self.media_active = False + if self.settings_id is not -1: + self.settings.removeTab(self.settings_id) + self.media_active = False def insert_toolbox_item(self): """ Called by plugin to replace toolbar """ - if self.media_id is not -1: - if not self.media_active: + if not self.media_active: + if self.media_id is not -1: self.mediatoolbox.insertItem( self.media_id, self.media_item, self.icon, self.media_item.title) - self.media_active = True + if self.settings_id is not -1: + self.settings.insertTab( + self.settings_id, self.settings_tab) + self.media_active = True diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index 9f001bf26..905d34a09 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -154,10 +154,10 @@ class PluginManager(object): """ for plugin in self.plugins: if plugin.status is not PluginStatus.Disabled: - settings_tab = plugin.get_settings_tab() - if settings_tab is not None: + plugin.settings_tab = plugin.get_settings_tab() + if plugin.settings_tab is not None: log.debug(u'Inserting settings tab item from %s' % plugin.name) - settingsform.addTab(settings_tab) + plugin.settings_id = settingsform.addTab(plugin.settings_tab) else: log.debug(u'No tab settings in %s' % plugin.name) @@ -204,7 +204,6 @@ class PluginManager(object): """ log.info(u'initialising plugins') for plugin in self.plugins: - print plugin.name , plugin.media_item if plugin.is_active(): plugin.initialise() if plugin.media_item is not None and not plugin.is_active(): diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index d622bd1b2..2daaaaab7 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -47,8 +47,17 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): self.addTab(self.AlertsTab) def addTab(self, tab): - log.info(u'Inserting %s' % tab.title()) - self.SettingsTabWidget.addTab(tab, tab.title()) + log.info(u'Adding %s tab' % tab.title()) + return self.SettingsTabWidget.addTab(tab, tab.title()) + + def insertTab(self, id, tab): + log.debug(u'Inserting %s tab' % tab.title()) + self.SettingsTabWidget.insertTab(id, tab, tab.title()) + + def removeTab(self, id): + log.debug(u'remove %s no tab' % unicode(id)) + self.SettingsTabWidget.removeTab(id) + def accept(self): for tab_index in range(0, self.SettingsTabWidget.count()): diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index d68bd7f9a..ca02fd11f 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -44,8 +44,7 @@ class BiblePlugin(Plugin): self.biblemanager = BibleManager(self.config) def get_settings_tab(self): - self.bibles_tab = BiblesTab() - return self.bibles_tab + return BiblesTab() def get_media_manager_item(self): # Create the BibleManagerItem object diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index e9afa89da..e7c665aa6 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -52,8 +52,7 @@ class ImagePlugin(Plugin): self.remove_toolbox_item() def get_settings_tab(self): - self.ImageTab = ImageTab() - return self.ImageTab + return ImageTab() def get_media_manager_item(self): # Create the MediaManagerItem object diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 2919f9d7d..79b005a9a 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -37,8 +37,7 @@ class MediaPlugin(Plugin): self.dnd_id = u'Media' def get_settings_tab(self): - self.MediaTab = MediaTab() - return self.MediaTab + return MediaTab() def get_media_manager_item(self): # Create the MediaManagerItem object diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 93fc1035f..b5bbbcf59 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -50,8 +50,7 @@ class PresentationPlugin(Plugin): """ Create the settings Tab """ - self.presentation_tab = PresentationTab(self.controllers) - return self.presentation_tab + return PresentationTab(self.controllers) def get_media_manager_item(self): """