diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index 23115ab65..ca6fe7b17 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -44,20 +44,11 @@ class EventReceiver(QtCore.QObject): **Mainwindow related and generic signals** - ``openlp_version_check`` - Version has changed so pop up window. - ``openlp_stop_wizard`` Stops a wizard before completion. **Setting related signals** - ``config_updated`` - Informs components that the config has changed. - - ``config_screen_changed`` - The display monitor has been changed. - **Slidecontroller signals** ``slidecontroller_{live|preview}_next`` diff --git a/openlp/core/lib/imagemanager.py b/openlp/core/lib/imagemanager.py index 9726079f7..a5e32dbf8 100644 --- a/openlp/core/lib/imagemanager.py +++ b/openlp/core/lib/imagemanager.py @@ -39,7 +39,7 @@ import Queue from PyQt4 import QtCore -from openlp.core.lib import resize_image, image_to_byte, Receiver, Registry, ScreenList +from openlp.core.lib import resize_image, image_to_byte, Registry, ScreenList log = logging.getLogger(__name__) @@ -200,7 +200,7 @@ class ImageManager(QtCore.QObject): self.image_thread = ImageThread(self) self._conversion_queue = PriorityQueue() self.stop_manager = False - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.process_updates) + Registry().register_function(u'config_updated', self.process_updates) def update_display(self): """ diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index bad7defb8..586e35ad8 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -173,8 +173,7 @@ class Plugin(QtCore.QObject): Settings.extend_default_settings(default_settings) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'%s_add_service_item' % self.name), self.processAddServiceEvent) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'%s_config_updated' % self.name), - self.configUpdated) + Registry().register_function(u'%s_config_updated' % self.name, self.configUpdated) def checkPreConditions(self): """ diff --git a/openlp/core/lib/screen.py b/openlp/core/lib/screen.py index 9c118de99..e0779eda3 100644 --- a/openlp/core/lib/screen.py +++ b/openlp/core/lib/screen.py @@ -35,7 +35,7 @@ import copy from PyQt4 import QtCore -from openlp.core.lib import Receiver, translate +from openlp.core.lib import Registry, translate log = logging.getLogger(__name__) @@ -100,7 +100,7 @@ class ScreenList(object): if screen == self.override: self.override = copy.deepcopy(newScreen) self.set_override_display() - Receiver.send_message(u'config_screen_changed') + Registry().execute(u'config_screen_changed') break def screen_count_changed(self, changed_screen=-1): @@ -128,7 +128,7 @@ class ScreenList(object): # We do not want to send this message at start up. if changed_screen != -1: # Reload setting tabs to apply possible changes. - Receiver.send_message(u'config_screen_changed') + Registry().execute(u'config_screen_changed') def get_screen_list(self): """ diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 08a98d918..4c2dc6c60 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -36,7 +36,7 @@ import sys from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, Receiver, Settings, UiStrings, translate, build_icon +from openlp.core.lib import Registry, SettingsTab, Receiver, Settings, UiStrings, translate, build_icon from openlp.core.utils import get_images_filter, AppLocation, format_time from openlp.core.lib import SlideLimits @@ -455,7 +455,7 @@ class AdvancedTab(SettingsTab): settings.setValue(u'slide limits', self.slide_limits) settings.endGroup() if self.display_changed: - Receiver.send_message(u'config_screen_changed') + Registry().execute(u'config_screen_changed') self.display_changed = False Receiver.send_message(u'slidecontroller_update_slide_limits') diff --git a/openlp/core/ui/firsttimeform.py b/openlp/core/ui/firsttimeform.py index 1c4b7eaf2..033a0b52d 100644 --- a/openlp/core/ui/firsttimeform.py +++ b/openlp/core/ui/firsttimeform.py @@ -103,8 +103,7 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): QtCore.QObject.connect(self.noInternetFinishButton, QtCore.SIGNAL('clicked()'), self.onNoInternetFinishButtonClicked) QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), self.onCurrentIdChanged) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), - self.updateScreenListCombo) + Registry().register_function(u'config_screen_changed', self.updateScreenListCombo) def exec_(self): """ diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index 4626d36d2..0529e20d7 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -33,7 +33,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, Settings, SettingsTab, translate, ScreenList, UiStrings +from openlp.core.lib import Registry, Receiver, Settings, SettingsTab, translate, ScreenList, UiStrings log = logging.getLogger(__name__) @@ -199,7 +199,7 @@ class GeneralTab(SettingsTab): QtCore.QObject.connect(self.customXValueEdit, QtCore.SIGNAL(u'valueChanged(int)'), self.onDisplayChanged) QtCore.QObject.connect(self.monitorComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.onDisplayChanged) # Reload the tab, as the screen resolution/count may have changed. - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.load) + Registry().register_function(u'config_screen_changed', self.load) # Remove for now self.usernameLabel.setVisible(False) self.usernameEdit.setVisible(False) @@ -331,7 +331,7 @@ class GeneralTab(SettingsTab): else: self.screens.reset_current_display() if self.display_changed: - Receiver.send_message(u'config_screen_changed') + Registry().execute(u'config_screen_changed') self.display_changed = False def onOverrideRadioButtonPressed(self, checked): diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 9cae5dfac..3a09cc22c 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -161,7 +161,7 @@ class MainDisplay(Display): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'live_display_hide'), self.hideDisplay) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'live_display_show'), self.showDisplay) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'update_display_css'), self.cssChanged) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.configChanged) + Registry().register_function(u'config_updated', self.configChanged) def setTransparency(self, enabled): """ diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index cface47da..efb178f2d 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -529,9 +529,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.modeSetupItem, QtCore.SIGNAL(u'triggered()'), self.onModeSetupItemClicked) QtCore.QObject.connect(self.modeLiveItem, QtCore.SIGNAL(u'triggered()'), self.onModeLiveItemClicked) Registry().register_function(u'theme_update_global', self.defaultThemeChanged) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_version_check'), self.versionNotice) + Registry().register_function(u'openlp_version_check', self.versionNotice) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'live_display_blank_check'), self.blankCheck) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) + Registry().register_function(u'config_screen_changed', self.screenChanged) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'cleanup'), self.clean_up) # Media Manager QtCore.QObject.connect(self.mediaToolBox, QtCore.SIGNAL(u'currentChanged(int)'), self.onMediaToolBoxChanged) @@ -539,9 +539,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # Simple message boxes QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'set_new_data_path'), self.setNewDataPath) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'set_copy_data'), self.setCopyData) - # warning cyclic dependency - # renderer needs to call ThemeManager and - # ThemeManager needs to call Renderer + Registry().register_function(u'theme_update_global', self.defaultThemeChanged) + Registry().register_function(u'openlp_version_check', self.versionNotice) + QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'live_display_blank_check'), self.blankCheck) + QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'cleanup'), self.clean_up) self.renderer = Renderer() # Define the media Dock Manager self.mediaDockManager = MediaDockManager(self.mediaToolBox) diff --git a/openlp/core/ui/media/playertab.py b/openlp/core/ui/media/playertab.py index cfa274d0c..cdf302351 100644 --- a/openlp/core/ui/media/playertab.py +++ b/openlp/core/ui/media/playertab.py @@ -31,7 +31,7 @@ The :mod:`~openlp.core.ui.media.playertab` module holds the configuration tab fo """ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, translate, Receiver, Settings, UiStrings +from openlp.core.lib import Registry, SettingsTab, translate, Receiver, Settings, UiStrings from openlp.core.lib.ui import create_button from openlp.core.ui.media import get_media_players, set_media_players @@ -230,7 +230,7 @@ class PlayerTab(SettingsTab): if player_string_changed: self.service_manager.reset_supported_suffixes() Receiver.send_message(u'mediaitem_media_rebuild') - Receiver.send_message(u'config_screen_changed') + Registry().execute(u'config_screen_changed') def postSetUp(self, postUpdate=False): """ diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 5a2c96782..fbd8a8d80 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -211,9 +211,8 @@ class ServiceManagerDialog(object): QtCore.QObject.connect(self.service_manager_list, QtCore.SIGNAL(u'itemExpanded(QTreeWidgetItem*)'), self.expanded) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_update_list'), self.update_theme_list) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.config_updated) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), - self.regenerate_service_Items) + Registry().register_function(u'config_updated', self.config_updated) + Registry().register_function(u'config_screen_changed', self.regenerate_service_Items) Registry().register_function(u'theme_update_global', self.theme_change) # Last little bits of setting up self.service_theme = Settings().value(self.main_window.serviceManagerSettingsSection + u'/service theme') diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index 0543f1087..520e5b8bd 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -107,7 +107,7 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): for tabIndex in range(self.stackedLayout.count()): self.stackedLayout.widget(tabIndex).save() # Must go after all settings are save - Receiver.send_message(u'config_updated') + Registry().execute(u'config_updated') return QtGui.QDialog.accept(self) def reject(self): diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index f0e16b78b..c2dab4011 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -135,7 +135,7 @@ class ThemeManager(QtGui.QWidget): QtCore.QObject.connect(self.theme_list_widget, QtCore.SIGNAL(u'currentItemChanged(QListWidgetItem *, QListWidgetItem *)'), self.check_list_state) Registry().register_function(u'theme_update_global', self.change_global_from_tab) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.config_updated) + Registry().register_function(u'config_updated', self.config_updated) # Variables self.theme_list = [] self.path = AppLocation.get_section_data_path(self.settingsSection) diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index f1c05e668..9d5c09e65 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -51,7 +51,7 @@ if sys.platform != u'win32' and sys.platform != u'darwin': XDG_BASE_AVAILABLE = False import openlp -from openlp.core.lib import Receiver, translate, check_directory_exists +from openlp.core.lib import translate, check_directory_exists log = logging.getLogger(__name__) APPLICATION_VERSION = {} @@ -75,7 +75,7 @@ class VersionThread(QtCore.QThread): app_version = get_application_version() version = check_latest_version(app_version) if LooseVersion(str(version)) > LooseVersion(str(app_version[u'full'])): - Receiver.send_message(u'openlp_version_check', u'%s' % version) + Registry().execute(u'openlp_version_check', u'%s' % version) class AppLocation(object): diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 13d770909..7ab3444dc 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -31,7 +31,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, translate, create_separated_list, \ +from openlp.core.lib import Registry, MediaManagerItem, Receiver, ItemCapabilities, translate, create_separated_list, \ ServiceItemContext, Settings, UiStrings from openlp.core.lib.searchedit import SearchEdit from openlp.core.lib.ui import set_case_insensitive_completer, create_horizontal_adjusting_combo_box, \ @@ -246,7 +246,7 @@ class BibleMediaItem(MediaManagerItem): # Buttons QtCore.QObject.connect(self.advancedSearchButton, QtCore.SIGNAL(u'clicked()'), self.onAdvancedSearchButton) QtCore.QObject.connect(self.quickSearchButton, QtCore.SIGNAL(u'clicked()'), self.onQuickSearchButton) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.configUpdated) + Registry().register_function(u'config_updated', self.configUpdated) # Other stuff QtCore.QObject.connect(self.quickSearchEdit, QtCore.SIGNAL(u'returnPressed()'), self.onQuickSearchButton) QtCore.QObject.connect(self.searchTabBar, QtCore.SIGNAL(u'currentChanged(int)'), diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 7b87dbef5..7b24da8db 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -32,7 +32,7 @@ import logging from PyQt4 import QtCore, QtGui from sqlalchemy.sql import or_, func, and_ -from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, check_item_selected, translate, \ +from openlp.core.lib import Registry, MediaManagerItem, Receiver, ItemCapabilities, check_item_selected, translate, \ ServiceItemContext, Settings, PluginStatus, UiStrings from openlp.plugins.custom.forms import EditCustomForm from openlp.plugins.custom.lib import CustomXMLParser, CustomXMLBuilder @@ -75,7 +75,7 @@ class CustomMediaItem(MediaManagerItem): self.onSearchTextButtonClicked) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_load_list'), self.loadList) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_preview'), self.onPreviewClick) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.config_updated) + Registry().register_function(u'config_updated', self.config_updated) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_create_from_service'), self.create_from_service_item) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index deca81f77..916ee45ad 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -75,7 +75,7 @@ class MediaMediaItem(MediaManagerItem): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'video_background_replaced'), self.videobackgroundReplaced) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'mediaitem_media_rebuild'), self.rebuild_players) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.displaySetup) + Registry().register_function(u'config_screen_changed', self.displaySetup) # Allow DnD from the desktop self.listView.activateDnD() diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py index 1d28355c4..22024680e 100644 --- a/openlp/plugins/remotes/lib/remotetab.py +++ b/openlp/plugins/remotes/lib/remotetab.py @@ -29,7 +29,7 @@ from PyQt4 import QtCore, QtGui, QtNetwork -from openlp.core.lib import Settings, SettingsTab, translate, Receiver +from openlp.core.lib import Registry, Settings, SettingsTab, translate ZERO_URL = u'0.0.0.0' @@ -152,7 +152,7 @@ class RemoteTab(SettingsTab): Settings().setValue(self.settingsSection + u'/ip address', self.addressEdit.text()) Settings().setValue(self.settingsSection + u'/twelve hour', self.twelveHour) if changed: - Receiver.send_message(u'remotes_config_updated') + Registry().register_function(u'remotes_config_updated') def onTwelveHourCheckBoxChanged(self, check_state): self.twelveHour = False diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 883865bb8..eca29f1e0 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -35,7 +35,7 @@ import shutil from PyQt4 import QtCore, QtGui from sqlalchemy.sql import or_ -from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, translate, check_item_selected, \ +from openlp.core.lib import Registry, MediaManagerItem, Receiver, ItemCapabilities, translate, check_item_selected, \ PluginStatus, create_separated_list, check_directory_exists, ServiceItemContext, Settings, UiStrings from openlp.core.lib.ui import create_widget_action from openlp.core.utils import AppLocation @@ -100,7 +100,7 @@ class SongMediaItem(MediaManagerItem): self.addSearchToToolBar() # Signals and slots QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'songs_load_list'), self.onSongListLoad) - QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.configUpdated) + Registry().register_function(u'config_updated', self.configUpdated) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'songs_preview'), self.onPreviewClick) QtCore.QObject.connect(self.searchTextEdit, QtCore.SIGNAL(u'cleared()'), self.onClearTextButtonClick) QtCore.QObject.connect(self.searchTextEdit, QtCore.SIGNAL(u'searchTypeChanged(int)'),