From 64ab5c29b407e1d13eb4f6e638e04c8442f496f4 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 2 Feb 2011 19:17:48 +0000 Subject: [PATCH 1/6] Start UI component library - add_welcome_page --- openlp/core/lib/ui.py | 57 +++++++++++++++++++++++++++++++++++ openlp/core/ui/themewizard.py | 4 +-- openlp/core/ui/wizard.py | 27 ++--------------- 3 files changed, 61 insertions(+), 27 deletions(-) create mode 100644 openlp/core/lib/ui.py diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py new file mode 100644 index 000000000..1b4ed206c --- /dev/null +++ b/openlp/core/lib/ui.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # +# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### +""" +The :mod:`ui` module provides standard UI components for OpenLP. +""" +import logging + +from PyQt4 import QtGui + +log = logging.getLogger(__name__) + +def add_welcome_page(parent, image): + """ + Generate an opening welcome page for a wizard using a provided image. + + ``image`` + A splash image for the wizard. + """ + parent.welcomePage = QtGui.QWizardPage() + parent.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, + QtGui.QPixmap(image)) + parent.welcomePage.setObjectName(u'WelcomePage') + parent.welcomeLayout = QtGui.QVBoxLayout(parent.welcomePage) + parent.welcomeLayout.setObjectName(u'WelcomeLayout') + parent.titleLabel = QtGui.QLabel(parent.welcomePage) + parent.titleLabel.setObjectName(u'TitleLabel') + parent.welcomeLayout.addWidget(parent.titleLabel) + parent.welcomeLayout.addSpacing(40) + parent.informationLabel = QtGui.QLabel(parent.welcomePage) + parent.informationLabel.setWordWrap(True) + parent.informationLabel.setObjectName(u'InformationLabel') + parent.welcomeLayout.addWidget(parent.informationLabel) + parent.welcomeLayout.addStretch() + parent.addPage(parent.welcomePage) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index fe5305454..e8765b9e2 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate, build_icon -from openlp.core.ui.wizard import addWelcomePage +from openlp.core.lib.ui import add_welcome_page class Ui_ThemeWizard(object): def setupUi(self, themeWizard): @@ -37,7 +37,7 @@ class Ui_ThemeWizard(object): themeWizard.setOptions(QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage) # Welcome Page - addWelcomePage(themeWizard, u':/wizards/wizard_createtheme.bmp') + add_welcome_page(themeWizard, u':/wizards/wizard_createtheme.bmp') # Background Page self.backgroundPage = QtGui.QWizardPage() self.backgroundPage.setObjectName(u'BackgroundPage') diff --git a/openlp/core/ui/wizard.py b/openlp/core/ui/wizard.py index f57253d0e..2fa448db8 100644 --- a/openlp/core/ui/wizard.py +++ b/openlp/core/ui/wizard.py @@ -31,6 +31,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import build_icon, Receiver +from openlp.core.lib.ui import add_welcome_page log = logging.getLogger(__name__) @@ -63,7 +64,7 @@ class OpenLPWizard(QtGui.QWizard): self.setOptions(QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage | QtGui.QWizard.NoBackButtonOnLastPage) - addWelcomePage(self, image) + add_welcome_page(self, image) self.addCustomPages() self.addProgressPage() self.retranslateUi() @@ -145,27 +146,3 @@ class OpenLPWizard(QtGui.QWizard): self.finishButton.setVisible(True) self.cancelButton.setVisible(False) Receiver.send_message(u'openlp_process_events') - -def addWelcomePage(parent, image): - """ - Generate an opening welcome page for a wizard using a provided image. - - ``image`` - A splash image for the wizard. - """ - parent.welcomePage = QtGui.QWizardPage() - parent.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, - QtGui.QPixmap(image)) - parent.welcomePage.setObjectName(u'WelcomePage') - parent.welcomeLayout = QtGui.QVBoxLayout(parent.welcomePage) - parent.welcomeLayout.setObjectName(u'WelcomeLayout') - parent.titleLabel = QtGui.QLabel(parent.welcomePage) - parent.titleLabel.setObjectName(u'TitleLabel') - parent.welcomeLayout.addWidget(parent.titleLabel) - parent.welcomeLayout.addSpacing(40) - parent.informationLabel = QtGui.QLabel(parent.welcomePage) - parent.informationLabel.setWordWrap(True) - parent.informationLabel.setObjectName(u'InformationLabel') - parent.welcomeLayout.addWidget(parent.informationLabel) - parent.welcomeLayout.addStretch() - parent.addPage(parent.welcomePage) From 303433a20de625addf0d39a4f9c429da7ad48bbc Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 2 Feb 2011 19:30:06 +0000 Subject: [PATCH 2/6] UI library - save_cancel_button_box --- openlp/core/lib/__init__.py | 14 -------------- openlp/core/lib/ui.py | 14 ++++++++++++++ openlp/core/ui/serviceitemeditdialog.py | 3 ++- openlp/core/ui/servicenoteform.py | 3 ++- openlp/plugins/custom/forms/editcustomdialog.py | 3 ++- .../plugins/custom/forms/editcustomslidedialog.py | 3 ++- openlp/plugins/songs/forms/authorsdialog.py | 3 ++- openlp/plugins/songs/forms/editsongdialog.py | 3 ++- openlp/plugins/songs/forms/editversedialog.py | 4 ++-- openlp/plugins/songs/forms/songbookdialog.py | 3 ++- openlp/plugins/songs/forms/topicsdialog.py | 3 ++- 11 files changed, 32 insertions(+), 24 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index f07d7c78d..33280f83b 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -319,20 +319,6 @@ def check_directory_exists(dir): if not os.path.exists(dir): os.makedirs(dir) -def save_cancel_button_box(parent): - """ - Return a standard dialog button box with save and cancel buttons. - """ - button_box = QtGui.QDialogButtonBox(parent) - button_box.setStandardButtons(QtGui.QDialogButtonBox.Save | - QtGui.QDialogButtonBox.Cancel) - button_box.setObjectName(u'%sButtonBox' % parent) - QtCore.QObject.connect(button_box, QtCore.SIGNAL(u'accepted()'), - parent.accept) - QtCore.QObject.connect(button_box, QtCore.SIGNAL(u'rejected()'), - parent.reject) - return button_box - from theme import ThemeLevel, ThemeXML, BackgroundGradientType, \ BackgroundType, HorizontalType, VerticalType from displaytags import DisplayTags diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index 1b4ed206c..faca42119 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -55,3 +55,17 @@ def add_welcome_page(parent, image): parent.welcomeLayout.addWidget(parent.informationLabel) parent.welcomeLayout.addStretch() parent.addPage(parent.welcomePage) + +def save_cancel_button_box(parent): + """ + Return a standard dialog button box with save and cancel buttons. + """ + button_box = QtGui.QDialogButtonBox(parent) + button_box.setStandardButtons( + QtGui.QDialogButtonBox.Save | QtGui.QDialogButtonBox.Cancel) + button_box.setObjectName(u'%sButtonBox' % parent) + QtCore.QObject.connect(button_box, QtCore.SIGNAL(u'accepted()'), + parent.accept) + QtCore.QObject.connect(button_box, QtCore.SIGNAL(u'rejected()'), + parent.reject) + return button_box diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py index 0993c48b2..d4c86fa61 100644 --- a/openlp/core/ui/serviceitemeditdialog.py +++ b/openlp/core/ui/serviceitemeditdialog.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, build_icon, save_cancel_button_box +from openlp.core.lib import translate, build_icon +from openlp.core.lib.ui import save_cancel_button_box class Ui_ServiceItemEditDialog(object): def setupUi(self, serviceItemEditDialog): diff --git a/openlp/core/ui/servicenoteform.py b/openlp/core/ui/servicenoteform.py index 5cb68d03f..e659e50db 100644 --- a/openlp/core/ui/servicenoteform.py +++ b/openlp/core/ui/servicenoteform.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import save_cancel_button_box, translate +from openlp.core.lib import translate +from openlp.core.lib.ui import save_cancel_button_box class ServiceNoteForm(QtGui.QDialog): """ diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index 3d5e3a3f7..75717c082 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, translate, save_cancel_button_box +from openlp.core.lib import build_icon, translate +from openlp.core.lib.ui import save_cancel_button_box class Ui_CustomEditDialog(object): def setupUi(self, customEditDialog): diff --git a/openlp/plugins/custom/forms/editcustomslidedialog.py b/openlp/plugins/custom/forms/editcustomslidedialog.py index 1325590d9..93bff68b8 100644 --- a/openlp/plugins/custom/forms/editcustomslidedialog.py +++ b/openlp/plugins/custom/forms/editcustomslidedialog.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, SpellTextEdit, save_cancel_button_box +from openlp.core.lib import translate, SpellTextEdit +from openlp.core.lib.ui import save_cancel_button_box class Ui_CustomSlideEditDialog(object): def setupUi(self, customSlideEditDialog): diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py index daae83525..3fd3c5fef 100644 --- a/openlp/plugins/songs/forms/authorsdialog.py +++ b/openlp/plugins/songs/forms/authorsdialog.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, save_cancel_button_box +from openlp.core.lib import translate +from openlp.core.lib.ui import save_cancel_button_box class Ui_AuthorsDialog(object): def setupUi(self, authorsDialog): diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index b9b6e5baf..c44b42d46 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, translate, save_cancel_button_box +from openlp.core.lib import build_icon, translate +from openlp.core.lib.ui import save_cancel_button_box class Ui_EditSongDialog(object): def setupUi(self, editSongDialog): diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index d74da50d1..deaf952e2 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -26,8 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import build_icon, save_cancel_button_box, translate, \ - SpellTextEdit +from openlp.core.lib import build_icon, translate, SpellTextEdit +from openlp.core.lib.ui import save_cancel_button_box from openlp.plugins.songs.lib import VerseType class Ui_EditVerseDialog(object): diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py index 757a629ab..fcd6bd364 100644 --- a/openlp/plugins/songs/forms/songbookdialog.py +++ b/openlp/plugins/songs/forms/songbookdialog.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, save_cancel_button_box +from openlp.core.lib import translate +from openlp.core.lib.ui import save_cancel_button_box class Ui_SongBookDialog(object): def setupUi(self, songBookDialog): diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py index 38c45407f..f2c9fdeba 100644 --- a/openlp/plugins/songs/forms/topicsdialog.py +++ b/openlp/plugins/songs/forms/topicsdialog.py @@ -26,7 +26,8 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate, save_cancel_button_box +from openlp.core.lib import translate +from openlp.core.lib.ui import save_cancel_button_box class Ui_TopicsDialog(object): def setupUi(self, topicsDialog): From f4d25560e979b501ec4bf6b513e6b128106ba558 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 2 Feb 2011 23:12:31 +0000 Subject: [PATCH 3/6] UI library - critical_error_message_box --- openlp/core/lib/ui.py | 33 +++++++++++++++-- openlp/core/ui/__init__.py | 34 ++---------------- openlp/core/ui/displaytagtab.py | 6 ++-- openlp/core/ui/servicemanager.py | 14 ++++---- openlp/core/ui/themeform.py | 6 ++-- openlp/core/ui/thememanager.py | 22 ++++++------ .../plugins/bibles/forms/bibleimportform.py | 20 +++++------ openlp/plugins/bibles/lib/db.py | 4 +-- openlp/plugins/bibles/lib/http.py | 8 ++--- openlp/plugins/bibles/lib/mediaitem.py | 8 +++-- openlp/plugins/custom/forms/editcustomform.py | 4 +-- openlp/plugins/images/lib/mediaitem.py | 6 ++-- openlp/plugins/media/lib/mediaitem.py | 6 ++-- openlp/plugins/presentations/lib/mediaitem.py | 10 +++--- openlp/plugins/songs/forms/authorsform.py | 10 +++--- openlp/plugins/songs/forms/editsongform.py | 15 ++++---- openlp/plugins/songs/forms/editverseform.py | 4 +-- openlp/plugins/songs/forms/songbookform.py | 4 +-- openlp/plugins/songs/forms/songimportform.py | 24 ++++++------- .../songs/forms/songmaintenanceform.py | 36 +++++++++---------- openlp/plugins/songs/forms/topicsform.py | 5 +-- 21 files changed, 143 insertions(+), 136 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index faca42119..f87ac68d1 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -28,7 +28,9 @@ The :mod:`ui` module provides standard UI components for OpenLP. """ import logging -from PyQt4 import QtGui +from PyQt4 import QtCore, QtGui + +from openlp.core.lib import translate log = logging.getLogger(__name__) @@ -68,4 +70,31 @@ def save_cancel_button_box(parent): parent.accept) QtCore.QObject.connect(button_box, QtCore.SIGNAL(u'rejected()'), parent.reject) - return button_box + return button_box + +def critical_error_message_box(title=None, message=None, parent=None, + question=False): + """ + Provides a standard critical message box for errors that OpenLP displays + to users. + + ``title`` + The title for the message box. + + ``message`` + The message to display to the user. + + ``parent`` + The parent UI element to attach the dialog to. + + ``question`` + Should this message box question the user. + """ + error = translate('OpenLP.Ui', 'Error') + if question: + return QtGui.QMessageBox.critical(parent, error, message, + QtGui.QMessageBox.StandardButtons( + QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)) + data = {u'message': message} + data[u'title'] = title if title else error + return Receiver.send_message(u'openlp_error_message', data) diff --git a/openlp/core/ui/__init__.py b/openlp/core/ui/__init__.py index 80124c2be..eb0e89775 100644 --- a/openlp/core/ui/__init__.py +++ b/openlp/core/ui/__init__.py @@ -51,34 +51,6 @@ class HideMode(object): Theme = 2 Screen = 3 - -def criticalErrorMessageBox(title=None, message=None, parent=None, - question=False): - """ - Provides a standard critical message box for errors that OpenLP displays - to users. - - ``title`` - The title for the message box. - - ``message`` - The message to display to the user. - - ``parent`` - The parent UI element to attach the dialog to. - - ``question`` - Should this message box question the user. - """ - error = translate('OpenLP.Ui', 'Error') - if question: - return QtGui.QMessageBox.critical(parent, error, message, - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)) - data = {u'message': message} - data[u'title'] = title if title else error - return Receiver.send_message(u'openlp_error_message', data) - from themeform import ThemeForm from filerenameform import FileRenameForm from maindisplay import MainDisplay @@ -99,6 +71,6 @@ from mediadockmanager import MediaDockManager from servicemanager import ServiceManager from thememanager import ThemeManager -__all__ = ['criticalErrorMessageBox', 'SplashScreen', 'AboutForm', - 'SettingsForm', 'MainDisplay', 'SlideController', 'ServiceManager', - 'ThemeManager', 'MediaDockManager', 'ServiceItemEditForm'] +__all__ = ['SplashScreen', 'AboutForm', 'SettingsForm', 'MainDisplay', + 'SlideController', 'ServiceManager', 'ThemeManager', 'MediaDockManager', + 'ServiceItemEditForm'] diff --git a/openlp/core/ui/displaytagtab.py b/openlp/core/ui/displaytagtab.py index 1c77084b9..983bc17a8 100644 --- a/openlp/core/ui/displaytagtab.py +++ b/openlp/core/ui/displaytagtab.py @@ -34,7 +34,7 @@ import cPickle from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsTab, translate, DisplayTags -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box class DisplayTagTab(SettingsTab): ''' @@ -276,7 +276,7 @@ class DisplayTagTab(SettingsTab): """ for html in DisplayTags.get_html_tags(): if self._strip(html[u'start tag']) == u'n': - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.DisplayTagTab', 'Update Error'), translate('OpenLP.DisplayTagTab', 'Tag "n" already defined.')) @@ -317,7 +317,7 @@ class DisplayTagTab(SettingsTab): for linenumber, html1 in enumerate(html_expands): if self._strip(html1[u'start tag']) == tag and \ linenumber != self.selected: - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.DisplayTagTab', 'Update Error'), unicode(translate('OpenLP.DisplayTagTab', 'Tag %s already defined.')) % tag) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 9082c7a80..ace678c75 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -36,8 +36,8 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import OpenLPToolbar, ServiceItem, context_menu_action, \ Receiver, build_icon, ItemCapabilities, SettingsManager, translate, \ ThemeLevel -from openlp.core.ui import criticalErrorMessageBox, ServiceNoteForm, \ - ServiceItemEditForm +from openlp.core.lib.ui import critical_error_message_box +from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \ split_filename @@ -491,7 +491,7 @@ class ServiceManager(QtGui.QWidget): for file in zip.namelist(): ucsfile = file_is_unicode(file) if not ucsfile: - criticalErrorMessageBox( + critical_error_message_box( message=translate('OpenLP.ServiceManager', 'File is not a valid service.\n' 'The content encoding is not UTF-8.')) @@ -521,7 +521,7 @@ class ServiceManager(QtGui.QWidget): serviceItem.name.lower(), serviceItem) delete_file(p_file) else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('OpenLP.ServiceManager', 'File is not a valid service.')) log.exception(u'File contains no service data') @@ -993,7 +993,7 @@ class ServiceManager(QtGui.QWidget): self.mainwindow.previewController.addServiceManagerItem( self.serviceItems[item][u'service_item'], child) else: - criticalErrorMessageBox( + 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')) @@ -1027,7 +1027,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems[item][u'service_item'], 0) self.mainwindow.liveController.previewListWidget.setFocus() else: - criticalErrorMessageBox( + 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 ' @@ -1188,7 +1188,7 @@ class ServiceManager(QtGui.QWidget): Print a Service Order Sheet. """ if not self.serviceItems: - criticalErrorMessageBox( + critical_error_message_box( message=translate('OpenLP.ServiceManager', 'There is no service item in this service.')) return diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 8d10f21fa..018df7597 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import translate, BackgroundType, BackgroundGradientType, \ Receiver -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.core.utils import get_images_filter from themewizard import Ui_ThemeWizard @@ -567,13 +567,13 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): # Save the theme name self.theme.theme_name = unicode(self.field(u'name').toString()) if not self.theme.theme_name: - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.ThemeForm', 'Theme Name Missing'), translate('OpenLP.ThemeForm', 'There is no name for this theme. Please enter one.')) return if self.theme.theme_name == u'-1' or self.theme.theme_name == u'None': - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.ThemeForm', 'Theme Name Invalid'), translate('OpenLP.ThemeForm', 'Invalid theme name. Please enter one.')) diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index df1f1f775..f403d7441 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -32,11 +32,12 @@ import logging from xml.etree.ElementTree import ElementTree, XML from PyQt4 import QtCore, QtGui -from openlp.core.ui import criticalErrorMessageBox, FileRenameForm, ThemeForm -from openlp.core.theme import Theme from openlp.core.lib import OpenLPToolbar, ThemeXML, get_text_file_string, \ build_icon, Receiver, SettingsManager, translate, check_item_selected, \ BackgroundType, BackgroundGradientType, check_directory_exists +from openlp.core.lib.ui import critical_error_message_box +from openlp.core.theme import Theme +from openlp.core.ui import FileRenameForm, ThemeForm from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \ get_filesystem_encoding @@ -359,7 +360,7 @@ class ThemeManager(QtGui.QWidget): """ item = self.themeListWidget.currentItem() if item is None: - criticalErrorMessageBox(message=translate('OpenLP.ThemeManager', + critical_error_message_box(message=translate('OpenLP.ThemeManager', 'You have not selected a theme.')) return theme = unicode(item.data(QtCore.Qt.UserRole).toString()) @@ -386,7 +387,7 @@ class ThemeManager(QtGui.QWidget): 'Your theme has been successfully exported.')) except (IOError, OSError): log.exception(u'Export Theme Failed') - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.ThemeManager', 'Theme Export Failed'), translate('OpenLP.ThemeManager', 'Your theme could not be exported due to an error.')) @@ -496,7 +497,7 @@ class ThemeManager(QtGui.QWidget): for file in zip.namelist(): ucsfile = file_is_unicode(file) if not ucsfile: - criticalErrorMessageBox( + critical_error_message_box( message=translate('OpenLP.ThemeManager', 'File is not a valid theme.\n' 'The content encoding is not UTF-8.')) @@ -531,14 +532,14 @@ class ThemeManager(QtGui.QWidget): theme = self._createThemeFromXml(filexml, self.path) self.generateAndSaveImage(dir, themename, theme) else: - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.ThemeManager', 'Validation Error'), translate('OpenLP.ThemeManager', 'File is not a valid theme.')) log.exception(u'Theme file does not contain XML data %s' % filename) except (IOError, NameError): - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.ThemeManager', 'Validation Error'), translate('OpenLP.ThemeManager', 'File is not a valid theme.')) @@ -558,7 +559,7 @@ class ThemeManager(QtGui.QWidget): """ theme_dir = os.path.join(self.path, themeName) if os.path.exists(theme_dir): - criticalErrorMessageBox( + critical_error_message_box( translate('OpenLP.ThemeManager', 'Validation Error'), translate('OpenLP.ThemeManager', 'A theme with this name already exists.')) @@ -688,7 +689,7 @@ class ThemeManager(QtGui.QWidget): return False # should be the same unless default if theme != unicode(item.data(QtCore.Qt.UserRole).toString()): - criticalErrorMessageBox( + critical_error_message_box( message=translate('OpenLP.ThemeManager', 'You are unable to delete the default theme.')) return False @@ -696,7 +697,8 @@ class ThemeManager(QtGui.QWidget): if testPlugin: for plugin in self.mainwindow.pluginManager.plugins: if plugin.usesTheme(theme): - criticalErrorMessageBox(translate('OpenLP.ThemeManager', + critical_error_message_box( + translate('OpenLP.ThemeManager', 'Validation Error'), unicode(translate('OpenLP.ThemeManager', 'Theme %s is used in the %s plugin.')) % \ diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 3e43d19aa..a2509ba97 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -35,7 +35,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, SettingsManager, translate from openlp.core.lib.db import delete_database -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard from openlp.core.utils import AppLocation, string_is_unicode from openlp.plugins.bibles.lib.manager import BibleFormat @@ -486,7 +486,7 @@ class BibleImportForm(OpenLPWizard): elif self.currentPage() == self.selectPage: if self.field(u'source_format').toInt()[0] == BibleFormat.OSIS: if not self.field(u'osis_location').toString(): - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Invalid Bible Location'), translate('BiblesPlugin.ImportWizardForm', @@ -496,7 +496,7 @@ class BibleImportForm(OpenLPWizard): return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: if not self.field(u'csv_testamentsfile').toString(): - answer = criticalErrorMessageBox(translate( + answer = critical_error_message_box(translate( 'BiblesPlugin.ImportWizardForm', 'No Testaments File'), translate('BiblesPlugin.ImportWizardForm', 'You have not specified a testaments file. Do you ' @@ -505,7 +505,7 @@ class BibleImportForm(OpenLPWizard): self.csvTestamentsEdit.setFocus() return False elif not self.field(u'csv_booksfile').toString(): - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Invalid Books File'), translate('BiblesPlugin.ImportWizardForm', @@ -514,7 +514,7 @@ class BibleImportForm(OpenLPWizard): self.csvBooksEdit.setFocus() return False elif not self.field(u'csv_versefile').toString(): - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Invalid Verse File'), translate('BiblesPlugin.ImportWizardForm', @@ -525,7 +525,7 @@ class BibleImportForm(OpenLPWizard): elif self.field(u'source_format').toInt()[0] == \ BibleFormat.OpenSong: if not self.field(u'opensong_file').toString(): - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Invalid OpenSong Bible'), translate('BiblesPlugin.ImportWizardForm', @@ -535,7 +535,7 @@ class BibleImportForm(OpenLPWizard): return False elif self.field(u'source_format').toInt()[0] == BibleFormat.OpenLP1: if not self.field(u'openlp1_location').toString(): - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Invalid Bible Location'), translate('BiblesPlugin.ImportWizardForm', @@ -549,7 +549,7 @@ class BibleImportForm(OpenLPWizard): license_copyright = \ unicode(self.field(u'license_copyright').toString()) if not license_version: - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Empty Version Name'), translate('BiblesPlugin.ImportWizardForm', @@ -557,7 +557,7 @@ class BibleImportForm(OpenLPWizard): self.versionNameEdit.setFocus() return False elif not license_copyright: - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Empty Copyright'), translate('BiblesPlugin.ImportWizardForm', @@ -566,7 +566,7 @@ class BibleImportForm(OpenLPWizard): self.copyrightEdit.setFocus() return False elif self.manager.exists(license_version): - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin.ImportWizardForm', 'Bible Exists'), translate('BiblesPlugin.ImportWizardForm', 'This Bible already exists. Please import ' diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index a9444d88b..b986b0d66 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -35,7 +35,7 @@ from sqlalchemy.orm.exc import UnmappedClassError from openlp.core.lib import translate from openlp.core.lib.db import BaseModel, init_db, Manager -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box log = logging.getLogger(__name__) @@ -361,7 +361,7 @@ class BibleDB(QtCore.QObject, Manager): verse_list.extend(verses) else: log.debug(u'OpenLP failed to find book %s', book) - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin', 'No Book Found'), translate('BiblesPlugin', 'No matching book ' 'could be found in this Bible. Check that you have ' diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index e004be9df..8db214140 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -38,7 +38,7 @@ from HTMLParser import HTMLParseError from BeautifulSoup import BeautifulSoup, NavigableString from openlp.core.lib import Receiver, translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.core.utils import AppLocation, get_web_page from openlp.plugins.bibles.lib import SearchResults from openlp.plugins.bibles.lib.db import BibleDB, Book @@ -431,7 +431,7 @@ class HTTPBible(BibleDB): if not db_book: book_details = HTTPBooks.get_book(book) if not book_details: - criticalErrorMessageBox( + critical_error_message_box( translate('BiblesPlugin', 'No Book Found'), translate('BiblesPlugin', 'No matching ' 'book could be found in this Bible. Check that you ' @@ -552,14 +552,14 @@ def send_error_message(error_type): The type of error that occured for the issue. """ if error_type == u'download': - criticalErrorMessageBox( + critical_error_message_box( translate('BiblePlugin.HTTPBible', 'Download Error'), translate('BiblePlugin.HTTPBible', 'There was a ' 'problem downloading your verse selection. Please check your ' 'Internet connection, and if this error continues to occur ' 'please consider reporting a bug.')) elif error_type == u'parse': - criticalErrorMessageBox( + critical_error_message_box( translate('BiblePlugin.HTTPBible', 'Parse Error'), translate('BiblePlugin.HTTPBible', 'There was a ' 'problem extracting your verse selection. If this error continues ' diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index de2649b31..c66b83dfc 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -30,7 +30,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, Receiver, BaseListWithDnD, \ ItemCapabilities, translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.bibles.forms import BibleImportForm from openlp.plugins.bibles.lib import get_reference_match @@ -387,7 +387,8 @@ class BibleMediaItem(MediaManagerItem): verse_count = self.parent.manager.get_verse_count(bible, book, 1) if verse_count == 0: self.advancedSearchButton.setEnabled(False) - criticalErrorMessageBox(message=translate('BiblePlugin.MediaItem', + critical_error_message_box( + message=translate('BiblePlugin.MediaItem', 'Bible not fully loaded')) else: self.advancedSearchButton.setEnabled(True) @@ -581,7 +582,8 @@ class BibleMediaItem(MediaManagerItem): if item_second_bible and second_bible or not item_second_bible and \ not second_bible: self.displayResults(bible, second_bible) - elif criticalErrorMessageBox(message=translate('BiblePlugin.MediaItem', + elif critical_error_message_box( + message=translate('BiblePlugin.MediaItem', 'You cannot combine single and second bible verses. Do you ' 'want to delete your search results and start a new search?'), parent=self, question=True) == QtGui.QMessageBox.Yes: diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index 60b313284..e8dfa20aa 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -29,7 +29,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.custom.lib import CustomXMLBuilder, CustomXMLParser from openlp.plugins.custom.lib.db import CustomSlide from editcustomdialog import Ui_CustomEditDialog @@ -152,7 +152,7 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): """ valid, message = self._validate() if not valid: - criticalErrorMessageBox(message=message) + critical_error_message_box(message=message) return False sxml = CustomXMLBuilder() sxml.new_document() diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 25d9811f1..cbefc7171 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -32,7 +32,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ ItemCapabilities, SettingsManager, translate, check_item_selected, \ check_directory_exists, Receiver -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.core.utils import AppLocation, delete_file, get_images_filter log = logging.getLogger(__name__) @@ -161,7 +161,7 @@ class ImageMediaItem(MediaManagerItem): items.remove(item) # We cannot continue, as all images do not exist. if not items: - criticalErrorMessageBox( + critical_error_message_box( translate('ImagePlugin.MediaItem', 'Missing Image(s)'), unicode(translate('ImagePlugin.MediaItem', 'The following image(s) no longer exist: %s')) % @@ -214,7 +214,7 @@ class ImageMediaItem(MediaManagerItem): self.parent.liveController.display.directImage(name, filename) self.resetAction.setVisible(True) else: - criticalErrorMessageBox( + critical_error_message_box( translate('ImagePlugin.MediaItem', 'Live Background Error'), unicode(translate('ImagePlugin.MediaItem', 'There was a problem replacing your background, ' diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index c68b11c85..ea1b679b4 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ ItemCapabilities, SettingsManager, translate, check_item_selected, Receiver -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box log = logging.getLogger(__name__) @@ -120,7 +120,7 @@ class MediaMediaItem(MediaManagerItem): self.parent.liveController.display.video(filename, 0, True) self.resetAction.setVisible(True) else: - criticalErrorMessageBox(translate('MediaPlugin.MediaItem', + critical_error_message_box(translate('MediaPlugin.MediaItem', 'Live Background Error'), unicode(translate('MediaPlugin.MediaItem', 'There was a problem replacing your background, ' @@ -144,7 +144,7 @@ class MediaMediaItem(MediaManagerItem): return True else: # File is no longer present - criticalErrorMessageBox( + critical_error_message_box( translate('MediaPlugin.MediaItem', 'Missing Media File'), unicode(translate('MediaPlugin.MediaItem', 'The file %s no longer exists.')) % filename) diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 43cb3dab0..7b07a26c9 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ SettingsManager, translate, check_item_selected, Receiver, ItemCapabilities -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.presentations.lib import MessageListener log = logging.getLogger(__name__) @@ -181,7 +181,7 @@ class PresentationMediaItem(MediaManagerItem): filename = os.path.split(unicode(file))[1] if titles.count(filename) > 0: if not initialLoad: - criticalErrorMessageBox( + critical_error_message_box( translate('PresentationPlugin.MediaItem', 'File Exists'), translate('PresentationPlugin.MediaItem', @@ -205,7 +205,7 @@ class PresentationMediaItem(MediaManagerItem): if initialLoad: icon = build_icon(u':/general/general_delete.png') else: - criticalErrorMessageBox( + critical_error_message_box( self, translate('PresentationPlugin.MediaItem', 'Unsupported File'), translate('PresentationPlugin.MediaItem', @@ -278,7 +278,7 @@ class PresentationMediaItem(MediaManagerItem): return True else: # File is no longer present - criticalErrorMessageBox( + critical_error_message_box( translate('PresentationPlugin.MediaItem', 'Missing Presentation'), unicode(translate('PresentationPlugin.MediaItem', @@ -287,7 +287,7 @@ class PresentationMediaItem(MediaManagerItem): return False else: # File is no longer present - criticalErrorMessageBox( + critical_error_message_box( translate('PresentationPlugin.MediaItem', 'Missing Presentation'), unicode(translate('PresentationPlugin.MediaItem', diff --git a/openlp/plugins/songs/forms/authorsform.py b/openlp/plugins/songs/forms/authorsform.py index 091618bde..3a37cf290 100644 --- a/openlp/plugins/songs/forms/authorsform.py +++ b/openlp/plugins/songs/forms/authorsform.py @@ -27,7 +27,7 @@ from PyQt4 import QtGui, QtCore from openlp.core.lib import translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.songs.forms.authorsdialog import Ui_AuthorsDialog class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog): @@ -80,17 +80,19 @@ class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog): def accept(self): if not self.firstNameEdit.text(): - criticalErrorMessageBox(message=translate('SongsPlugin.AuthorsForm', + critical_error_message_box( + message=translate('SongsPlugin.AuthorsForm', 'You need to type in the first name of the author.')) self.firstNameEdit.setFocus() return False elif not self.lastNameEdit.text(): - criticalErrorMessageBox(message=translate('SongsPlugin.AuthorsForm', + critical_error_message_box( + message=translate('SongsPlugin.AuthorsForm', 'You need to type in the last name of the author.')) self.lastNameEdit.setFocus() return False elif not self.displayEdit.text(): - if criticalErrorMessageBox( + if critical_error_message_box( message=translate('SongsPlugin.AuthorsForm', 'You have not set a display name for the ' 'author, combine the first and last names?'), diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index c3279e1a9..bf94503ff 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -30,7 +30,7 @@ import re from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.songs.forms import EditVerseForm from openlp.plugins.songs.lib import SongXML, VerseType from openlp.plugins.songs.lib.db import Book, Song, Author, Topic @@ -255,7 +255,6 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.songBookNumberEdit.setText(self.song.song_number) else: self.songBookNumberEdit.setText(u'') - # lazy xml migration for now self.verseListWidget.clear() self.verseListWidget.setRowCount(0) @@ -343,7 +342,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): author = self.manager.get_object(Author, item_id) if self.authorsListView.findItems(unicode(author.display_name), QtCore.Qt.MatchExactly): - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.EditSongForm', 'This author is already in the list.')) else: @@ -400,7 +399,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): topic = self.manager.get_object(Topic, item_id) if self.topicsListView.findItems(unicode(topic.name), QtCore.Qt.MatchExactly): - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.EditSongForm', 'This topic is already in the list.')) else: @@ -533,21 +532,21 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if not self.titleEdit.text(): self.songTabWidget.setCurrentIndex(0) self.titleEdit.setFocus() - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.EditSongForm', 'You need to type in a song title.')) return False if self.verseListWidget.rowCount() == 0: self.songTabWidget.setCurrentIndex(0) self.verseListWidget.setFocus() - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.EditSongForm', 'You need to type in at least one verse.')) return False if self.authorsListView.count() == 0: self.songTabWidget.setCurrentIndex(1) self.authorsListView.setFocus() - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.EditSongForm', 'You need to have an author for this song.')) return False @@ -575,7 +574,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): valid = verses.pop(0) for verse in verses: valid = valid + u', ' + verse - criticalErrorMessageBox( + critical_error_message_box( message=unicode(translate('SongsPlugin.EditSongForm', 'The verse order is invalid. There is no verse ' 'corresponding to %s. Valid entries are %s.')) % \ diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index c10e48cb7..e67e0733a 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -29,7 +29,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.songs.lib import VerseType, translate from editversedialog import Ui_EditVerseDialog @@ -168,7 +168,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): else: value = self.getVerse()[0].split(u'\n')[1] if len(value) == 0: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.EditSongForm', 'You need to type some text in to the verse.')) return False diff --git a/openlp/plugins/songs/forms/songbookform.py b/openlp/plugins/songs/forms/songbookform.py index 8341a7c4c..3f054fe8d 100644 --- a/openlp/plugins/songs/forms/songbookform.py +++ b/openlp/plugins/songs/forms/songbookform.py @@ -27,7 +27,7 @@ from PyQt4 import QtGui from openlp.core.lib import translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.songs.forms.songbookdialog import Ui_SongBookDialog class SongBookForm(QtGui.QDialog, Ui_SongBookDialog): @@ -50,7 +50,7 @@ class SongBookForm(QtGui.QDialog, Ui_SongBookDialog): def accept(self): if not self.nameEdit.text(): - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongBookForm', 'You need to type in a name for the book.')) self.nameEdit.setFocus() diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index a5b0e713a..f1e1f82ed 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -32,7 +32,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, SettingsManager, translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard from openlp.plugins.songs.lib.importer import SongFormat @@ -329,7 +329,7 @@ class SongImportForm(OpenLPWizard): source_format = self.formatComboBox.currentIndex() if source_format == SongFormat.OpenLP2: if self.openLP2FilenameEdit.text().isEmpty(): - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No OpenLP 2.0 Song Database Selected'), translate('SongsPlugin.ImportWizardForm', @@ -339,7 +339,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.OpenLP1: if self.openLP1FilenameEdit.text().isEmpty(): - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No openlp.org 1.x Song Database Selected'), translate('SongsPlugin.ImportWizardForm', @@ -349,7 +349,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.OpenLyrics: if self.openLyricsFileListWidget.count() == 0: - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No OpenLyrics Files Selected'), translate('SongsPlugin.ImportWizardForm', @@ -359,7 +359,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.OpenSong: if self.openSongFileListWidget.count() == 0: - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No OpenSong Files Selected'), translate('SongsPlugin.ImportWizardForm', @@ -369,7 +369,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.WordsOfWorship: if self.wordsOfWorshipFileListWidget.count() == 0: - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No Words of Worship Files Selected'), translate('SongsPlugin.ImportWizardForm', @@ -379,7 +379,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.CCLI: if self.ccliFileListWidget.count() == 0: - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No CCLI Files Selected'), translate('SongsPlugin.ImportWizardForm', @@ -389,7 +389,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.SongsOfFellowship: if self.songsOfFellowshipFileListWidget.count() == 0: - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No Songs of Fellowship File Selected'), translate('SongsPlugin.ImportWizardForm', @@ -399,7 +399,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.Generic: if self.genericFileListWidget.count() == 0: - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No Document/Presentation Selected'), translate('SongsPlugin.ImportWizardForm', @@ -409,7 +409,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.EasiSlides: if self.easiSlidesFilenameEdit.text().isEmpty(): - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No Easislides Songs file selected'), translate('SongsPlugin.ImportWizardForm', @@ -419,7 +419,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.EasyWorship: if self.ewFilenameEdit.text().isEmpty(): - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No EasyWorship Song Database Selected'), translate('SongsPlugin.ImportWizardForm', @@ -429,7 +429,7 @@ class SongImportForm(OpenLPWizard): return False elif source_format == SongFormat.SongBeamer: if self.songBeamerFileListWidget.count() == 0: - criticalErrorMessageBox( + critical_error_message_box( translate('SongsPlugin.ImportWizardForm', 'No SongBeamer File Selected'), translate('SongsPlugin.ImportWizardForm', diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 441182424..e98bc3a6f 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -29,7 +29,7 @@ from PyQt4 import QtGui, QtCore from sqlalchemy.sql import and_ from openlp.core.lib import Receiver, translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.songs.forms import AuthorsForm, TopicsForm, SongBookForm from openlp.plugins.songs.lib.db import Author, Book, Topic, Song from songmaintenancedialog import Ui_SongMaintenanceDialog @@ -108,14 +108,14 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if item_id != -1: item = self.manager.get_object(item_class, item_id) if item and len(item.songs) == 0: - if criticalErrorMessageBox(title=dlg_title, message=del_text, + if critical_error_message_box(title=dlg_title, message=del_text, parent=self, question=True) == QtGui.QMessageBox.Yes: self.manager.delete_object(item_class, item.id) reset_func() else: - criticalErrorMessageBox(dlg_title, err_text) + critical_error_message_box(dlg_title, err_text) else: - criticalErrorMessageBox(dlg_title, sel_text) + critical_error_message_box(dlg_title, sel_text) def resetAuthors(self): """ @@ -237,11 +237,11 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(author): self.resetAuthors() else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not add your author.')) else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'This author already exists.')) @@ -252,11 +252,11 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(topic): self.resetTopics() else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not add your topic.')) else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'This topic already exists.')) @@ -268,11 +268,11 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(book): self.resetBooks() else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not add your book.')) else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'This book already exists.')) @@ -301,10 +301,10 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): self.resetAuthors() Receiver.send_message(u'songs_load_list') else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not save your changes.')) - elif criticalErrorMessageBox(message=unicode(translate( + elif critical_error_message_box(message=unicode(translate( 'SongsPlugin.SongMaintenanceForm', 'The author %s already ' 'exists. Would you like to make songs with author %s use ' 'the existing author %s?')) % (author.display_name, @@ -318,7 +318,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): author.first_name = temp_first_name author.last_name = temp_last_name author.display_name = temp_display_name - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not save your modified author, because the ' 'author already exists.')) @@ -337,10 +337,10 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(topic): self.resetTopics() else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not save your changes.')) - elif criticalErrorMessageBox( + elif critical_error_message_box( message=unicode(translate('SongsPlugin.SongMaintenanceForm', 'The topic %s already exists. Would you like to make songs ' 'with topic %s use the existing topic %s?')) % (topic.name, @@ -350,7 +350,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): else: # We restore the topics's old name. topic.name = temp_name - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not save your modified topic, because it ' 'already exists.')) @@ -375,10 +375,10 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): if self.manager.save_object(book): self.resetBooks() else: - criticalErrorMessageBox( + critical_error_message_box( message=translate('SongsPlugin.SongMaintenanceForm', 'Could not save your changes.')) - elif criticalErrorMessageBox( + elif critical_error_message_box( message=unicode(translate('SongsPlugin.SongMaintenanceForm', 'The book %s already exists. Would you like to make songs ' 'with book %s use the existing book %s?')) % (book.name, diff --git a/openlp/plugins/songs/forms/topicsform.py b/openlp/plugins/songs/forms/topicsform.py index 4ab2b63fa..792570c93 100644 --- a/openlp/plugins/songs/forms/topicsform.py +++ b/openlp/plugins/songs/forms/topicsform.py @@ -27,7 +27,7 @@ from PyQt4 import QtGui from openlp.core.lib import translate -from openlp.core.ui import criticalErrorMessageBox +from openlp.core.lib.ui import critical_error_message_box from openlp.plugins.songs.forms.topicsdialog import Ui_TopicsDialog class TopicsForm(QtGui.QDialog, Ui_TopicsDialog): @@ -49,7 +49,8 @@ class TopicsForm(QtGui.QDialog, Ui_TopicsDialog): def accept(self): if not self.nameEdit.text(): - criticalErrorMessageBox(message=translate('SongsPlugin.TopicsForm', + critical_error_message_box( + message=translate('SongsPlugin.TopicsForm', 'You need to type in a topic name.')) self.nameEdit.setFocus() return False From e9ea8fd8cc382e40ebe348087e96fcdfeed24837 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 3 Feb 2011 01:55:12 +0000 Subject: [PATCH 4/6] Dedupe song object checking --- .../songs/forms/songmaintenanceform.py | 53 ++++++------------- 1 file changed, 15 insertions(+), 38 deletions(-) diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index e98bc3a6f..737d63204 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -159,66 +159,43 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): def checkAuthor(self, new_author, edit=False): """ Returns *False* if the given Author already exists, otherwise *True*. - - ``edit`` - If we edit an item, this should be *True*. """ authors = self.manager.get_all_objects(Author, and_(Author.first_name == new_author.first_name, Author.last_name == new_author.last_name, Author.display_name == new_author.display_name)) - # Check if this author already exists. - if len(authors) > 0: - # If we edit an existing Author, we need to make sure that we do - # not return False when nothing has changed. - if edit: - for author in authors: - if author.id != new_author.id: - return False - return True - else: - return False - else: - return True + return self.__checkObject(authors, new_author, edit) def checkTopic(self, new_topic, edit=False): """ Returns *False* if the given Topic already exists, otherwise *True*. - - ``edit`` - If we edit an item, this should be *True*. """ topics = self.manager.get_all_objects(Topic, Topic.name == new_topic.name) - if len(topics) > 0: - # If we edit an existing Topic, we need to make sure that we do - # not return False when nothing has changed. - if edit: - for topic in topics: - if topic.id != new_topic.id: - return False - return True - else: - return False - else: - return True + return self.__checkObject(topics, new_topic, edit) def checkBook(self, new_book, edit=False): """ Returns *False* if the given Topic already exists, otherwise *True*. - - ``edit`` - If we edit an item, this should be *True*. """ books = self.manager.get_all_objects(Book, and_(Book.name == new_book.name, Book.publisher == new_book.publisher)) - if len(books) > 0: - # If we edit an existing Book, we need to make sure that we do + return self.__checkObject(books, new_book, edit) + + def __checkObject(self, objects, new_object, edit): + """ + Utility method to check for an existing object. + + ``edit`` + If we edit an item, this should be *True*. + """ + if len(objects) > 0: + # If we edit an existing object, we need to make sure that we do # not return False when nothing has changed. if edit: - for book in books: - if book.id != new_book.id: + for object in objects: + if object.id != new_object.id: return False return True else: From 750a232311ecacfef4321caba8f92bff842a4d64 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 3 Feb 2011 02:46:02 +0000 Subject: [PATCH 5/6] UI library - media_item_combo_box --- openlp/core/lib/ui.py | 10 +++ openlp/plugins/bibles/lib/mediaitem.py | 67 +++++-------------- openlp/plugins/presentations/lib/mediaitem.py | 10 +-- 3 files changed, 30 insertions(+), 57 deletions(-) diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index f87ac68d1..8cfffef45 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -98,3 +98,13 @@ def critical_error_message_box(title=None, message=None, parent=None, data = {u'message': message} data[u'title'] = title if title else error return Receiver.send_message(u'openlp_error_message', data) + +def media_item_combo_box(parent, name): + """ + Provide a standard combo box for media items. + """ + combo = QtGui.QComboBox(parent) + combo.setObjectName(name) + combo.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToMinimumContentsLength) + combo.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) + return combo diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index c66b83dfc..26f45b6b3 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -30,7 +30,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, Receiver, BaseListWithDnD, \ ItemCapabilities, translate -from openlp.core.lib.ui import critical_error_message_box +from openlp.core.lib.ui import critical_error_message_box, media_item_combo_box from openlp.plugins.bibles.forms import BibleImportForm from openlp.plugins.bibles.lib import get_reference_match @@ -81,33 +81,21 @@ class BibleMediaItem(MediaManagerItem): self.quickLayout.setObjectName(u'quickLayout') self.quickVersionLabel = QtGui.QLabel(self.quickTab) self.quickVersionLabel.setObjectName(u'quickVersionLabel') - self.quickVersionComboBox = QtGui.QComboBox(self.quickTab) - self.quickVersionComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.quickVersionComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.quickVersionComboBox.setObjectName(u'quickVersionComboBox') + self.quickVersionComboBox = media_item_combo_box(self.quickTab, + u'quickVersionComboBox') self.quickVersionLabel.setBuddy(self.quickVersionComboBox) self.quickLayout.addRow(self.quickVersionLabel, self.quickVersionComboBox) self.quickSecondLabel = QtGui.QLabel(self.quickTab) self.quickSecondLabel.setObjectName(u'quickSecondLabel') - self.quickSecondComboBox = QtGui.QComboBox(self.quickTab) - self.quickSecondComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.quickSecondComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.quickSecondComboBox.setObjectName(u'quickSecondComboBox') + self.quickSecondComboBox = media_item_combo_box(self.quickTab, + u'quickSecondComboBox') self.quickSecondLabel.setBuddy(self.quickSecondComboBox) self.quickLayout.addRow(self.quickSecondLabel, self.quickSecondComboBox) self.quickSearchTypeLabel = QtGui.QLabel(self.quickTab) self.quickSearchTypeLabel.setObjectName(u'quickSearchTypeLabel') - self.quickSearchComboBox = QtGui.QComboBox(self.quickTab) - self.quickSearchComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.quickSearchComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.quickSearchComboBox.setObjectName(u'quickSearchComboBox') + self.quickSearchComboBox = media_item_combo_box(self.quickTab, + u'quickSearchComboBox') self.quickSearchTypeLabel.setBuddy(self.quickSearchComboBox) self.quickLayout.addRow(self.quickSearchTypeLabel, self.quickSearchComboBox) @@ -119,12 +107,8 @@ class BibleMediaItem(MediaManagerItem): self.quickLayout.addRow(self.quickSearchLabel, self.quickSearchEdit) self.quickClearLabel = QtGui.QLabel(self.quickTab) self.quickClearLabel.setObjectName(u'quickClearLabel') - self.quickClearComboBox = QtGui.QComboBox(self.quickTab) - self.quickClearComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.quickClearComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.quickClearComboBox.setObjectName(u'quickClearComboBox') + self.quickClearComboBox = media_item_combo_box(self.quickTab, + u'quickClearComboBox') self.quickLayout.addRow(self.quickClearLabel, self.quickClearComboBox) self.quickSearchButtonLayout = QtGui.QHBoxLayout() self.quickSearchButtonLayout.setObjectName(u'quickSearchButtonLayout') @@ -144,36 +128,24 @@ class BibleMediaItem(MediaManagerItem): self.advancedVersionLabel.setObjectName(u'advancedVersionLabel') self.advancedLayout.addWidget(self.advancedVersionLabel, 0, 0, QtCore.Qt.AlignRight) - self.advancedVersionComboBox = QtGui.QComboBox(self.advancedTab) - self.advancedVersionComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.advancedVersionComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.advancedVersionComboBox.setObjectName(u'advancedVersionComboBox') + self.advancedVersionComboBox = media_item_combo_box(self.advancedTab, + u'advancedVersionComboBox') self.advancedVersionLabel.setBuddy(self.advancedVersionComboBox) self.advancedLayout.addWidget(self.advancedVersionComboBox, 0, 1, 1, 2) self.advancedSecondLabel = QtGui.QLabel(self.advancedTab) self.advancedSecondLabel.setObjectName(u'advancedSecondLabel') self.advancedLayout.addWidget(self.advancedSecondLabel, 1, 0, QtCore.Qt.AlignRight) - self.advancedSecondComboBox = QtGui.QComboBox(self.advancedTab) - self.advancedSecondComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.advancedSecondComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.advancedSecondComboBox.setObjectName(u'advancedSecondComboBox') + self.advancedSecondComboBox = media_item_combo_box(self.advancedTab, + u'advancedSecondComboBox') self.advancedSecondLabel.setBuddy(self.advancedSecondComboBox) self.advancedLayout.addWidget(self.advancedSecondComboBox, 1, 1, 1, 2) self.advancedBookLabel = QtGui.QLabel(self.advancedTab) self.advancedBookLabel.setObjectName(u'advancedBookLabel') self.advancedLayout.addWidget(self.advancedBookLabel, 2, 0, QtCore.Qt.AlignRight) - self.advancedBookComboBox = QtGui.QComboBox(self.advancedTab) - self.advancedBookComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.advancedBookComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.advancedBookComboBox.setObjectName(u'advancedBookComboBox') + self.advancedBookComboBox = media_item_combo_box(self.advancedTab, + u'advancedBookComboBox') self.advancedBookLabel.setBuddy(self.advancedBookComboBox) self.advancedLayout.addWidget(self.advancedBookComboBox, 2, 1, 1, 2) self.advancedChapterLabel = QtGui.QLabel(self.advancedTab) @@ -202,17 +174,12 @@ class BibleMediaItem(MediaManagerItem): self.advancedToVerse = QtGui.QComboBox(self.advancedTab) self.advancedToVerse.setObjectName(u'advancedToVerse') self.advancedLayout.addWidget(self.advancedToVerse, 5, 2) - self.advancedClearLabel = QtGui.QLabel(self.quickTab) self.advancedClearLabel.setObjectName(u'advancedClearLabel') self.advancedLayout.addWidget(self.advancedClearLabel, 6, 0, QtCore.Qt.AlignRight) - self.advancedClearComboBox = QtGui.QComboBox(self.quickTab) - self.advancedClearComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.advancedClearComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.advancedClearComboBox.setObjectName(u'advancedClearComboBox') + self.advancedClearComboBox = media_item_combo_box(self.quickTab, + u'advancedClearComboBox') self.advancedClearLabel.setBuddy(self.advancedClearComboBox) self.advancedLayout.addWidget(self.advancedClearComboBox, 6, 1, 1, 2) self.advancedSearchButtonLayout = QtGui.QHBoxLayout() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 7b07a26c9..a0173cb27 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ SettingsManager, translate, check_item_selected, Receiver, ItemCapabilities -from openlp.core.lib.ui import critical_error_message_box +from openlp.core.lib.ui import critical_error_message_box, media_item_combo_box from openlp.plugins.presentations.lib import MessageListener log = logging.getLogger(__name__) @@ -116,12 +116,8 @@ class PresentationMediaItem(MediaManagerItem): self.displayLayout.setObjectName(u'displayLayout') self.displayTypeLabel = QtGui.QLabel(self.presentationWidget) self.displayTypeLabel.setObjectName(u'displayTypeLabel') - self.displayTypeComboBox = QtGui.QComboBox(self.presentationWidget) - self.displayTypeComboBox.setSizeAdjustPolicy( - QtGui.QComboBox.AdjustToMinimumContentsLength) - self.displayTypeComboBox.setSizePolicy( - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) - self.displayTypeComboBox.setObjectName(u'displayTypeComboBox') + self.displayTypeComboBox = media_item_combo_box( + self.presentationWidget, u'displayTypeComboBox') self.displayTypeLabel.setBuddy(self.displayTypeComboBox) self.displayLayout.addRow(self.displayTypeLabel, self.displayTypeComboBox) From 6751aa41b1fff255e2dcccf0d4e76e7bf5911742 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Thu, 3 Feb 2011 03:50:04 +0000 Subject: [PATCH 6/6] Stop reloading songs all the time --- openlp/core/lib/plugin.py | 2 +- openlp/core/ui/servicemanager.py | 7 ++++--- openlp/plugins/songs/lib/mediaitem.py | 3 +-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 8b12004d3..fb31006b5 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -118,7 +118,7 @@ class Plugin(QtCore.QObject): class MyPlugin(Plugin): def __init__(self): - Plugin.__init(self, u'MyPlugin', u'0.1') + Plugin.__init__(self, u'MyPlugin', u'0.1') ``name`` Defaults to *None*. The name of the plugin. diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index ace678c75..4d36f4aec 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -506,6 +506,8 @@ class ServiceManager(QtGui.QWidget): if filePath.endswith(u'osd'): p_file = filePath if 'p_file' in locals(): + Receiver.send_message(u'cursor_busy') + Receiver.send_message(u'openlp_process_events') fileTo = open(p_file, u'r') items = cPickle.load(fileTo) fileTo.close() @@ -520,6 +522,7 @@ class ServiceManager(QtGui.QWidget): Receiver.send_message(u'%s_service_load' % serviceItem.name.lower(), serviceItem) delete_file(p_file) + Receiver.send_message(u'cursor_normal') else: critical_error_message_box( message=translate('OpenLP.ServiceManager', @@ -536,9 +539,7 @@ class ServiceManager(QtGui.QWidget): self.mainwindow.addRecentFile(fileName) self.setModified(False) QtCore.QSettings(). \ - setValue(u'service/last file',QtCore.QVariant(fileName)) - # Refresh Plugin lists - Receiver.send_message(u'plugin_list_refresh') + setValue(u'service/last file', QtCore.QVariant(fileName)) def loadLastFile(self): """ diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index a62471c2d..95337b29f 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -95,8 +95,6 @@ class SongMediaItem(MediaManagerItem): self.searchLayout.addLayout(self.searchButtonLayout) self.pageLayout.addWidget(self.searchWidget) # Signals and slots - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'plugin_list_refresh'), self.onSearchTextButtonClick) QtCore.QObject.connect(self.searchTextEdit, QtCore.SIGNAL(u'returnPressed()'), self.onSearchTextButtonClick) QtCore.QObject.connect(self.searchTextButton, @@ -433,6 +431,7 @@ class SongMediaItem(MediaManagerItem): if add_song: if self.addSongFromService: editId = self.openLyrics.xml_to_song(item.xml_version) + self.onSearchTextButtonClick() # Update service with correct song id. if editId: Receiver.send_message(u'service_item_update',