openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #19124
[Merge] lp:~trb143/openlp/event_receiver_removal into lp:openlp
Tim Bentley has proposed merging lp:~trb143/openlp/event_receiver_removal into lp:openlp.
Requested reviews:
Raoul Snyman (raoul-snyman)
For more details, see:
https://code.launchpad.net/~trb143/openlp/event_receiver_removal/+merge/146317
Cleanups from Raouls merge
Remove test harness from openlp
Start to remove Receiver events
--
https://code.launchpad.net/~trb143/openlp/event_receiver_removal/+merge/146317
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/__init__.py'
--- openlp/core/__init__.py 2013-02-03 14:40:48 +0000
+++ openlp/core/__init__.py 2013-02-03 19:24:22 +0000
@@ -97,7 +97,7 @@
self.shared_memory.detach()
return result
- def run(self, args, testing=False):
+ def run(self, args):
"""
Run the OpenLP application.
"""
@@ -110,10 +110,6 @@
if 'OpenLP' in args:
args.remove('OpenLP')
self.args.extend(args)
- # provide a listener for widgets to reqest a screen update.
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_process_events'), self.processEvents)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'cursor_busy'), self.set_busy_cursor)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'cursor_normal'), self.set_normal_cursor)
# Decide how many screens we have and their size
screens = ScreenList.create(self.desktop())
# First time checks in settings
@@ -139,7 +135,7 @@
# make sure Qt really display the splash screen
self.processEvents()
# start the main app window
- self.main_window = MainWindow(self)
+ self.main_window = MainWindow()
self.main_window.show()
if show_splash:
# now kill the splashscreen
@@ -156,9 +152,13 @@
VersionThread(self.main_window).start()
Receiver.send_message(u'live_display_blank_check')
self.main_window.app_startup()
- # Skip exec_() for gui tests
- if not testing:
- return self.exec_()
+ return self.exec_()
+
+ def close_splash_screen(self):
+ """
+ Close the splash screen when requested.
+ """
+ self.splash.close()
def is_already_running(self):
"""
@@ -199,6 +199,12 @@
self.set_normal_cursor()
self.exception_form.exec_()
+ def process_events(self):
+ """
+ Wrapper to make ProcessEvents visible and named correctly
+ """
+ self.processEvents()
+
def set_busy_cursor(self):
"""
Sets the Busy Cursor for the Application
@@ -211,6 +217,7 @@
Sets the Normal Cursor for the Application
"""
self.restoreOverrideCursor()
+ self.processEvents()
def event(self, event):
"""
@@ -255,7 +262,6 @@
parser.add_option('-d', '--dev-version', dest='dev_version', action='store_true',
help='Ignore the version file and pull the version directly from Bazaar')
parser.add_option('-s', '--style', dest='style', help='Set the Qt4 style (passed directly to Qt4).')
- parser.add_option('--testing', dest='testing', action='store_true', help='Run by testing framework')
# Parse command line options and deal with them.
# Use args supplied programatically if possible.
(options, args) = parser.parse_args(args) if args else parser.parse_args()
@@ -276,38 +282,37 @@
# Initialise the resources
qInitResources()
# Now create and actually run the application.
- app = OpenLP(qt_args)
- app.setOrganizationName(u'OpenLP')
- app.setOrganizationDomain(u'openlp.org')
+ application = OpenLP(qt_args)
+ application.setOrganizationName(u'OpenLP')
+ application.setOrganizationDomain(u'openlp.org')
if options.portable:
- app.setApplicationName(u'OpenLPPortable')
+ application.setApplicationName(u'OpenLPPortable')
Settings.setDefaultFormat(Settings.IniFormat)
# Get location OpenLPPortable.ini
- app_path = AppLocation.get_directory(AppLocation.AppDir)
- set_up_logging(os.path.abspath(os.path.join(app_path, u'..', u'..', u'Other')))
+ application_path = AppLocation.get_directory(AppLocation.AppDir)
+ set_up_logging(os.path.abspath(os.path.join(application_path, u'..', u'..', u'Other')))
log.info(u'Running portable')
- portable_settings_file = os.path.abspath(os.path.join(app_path, u'..', u'..', u'Data', u'OpenLP.ini'))
+ portable_settings_file = os.path.abspath(os.path.join(application_path, u'..', u'..', u'Data', u'OpenLP.ini'))
# Make this our settings file
log.info(u'INI file: %s', portable_settings_file)
Settings.set_filename(portable_settings_file)
portable_settings = Settings()
# Set our data path
- data_path = os.path.abspath(os.path.join(app_path, u'..', u'..', u'Data',))
+ data_path = os.path.abspath(os.path.join(application_path, u'..', u'..', u'Data',))
log.info(u'Data path: %s', data_path)
# Point to our data path
portable_settings.setValue(u'advanced/data path', data_path)
portable_settings.setValue(u'advanced/is portable', True)
portable_settings.sync()
else:
- app.setApplicationName(u'OpenLP')
+ application.setApplicationName(u'OpenLP')
set_up_logging(AppLocation.get_directory(AppLocation.CacheDir))
Registry.create()
- app.setApplicationVersion(get_application_version()[u'version'])
+ Registry().register(u'application', application)
+ application.setApplicationVersion(get_application_version()[u'version'])
# Instance check
- if not options.testing:
- # Instance check
- if app.is_already_running():
- sys.exit()
+ if application.is_already_running():
+ sys.exit()
# First time checks in settings
if not Settings().value(u'general/has run wizard'):
if not FirstTimeLanguageForm().exec_():
@@ -315,19 +320,14 @@
sys.exit()
# i18n Set Language
language = LanguageManager.get_language()
- app_translator, default_translator = LanguageManager.get_translator(language)
- if not app_translator.isEmpty():
- app.installTranslator(app_translator)
+ application_translator, default_translator = LanguageManager.get_translator(language)
+ if not application_translator.isEmpty():
+ application.installTranslator(application_translator)
if not default_translator.isEmpty():
- app.installTranslator(default_translator)
+ application.installTranslator(default_translator)
else:
log.debug(u'Could not find default_translator.')
if not options.no_error_form:
- sys.excepthook = app.hook_exception
- # Do not run method app.exec_() when running gui tests
- if options.testing:
- app.run(qt_args, testing=True)
- # For gui tests we need access to window instances and their components
- return app
- else:
- sys.exit(app.run(qt_args))
+ sys.excepthook = application.hook_exception
+ sys.exit(application.run(qt_args))
+
=== modified file 'openlp/core/lib/eventreceiver.py'
--- openlp/core/lib/eventreceiver.py 2013-02-01 19:58:18 +0000
+++ openlp/core/lib/eventreceiver.py 2013-02-03 19:24:22 +0000
@@ -47,24 +47,12 @@
``mainwindow_status_text``
Changes the bottom status bar text on the mainwindow.
- ``openlp_warning_message``
- Displays a standalone Warning Message.
-
``openlp_error_message``
Displays a standalone Error Message.
``openlp_information_message``
Displays a standalone Information Message.
- ``cursor_busy``
- Makes the cursor got to a busy form.
-
- ``cursor_normal``
- Resets the cursor to default.
-
- ``openlp_process_events``
- Requests the Application to flush the events queue.
-
``openlp_version_check``
Version has changed so pop up window.
@@ -121,29 +109,6 @@
``slidecontroller_live_stop_loop``
Stop the loop on the main display.
-
- **Servicemanager related signals**
-
- ``servicemanager_new_service``
- A new service is being loaded or created.
-
- ``servicemanager_previous_item``
- Display the previous item in the service.
-
- ``servicemanager_preview_live``
- Requests a Preview item from the Service Manager to update live and add
- a new item to the preview panel.
-
- ``servicemanager_next_item``
- Display the next item in the service.
-
- ``servicemanager_set_item``
- Go live on a specific item, by index.
-
- ``service_item_update``
- Passes back to the service manager the service item after it has been
- processed by the plugin.
-
**Display signals**
``update_display_css``
=== modified file 'openlp/core/lib/mediamanageritem.py'
--- openlp/core/lib/mediamanageritem.py 2013-02-02 21:16:42 +0000
+++ openlp/core/lib/mediamanageritem.py 2013-02-03 19:24:22 +0000
@@ -332,9 +332,9 @@
Settings().value(self.settingsSection + u'/last directory'), self.onNewFileMasks)
log.info(u'New files(s) %s', files)
if files:
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.validateAndLoad(files)
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def loadFile(self, files):
"""
@@ -718,3 +718,13 @@
return self._theme_manager
theme_manager = property(_get_theme_manager)
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/core/lib/plugin.py'
--- openlp/core/lib/plugin.py 2013-02-03 14:40:48 +0000
+++ openlp/core/lib/plugin.py 2013-02-03 19:24:22 +0000
@@ -409,6 +409,12 @@
"""
pass
+ def new_service_created(self):
+ """
+ The plugin's needs to handle a new song creation
+ """
+ pass
+
def _get_main_window(self):
"""
Adds the main window to the class dynamically
@@ -418,3 +424,13 @@
return self._main_window
main_window = property(_get_main_window)
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/core/lib/pluginmanager.py'
--- openlp/core/lib/pluginmanager.py 2013-02-01 19:58:18 +0000
+++ openlp/core/lib/pluginmanager.py 2013-02-03 19:24:22 +0000
@@ -212,3 +212,13 @@
if plugin.name == name:
return plugin
return None
+
+ def new_service_created(self):
+ """
+ Loop through all the plugins and give them an opportunity to handle a new service
+ """
+ log.info(u'plugins - new service created')
+ for plugin in self.plugins:
+ if plugin.isActive():
+ plugin.new_service_created()
+
=== modified file 'openlp/core/ui/firsttimeform.py'
--- openlp/core/ui/firsttimeform.py 2013-02-03 14:40:48 +0000
+++ openlp/core/ui/firsttimeform.py 2013-02-03 19:24:22 +0000
@@ -152,13 +152,13 @@
# Download the theme screenshots.
self.themeScreenshotThread = ThemeScreenshotThread(self)
self.themeScreenshotThread.start()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def nextId(self):
"""
Determine the next page in the Wizard to go to.
"""
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if self.currentId() == FirstTimePage.Plugins:
if not self.webAccess:
return FirstTimePage.NoInternet
@@ -169,14 +169,13 @@
elif self.currentId() == FirstTimePage.NoInternet:
return FirstTimePage.Progress
elif self.currentId() == FirstTimePage.Themes:
- Receiver.send_message(u'cursor_busy')
- Receiver.send_message(u'openlp_process_events')
+ self.application.set_busy_cursor()
while not self.themeScreenshotThread.isFinished():
time.sleep(0.1)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# Build the screenshot icons, as this can not be done in the thread.
self._buildThemeScreenshots()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
return FirstTimePage.Defaults
else:
return self.currentId() + 1
@@ -187,7 +186,7 @@
"""
# Keep track of the page we are at. Triggering "Cancel" causes pageId
# to be a -1.
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if pageId != -1:
self.lastId = pageId
if pageId == FirstTimePage.Plugins:
@@ -219,16 +218,15 @@
if self.hasRunWizard:
self.cancelButton.setVisible(False)
elif pageId == FirstTimePage.Progress:
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.repaint()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# Try to give the wizard a chance to redraw itself
time.sleep(0.2)
self._preWizard()
self._performWizard()
self._postWizard()
- Receiver.send_message(u'cursor_normal')
- Receiver.send_message(u'openlp_process_events')
+ self.application.set_normal_cursor()
def updateScreenListCombo(self):
"""
@@ -250,16 +248,15 @@
self.was_download_cancelled = True
while self.themeScreenshotThread.isRunning():
time.sleep(0.1)
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def onNoInternetFinishButtonClicked(self):
"""
Process the triggering of the "Finish" button on the No Internet page.
"""
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self._performWizard()
- Receiver.send_message(u'cursor_normal')
- Receiver.send_message(u'openlp_process_events')
+ self.application.set_normal_cursor()
Settings().setValue(u'general/has run wizard', True)
self.close()
@@ -335,7 +332,7 @@
self.progressLabel.setText(status_text)
if increment > 0:
self.progressBar.setValue(self.progressBar.value() + increment)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def _preWizard(self):
"""
@@ -343,10 +340,10 @@
"""
self.max_progress = 0
self.finishButton.setVisible(False)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# Loop through the songs list and increase for each selected item
for i in xrange(self.songsListWidget.count()):
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
item = self.songsListWidget.item(i)
if item.checkState() == QtCore.Qt.Checked:
filename = item.data(QtCore.Qt.UserRole)
@@ -355,7 +352,7 @@
# Loop through the Bibles list and increase for each selected item
iterator = QtGui.QTreeWidgetItemIterator(self.biblesTreeWidget)
while iterator.value():
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
item = iterator.value()
if item.parent() and item.checkState(0) == QtCore.Qt.Checked:
filename = item.data(0, QtCore.Qt.UserRole)
@@ -364,7 +361,7 @@
iterator += 1
# Loop through the themes list and increase for each selected item
for i in xrange(self.themesListWidget.count()):
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
item = self.themesListWidget.item(i)
if item.checkState() == QtCore.Qt.Checked:
filename = item.data(QtCore.Qt.UserRole)
@@ -384,7 +381,7 @@
self.progressPage.setTitle(translate('OpenLP.FirstTimeWizard', 'Setting Up'))
self.progressPage.setSubTitle(u'Setup complete.')
self.repaint()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# Try to give the wizard a chance to repaint itself
time.sleep(0.1)
@@ -411,7 +408,7 @@
self.finishButton.setEnabled(True)
self.cancelButton.setVisible(False)
self.nextButton.setVisible(False)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def _performWizard(self):
"""
@@ -489,3 +486,13 @@
return self._theme_manager
theme_manager = property(_get_theme_manager)
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/core/ui/maindisplay.py'
--- openlp/core/ui/maindisplay.py 2013-02-02 20:54:34 +0000
+++ openlp/core/ui/maindisplay.py 2013-02-03 19:24:22 +0000
@@ -243,7 +243,7 @@
log.debug(u'text to display')
# Wait for the webview to update before displaying text.
while not self.webLoaded:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
self.setGeometry(self.screen[u'size'])
if animate:
self.frame.evaluateJavaScript(u'show_text("%s")' % slide.replace(u'\\', u'\\\\').replace(u'\"', u'\\\"'))
@@ -347,18 +347,18 @@
Generates a preview of the image displayed.
"""
log.debug(u'preview for %s', self.isLive)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# We must have a service item to preview.
if self.isLive and hasattr(self, u'serviceItem'):
# Wait for the fade to finish before geting the preview.
# Important otherwise preview will have incorrect text if at all!
if self.serviceItem.themedata and self.serviceItem.themedata.display_slide_transition:
while self.frame.evaluateJavaScript(u'show_text_complete()') == u'false':
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# Wait for the webview to update before getting the preview.
# Important otherwise first preview will miss the background !
while not self.webLoaded:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# if was hidden keep it hidden
if self.isLive:
if self.hideMode:
@@ -503,6 +503,16 @@
image_manager = property(_get_image_manager)
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
+
class AudioPlayer(QtCore.QObject):
"""
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2013-02-03 14:40:48 +0000
+++ openlp/core/ui/mainwindow.py 2013-02-03 19:24:22 +0000
@@ -455,14 +455,13 @@
"""
log.info(u'MainWindow loaded')
- def __init__(self, application):
+ def __init__(self):
"""
This constructor sets up the interface, the various managers, and the
plugins.
"""
QtGui.QMainWindow.__init__(self)
Registry().register(u'main_window', self)
- self.application = application
self.clipboard = self.application.clipboard()
self.arguments = self.application.args
# Set up settings sections for the main application (not for use by plugins).
@@ -487,7 +486,7 @@
self.recentFiles = []
# Set up the path with plugins
plugin_path = AppLocation.get_directory(AppLocation.PluginsDir)
- self.pluginManager = PluginManager(plugin_path)
+ self.plugin_manager = PluginManager(plugin_path)
self.imageManager = ImageManager()
# Set up the interface
self.setupUi(self)
@@ -538,10 +537,9 @@
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)
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
# Simple message boxes
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_error_message'), self.onErrorMessage)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_warning_message'), self.onWarningMessage)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_information_message'),
self.onInformationMessage)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'set_new_data_path'), self.setNewDataPath)
@@ -553,25 +551,25 @@
# Define the media Dock Manager
self.mediaDockManager = MediaDockManager(self.mediaToolBox)
log.info(u'Load Plugins')
- self.pluginManager.find_plugins(plugin_path)
+ self.plugin_manager.find_plugins(plugin_path)
# hook methods have to happen after find_plugins. Find plugins needs
# the controllers hence the hooks have moved from setupUI() to here
# Find and insert settings tabs
log.info(u'hook settings')
- self.pluginManager.hook_settings_tabs(self.settingsForm)
+ self.plugin_manager.hook_settings_tabs(self.settingsForm)
# Find and insert media manager items
log.info(u'hook media')
- self.pluginManager.hook_media_manager()
+ self.plugin_manager.hook_media_manager()
# Call the hook method to pull in import menus.
log.info(u'hook menus')
- self.pluginManager.hook_import_menu(self.fileImportMenu)
+ self.plugin_manager.hook_import_menu(self.fileImportMenu)
# Call the hook method to pull in export menus.
- self.pluginManager.hook_export_menu(self.fileExportMenu)
+ self.plugin_manager.hook_export_menu(self.fileExportMenu)
# Call the hook method to pull in tools menus.
- self.pluginManager.hook_tools_menu(self.toolsMenu)
+ self.plugin_manager.hook_tools_menu(self.toolsMenu)
# Call the initialise method to setup plugins.
log.info(u'initialise plugins')
- self.pluginManager.initialise_plugins()
+ self.plugin_manager.initialise_plugins()
# Create the displays as all necessary components are loaded.
self.previewController.screenSizeChanged()
self.liveController.screenSizeChanged()
@@ -587,7 +585,7 @@
# Hide/show the theme combobox on the service manager
self.serviceManagerContents.theme_change()
# Reset the cursor
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def setAutoLanguage(self, value):
"""
@@ -648,22 +646,22 @@
"""
Give all the plugins a chance to perform some tasks at startup
"""
- Receiver.send_message(u'openlp_process_events')
- for plugin in self.pluginManager.plugins:
+ self.application.process_events()
+ for plugin in self.plugin_manager.plugins:
if plugin.isActive():
plugin.app_startup()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def first_time(self):
"""
Import themes if first time
"""
- Receiver.send_message(u'openlp_process_events')
- for plugin in self.pluginManager.plugins:
+ self.application.process_events()
+ for plugin in self.plugin_manager.plugins:
if hasattr(plugin, u'first_time'):
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
plugin.first_time()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
temp_dir = os.path.join(unicode(gettempdir()), u'openlp')
shutil.rmtree(temp_dir, True)
@@ -684,14 +682,14 @@
QtGui.QMessageBox.No)
if answer == QtGui.QMessageBox.No:
return
- Receiver.send_message(u'cursor_busy')
screens = ScreenList()
first_run_wizard = FirstTimeForm(screens, self)
first_run_wizard.exec_()
if first_run_wizard.was_download_cancelled:
return
+ self.application.set_busy_cursor()
self.first_time()
- for plugin in self.pluginManager.plugins:
+ for plugin in self.plugin_manager.plugins:
self.activePlugin = plugin
oldStatus = self.activePlugin.status
self.activePlugin.setStatus()
@@ -707,6 +705,7 @@
# Check if any Bibles downloaded. If there are, they will be
# processed.
Receiver.send_message(u'bibles_load_list', True)
+ self.application.set_normal_cursor()
def blankCheck(self):
"""
@@ -723,21 +722,21 @@
"""
Display an error message
"""
- Receiver.send_message(u'close_splash')
+ self.application.close_splash_screen()
QtGui.QMessageBox.critical(self, data[u'title'], data[u'message'])
- def onWarningMessage(self, data):
+ def warning_message(self, message):
"""
Display a warning message
"""
- Receiver.send_message(u'close_splash')
- QtGui.QMessageBox.warning(self, data[u'title'], data[u'message'])
+ self.application.close_splash_screen()
+ QtGui.QMessageBox.warning(self, message[u'title'], message[u'message'])
def onInformationMessage(self, data):
"""
Display an informational message
"""
- Receiver.send_message(u'close_splash')
+ self.application.close_splash_screen()
QtGui.QMessageBox.information(self, data[u'title'], data[u'message'])
def onHelpWebSiteClicked(self):
@@ -841,7 +840,7 @@
setting_sections.extend([self.headerSection])
setting_sections.extend([u'crashreport'])
# Add plugin sections.
- for plugin in self.pluginManager.plugins:
+ for plugin in self.plugin_manager.plugins:
setting_sections.extend([plugin.name])
settings = Settings()
import_settings = Settings(import_file_name, Settings.IniFormat)
@@ -918,7 +917,7 @@
setting_sections.extend([self.themesSettingsSection])
setting_sections.extend([self.displayTagsSection])
# Add plugin sections.
- for plugin in self.pluginManager.plugins:
+ for plugin in self.plugin_manager.plugins:
setting_sections.extend([plugin.name])
# Delete old files if found.
if os.path.exists(temp_file):
@@ -1003,14 +1002,14 @@
renderer.
"""
log.debug(u'screenChanged')
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.imageManager.update_display()
self.renderer.update_display()
self.previewController.screenSizeChanged()
self.liveController.screenSizeChanged()
self.setFocus()
self.activateWindow()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def closeEvent(self, event):
"""
@@ -1070,7 +1069,7 @@
Settings().setValue(u'advanced/current media plugin', self.mediaToolBox.currentIndex())
# Call the cleanup method to shutdown plugins.
log.info(u'cleanup plugins')
- self.pluginManager.finalise_plugins()
+ self.plugin_manager.finalise_plugins()
if save_settings:
# Save settings
self.saveSettings()
@@ -1309,14 +1308,14 @@
self.loadProgressBar.show()
self.loadProgressBar.setMaximum(size)
self.loadProgressBar.setValue(0)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def incrementProgressBar(self):
"""
Increase the Progress Bar value by 1
"""
self.loadProgressBar.setValue(self.loadProgressBar.value() + 1)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def finishedProgressBar(self):
"""
@@ -1331,7 +1330,7 @@
if event.timerId() == self.timer_id:
self.timer_id = 0
self.loadProgressBar.hide()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def setNewDataPath(self, new_data_path):
"""
@@ -1352,23 +1351,22 @@
log.info(u'Changing data path to %s' % self.newDataPath)
old_data_path = unicode(AppLocation.get_data_path())
# Copy OpenLP data to new location if requested.
+ self.application.set_busy_cursor()
if self.copyData:
log.info(u'Copying data to new path')
try:
- Receiver.send_message(u'openlp_process_events')
- Receiver.send_message(u'cursor_busy')
self.showStatusMessage(
translate('OpenLP.MainWindow', 'Copying OpenLP data to new data directory location - %s '
'- Please wait for copy to finish').replace('%s', self.newDataPath))
dir_util.copy_tree(old_data_path, self.newDataPath)
log.info(u'Copy sucessful')
except (IOError, os.error, DistutilsFileError), why:
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
log.exception(u'Data copy failed %s' % unicode(why))
QtGui.QMessageBox.critical(self, translate('OpenLP.MainWindow', 'New Data Directory Error'),
translate('OpenLP.MainWindow',
'OpenLP Data directory copy failed\n\n%s').replace('%s', unicode(why)),
- QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
+ QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok))
return False
else:
log.info(u'No data copy requested')
@@ -1378,3 +1376,14 @@
# Check if the new data path is our default.
if self.newDataPath == AppLocation.get_directory(AppLocation.DataDir):
settings.remove(u'advanced/data path')
+ self.application.set_normal_cursor()
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/core/ui/media/mediaplayer.py'
--- openlp/core/ui/media/mediaplayer.py 2013-02-02 06:32:29 +0000
+++ openlp/core/ui/media/mediaplayer.py 2013-02-03 19:24:22 +0000
@@ -29,6 +29,7 @@
"""
The :mod:`~openlp.core.ui.media.mediaplayer` module contains the MediaPlayer class.
"""
+from openlp.core.lib import Registry
from openlp.core.ui.media import MediaState
@@ -149,3 +150,13 @@
Returns Information about the player
"""
return u''
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
\ No newline at end of file
=== modified file 'openlp/core/ui/media/phononplayer.py'
--- openlp/core/ui/media/phononplayer.py 2013-02-02 06:32:29 +0000
+++ openlp/core/ui/media/phononplayer.py 2013-02-03 19:24:22 +0000
@@ -36,7 +36,7 @@
from PyQt4 import QtGui
from PyQt4.phonon import Phonon
-from openlp.core.lib import Receiver, translate, Settings
+from openlp.core.lib import translate, Settings
from openlp.core.ui.media import MediaState
from openlp.core.ui.media.mediaplayer import MediaPlayer
@@ -168,7 +168,7 @@
current_state = display.mediaObject.state()
if current_state == Phonon.ErrorState:
return False
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if (datetime.now() - start).seconds > 5:
return False
return True
=== modified file 'openlp/core/ui/media/vlcplayer.py'
--- openlp/core/ui/media/vlcplayer.py 2013-02-02 06:32:29 +0000
+++ openlp/core/ui/media/vlcplayer.py 2013-02-03 19:24:22 +0000
@@ -37,7 +37,7 @@
from PyQt4 import QtGui
-from openlp.core.lib import Receiver, translate, Settings
+from openlp.core.lib import translate, Settings
from openlp.core.ui.media import MediaState
from openlp.core.ui.media.mediaplayer import MediaPlayer
@@ -187,7 +187,7 @@
while not mediaState == display.vlcMedia.get_state():
if display.vlcMedia.get_state() == vlc.State.Error:
return False
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if (datetime.now() - start).seconds > 60:
return False
return True
=== modified file 'openlp/core/ui/pluginform.py'
--- openlp/core/ui/pluginform.py 2013-02-02 20:54:34 +0000
+++ openlp/core/ui/pluginform.py 2013-02-03 19:24:22 +0000
@@ -33,7 +33,7 @@
from PyQt4 import QtCore, QtGui
-from openlp.core.lib import PluginStatus, Receiver, translate
+from openlp.core.lib import PluginStatus, Registry, translate
from plugindialog import Ui_PluginViewDialog
log = logging.getLogger(__name__)
@@ -68,7 +68,7 @@
self._clearDetails()
self.programaticChange = True
pluginListWidth = 0
- for plugin in self.parent().pluginManager.plugins:
+ for plugin in self.plugin_manager.plugins:
item = QtGui.QListWidgetItem(self.pluginListWidget)
# We do this just to make 100% sure the status is an integer as
# sometimes when it's loaded from the config, it isn't cast to int.
@@ -121,10 +121,9 @@
if self.pluginListWidget.currentItem() is None:
self._clearDetails()
return
- plugin_name_singular = \
- self.pluginListWidget.currentItem().text().split(u'(')[0][:-1]
+ plugin_name_singular = self.pluginListWidget.currentItem().text().split(u'(')[0][:-1]
self.activePlugin = None
- for plugin in self.parent().pluginManager.plugins:
+ for plugin in self.plugin_manager.plugins:
if plugin.status != PluginStatus.Disabled:
if plugin.nameStrings[u'singular'] == plugin_name_singular:
self.activePlugin = plugin
@@ -141,9 +140,9 @@
if self.programaticChange or status == PluginStatus.Disabled:
return
if status == PluginStatus.Inactive:
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.activePlugin.toggleStatus(PluginStatus.Active)
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
self.activePlugin.app_startup()
else:
self.activePlugin.toggleStatus(PluginStatus.Inactive)
@@ -156,3 +155,23 @@
status_text = translate('OpenLP.PluginForm', '%s (Disabled)')
self.pluginListWidget.currentItem().setText(
status_text % self.activePlugin.nameStrings[u'singular'])
+
+ def _get_plugin_manager(self):
+ """
+ Adds the plugin manager to the class dynamically
+ """
+ if not hasattr(self, u'_plugin_manager'):
+ self._plugin_manager = Registry().get(u'plugin_manager')
+ return self._plugin_manager
+
+ plugin_manager = property(_get_plugin_manager)
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/core/ui/printserviceform.py'
--- openlp/core/ui/printserviceform.py 2013-02-01 20:52:42 +0000
+++ openlp/core/ui/printserviceform.py 2013-02-03 19:24:22 +0000
@@ -178,7 +178,7 @@
self._addElement(u'body', parent=html_data)
self._addElement(u'h1', cgi.escape(self.titleLineEdit.text()),
html_data.body, classId=u'serviceTitle')
- for index, item in enumerate(self.service_manager.serviceItems):
+ for index, item in enumerate(self.service_manager.service_items):
self._addPreviewItem(html_data.body, item[u'service_item'], index)
# Add the custom service notes:
if self.footerTextEdit.toPlainText():
=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py 2013-02-03 14:40:48 +0000
+++ openlp/core/ui/servicemanager.py 2013-02-03 19:24:22 +0000
@@ -42,7 +42,7 @@
from PyQt4 import QtCore, QtGui
-from openlp.core.lib import OpenLPToolbar, ServiceItem, Receiver, build_icon, ItemCapabilities, SettingsManager, \
+from openlp.core.lib import OpenLPToolbar, ServiceItem, Receiver, build_icon, ItemCapabilities, \
translate, str_to_bool, check_directory_exists, Settings, PluginStatus, Registry, UiStrings
from openlp.core.lib.theme import ThemeLevel
from openlp.core.lib.ui import critical_error_message_box, create_widget_action, find_and_set_in_combo_box
@@ -211,18 +211,10 @@
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'servicemanager_preview_live'),
- self.preview_live)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'servicemanager_next_item'), self.next_item)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'servicemanager_previous_item'),
- self.previous_item)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'servicemanager_set_item'), self.on_set_item)
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)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_update_global'), self.theme_change)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'service_item_update'),
- self.service_item_update)
# Last little bits of setting up
self.service_theme = Settings().value(self.main_window.serviceManagerSettingsSection + u'/service theme')
self.servicePath = AppLocation.get_section_data_path(u'servicemanager')
@@ -458,7 +450,7 @@
self.service_id += 1
self.set_modified(False)
Settings().setValue(u'servicemanager/last file', u'')
- Receiver.send_message(u'servicemanager_new_service')
+ self.plugin_manager.new_service_created()
def save_file(self):
"""
@@ -486,7 +478,7 @@
missing_list = []
audio_files = []
total_size = 0
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
# Number of items + 1 to zip it
self.main_window.displayProgressBar(len(self.service_items) + 1)
# Get list of missing files, and list of files to write
@@ -502,7 +494,7 @@
else:
write_list.append(path_from)
if missing_list:
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
title = translate('OpenLP.ServiceManager', 'Service File(s) Missing')
message = translate('OpenLP.ServiceManager',
'The following file(s) in the service are missing:\n\t%s\n\n'
@@ -512,7 +504,6 @@
if answer == QtGui.QMessageBox.Cancel:
self.main_window.finishedProgressBar()
return False
- Receiver.send_message(u'cursor_busy')
# Check if item contains a missing file.
for item in list(self.service_items):
self.main_window.incrementProgressBar()
@@ -573,7 +564,7 @@
if zip_file:
zip_file.close()
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
if success:
try:
shutil.copy(temp_file_name, path_file_name)
@@ -602,7 +593,7 @@
log.debug(u'ServiceManager.save_file - %s', path_file_name)
Settings().setValue(self.main_window.serviceManagerSettingsSection + u'/last directory', path)
service = []
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
# Number of items + 1 to zip it
self.main_window.displayProgressBar(len(self.service_items) + 1)
for item in self.service_items:
@@ -631,7 +622,7 @@
if zip_file:
zip_file.close()
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
if success:
try:
shutil.copy(temp_file_name, path_file_name)
@@ -708,6 +699,7 @@
return False
zip_file = None
file_to = None
+ self.application.set_busy_cursor()
try:
zip_file = zipfile.ZipFile(file_name)
for zip_info in zip_file.infolist():
@@ -728,7 +720,6 @@
if osfile.endswith(u'osd'):
p_file = os.path.join(self.servicePath, osfile)
if 'p_file' in locals():
- Receiver.send_message(u'cursor_busy')
file_to = open(p_file, u'r')
items = cPickle.load(file_to)
file_to.close()
@@ -773,6 +764,7 @@
QtGui.QMessageBox.information(self, translate('OpenLP.ServiceManager', 'Corrupt File'),
translate('OpenLP.ServiceManager',
'This file is either corrupt or it is not an OpenLP 2 service file.'))
+ self.application.set_normal_cursor()
return
finally:
if file_to:
@@ -780,7 +772,7 @@
if zip_file:
zip_file.close()
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
self.repaint_service_list(-1, -1)
def load_Last_file(self):
@@ -952,12 +944,20 @@
self.add_service_item(self.serviceItemEditForm.get_service_item(),
replace=True, expand=self.service_items[item][u'expanded'])
- def preview_live(self, message):
+ def preview_live(self, unique_identifier, row):
"""
Called by the SlideController to request a preview item be made live
and allows the next preview to be updated if relevant.
+
+
+ ``unique_identifier``
+ Reference to the service_item
+
+
+ ``row``
+ individual row number
+
"""
- unique_identifier, row = message.split(u':')
for sitem in self.service_items:
if sitem[u'service_item'].unique_identifier == unique_identifier:
item = self.service_manager_list.topLevelItem(sitem[u'order'] - 1)
@@ -983,9 +983,13 @@
lookFor = 1
serviceIterator += 1
- def previous_item(self, message):
+ def previous_item(self, last_slide=False):
"""
Called by the SlideController to select the previous service item.
+
+ ``last_slide``
+ Is this the last slide in the service_item
+
"""
if not self.service_manager_list.selectedItems():
return
@@ -995,7 +999,7 @@
serviceIterator = QtGui.QTreeWidgetItemIterator(self.service_manager_list)
while serviceIterator.value():
if serviceIterator.value() == selected:
- if message == u'last slide' and prevItemLastSlide:
+ if last_slide and prevItemLastSlide:
pos = prevItem.data(0, QtCore.Qt.UserRole)
check_expanded = self.service_items[pos - 1][u'expanded']
self.service_manager_list.setCurrentItem(prevItemLastSlide)
@@ -1254,7 +1258,7 @@
Rebuild the service list as things have changed and a
repaint is the easiest way to do this.
"""
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
log.debug(u'regenerate_service_Items')
# force reset of renderer as theme data has changed
self.service_has_all_original_files = True
@@ -1286,14 +1290,14 @@
self.set_modified()
# Repaint it once only at the end
self.repaint_service_list(-1, -1)
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
- def service_item_update(self, message):
+ def service_item_update(self, edit_id, unique_identifier, temporary=False):
"""
Triggered from plugins to update service items.
Save the values as they will be used as part of the service load
"""
- edit_id, self.load_item_unique_identifier, temporary = message.split(u':')
+ self.load_item_unique_identifier = unique_identifier
self.load_item_edit_id = int(edit_id)
self.load_item_temporary = str_to_bool(temporary)
@@ -1361,7 +1365,7 @@
"""
Send the current item to the Preview slide controller
"""
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
item, child = self.find_service_item()
if self.service_items[item][u'service_item'].is_valid:
self.preview_controller.addServiceManagerItem(self.service_items[item][u'service_item'], child)
@@ -1369,7 +1373,7 @@
critical_error_message_box(translate('OpenLP.ServiceManager', 'Missing Display Handler'),
translate('OpenLP.ServiceManager',
'Your item cannot be displayed as there is no handler to display it'))
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def get_service_item(self):
"""
@@ -1402,7 +1406,7 @@
return
if row != -1:
child = row
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
if self.service_items[item][u'service_item'].is_valid:
self.live_controller.addServiceManagerItem(self.service_items[item][u'service_item'], child)
if Settings().value(self.main_window.generalSettingsSection + u'/auto preview'):
@@ -1417,7 +1421,7 @@
critical_error_message_box(translate('OpenLP.ServiceManager', 'Missing Display Handler'),
translate('OpenLP.ServiceManager',
'Your item cannot be displayed as the plugin required to display it is missing or inactive'))
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def remote_edit(self):
"""
@@ -1630,3 +1634,13 @@
return self._main_window
main_window = property(_get_main_window)
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/core/ui/shortcutlistform.py'
--- openlp/core/ui/shortcutlistform.py 2013-02-01 21:34:23 +0000
+++ openlp/core/ui/shortcutlistform.py 2013-02-03 19:24:22 +0000
@@ -33,7 +33,7 @@
from PyQt4 import QtCore, QtGui
-from openlp.core.lib import Receiver, Settings
+from openlp.core.lib import Registry, Settings
from openlp.core.utils import translate
from openlp.core.utils.actions import ActionList
from shortcutlistdialog import Ui_ShortcutListDialog
@@ -438,7 +438,7 @@
if changing_action.shortcutContext() in [QtCore.Qt.WindowShortcut, QtCore.Qt.ApplicationShortcut]:
is_valid = False
if not is_valid:
- Receiver.send_message(u'openlp_warning_message', {
+ self.main_window.warning_message( {
u'title': translate('OpenLP.ShortcutListDialog', 'Duplicate Shortcut'),
u'message': translate('OpenLP.ShortcutListDialog',
'The shortcut "%s" is already assigned to another action, '
@@ -478,3 +478,13 @@
button.setChecked(checked)
if enabled is not None:
button.setEnabled(enabled)
+
+ def _get_main_window(self):
+ """
+ Adds the main window to the class dynamically
+ """
+ if not hasattr(self, u'_main_window'):
+ self._main_window = Registry().get(u'main_window')
+ return self._main_window
+
+ main_window = property(_get_main_window)
\ No newline at end of file
=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py 2013-02-02 20:54:34 +0000
+++ openlp/core/ui/slidecontroller.py 2013-02-03 19:24:22 +0000
@@ -518,12 +518,12 @@
self.keypress_loop = True
keypressCommand = self.keypress_queue.popleft()
if keypressCommand == ServiceItemAction.Previous:
- Receiver.send_message('servicemanager_previous_item')
+ self.service_manager.previous_item()
elif keypressCommand == ServiceItemAction.PreviousLastSlide:
# Go to the last slide of the previous item
- Receiver.send_message('servicemanager_previous_item', u'last slide')
+ self.service_manager.previous_item(last_slide=True)
else:
- Receiver.send_message('servicemanager_next_item')
+ self.service_manager.next_item()
self.keypress_loop = False
def screenSizeChanged(self):
@@ -1271,8 +1271,7 @@
row = self.previewListWidget.currentRow()
if -1 < row < self.previewListWidget.rowCount():
if self.serviceItem.from_service:
- Receiver.send_message('servicemanager_preview_live', u'%s:%s' %
- (self.serviceItem.unique_identifier, row))
+ self.service_manager.preview_live(self.serviceItem.unique_identifier, row)
else:
self.live_controller.addServiceManagerItem(self.serviceItem, row)
=== modified file 'openlp/core/ui/splashscreen.py'
--- openlp/core/ui/splashscreen.py 2013-02-01 21:34:23 +0000
+++ openlp/core/ui/splashscreen.py 2013-02-03 19:24:22 +0000
@@ -44,7 +44,6 @@
"""
QtGui.QSplashScreen.__init__(self)
self.setupUi()
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'close_splash'), self.close)
def setupUi(self):
"""
=== modified file 'openlp/core/ui/thememanager.py'
--- openlp/core/ui/thememanager.py 2013-02-02 21:16:42 +0000
+++ openlp/core/ui/thememanager.py 2013-02-03 19:24:22 +0000
@@ -153,13 +153,14 @@
"""
Import new themes downloaded by the first time wizard
"""
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
files = SettingsManager.get_files(self.settingsSection, u'.otz')
for theme_file in files:
theme_file = os.path.join(self.path, theme_file)
self.unzipTheme(theme_file, self.path)
delete_file(theme_file)
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
+
def config_updated(self):
"""
@@ -367,7 +368,7 @@
path = QtGui.QFileDialog.getExistingDirectory(self,
translate('OpenLP.ThemeManager', 'Save Theme - (%s)') % theme,
Settings().value(self.settingsSection + u'/last directory export'))
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
if path:
Settings().setValue(self.settingsSection + u'/last directory export', path)
theme_path = os.path.join(path, theme + u'.otz')
@@ -391,7 +392,8 @@
finally:
if theme_zip:
theme_zip.close()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
+
def on_import_theme(self):
"""
@@ -406,12 +408,12 @@
log.info(u'New Themes %s', unicode(files))
if not files:
return
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
for file_name in files:
Settings().setValue(self.settingsSection + u'/last directory import', unicode(file_name))
self.unzip_theme(file_name, self.path)
self.load_themes()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def load_themes(self, first_time=False):
"""
@@ -848,3 +850,13 @@
return self._main_window
main_window = property(_get_main_window)
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
\ No newline at end of file
=== modified file 'openlp/core/ui/wizard.py'
--- openlp/core/ui/wizard.py 2013-02-01 21:34:23 +0000
+++ openlp/core/ui/wizard.py 2013-02-03 19:24:22 +0000
@@ -34,7 +34,7 @@
from PyQt4 import QtCore, QtGui
-from openlp.core.lib import build_icon, Receiver, Settings, translate, UiStrings
+from openlp.core.lib import build_icon, Receiver, Registry, Settings, translate, UiStrings
from openlp.core.lib.ui import add_welcome_page
log = logging.getLogger(__name__)
@@ -219,7 +219,7 @@
self.progressLabel.setText(status_text)
if increment > 0:
self.progressBar.setValue(self.progressBar.value() + increment)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def preWizard(self):
"""
@@ -237,7 +237,7 @@
self.progressBar.setValue(self.progressBar.maximum())
self.finishButton.setVisible(True)
self.cancelButton.setVisible(False)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def getFileName(self, title, editbox, setting_name, filters=u''):
"""
@@ -286,3 +286,13 @@
if folder:
editbox.setText(folder)
Settings().setValue(self.plugin.settingsSection + u'/' + setting_name, folder)
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
\ No newline at end of file
=== modified file 'openlp/core/utils/__init__.py'
--- openlp/core/utils/__init__.py 2013-02-02 20:18:34 +0000
+++ openlp/core/utils/__init__.py 2013-02-03 19:24:22 +0000
@@ -39,7 +39,7 @@
import sys
import urllib2
-from openlp.core.lib import Settings
+from openlp.core.lib import Registry, Settings
from PyQt4 import QtGui, QtCore
@@ -424,7 +424,7 @@
if not page:
return None
if update_openlp:
- Receiver.send_message(u'openlp_process_events')
+ Registry().get(u'application').process_events()
log.debug(page)
return page
=== modified file 'openlp/plugins/bibles/forms/bibleimportform.py'
--- openlp/plugins/bibles/forms/bibleimportform.py 2013-01-18 20:35:30 +0000
+++ openlp/plugins/bibles/forms/bibleimportform.py 2013-02-03 19:24:22 +0000
@@ -34,7 +34,7 @@
from PyQt4 import QtCore, QtGui
-from openlp.core.lib import Receiver, translate, Settings, UiStrings
+from openlp.core.lib import translate, Settings, UiStrings
from openlp.core.lib.db import delete_database
from openlp.core.lib.ui import critical_error_message_box
from openlp.core.ui.wizard import OpenLPWizard, WizardStrings
@@ -578,7 +578,7 @@
self.progressLabel.setText(translate('BiblesPlugin.ImportWizardForm', 'Registering Bible...'))
else:
self.progressLabel.setText(WizardStrings.StartingImport)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def performWizard(self):
"""
=== modified file 'openlp/plugins/bibles/forms/bibleupgradeform.py'
--- openlp/plugins/bibles/forms/bibleupgradeform.py 2013-01-18 20:35:30 +0000
+++ openlp/plugins/bibles/forms/bibleupgradeform.py 2013-02-03 19:24:22 +0000
@@ -335,7 +335,7 @@
"""
OpenLPWizard.preWizard(self)
self.progressLabel.setText(translate('BiblesPlugin.UpgradeWizardForm', 'Starting upgrade...'))
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def performWizard(self):
"""
@@ -465,7 +465,7 @@
self.newbibles[number].create_verse(db_book.id,
int(verse[u'chapter']),
int(verse[u'verse']), unicode(verse[u'text']))
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
self.newbibles[number].session.commit()
else:
language_id = self.newbibles[number].get_object(BibleMeta, u'language_id')
@@ -511,7 +511,7 @@
self.newbibles[number].create_verse(db_book.id,
int(verse[u'chapter']),
int(verse[u'verse']), unicode(verse[u'text']))
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
self.newbibles[number].session.commit()
if not self.success.get(number, True):
self.incrementProgressBar(translate('BiblesPlugin.UpgradeWizardForm',
=== modified file 'openlp/plugins/bibles/forms/editbibleform.py'
--- openlp/plugins/bibles/forms/editbibleform.py 2013-01-11 00:19:11 +0000
+++ openlp/plugins/bibles/forms/editbibleform.py 2013-02-03 19:24:22 +0000
@@ -32,7 +32,7 @@
from PyQt4 import QtGui
-from openlp.core.lib import Receiver, translate, UiStrings
+from openlp.core.lib import Registry, translate, UiStrings
from openlp.core.lib.ui import critical_error_message_box
from editbibledialog import Ui_EditBibleDialog
from openlp.plugins.bibles.lib import BibleStrings
@@ -122,8 +122,7 @@
if book.name != custom_names[abbr]:
if not self.validateBook(custom_names[abbr], abbr):
return
- Receiver.send_message(u'openlp_process_events')
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.manager.save_meta_data(self.bible, version, copyright, permissions, book_name_language)
if not self.webbible:
for abbr, book in self.books.iteritems():
@@ -132,7 +131,7 @@
book.name = custom_names[abbr]
self.manager.update_book(self.bible, book)
self.bible = None
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
QtGui.QDialog.accept(self)
def validateMeta(self, name, copyright):
@@ -189,3 +188,13 @@
% new_book_name)
return False
return True
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/plugins/bibles/lib/csvbible.py'
--- openlp/plugins/bibles/lib/csvbible.py 2013-01-01 16:33:41 +0000
+++ openlp/plugins/bibles/lib/csvbible.py 2013-02-03 19:24:22 +0000
@@ -118,7 +118,7 @@
book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
self.create_book(unicode(line[2], details['encoding']), book_ref_id, book_details[u'testament_id'])
book_list[int(line[0])] = unicode(line[2], details['encoding'])
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
except (IOError, IndexError):
log.exception(u'Loading books from file failed')
success = False
@@ -157,7 +157,7 @@
verse_text = unicode(line[3], u'cp1252')
self.create_verse(book.id, line[1], line[2], verse_text)
self.wizard.incrementProgressBar(translate('BiblesPlugin.CSVBible', 'Importing verses... done.'))
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
self.session.commit()
except IOError:
log.exception(u'Loading verses from file failed')
=== modified file 'openlp/plugins/bibles/lib/db.py'
--- openlp/plugins/bibles/lib/db.py 2013-01-11 00:35:00 +0000
+++ openlp/plugins/bibles/lib/db.py 2013-02-03 19:24:22 +0000
@@ -38,7 +38,7 @@
from sqlalchemy.orm import class_mapper, mapper, relation
from sqlalchemy.orm.exc import UnmappedClassError
-from openlp.core.lib import Receiver, translate
+from openlp.core.lib import Receiver, Registry, translate
from openlp.core.lib.db import BaseModel, init_db, Manager
from openlp.core.lib.ui import critical_error_message_box
from openlp.core.utils import AppLocation, clean_filename
@@ -549,6 +549,16 @@
verses = self.session.query(Verse).all()
log.debug(verses)
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
+
class BiblesResourcesDB(QtCore.QObject, Manager):
"""
=== modified file 'openlp/plugins/bibles/lib/http.py'
--- openlp/plugins/bibles/lib/http.py 2013-01-11 00:35:00 +0000
+++ openlp/plugins/bibles/lib/http.py 2013-02-03 19:24:22 +0000
@@ -38,7 +38,7 @@
from BeautifulSoup import BeautifulSoup, NavigableString, Tag
-from openlp.core.lib import Receiver, translate
+from openlp.core.lib import Receiver, Registry,translate
from openlp.core.lib.ui import critical_error_message_box
from openlp.core.utils import get_web_page
from openlp.plugins.bibles.lib import SearchResults
@@ -164,7 +164,7 @@
if len(verse_parts) > 1:
verse = int(verse_parts[0])
except TypeError:
- log.warn(u'Illegal verse number: %s', unicode(raw_verse_num))
+ log.warn(u'Illegal verse number: %s', unicode(verse))
verses.append((verse, text))
verse_list = {}
for verse, text in verses[::-1]:
@@ -235,9 +235,10 @@
soup = get_soup_for_bible_ref(
u'http://www.biblegateway.com/passage/?%s' % url_params,
pre_parse_regex=r'<meta name.*?/>', pre_parse_substitute='', cleaner=cleaner)
+ self.application.process_events()
if not soup:
return None
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
div = soup.find('div', 'result-text-style-normal')
self._clean_soup(div)
span_list = div.findAll('span', 'text')
@@ -281,7 +282,7 @@
if not soup:
send_error_message(u'parse')
return None
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
content = soup.find(u'table', u'infotable')
if content:
content = content.findAll(u'tr')
@@ -329,7 +330,7 @@
soup = get_soup_for_bible_ref(chapter_url, header)
if not soup:
return None
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
content = soup.find(u'div', u'content')
if not content:
log.error(u'No verses found in the Bibleserver response.')
@@ -339,7 +340,7 @@
verse_number = re.compile(r'v(\d{1,2})(\d{3})(\d{3}) verse.*')
verses = {}
for verse in content:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
versenumber = int(verse_number.sub(r'\3', verse[u'class']))
verses[versenumber] = verse.contents[1].rstrip(u'\n')
return SearchResults(book_name, chapter, verses)
@@ -402,7 +403,7 @@
soup = get_soup_for_bible_ref(chapter_url)
if not soup:
return None
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
html_verses = soup.findAll(u'span', u'versetext')
if not html_verses:
log.error(u'No verses found in the CrossWalk response.')
@@ -412,27 +413,25 @@
reduce_spaces = re.compile(r'[ ]{2,}')
fix_punctuation = re.compile(r'[ ]+([.,;])')
for verse in html_verses:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
verse_number = int(verse.contents[0].contents[0])
verse_text = u''
for part in verse.contents:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if isinstance(part, NavigableString):
verse_text = verse_text + part
elif part and part.attrMap and \
- (part.attrMap[u'class'] == u'WordsOfChrist' or \
- part.attrMap[u'class'] == u'strongs'):
+ (part.attrMap[u'class'] == u'WordsOfChrist' or part.attrMap[u'class'] == u'strongs'):
for subpart in part.contents:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if isinstance(subpart, NavigableString):
verse_text = verse_text + subpart
- elif subpart and subpart.attrMap and \
- subpart.attrMap[u'class'] == u'strongs':
+ elif subpart and subpart.attrMap and subpart.attrMap[u'class'] == u'strongs':
for subsub in subpart.contents:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if isinstance(subsub, NavigableString):
verse_text = verse_text + subsub
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# Fix up leading and trailing spaces, multiple spaces, and spaces
# between text and , and .
verse_text = verse_text.strip(u'\n\r\t ')
@@ -598,7 +597,7 @@
return []
book = db_book.name
if BibleDB.get_verse_count(self, book_id, reference[1]) == 0:
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
search_results = self.get_chapter(book, reference[1])
if search_results and search_results.has_verselist():
## We have found a book of the bible lets check to see
@@ -606,14 +605,14 @@
## we get a correct book. For example it is possible
## to request ac and get Acts back.
book_name = search_results.book
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
# Check to see if book/chapter exists.
db_book = self.get_book(book_name)
self.create_chapter(db_book.id, search_results.chapter,
search_results.verselist)
- Receiver.send_message(u'openlp_process_events')
- Receiver.send_message(u'cursor_normal')
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
+ self.application.set_normal_cursor()
+ self.application.process_events()
return BibleDB.get_verses(self, reference_list, show_error)
def get_chapter(self, book, chapter):
@@ -660,6 +659,16 @@
log.debug(u'HTTPBible.get_verse_count("%s", %s)', book_id, chapter)
return BiblesResourcesDB.get_verse_count(book_id, chapter)
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
+
def get_soup_for_bible_ref(reference_url, header=None, pre_parse_regex=None,
pre_parse_substitute=None, cleaner=None):
"""
@@ -701,7 +710,7 @@
if not soup:
send_error_message(u'parse')
return None
- Receiver.send_message(u'openlp_process_events')
+ Registry().get(u'application').process_events()
return soup
def send_error_message(error_type):
=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py 2013-02-02 20:54:34 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py 2013-02-03 19:24:22 +0000
@@ -614,7 +614,7 @@
"""
log.debug(u'Advanced Search Button clicked')
self.advancedSearchButton.setEnabled(False)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
bible = self.advancedVersionComboBox.currentText()
second_bible = self.advancedSecondComboBox.currentText()
book = self.advancedBookComboBox.currentText()
@@ -628,7 +628,7 @@
verse_range = chapter_from + verse_separator + verse_from + range_separator + chapter_to + \
verse_separator + verse_to
versetext = u'%s %s' % (book, verse_range)
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.search_results = self.plugin.manager.get_verses(bible, versetext, book_ref_id)
if second_bible:
self.second_search_results = self.plugin.manager.get_verses(second_bible, versetext, book_ref_id)
@@ -640,8 +640,7 @@
self.displayResults(bible, second_bible)
self.advancedSearchButton.setEnabled(True)
self.checkSearchResult()
- Receiver.send_message(u'cursor_normal')
- Receiver.send_message(u'openlp_process_events')
+ self.application.set_normal_cursor()
def onQuickSearchButton(self):
"""
@@ -650,7 +649,7 @@
"""
log.debug(u'Quick Search Button clicked')
self.quickSearchButton.setEnabled(False)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
bible = self.quickVersionComboBox.currentText()
second_bible = self.quickSecondComboBox.currentText()
text = self.quickSearchEdit.text()
@@ -662,7 +661,7 @@
self.search_results[0].book.book_reference_id)
else:
# We are doing a 'Text Search'.
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
bibles = self.plugin.manager.get_bibles()
self.search_results = self.plugin.manager.verse_search(bible, second_bible, text)
if second_bible and self.search_results:
@@ -697,8 +696,7 @@
self.displayResults(bible, second_bible)
self.quickSearchButton.setEnabled(True)
self.checkSearchResult()
- Receiver.send_message(u'cursor_normal')
- Receiver.send_message(u'openlp_process_events')
+ self.application.set_normal_cursor()
def displayResults(self, bible, second_bible=u''):
"""
=== modified file 'openlp/plugins/bibles/lib/openlp1.py'
--- openlp/plugins/bibles/lib/openlp1.py 2013-01-01 16:33:41 +0000
+++ openlp/plugins/bibles/lib/openlp1.py 2013-02-03 19:24:22 +0000
@@ -108,7 +108,7 @@
verse_number = int(verse[1])
text = unicode(verse[2], u'cp1252')
self.create_verse(db_book.id, chapter, verse_number, text)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
self.session.commit()
connection.close()
return True
=== modified file 'openlp/plugins/bibles/lib/opensong.py'
--- openlp/plugins/bibles/lib/opensong.py 2013-01-01 16:33:41 +0000
+++ openlp/plugins/bibles/lib/opensong.py 2013-02-03 19:24:22 +0000
@@ -30,7 +30,7 @@
import logging
from lxml import etree, objectify
-from openlp.core.lib import Receiver, translate
+from openlp.core.lib import translate
from openlp.core.lib.ui import critical_error_message_box
from openlp.plugins.bibles.lib.db import BibleDB, BiblesResourcesDB
@@ -129,7 +129,7 @@
self.wizard.incrementProgressBar(translate('BiblesPlugin.Opensong', 'Importing %s %s...',
'Importing <book name> <chapter>...')) % (db_book.name, chapter_number)
self.session.commit()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
except etree.XMLSyntaxError as inst:
critical_error_message_box(message=translate('BiblesPlugin.OpenSongImport',
'Incorrect Bible file type supplied. OpenSong Bibles may be '
=== modified file 'openlp/plugins/bibles/lib/osis.py'
--- openlp/plugins/bibles/lib/osis.py 2013-01-01 16:33:41 +0000
+++ openlp/plugins/bibles/lib/osis.py 2013-02-03 19:24:22 +0000
@@ -33,7 +33,7 @@
import codecs
import re
-from openlp.core.lib import Receiver, translate
+from openlp.core.lib import translate
from openlp.core.utils import AppLocation
from openlp.plugins.bibles.lib.db import BibleDB, BiblesResourcesDB
@@ -182,7 +182,7 @@
.replace(u'</div>', u'').replace(u'</w>', u'')
verse_text = self.spaces_regex.sub(u' ', verse_text)
self.create_verse(db_book.id, chapter, verse, verse_text)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
self.session.commit()
if match_count == 0:
success = False
=== modified file 'openlp/plugins/custom/lib/mediaitem.py'
--- openlp/plugins/custom/lib/mediaitem.py 2013-01-29 17:19:19 +0000
+++ openlp/plugins/custom/lib/mediaitem.py 2013-02-03 19:24:22 +0000
@@ -250,7 +250,7 @@
and_(CustomSlide.title == item.title, CustomSlide.theme_name == item.theme,
CustomSlide.credits == item.raw_footer[0][len(item.title) + 1:]))
if custom:
- Receiver.send_message(u'service_item_update', u'%s:%s:%s' % (custom.id, item.unique_identifier, False))
+ self.service_manager.service_item_update(custom.id, item.unique_identifier)
else:
if self.add_custom_from_service:
self.create_from_service_item(item)
=== modified file 'openlp/plugins/images/lib/mediaitem.py'
--- openlp/plugins/images/lib/mediaitem.py 2013-01-25 20:50:18 +0000
+++ openlp/plugins/images/lib/mediaitem.py 2013-02-03 19:24:22 +0000
@@ -99,7 +99,7 @@
if check_item_selected(self.listView, translate('ImagePlugin.MediaItem','You must select an image to delete.')):
row_list = [item.row() for item in self.listView.selectedIndexes()]
row_list.sort(reverse=True)
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.main_window.displayProgressBar(len(row_list))
for row in row_list:
text = self.listView.item(row)
@@ -109,12 +109,12 @@
self.main_window.incrementProgressBar()
SettingsManager.setValue(self.settingsSection + u'/images files', self.getFileList())
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
self.listView.blockSignals(False)
def loadList(self, images, initialLoad=False):
+ self.application.set_busy_cursor()
if not initialLoad:
- Receiver.send_message(u'cursor_busy')
self.main_window.displayProgressBar(len(images))
# Sort the images by its filename considering language specific
# characters.
@@ -138,7 +138,7 @@
self.main_window.incrementProgressBar()
if not initialLoad:
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def generateSlideData(self, service_item, item=None, xmlVersion=False,
remote=False, context=ServiceItemContext.Service):
=== modified file 'openlp/plugins/presentations/lib/mediaitem.py'
--- openlp/plugins/presentations/lib/mediaitem.py 2013-01-27 07:36:04 +0000
+++ openlp/plugins/presentations/lib/mediaitem.py 2013-02-03 19:24:22 +0000
@@ -150,9 +150,8 @@
"""
currlist = self.getFileList()
titles = [os.path.split(file)[1] for file in currlist]
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
if not initialLoad:
- Receiver.send_message(u'cursor_busy')
self.main_window.displayProgressBar(len(files))
# Sort the presentations by its filename considering language specific characters.
files.sort(cmp=locale_compare,
@@ -206,10 +205,9 @@
item_name.setIcon(icon)
item_name.setToolTip(file)
self.listView.addItem(item_name)
- Receiver.send_message(u'cursor_normal')
if not initialLoad:
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def onDeleteClick(self):
"""
@@ -219,7 +217,7 @@
items = self.listView.selectedIndexes()
row_list = [item.row() for item in items]
row_list.sort(reverse=True)
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.main_window.displayProgressBar(len(row_list))
for item in items:
filepath = unicode(item.data(QtCore.Qt.UserRole))
@@ -229,7 +227,7 @@
doc.close_presentation()
self.main_window.incrementProgressBar()
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_busy_cursor()
for row in row_list:
self.listView.takeItem(row)
Settings().setValue(self.settingsSection + u'/presentations files', self.getFileList())
=== modified file 'openlp/plugins/songs/forms/songexportform.py'
--- openlp/plugins/songs/forms/songexportform.py 2013-01-18 20:35:30 +0000
+++ openlp/plugins/songs/forms/songexportform.py 2013-02-03 19:24:22 +0000
@@ -226,7 +226,7 @@
self.directoryLineEdit.clear()
self.searchLineEdit.clear()
# Load the list of songs.
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
songs = self.plugin.manager.get_all_objects(Song)
songs.sort(cmp=natcmp, key=lambda song: song.sort_key)
for song in songs:
@@ -240,7 +240,7 @@
item.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
item.setCheckState(QtCore.Qt.Unchecked)
self.availableListWidget.addItem(item)
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def preWizard(self):
"""
@@ -248,7 +248,7 @@
"""
OpenLPWizard.preWizard(self)
self.progressLabel.setText(translate('SongsPlugin.ExportWizardForm', 'Starting export...'))
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def performWizard(self):
"""
=== modified file 'openlp/plugins/songs/forms/songimportform.py'
--- openlp/plugins/songs/forms/songimportform.py 2013-01-31 22:01:41 +0000
+++ openlp/plugins/songs/forms/songimportform.py 2013-02-03 19:24:22 +0000
@@ -35,7 +35,7 @@
from PyQt4 import QtCore, QtGui
-from openlp.core.lib import Receiver, Settings, UiStrings, translate
+from openlp.core.lib import Settings, translate, UiStrings
from openlp.core.lib.ui import critical_error_message_box
from openlp.core.ui.wizard import OpenLPWizard, WizardStrings
from openlp.plugins.songs.lib.importer import SongFormat, SongFormatSelect
@@ -339,7 +339,7 @@
"""
OpenLPWizard.preWizard(self)
self.progressLabel.setText(WizardStrings.StartingImport)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
def performWizard(self):
"""
=== modified file 'openlp/plugins/songs/forms/songmaintenanceform.py'
--- openlp/plugins/songs/forms/songmaintenanceform.py 2013-01-31 22:01:41 +0000
+++ openlp/plugins/songs/forms/songmaintenanceform.py 2013-02-03 19:24:22 +0000
@@ -374,12 +374,12 @@
"""
Utility method to merge two objects to leave one in the database.
"""
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
merge(dbObject)
reset()
if not self.fromSongEdit:
Receiver.send_message(u'songs_load_list')
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
def mergeAuthors(self, oldAuthor):
"""
@@ -509,3 +509,12 @@
deleteButton.setEnabled(True)
editButton.setEnabled(True)
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
\ No newline at end of file
=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py 2013-01-27 20:36:18 +0000
+++ openlp/plugins/songs/lib/mediaitem.py 2013-02-03 19:24:22 +0000
@@ -361,7 +361,7 @@
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
QtGui.QMessageBox.Yes) == QtGui.QMessageBox.No:
return
- Receiver.send_message(u'cursor_busy')
+ self.application.set_busy_cursor()
self.main_window.displayProgressBar(len(items))
for item in items:
item_id = item.data(QtCore.Qt.UserRole)
@@ -380,7 +380,7 @@
self.plugin.manager.delete_object(Song, item_id)
self.main_window.incrementProgressBar()
self.main_window.finishedProgressBar()
- Receiver.send_message(u'cursor_normal')
+ self.application.set_normal_cursor()
self.onSearchTextButtonClicked()
def onCloneClick(self):
@@ -526,7 +526,7 @@
temporary = True
# Update service with correct song id.
if editId:
- Receiver.send_message(u'service_item_update%s:%s:%s' % (editId, item.unique_identifier, temporary))
+ self.service_manager.service_item_update(editId, item.unique_identifier, temporary)
def search(self, string, showError):
"""
=== modified file 'openlp/plugins/songs/lib/openlyricsexport.py'
--- openlp/plugins/songs/lib/openlyricsexport.py 2013-01-06 17:25:49 +0000
+++ openlp/plugins/songs/lib/openlyricsexport.py 2013-02-03 19:24:22 +0000
@@ -35,7 +35,7 @@
from lxml import etree
-from openlp.core.lib import check_directory_exists, Receiver, translate
+from openlp.core.lib import Registry, check_directory_exists, translate
from openlp.core.utils import clean_filename
from openlp.plugins.songs.lib import OpenLyrics
@@ -64,7 +64,7 @@
openLyrics = OpenLyrics(self.manager)
self.parent.progressBar.setMaximum(len(self.songs))
for song in self.songs:
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
if self.parent.stop_export_flag:
return False
self.parent.incrementProgressBar(translate('SongsPlugin.OpenLyricsExport', 'Exporting "%s"...') %
@@ -80,3 +80,13 @@
tree.write(open(os.path.join(self.save_path, filename), u'w'),
encoding=u'utf-8', xml_declaration=True, pretty_print=True)
return True
+
+ def _get_application(self):
+ """
+ Adds the openlp to the class dynamically
+ """
+ if not hasattr(self, u'_application'):
+ self._application = Registry().get(u'application')
+ return self._application
+
+ application = property(_get_application)
=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py 2013-02-03 14:40:48 +0000
+++ openlp/plugins/songs/songsplugin.py 2013-02-03 19:24:22 +0000
@@ -38,7 +38,7 @@
from PyQt4 import QtCore, QtGui
-from openlp.core.lib import Plugin, StringContent, build_icon, translate, Receiver, UiStrings
+from openlp.core.lib import Plugin, StringContent, build_icon, translate, UiStrings
from openlp.core.lib.db import Manager
from openlp.core.lib.ui import create_action
from openlp.core.utils import get_filesystem_encoding
@@ -96,9 +96,6 @@
action_list.add_action(self.songImportItem, UiStrings().Import)
action_list.add_action(self.songExportItem, UiStrings().Export)
action_list.add_action(self.toolsReindexItem, UiStrings().Tools)
- QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'servicemanager_new_service'),
- self.clearTemporarySongs)
-
def addImportMenuItem(self, import_menu):
"""
@@ -244,9 +241,9 @@
If the first time wizard has run, this function is run to import all the
new songs into the database.
"""
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
self.onToolsReindexItemTriggered()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
db_dir = unicode(os.path.join(unicode(gettempdir(), get_filesystem_encoding()), u'openlp'))
if not os.path.exists(db_dir):
return
@@ -254,12 +251,12 @@
song_count = 0
for sfile in os.listdir(db_dir):
if sfile.startswith(u'songs_') and sfile.endswith(u'.sqlite'):
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
song_dbs.append(os.path.join(db_dir, sfile))
song_count += self._countSongs(os.path.join(db_dir, sfile))
if not song_dbs:
return
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
progress = QtGui.QProgressDialog(self.main_window)
progress.setWindowModality(QtCore.Qt.WindowModal)
progress.setWindowTitle(translate('OpenLP.Ui', 'Importing Songs'))
@@ -268,11 +265,11 @@
progress.setRange(0, song_count)
progress.setMinimumDuration(0)
progress.forceShow()
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
for db in song_dbs:
importer = OpenLPSongImport(self.manager, filename=db)
importer.doImport(progress)
- Receiver.send_message(u'openlp_process_events')
+ self.application.process_events()
progress.setValue(song_count)
self.mediaItem.onSearchTextButtonClicked()
@@ -281,7 +278,7 @@
Time to tidy up on exit
"""
log.info(u'Songs Finalising')
- self.clearTemporarySongs()
+ self.new_service_created()
# Clean up files and connections
self.manager.finalise()
self.songImportItem.setVisible(False)
@@ -293,13 +290,18 @@
action_list.remove_action(self.toolsReindexItem, UiStrings().Tools)
Plugin.finalise(self)
- def clearTemporarySongs(self):
- # Remove temporary songs
+ def new_service_created(self):
+ """
+ Remove temporary songs from the database
+ """
songs = self.manager.get_all_objects(Song, Song.temporary == True)
for song in songs:
self.manager.delete_object(Song, song.id)
def _countSongs(self, db_file):
+ """
+ Provide a count of the songs in the database
+ """
connection = sqlite3.connect(db_file)
cursor = connection.cursor()
cursor.execute(u'SELECT COUNT(id) AS song_count FROM songs')
=== modified file 'setup.py'
--- setup.py 2012-12-29 20:56:56 +0000
+++ setup.py 2013-02-03 19:24:22 +0000
@@ -152,7 +152,7 @@
url='http://openlp.org/',
license='GNU General Public License',
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
- scripts=['openlp.pyw'],
+ scripts=['openlp.py'],
include_package_data=True,
zip_safe=False,
install_requires=[
Follow ups