From 2591d24a41bae9dcd80015a178b1bbdd1551ca71 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 17 Sep 2012 23:30:10 +0200 Subject: [PATCH] Fixed bug #1051971 where we were not validating that a background image was being selected. Fixes: https://launchpad.net/bugs/1051971 --- openlp/core/ui/themeform.py | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index be8f9bde1..3f1775f45 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -157,7 +157,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): u'outlineColorButton', self.outlineColorButton) self.mainAreaPage.registerField( u'outlineSizeSpinBox', self.outlineSizeSpinBox) - self.mainAreaPage.registerField(u'shadowCheckBox', self.shadowCheckBox) + self.mainAreaPage.registerField( + u'shadowCheckBox', self.shadowCheckBox) self.mainAreaPage.registerField( u'mainBoldCheckBox', self.mainBoldCheckBox) self.mainAreaPage.registerField( @@ -168,8 +169,10 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): u'shadowSizeSpinBox', self.shadowSizeSpinBox) self.mainAreaPage.registerField( u'footerSizeSpinBox', self.footerSizeSpinBox) - self.areaPositionPage.registerField(u'mainPositionX', self.mainXSpinBox) - self.areaPositionPage.registerField(u'mainPositionY', self.mainYSpinBox) + self.areaPositionPage.registerField( + u'mainPositionX', self.mainXSpinBox) + self.areaPositionPage.registerField( + u'mainPositionY', self.mainYSpinBox) self.areaPositionPage.registerField( u'mainPositionWidth', self.mainWidthSpinBox) self.areaPositionPage.registerField( @@ -202,7 +205,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ Updates the lines on a page on the wizard """ - self.mainLineCountLabel.setText(unicode(translate('OpenLP.ThemeForm', + self.mainLineCountLabel.setText(unicode(translate( + 'OpenLP.ThemeWizard', '(approximately %d lines per slide)')) % int(lines)) def resizeEvent(self, event=None): @@ -224,6 +228,19 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.previewBoxLabel.setFixedSize(pixmapWidth + 2 * frameWidth, pixmapHeight + 2 * frameWidth) + def validateCurrentPage(self): + if self.page(self.currentId()) == self.backgroundPage and \ + self.theme.background_type == \ + BackgroundType.to_string(BackgroundType.Image) and \ + unicode(self.imageFileEdit.text()) == u'': + QtGui.QMessageBox.critical(self, + translate('OpenLP.ThemeWizard', 'Background Image Empty'), + translate('OpenLP.ThemeWizard', 'You have not selected a ' + 'background image. Please select one before continuing.')) + return False + else: + return True + def onCurrentIdChanged(self, pageId): """ Detects Page changes and updates as appropriate. @@ -521,7 +538,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): images_filter = u'%s;;%s (*.*) (*)' % ( images_filter, UiStrings().AllFiles) filename = QtGui.QFileDialog.getOpenFileName(self, - translate('OpenLP.ThemeForm', 'Select Image'), u'', + translate('OpenLP.ThemeWizard', 'Select Image'), u'', images_filter) if filename: self.theme.background_filename = unicode(filename) @@ -603,14 +620,14 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.theme_name = unicode(self.field(u'name').toString()) if not self.theme.theme_name: critical_error_message_box( - translate('OpenLP.ThemeForm', 'Theme Name Missing'), - translate('OpenLP.ThemeForm', + translate('OpenLP.ThemeWizard', 'Theme Name Missing'), + translate('OpenLP.ThemeWizard', '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': critical_error_message_box( - translate('OpenLP.ThemeForm', 'Theme Name Invalid'), - translate('OpenLP.ThemeForm', + translate('OpenLP.ThemeWizard', 'Theme Name Invalid'), + translate('OpenLP.ThemeWizard', 'Invalid theme name. Please enter one.')) return saveFrom = None