Fixed #1204629 so that typing an image path actually changes the background.

Made the page validation more robust by including the fileDialog

bzr-revno: 2150
Fixes: https://launchpad.net/bugs/1204629
This commit is contained in:
Philip Ridout 2013-07-31 19:34:31 +02:00 committed by Andreas Preikschat
commit 3eafcdeb0f
2 changed files with 16 additions and 9 deletions

View File

@ -78,6 +78,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
QtCore.SIGNAL(u'clicked()'), self.onGradientEndButtonClicked) QtCore.SIGNAL(u'clicked()'), self.onGradientEndButtonClicked)
QtCore.QObject.connect(self.imageBrowseButton, QtCore.QObject.connect(self.imageBrowseButton,
QtCore.SIGNAL(u'clicked()'), self.onImageBrowseButtonClicked) QtCore.SIGNAL(u'clicked()'), self.onImageBrowseButtonClicked)
QtCore.QObject.connect(self.imageFileEdit,
QtCore.SIGNAL(u'editingFinished()'), self.onImageFileEditEditingFinished)
QtCore.QObject.connect(self.mainColorButton, QtCore.QObject.connect(self.mainColorButton,
QtCore.SIGNAL(u'clicked()'), self.onMainColorButtonClicked) QtCore.SIGNAL(u'clicked()'), self.onMainColorButtonClicked)
QtCore.QObject.connect(self.outlineColorButton, QtCore.QObject.connect(self.outlineColorButton,
@ -233,7 +235,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
background_image = BackgroundType.to_string(BackgroundType.Image) background_image = BackgroundType.to_string(BackgroundType.Image)
if self.page(self.currentId()) == self.backgroundPage and \ if self.page(self.currentId()) == self.backgroundPage and \
self.theme.background_type == background_image and \ self.theme.background_type == background_image and \
is_not_image_file(self.imageFileEdit.text()): is_not_image_file(self.theme.background_filename):
QtGui.QMessageBox.critical(self, QtGui.QMessageBox.critical(self,
translate('OpenLP.ThemeWizard', 'Background Image Empty'), translate('OpenLP.ThemeWizard', 'Background Image Empty'),
translate('OpenLP.ThemeWizard', 'You have not selected a ' translate('OpenLP.ThemeWizard', 'You have not selected a '
@ -545,6 +547,12 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
self.theme.background_filename = unicode(filename) self.theme.background_filename = unicode(filename)
self.setBackgroundPageValues() self.setBackgroundPageValues()
def onImageFileEditEditingFinished(self):
"""
Background image path edited
"""
self.theme.background_filename = unicode(self.imageFileEdit.text())
def onMainColorButtonClicked(self): def onMainColorButtonClicked(self):
self.theme.font_main_color = \ self.theme.font_main_color = \
self._colorButton(self.theme.font_main_color) self._colorButton(self.theme.font_main_color)

View File

@ -371,15 +371,14 @@ def is_not_image_file(file_name):
``file_name`` ``file_name``
File name to be checked. File name to be checked.
""" """
if file_name.isEmpty(): if not file_name:
return True
else:
formats = [unicode(fmt).lower()
for fmt in QtGui.QImageReader.supportedImageFormats()]
file_part, file_extension = os.path.splitext(unicode(file_name))
if file_extension[1:].lower() in formats and os.path.exists(file_name):
return False
return True return True
formats = [unicode(fmt).lower()
for fmt in QtGui.QImageReader.supportedImageFormats()]
file_part, file_extension = os.path.splitext(unicode(file_name))
if file_extension[1:].lower() in formats and os.path.exists(file_name):
return False
return True
def join_url(base, *args): def join_url(base, *args):
""" """