Completed core conversion

This commit is contained in:
Tim Bentley 2012-12-29 15:25:29 +00:00
parent 345b5638c8
commit 4f2f6f73aa
12 changed files with 338 additions and 649 deletions

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -69,8 +69,7 @@ class FormattingTags(object):
if isinstance(tag[element], unicode):
tag[element] = tag[element].encode('utf8')
# Formatting Tags were also known as display tags.
Settings().setValue(u'displayTags/html_tags',
cPickle.dumps(tags) if tags else u'')
Settings().setValue(u'displayTags/html_tags', cPickle.dumps(tags) if tags else u'')
@staticmethod
def load_tags():

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -41,15 +41,11 @@ class Ui_FormattingTagDialog(object):
self.listdataGridLayout.setMargin(8)
self.listdataGridLayout.setObjectName(u'listdataGridLayout')
self.tagTableWidget = QtGui.QTableWidget(formattingTagDialog)
self.tagTableWidget.setHorizontalScrollBarPolicy(
QtCore.Qt.ScrollBarAlwaysOff)
self.tagTableWidget.setEditTriggers(
QtGui.QAbstractItemView.NoEditTriggers)
self.tagTableWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.tagTableWidget.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
self.tagTableWidget.setAlternatingRowColors(True)
self.tagTableWidget.setSelectionMode(
QtGui.QAbstractItemView.SingleSelection)
self.tagTableWidget.setSelectionBehavior(
QtGui.QAbstractItemView.SelectRows)
self.tagTableWidget.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
self.tagTableWidget.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
self.tagTableWidget.setCornerButtonEnabled(False)
self.tagTableWidget.setObjectName(u'tagTableWidget')
self.tagTableWidget.setColumnCount(4)
@ -66,8 +62,7 @@ class Ui_FormattingTagDialog(object):
self.listdataGridLayout.addWidget(self.tagTableWidget, 0, 0, 1, 1)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(u'horizontalLayout')
spacerItem = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.deletePushButton = QtGui.QPushButton(formattingTagDialog)
self.deletePushButton.setObjectName(u'deletePushButton')
@ -114,36 +109,25 @@ class Ui_FormattingTagDialog(object):
self.savePushButton.setObjectName(u'savePushButton')
self.dataGridLayout.addWidget(self.savePushButton, 4, 2, 1, 1)
self.listdataGridLayout.addWidget(self.editGroupBox, 2, 0, 1, 1)
self.buttonBox = create_button_box(formattingTagDialog, 'buttonBox',
[u'close'])
self.buttonBox = create_button_box(formattingTagDialog, u'buttonBox', [u'close'])
self.listdataGridLayout.addWidget(self.buttonBox, 3, 0, 1, 1)
self.retranslateUi(formattingTagDialog)
def retranslateUi(self, formattingTagDialog):
formattingTagDialog.setWindowTitle(translate(
'OpenLP.FormattingTagDialog', 'Configure Formatting Tags'))
self.editGroupBox.setTitle(
translate('OpenLP.FormattingTagDialog', 'Edit Selection'))
self.savePushButton.setText(
translate('OpenLP.FormattingTagDialog', 'Save'))
self.descriptionLabel.setText(
translate('OpenLP.FormattingTagDialog', 'Description'))
formattingTagDialog.setWindowTitle(translate('OpenLP.FormattingTagDialog', 'Configure Formatting Tags'))
self.editGroupBox.setTitle(translate('OpenLP.FormattingTagDialog', 'Edit Selection'))
self.savePushButton.setText(translate('OpenLP.FormattingTagDialog', 'Save'))
self.descriptionLabel.setText(translate('OpenLP.FormattingTagDialog', 'Description'))
self.tagLabel.setText(translate('OpenLP.FormattingTagDialog', 'Tag'))
self.startTagLabel.setText(
translate('OpenLP.FormattingTagDialog', 'Start HTML'))
self.endTagLabel.setText(
translate('OpenLP.FormattingTagDialog', 'End HTML'))
self.startTagLabel.setText(translate('OpenLP.FormattingTagDialog', 'Start HTML'))
self.endTagLabel.setText(translate('OpenLP.FormattingTagDialog', 'End HTML'))
self.deletePushButton.setText(UiStrings().Delete)
self.newPushButton.setText(UiStrings().New)
self.tagTableWidget.horizontalHeaderItem(0).setText(
translate('OpenLP.FormattingTagDialog', 'Description'))
self.tagTableWidget.horizontalHeaderItem(1).setText(
translate('OpenLP.FormattingTagDialog', 'Tag'))
self.tagTableWidget.horizontalHeaderItem(2).setText(
translate('OpenLP.FormattingTagDialog', 'Start HTML'))
self.tagTableWidget.horizontalHeaderItem(3).setText(
translate('OpenLP.FormattingTagDialog', 'End HTML'))
self.tagTableWidget.horizontalHeaderItem(0).setText(translate('OpenLP.FormattingTagDialog', 'Description'))
self.tagTableWidget.horizontalHeaderItem(1).setText(translate('OpenLP.FormattingTagDialog', 'Tag'))
self.tagTableWidget.horizontalHeaderItem(2).setText(translate('OpenLP.FormattingTagDialog', 'Start HTML'))
self.tagTableWidget.horizontalHeaderItem(3).setText(translate('OpenLP.FormattingTagDialog', 'End HTML'))
self.tagTableWidget.setColumnWidth(0, 120)
self.tagTableWidget.setColumnWidth(1, 80)
self.tagTableWidget.setColumnWidth(2, 330)

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -49,24 +49,15 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
"""
QtGui.QDialog.__init__(self, parent)
self.setupUi(self)
QtCore.QObject.connect(self.tagTableWidget,
QtCore.SIGNAL(u'itemSelectionChanged()'),self.onRowSelected)
QtCore.QObject.connect(self.newPushButton,
QtCore.SIGNAL(u'clicked()'), self.onNewClicked)
QtCore.QObject.connect(self.savePushButton,
QtCore.SIGNAL(u'clicked()'), self.onSavedClicked)
QtCore.QObject.connect(self.deletePushButton,
QtCore.SIGNAL(u'clicked()'), self.onDeleteClicked)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'),
self.close)
QtCore.QObject.connect(self.descriptionLineEdit,
QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
QtCore.QObject.connect(self.tagLineEdit,
QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
QtCore.QObject.connect(self.startTagLineEdit,
QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
QtCore.QObject.connect(self.endTagLineEdit,
QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
QtCore.QObject.connect(self.tagTableWidget, QtCore.SIGNAL(u'itemSelectionChanged()'),self.onRowSelected)
QtCore.QObject.connect(self.newPushButton, QtCore.SIGNAL(u'clicked()'), self.onNewClicked)
QtCore.QObject.connect(self.savePushButton, QtCore.SIGNAL(u'clicked()'), self.onSavedClicked)
QtCore.QObject.connect(self.deletePushButton, QtCore.SIGNAL(u'clicked()'), self.onDeleteClicked)
QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'), self.close)
QtCore.QObject.connect(self.descriptionLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
QtCore.QObject.connect(self.tagLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
QtCore.QObject.connect(self.startTagLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
QtCore.QObject.connect(self.endTagLineEdit, QtCore.SIGNAL(u'textEdited(QString)'), self.onTextEdited)
# Forces reloading of tags from openlp configuration.
FormattingTags.load_tags()
@ -118,8 +109,7 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
if self._strip(html[u'start tag']) == u'n':
critical_error_message_box(
translate('OpenLP.FormattingTagForm', 'Update Error'),
translate('OpenLP.FormattingTagForm',
'Tag "n" already defined.'))
translate('OpenLP.FormattingTagForm', 'Tag "n" already defined.'))
return
# Add new tag to list
tag = {
@ -162,12 +152,10 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
html = html_expands[self.selected]
tag = self.tagLineEdit.text()
for linenumber, html1 in enumerate(html_expands):
if self._strip(html1[u'start tag']) == tag and \
linenumber != self.selected:
if self._strip(html1[u'start tag']) == tag and linenumber != self.selected:
critical_error_message_box(
translate('OpenLP.FormattingTagForm', 'Update Error'),
translate('OpenLP.FormattingTagForm',
'Tag %s already defined.') % tag)
translate('OpenLP.FormattingTagForm', 'Tag %s already defined.') % tag)
return
html[u'desc'] = self.descriptionLineEdit.text()
html[u'start html'] = self.startTagLineEdit.text()
@ -191,14 +179,10 @@ class FormattingTagForm(QtGui.QDialog, Ui_FormattingTagDialog):
self.deletePushButton.setEnabled(False)
for linenumber, html in enumerate(FormattingTags.get_html_tags()):
self.tagTableWidget.setRowCount(self.tagTableWidget.rowCount() + 1)
self.tagTableWidget.setItem(linenumber, 0,
QtGui.QTableWidgetItem(html[u'desc']))
self.tagTableWidget.setItem(linenumber, 1,
QtGui.QTableWidgetItem(self._strip(html[u'start tag'])))
self.tagTableWidget.setItem(linenumber, 2,
QtGui.QTableWidgetItem(html[u'start html']))
self.tagTableWidget.setItem(linenumber, 3,
QtGui.QTableWidgetItem(html[u'end html']))
self.tagTableWidget.setItem(linenumber, 0, QtGui.QTableWidgetItem(html[u'desc']))
self.tagTableWidget.setItem(linenumber, 1, QtGui.QTableWidgetItem(self._strip(html[u'start tag'])))
self.tagTableWidget.setItem(linenumber, 2, QtGui.QTableWidgetItem(html[u'start html']))
self.tagTableWidget.setItem(linenumber, 3, QtGui.QTableWidgetItem(html[u'end html']))
# Permanent (persistent) tags do not have this key.
if u'temporary' not in html:
html[u'temporary'] = False

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -101,15 +101,13 @@ class Ui_StartTimeDialog(object):
self.secondFinishLabel.setAlignment(QtCore.Qt.AlignRight)
self.dialogLayout.addWidget(self.secondFinishLabel, 3, 3, 1, 1)
self.dialogLayout.addWidget(self.secondSpinBox, 3, 1, 1, 1)
self.buttonBox = create_button_box(StartTimeDialog, u'buttonBox',
[u'cancel', u'ok'])
self.buttonBox = create_button_box(StartTimeDialog, u'buttonBox', [u'cancel', u'ok'])
self.dialogLayout.addWidget(self.buttonBox, 5, 2, 1, 2)
self.retranslateUi(StartTimeDialog)
self.setMaximumHeight(self.sizeHint().height())
def retranslateUi(self, StartTimeDialog):
self.setWindowTitle(translate('OpenLP.StartTimeForm',
'Item Start and Finish Time'))
self.setWindowTitle(translate('OpenLP.StartTimeForm', 'Item Start and Finish Time'))
self.hourSpinBox.setSuffix(UiStrings().Hours)
self.minuteSpinBox.setSuffix(UiStrings().Minutes)
self.secondSpinBox.setSuffix(UiStrings().Seconds)

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -46,22 +46,17 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog):
"""
Run the Dialog with correct heading.
"""
hour, minutes, seconds = self._time_split(
self.item[u'service_item'].start_time)
hour, minutes, seconds = self._time_split(self.item[u'service_item'].start_time)
self.hourSpinBox.setValue(hour)
self.minuteSpinBox.setValue(minutes)
self.secondSpinBox.setValue(seconds)
hours, minutes, seconds = self._time_split(
self.item[u'service_item'].media_length)
hours, minutes, seconds = self._time_split(self.item[u'service_item'].media_length)
self.hourFinishSpinBox.setValue(hours)
self.minuteFinishSpinBox.setValue(minutes)
self.secondFinishSpinBox.setValue(seconds)
self.hourFinishLabel.setText(u'%s%s' % (unicode(hour),
UiStrings().Hours))
self.minuteFinishLabel.setText(u'%s%s' %
(unicode(minutes), UiStrings().Minutes))
self.secondFinishLabel.setText(u'%s%s' %
(unicode(seconds), UiStrings().Seconds))
self.hourFinishLabel.setText(u'%s%s' % (unicode(hour), UiStrings().Hours))
self.minuteFinishLabel.setText(u'%s%s' % (unicode(minutes), UiStrings().Minutes))
self.secondFinishLabel.setText(u'%s%s' % (unicode(seconds), UiStrings().Seconds))
return QtGui.QDialog.exec_(self)
def accept(self):
@ -72,18 +67,12 @@ class StartTimeForm(QtGui.QDialog, Ui_StartTimeDialog):
self.minuteFinishSpinBox.value() * 60 + \
self.secondFinishSpinBox.value()
if end > self.item[u'service_item'].media_length:
critical_error_message_box(
title=translate('OpenLP.StartTimeForm',
'Time Validation Error'),
message=translate('OpenLP.StartTimeForm',
'Finish time is set after the end of the media item'))
critical_error_message_box(title=translate('OpenLP.StartTimeForm', 'Time Validation Error'),
message=translate('OpenLP.StartTimeForm', 'Finish time is set after the end of the media item'))
return
elif start > end:
critical_error_message_box(
title=translate('OpenLP.StartTimeForm',
'Time Validation Error'),
message=translate('OpenLP.StartTimeForm',
'Start time is after the finish time of the media item'))
critical_error_message_box(title=translate('OpenLP.StartTimeForm', 'Time Validation Error'),
message=translate('OpenLP.StartTimeForm', 'Start time is after the finish time of the media item'))
return
self.item[u'service_item'].start_time = start
self.item[u'service_item'].end_time = end

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -62,63 +62,37 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
self.updateThemeAllowed = True
self.temp_background_filename = u''
self.themeLayoutForm = ThemeLayoutForm(self)
QtCore.QObject.connect(self.backgroundComboBox,
QtCore.SIGNAL(u'currentIndexChanged(int)'),
QtCore.QObject.connect(self.backgroundComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'),
self.onBackgroundComboBoxCurrentIndexChanged)
QtCore.QObject.connect(self.gradientComboBox,
QtCore.SIGNAL(u'currentIndexChanged(int)'),
QtCore.QObject.connect(self.gradientComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'),
self.onGradientComboBoxCurrentIndexChanged)
QtCore.QObject.connect(self.colorButton,
QtCore.SIGNAL(u'clicked()'), self.onColorButtonClicked)
QtCore.QObject.connect(self.imageColorButton,
QtCore.SIGNAL(u'clicked()'), self.onImageColorButtonClicked)
QtCore.QObject.connect(self.gradientStartButton,
QtCore.SIGNAL(u'clicked()'), self.onGradientStartButtonClicked)
QtCore.QObject.connect(self.gradientEndButton,
QtCore.SIGNAL(u'clicked()'), self.onGradientEndButtonClicked)
QtCore.QObject.connect(self.imageBrowseButton,
QtCore.SIGNAL(u'clicked()'), self.onImageBrowseButtonClicked)
QtCore.QObject.connect(self.mainColorButton,
QtCore.SIGNAL(u'clicked()'), self.onMainColorButtonClicked)
QtCore.QObject.connect(self.outlineColorButton,
QtCore.SIGNAL(u'clicked()'), self.onOutlineColorButtonClicked)
QtCore.QObject.connect(self.shadowColorButton,
QtCore.SIGNAL(u'clicked()'), self.onShadowColorButtonClicked)
QtCore.QObject.connect(self.outlineCheckBox,
QtCore.SIGNAL(u'stateChanged(int)'),
QtCore.QObject.connect(self.colorButton, QtCore.SIGNAL(u'clicked()'), self.onColorButtonClicked)
QtCore.QObject.connect(self.imageColorButton, QtCore.SIGNAL(u'clicked()'), self.onImageColorButtonClicked)
QtCore.QObject.connect(self.gradientStartButton, QtCore.SIGNAL(u'clicked()'),
self.onGradientStartButtonClicked)
QtCore.QObject.connect(self.gradientEndButton, QtCore.SIGNAL(u'clicked()'), self.onGradientEndButtonClicked)
QtCore.QObject.connect(self.imageBrowseButton, QtCore.SIGNAL(u'clicked()'), self.onImageBrowseButtonClicked)
QtCore.QObject.connect(self.mainColorButton, QtCore.SIGNAL(u'clicked()'), self.onMainColorButtonClicked)
QtCore.QObject.connect(self.outlineColorButton, QtCore.SIGNAL(u'clicked()'), self.onOutlineColorButtonClicked)
QtCore.QObject.connect(self.shadowColorButton, QtCore.SIGNAL(u'clicked()'), self.onShadowColorButtonClicked)
QtCore.QObject.connect(self.outlineCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
self.onOutlineCheckCheckBoxStateChanged)
QtCore.QObject.connect(self.shadowCheckBox,
QtCore.SIGNAL(u'stateChanged(int)'),
QtCore.QObject.connect(self.shadowCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
self.onShadowCheckCheckBoxStateChanged)
QtCore.QObject.connect(self.footerColorButton,
QtCore.SIGNAL(u'clicked()'), self.onFooterColorButtonClicked)
QtCore.QObject.connect(self,
QtCore.SIGNAL(u'customButtonClicked(int)'),
self.onCustom1ButtonClicked)
QtCore.QObject.connect(self.mainPositionCheckBox,
QtCore.SIGNAL(u'stateChanged(int)'),
QtCore.QObject.connect(self.footerColorButton,QtCore.SIGNAL(u'clicked()'), self.onFooterColorButtonClicked)
QtCore.QObject.connect(self, QtCore.SIGNAL(u'customButtonClicked(int)'), self.onCustom1ButtonClicked)
QtCore.QObject.connect(self.mainPositionCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
self.onMainPositionCheckBoxStateChanged)
QtCore.QObject.connect(self.footerPositionCheckBox,
QtCore.SIGNAL(u'stateChanged(int)'),
QtCore.QObject.connect(self.footerPositionCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
self.onFooterPositionCheckBoxStateChanged)
QtCore.QObject.connect(self,
QtCore.SIGNAL(u'currentIdChanged(int)'), self.onCurrentIdChanged)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'theme_line_count'), self.updateLinesText)
QtCore.QObject.connect(self.mainSizeSpinBox,
QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines)
QtCore.QObject.connect(self.lineSpacingSpinBox,
QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines)
QtCore.QObject.connect(self.outlineSizeSpinBox,
QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines)
QtCore.QObject.connect(self.shadowSizeSpinBox,
QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines)
QtCore.QObject.connect(self.mainFontComboBox,
QtCore.SIGNAL(u'activated(int)'), self.calculateLines)
QtCore.QObject.connect(self.footerFontComboBox,
QtCore.SIGNAL(u'activated(int)'), self.updateTheme)
QtCore.QObject.connect(self.footerSizeSpinBox,
QtCore.SIGNAL(u'valueChanged(int)'), self.updateTheme)
QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), self.onCurrentIdChanged)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_line_count'), self.updateLinesText)
QtCore.QObject.connect(self.mainSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines)
QtCore.QObject.connect(self.lineSpacingSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines)
QtCore.QObject.connect(self.outlineSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines)
QtCore.QObject.connect(self.mainFontComboBox, QtCore.SIGNAL(u'activated(int)'), self.calculateLines)
QtCore.QObject.connect(self.footerFontComboBox, QtCore.SIGNAL(u'activated(int)'), self.updateTheme)
QtCore.QObject.connect(self.footerSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.updateTheme)
def setDefaults(self):
"""
@ -136,61 +110,35 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
"""
Map field names to screen names,
"""
self.backgroundPage.registerField(
u'background_type', self.backgroundComboBox)
self.backgroundPage.registerField(u'background_type', self.backgroundComboBox)
self.backgroundPage.registerField(u'color', self.colorButton)
self.backgroundPage.registerField(
u'grandient_start', self.gradientStartButton)
self.backgroundPage.registerField(
u'grandient_end', self.gradientEndButton)
self.backgroundPage.registerField(
u'background_image', self.imageFileEdit)
self.backgroundPage.registerField(u'grandient_start', self.gradientStartButton)
self.backgroundPage.registerField(u'grandient_end', self.gradientEndButton)
self.backgroundPage.registerField(u'background_image', self.imageFileEdit)
self.backgroundPage.registerField(u'gradient', self.gradientComboBox)
self.mainAreaPage.registerField(
u'mainColorButton', self.mainColorButton)
self.mainAreaPage.registerField(
u'mainSizeSpinBox', self.mainSizeSpinBox)
self.mainAreaPage.registerField(
u'lineSpacingSpinBox', self.lineSpacingSpinBox)
self.mainAreaPage.registerField(
u'outlineCheckBox', self.outlineCheckBox)
self.mainAreaPage.registerField(
u'outlineColorButton', self.outlineColorButton)
self.mainAreaPage.registerField(
u'outlineSizeSpinBox', self.outlineSizeSpinBox)
self.mainAreaPage.registerField(
u'shadowCheckBox', self.shadowCheckBox)
self.mainAreaPage.registerField(
u'mainBoldCheckBox', self.mainBoldCheckBox)
self.mainAreaPage.registerField(
u'mainItalicsCheckBox', self.mainItalicsCheckBox)
self.mainAreaPage.registerField(
u'shadowColorButton', self.shadowColorButton)
self.mainAreaPage.registerField(
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'mainPositionWidth', self.mainWidthSpinBox)
self.areaPositionPage.registerField(
u'mainPositionHeight', self.mainHeightSpinBox)
self.areaPositionPage.registerField(
u'footerPositionX', self.footerXSpinBox)
self.areaPositionPage.registerField(
u'footerPositionY', self.footerYSpinBox)
self.areaPositionPage.registerField(
u'footerPositionWidth', self.footerWidthSpinBox)
self.areaPositionPage.registerField(
u'footerPositionHeight', self.footerHeightSpinBox)
self.backgroundPage.registerField(
u'horizontal', self.horizontalComboBox)
self.mainAreaPage.registerField(u'mainColorButton', self.mainColorButton)
self.mainAreaPage.registerField(u'mainSizeSpinBox', self.mainSizeSpinBox)
self.mainAreaPage.registerField(u'lineSpacingSpinBox', self.lineSpacingSpinBox)
self.mainAreaPage.registerField(u'outlineCheckBox', self.outlineCheckBox)
self.mainAreaPage.registerField(u'outlineColorButton', self.outlineColorButton)
self.mainAreaPage.registerField(u'outlineSizeSpinBox', self.outlineSizeSpinBox)
self.mainAreaPage.registerField(u'shadowCheckBox', self.shadowCheckBox)
self.mainAreaPage.registerField(u'mainBoldCheckBox', self.mainBoldCheckBox)
self.mainAreaPage.registerField(u'mainItalicsCheckBox', self.mainItalicsCheckBox)
self.mainAreaPage.registerField(u'shadowColorButton', self.shadowColorButton)
self.mainAreaPage.registerField(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'mainPositionWidth', self.mainWidthSpinBox)
self.areaPositionPage.registerField(u'mainPositionHeight', self.mainHeightSpinBox)
self.areaPositionPage.registerField(u'footerPositionX', self.footerXSpinBox)
self.areaPositionPage.registerField(u'footerPositionY', self.footerYSpinBox)
self.areaPositionPage.registerField(u'footerPositionWidth', self.footerWidthSpinBox)
self.areaPositionPage.registerField(u'footerPositionHeight', self.footerHeightSpinBox)
self.backgroundPage.registerField(u'horizontal', self.horizontalComboBox)
self.backgroundPage.registerField(u'vertical', self.verticalComboBox)
self.backgroundPage.registerField(
u'slideTransition', self.transitionsCheckBox)
self.backgroundPage.registerField(u'slideTransition', self.transitionsCheckBox)
self.backgroundPage.registerField(u'name', self.themeNameEdit)
def calculateLines(self):
@ -206,8 +154,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
"""
Updates the lines on a page on the wizard
"""
self.mainLineCountLabel.setText(translate('OpenLP.ThemeForm',
'(approximately %d lines per slide)') % int(lines))
self.mainLineCountLabel.setText(
translate('OpenLP.ThemeForm', '(approximately %d lines per slide)') % int(lines))
def resizeEvent(self, event=None):
"""
@ -231,10 +179,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
def validateCurrentPage(self):
background_image = BackgroundType.to_string(BackgroundType.Image)
if self.page(self.currentId()) == self.backgroundPage and \
self.theme.background_type == background_image and \
not self.imageFileEdit.text():
QtGui.QMessageBox.critical(self,
translate('OpenLP.ThemeWizard', 'Background Image Empty'),
self.theme.background_type == background_image and not self.imageFileEdit.text():
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
@ -265,11 +211,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
pixmap.fill(QtCore.Qt.white)
paint = QtGui.QPainter(pixmap)
paint.setPen(QtGui.QPen(QtCore.Qt.blue, 2))
paint.drawRect(self.thememanager.mainwindow.renderer.
get_main_rectangle(self.theme))
paint.drawRect(self.thememanager.mainwindow.renderer.get_main_rectangle(self.theme))
paint.setPen(QtGui.QPen(QtCore.Qt.red, 2))
paint.drawRect(self.thememanager.mainwindow.renderer.
get_footer_rectangle(self.theme))
paint.drawRect(self.thememanager.mainwindow.renderer.get_footer_rectangle(self.theme))
paint.end()
self.themeLayoutForm.exec_(pixmap)
@ -325,8 +269,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
self.themeNameEdit.setVisible(not edit)
self.edit_mode = edit
if edit:
self.setWindowTitle(translate('OpenLP.ThemeWizard',
'Edit Theme - %s') % self.theme.theme_name)
self.setWindowTitle(translate('OpenLP.ThemeWizard', 'Edit Theme - %s') % self.theme.theme_name)
self.next()
else:
self.setWindowTitle(UiStrings().NewTheme)
@ -355,36 +298,25 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
"""
if self.theme.background_type == \
BackgroundType.to_string(BackgroundType.Solid):
self.colorButton.setStyleSheet(u'background-color: %s' %
self.theme.background_color)
self.colorButton.setStyleSheet(u'background-color: %s' % self.theme.background_color)
self.setField(u'background_type', 0)
elif self.theme.background_type == \
BackgroundType.to_string(BackgroundType.Gradient):
self.gradientStartButton.setStyleSheet(u'background-color: %s' %
self.theme.background_start_color)
self.gradientEndButton.setStyleSheet(u'background-color: %s' %
self.theme.background_end_color)
elif self.theme.background_type == BackgroundType.to_string(BackgroundType.Gradient):
self.gradientStartButton.setStyleSheet(u'background-color: %s' % self.theme.background_start_color)
self.gradientEndButton.setStyleSheet(u'background-color: %s' % self.theme.background_end_color)
self.setField(u'background_type', 1)
elif self.theme.background_type == \
BackgroundType.to_string(BackgroundType.Image):
self.imageColorButton.setStyleSheet(u'background-color: %s' %
self.theme.background_border_color)
elif self.theme.background_type == BackgroundType.to_string(BackgroundType.Image):
self.imageColorButton.setStyleSheet(u'background-color: %s' % self.theme.background_border_color)
self.imageFileEdit.setText(self.theme.background_filename)
self.setField(u'background_type', 2)
elif self.theme.background_type == \
BackgroundType.to_string(BackgroundType.Transparent):
elif self.theme.background_type == BackgroundType.to_string(BackgroundType.Transparent):
self.setField(u'background_type', 3)
if self.theme.background_direction == \
BackgroundGradientType.to_string(BackgroundGradientType.Horizontal):
if self.theme.background_direction == BackgroundGradientType.to_string(BackgroundGradientType.Horizontal):
self.setField(u'gradient', 0)
elif self.theme.background_direction == \
BackgroundGradientType.to_string(BackgroundGradientType.Vertical):
elif self.theme.background_direction == BackgroundGradientType.to_string(BackgroundGradientType.Vertical):
self.setField(u'gradient', 1)
elif self.theme.background_direction == \
BackgroundGradientType.to_string(BackgroundGradientType.Circular):
elif self.theme.background_direction == BackgroundGradientType.to_string(BackgroundGradientType.Circular):
self.setField(u'gradient', 2)
elif self.theme.background_direction == \
BackgroundGradientType.to_string(BackgroundGradientType.LeftTop):
elif self.theme.background_direction == BackgroundGradientType.to_string(BackgroundGradientType.LeftTop):
self.setField(u'gradient', 3)
else:
self.setField(u'gradient', 4)
@ -393,20 +325,15 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
"""
Handle the display and state of the Main Area page.
"""
self.mainFontComboBox.setCurrentFont(
QtGui.QFont(self.theme.font_main_name))
self.mainColorButton.setStyleSheet(u'background-color: %s' %
self.theme.font_main_color)
self.mainFontComboBox.setCurrentFont(QtGui.QFont(self.theme.font_main_name))
self.mainColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_color)
self.setField(u'mainSizeSpinBox', self.theme.font_main_size)
self.setField(u'lineSpacingSpinBox',
self.theme.font_main_line_adjustment)
self.setField(u'lineSpacingSpinBox', self.theme.font_main_line_adjustment)
self.setField(u'outlineCheckBox', self.theme.font_main_outline)
self.outlineColorButton.setStyleSheet(u'background-color: %s' %
self.theme.font_main_outline_color)
self.outlineColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_outline_color)
self.setField(u'outlineSizeSpinBox', self.theme.font_main_outline_size)
self.setField(u'shadowCheckBox', self.theme.font_main_shadow)
self.shadowColorButton.setStyleSheet(u'background-color: %s' %
self.theme.font_main_shadow_color)
self.shadowColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_shadow_color)
self.setField(u'shadowSizeSpinBox', self.theme.font_main_shadow_size)
self.setField(u'mainBoldCheckBox', self.theme.font_main_bold)
self.setField(u'mainItalicsCheckBox', self.theme.font_main_italics)
@ -415,10 +342,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
"""
Handle the display and state of the Footer Area page.
"""
self.footerFontComboBox.setCurrentFont(
QtGui.QFont(self.theme.font_footer_name))
self.footerColorButton.setStyleSheet(u'background-color: %s' %
self.theme.font_footer_color)
self.footerFontComboBox.setCurrentFont(QtGui.QFont(self.theme.font_footer_name))
self.footerColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_footer_color)
self.setField(u'footerSizeSpinBox', self.theme.font_footer_size)
def setPositionPageValues(self):
@ -432,8 +357,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
self.setField(u'mainPositionHeight', self.theme.font_main_height)
self.setField(u'mainPositionWidth', self.theme.font_main_width)
# Footer
self.footerPositionCheckBox.setChecked(
not self.theme.font_footer_override)
self.footerPositionCheckBox.setChecked(not self.theme.font_footer_override)
self.setField(u'footerPositionX', self.theme.font_footer_x)
self.setField(u'footerPositionY', self.theme.font_footer_y)
self.setField(u'footerPositionHeight', self.theme.font_footer_height)
@ -460,14 +384,12 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
# do not allow updates when screen is building for the first time.
if self.updateThemeAllowed:
self.theme.background_type = BackgroundType.to_string(index)
if self.theme.background_type != \
BackgroundType.to_string(BackgroundType.Image) and \
self.temp_background_filename == u'':
if self.theme.background_type != BackgroundType.to_string(BackgroundType.Image) and \
self.temp_background_filename == u'':
self.temp_background_filename = self.theme.background_filename
self.theme.background_filename = u''
if self.theme.background_type == \
BackgroundType.to_string(BackgroundType.Image) and \
self.temp_background_filename != u'':
if self.theme.background_type == BackgroundType.to_string(BackgroundType.Image) and \
self.temp_background_filename != u'':
self.theme.background_filename = self.temp_background_filename
self.temp_background_filename = u''
self.setBackgroundPageValues()
@ -477,40 +399,35 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
Background gradient Combo box has changed.
"""
if self.updateThemeAllowed:
self.theme.background_direction = \
BackgroundGradientType.to_string(index)
self.theme.background_direction = BackgroundGradientType.to_string(index)
self.setBackgroundPageValues()
def onColorButtonClicked(self):
"""
Background / Gradient 1 Color button pushed.
"""
self.theme.background_color = \
self._colorButton(self.theme.background_color)
self.theme.background_color = self._colorButton(self.theme.background_color)
self.setBackgroundPageValues()
def onImageColorButtonClicked(self):
"""
Background / Gradient 1 Color button pushed.
"""
self.theme.background_border_color = \
self._colorButton(self.theme.background_border_color)
self.theme.background_border_color = self._colorButton(self.theme.background_border_color)
self.setBackgroundPageValues()
def onGradientStartButtonClicked(self):
"""
Gradient 2 Color button pushed.
"""
self.theme.background_start_color = \
self._colorButton(self.theme.background_start_color)
self.theme.background_start_color = self._colorButton(self.theme.background_start_color)
self.setBackgroundPageValues()
def onGradientEndButtonClicked(self):
"""
Gradient 2 Color button pushed.
"""
self.theme.background_end_color = \
self._colorButton(self.theme.background_end_color)
self.theme.background_end_color = self._colorButton(self.theme.background_end_color)
self.setBackgroundPageValues()
def onImageBrowseButtonClicked(self):
@ -518,33 +435,27 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
Background Image button pushed.
"""
images_filter = get_images_filter()
images_filter = u'%s;;%s (*.*) (*)' % (
images_filter, UiStrings().AllFiles)
images_filter = u'%s;;%s (*.*) (*)' % (images_filter, UiStrings().AllFiles)
filename = QtGui.QFileDialog.getOpenFileName(self,
translate('OpenLP.ThemeWizard', 'Select Image'), u'',
images_filter)
translate('OpenLP.ThemeWizard', 'Select Image'), u'', images_filter)
if filename:
self.theme.background_filename = unicode(filename)
self.setBackgroundPageValues()
def onMainColorButtonClicked(self):
self.theme.font_main_color = \
self._colorButton(self.theme.font_main_color)
self.theme.font_main_color = self._colorButton(self.theme.font_main_color)
self.setMainAreaPageValues()
def onOutlineColorButtonClicked(self):
self.theme.font_main_outline_color = \
self._colorButton(self.theme.font_main_outline_color)
self.theme.font_main_outline_color = self._colorButton(self.theme.font_main_outline_color)
self.setMainAreaPageValues()
def onShadowColorButtonClicked(self):
self.theme.font_main_shadow_color = \
self._colorButton(self.theme.font_main_shadow_color)
self.theme.font_main_shadow_color = self._colorButton(self.theme.font_main_shadow_color)
self.setMainAreaPageValues()
def onFooterColorButtonClicked(self):
self.theme.font_footer_color = \
self._colorButton(self.theme.font_footer_color)
self.theme.font_footer_color = self._colorButton(self.theme.font_footer_color)
self.setFooterAreaPageValues()
def updateTheme(self):
@ -564,8 +475,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
self.theme.font_main_bold = self.field(u'mainBoldCheckBox')
self.theme.font_main_italics = self.field(u'mainItalicsCheckBox')
# footer page
self.theme.font_footer_name = \
self.footerFontComboBox.currentFont().family()
self.theme.font_footer_name = self.footerFontComboBox.currentFont().family()
self.theme.font_footer_size = self.field(u'footerSizeSpinBox')
# position page
self.theme.font_main_x = self.field(u'mainPositionX')
@ -577,8 +487,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
self.theme.font_footer_height = self.field(u'footerPositionHeight')
self.theme.font_footer_width = self.field(u'footerPositionWidth')
# position page
self.theme.display_horizontal_align = \
self.horizontalComboBox.currentIndex()
self.theme.display_horizontal_align = self.horizontalComboBox.currentIndex()
self.theme.display_vertical_align = self.verticalComboBox.currentIndex()
self.theme.display_slide_transition = self.field(u'slideTransition')
@ -591,25 +500,20 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
if not self.theme.theme_name:
critical_error_message_box(
translate('OpenLP.ThemeWizard', 'Theme Name Missing'),
translate('OpenLP.ThemeWizard',
'There is no name for this theme. Please enter one.'))
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.ThemeWizard', 'Theme Name Invalid'),
translate('OpenLP.ThemeWizard',
'Invalid theme name. Please enter one.'))
translate('OpenLP.ThemeWizard', 'Invalid theme name. Please enter one.'))
return
saveFrom = None
saveTo = None
if self.theme.background_type == \
BackgroundType.to_string(BackgroundType.Image):
filename = \
os.path.split(unicode(self.theme.background_filename))[1]
if self.theme.background_type == BackgroundType.to_string(BackgroundType.Image):
filename = os.path.split(unicode(self.theme.background_filename))[1]
saveTo = os.path.join(self.path, self.theme.theme_name, filename)
saveFrom = self.theme.background_filename
if not self.edit_mode and \
not self.thememanager.checkIfThemeExists(self.theme.theme_name):
if not self.edit_mode and not self.thememanager.checkIfThemeExists(self.theme.theme_name):
return
self.thememanager.saveTheme(self.theme, saveFrom, saveTo)
return QtGui.QDialog.accept(self)

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -58,16 +58,12 @@ class Ui_ThemeLayoutDialog(object):
self.footerColourLabel = QtGui.QLabel(self.previewArea)
self.footerColourLabel.setObjectName(u'footerColourLabel')
self.previewLayout.addWidget(self.footerColourLabel)
self.buttonBox = create_button_box(themeLayoutDialog, u'buttonBox',
[u'ok'])
self.buttonBox = create_button_box(themeLayoutDialog, u'buttonBox', [u'ok'])
self.previewLayout.addWidget(self.buttonBox)
self.retranslateUi(themeLayoutDialog)
def retranslateUi(self, themeLayoutDialog):
themeLayoutDialog.setWindowTitle(
translate('OpenLP.StartTimeForm', 'Theme Layout'))
self.mainColourLabel.setText(translate('OpenLP.StartTimeForm',
'The blue box shows the main area.'))
self.footerColourLabel.setText(translate('OpenLP.StartTimeForm',
'The red box shows the footer.'))
themeLayoutDialog.setWindowTitle(translate('OpenLP.StartTimeForm', 'Theme Layout'))
self.mainColourLabel.setText(translate('OpenLP.StartTimeForm', 'The blue box shows the main area.'))
self.footerColourLabel.setText(translate('OpenLP.StartTimeForm', 'The red box shows the footer.'))

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -36,17 +36,13 @@ import re
from xml.etree.ElementTree import ElementTree, XML
from PyQt4 import QtCore, QtGui
from openlp.core.lib import OpenLPToolbar, get_text_file_string, build_icon, \
Receiver, SettingsManager, translate, check_item_selected, \
check_directory_exists, create_thumb, validate_thumb, ImageSource, Settings
from openlp.core.lib.theme import ThemeXML, BackgroundType, VerticalType, \
BackgroundGradientType
from openlp.core.lib.ui import UiStrings, critical_error_message_box, \
create_widget_action
from openlp.core.lib import OpenLPToolbar, get_text_file_string, build_icon, Receiver, SettingsManager, translate, \
check_item_selected, check_directory_exists, create_thumb, validate_thumb, ImageSource, Settings
from openlp.core.lib.theme import ThemeXML, BackgroundType, VerticalType, BackgroundGradientType
from openlp.core.lib.ui import UiStrings, critical_error_message_box, create_widget_action
from openlp.core.theme import Theme
from openlp.core.ui import FileRenameForm, ThemeForm
from openlp.core.utils import AppLocation, delete_file, locale_compare, \
get_filesystem_encoding
from openlp.core.utils import AppLocation, delete_file, locale_compare, get_filesystem_encoding
log = logging.getLogger(__name__)
@ -102,8 +98,7 @@ class ThemeManager(QtGui.QWidget):
self.themeListWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.themeListWidget.setObjectName(u'themeListWidget')
self.layout.addWidget(self.themeListWidget)
QtCore.QObject.connect(self.themeListWidget,
QtCore.SIGNAL('customContextMenuRequested(QPoint)'),
QtCore.QObject.connect(self.themeListWidget, QtCore.SIGNAL('customContextMenuRequested(QPoint)'),
self.contextMenu)
# build the context menu
self.menu = QtGui.QMenu()
@ -129,15 +124,12 @@ class ThemeManager(QtGui.QWidget):
icon=u':/general/general_export.png', triggers=self.onExportTheme)
# Signals
QtCore.QObject.connect(self.themeListWidget,
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'),
self.changeGlobalFromScreen)
QtCore.QObject.connect(self.themeListWidget, QtCore.SIGNAL(
u'currentItemChanged(QListWidgetItem *, QListWidgetItem *)'),
self.checkListState)
QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.changeGlobalFromScreen)
QtCore.QObject.connect(self.themeListWidget,
QtCore.SIGNAL(u'currentItemChanged(QListWidgetItem *, QListWidgetItem *)'), self.checkListState)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'theme_update_global'), self.changeGlobalFromTab)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'config_updated'), self.configUpdated)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.configUpdated)
# Variables
self.themeList = []
self.path = AppLocation.get_section_data_path(self.settingsSection)
@ -166,8 +158,7 @@ class ThemeManager(QtGui.QWidget):
"""
Triggered when Config dialog is updated.
"""
self.global_theme = Settings().value(
self.settingsSection + u'/global theme', u'')
self.global_theme = Settings().value(self.settingsSection + u'/global theme', u'')
def checkListState(self, item):
"""
@ -214,8 +205,7 @@ class ThemeManager(QtGui.QWidget):
self.themeListWidget.item(count).setText(new_name)
# Set the new name
if theme_name == new_name:
name = translate('OpenLP.ThemeManager',
'%s (default)') % new_name
name = translate('OpenLP.ThemeManager', '%s (default)') % new_name
self.themeListWidget.item(count).setText(name)
self.deleteToolbarAction.setVisible(
item not in self.themeListWidget.selectedItems())
@ -232,16 +222,13 @@ class ThemeManager(QtGui.QWidget):
old_name = item.text()
# reset the old name
if old_name != item.data(QtCore.Qt.UserRole):
self.themeListWidget.item(count).setText(
item.data(QtCore.Qt.UserRole))
self.themeListWidget.item(count).setText(item.data(QtCore.Qt.UserRole))
# Set the new name
if count == selected_row:
self.global_theme = self.themeListWidget.item(count).text()
name = translate('OpenLP.ThemeManager',
'%s (default)') % self.global_theme
name = translate('OpenLP.ThemeManager', '%s (default)') % self.global_theme
self.themeListWidget.item(count).setText(name)
Settings().setValue(
self.settingsSection + u'/global theme', self.global_theme)
Settings().setValue(self.settingsSection + u'/global theme', self.global_theme)
Receiver.send_message(u'theme_update_global', self.global_theme)
self._pushThemes()
@ -260,11 +247,9 @@ class ThemeManager(QtGui.QWidget):
"""
Renames an existing theme to a new name
"""
if self._validate_theme_action(translate('OpenLP.ThemeManager',
'You must select a theme to rename.'),
translate('OpenLP.ThemeManager', 'Rename Confirmation'),
translate('OpenLP.ThemeManager', 'Rename %s theme?'),
False, False):
if self._validate_theme_action(translate('OpenLP.ThemeManager', 'You must select a theme to rename.'),
translate('OpenLP.ThemeManager', 'Rename Confirmation'),
translate('OpenLP.ThemeManager', 'Rename %s theme?'), False, False):
item = self.themeListWidget.currentItem()
old_theme_name = item.data(QtCore.Qt.UserRole)
self.fileRenameForm.fileNameEdit.setText(old_theme_name)
@ -289,8 +274,7 @@ class ThemeManager(QtGui.QWidget):
"""
item = self.themeListWidget.currentItem()
old_theme_name = item.data(QtCore.Qt.UserRole)
self.fileRenameForm.fileNameEdit.setText(
translate('OpenLP.ThemeManager',
self.fileRenameForm.fileNameEdit.setText(translate('OpenLP.ThemeManager',
'Copy of %s', 'Copy of <theme name>') % old_theme_name)
if self.fileRenameForm.exec_(True):
new_theme_name = self.fileRenameForm.fileNameEdit.text()
@ -319,8 +303,8 @@ class ThemeManager(QtGui.QWidget):
Loads the settings for the theme that is to be edited and launches the
theme editing form so the user can make their changes.
"""
if check_item_selected(self.themeListWidget, translate(
'OpenLP.ThemeManager', 'You must select a theme to edit.')):
if check_item_selected(self.themeListWidget,
translate('OpenLP.ThemeManager', 'You must select a theme to edit.')):
item = self.themeListWidget.currentItem()
theme = self.getThemeData(item.data(QtCore.Qt.UserRole))
if theme.background_type == u'image':
@ -335,10 +319,9 @@ class ThemeManager(QtGui.QWidget):
"""
Delete a theme
"""
if self._validate_theme_action(translate('OpenLP.ThemeManager',
'You must select a theme to delete.'),
translate('OpenLP.ThemeManager', 'Delete Confirmation'),
translate('OpenLP.ThemeManager', 'Delete %s theme?')):
if self._validate_theme_action(translate('OpenLP.ThemeManager', 'You must select a theme to delete.'),
translate('OpenLP.ThemeManager', 'Delete Confirmation'),
translate('OpenLP.ThemeManager', 'Delete %s theme?')):
item = self.themeListWidget.currentItem()
theme = item.text()
row = self.themeListWidget.row(item)
@ -372,8 +355,7 @@ class ThemeManager(QtGui.QWidget):
"""
item = self.themeListWidget.currentItem()
if item is None:
critical_error_message_box(message=translate('OpenLP.ThemeManager',
'You have not selected a theme.'))
critical_error_message_box(message=translate('OpenLP.ThemeManager', 'You have not selected a theme.'))
return
theme = item.data(QtCore.Qt.UserRole)
path = QtGui.QFileDialog.getExistingDirectory(self,
@ -395,14 +377,12 @@ class ThemeManager(QtGui.QWidget):
os.path.join(theme, name).encode(u'utf-8'))
QtGui.QMessageBox.information(self,
translate('OpenLP.ThemeManager', 'Theme Exported'),
translate('OpenLP.ThemeManager',
'Your theme has been successfully exported.'))
translate('OpenLP.ThemeManager', 'Your theme has been successfully exported.'))
except (IOError, OSError):
log.exception(u'Export Theme Failed')
critical_error_message_box(
translate('OpenLP.ThemeManager', 'Theme Export Failed'),
translate('OpenLP.ThemeManager',
'Your theme could not be exported due to an error.'))
translate('OpenLP.ThemeManager', 'Your theme could not be exported due to an error.'))
finally:
if zip:
zip.close()
@ -417,8 +397,7 @@ class ThemeManager(QtGui.QWidget):
files = QtGui.QFileDialog.getOpenFileNames(self,
translate('OpenLP.ThemeManager', 'Select Theme Import File'),
SettingsManager.get_last_dir(self.settingsSection),
translate('OpenLP.ThemeManager',
'OpenLP Themes (*.theme *.otz)'))
translate('OpenLP.ThemeManager', 'OpenLP Themes (*.theme *.otz)'))
log.info(u'New Themes %s', unicode(files))
if not files:
return
@ -447,8 +426,7 @@ class ThemeManager(QtGui.QWidget):
theme = ThemeXML()
theme.theme_name = UiStrings().Default
self._writeTheme(theme, None, None)
Settings().setValue(
self.settingsSection + u'/global theme', theme.theme_name)
Settings().setValue(self.settingsSection + u'/global theme', theme.theme_name)
self.configUpdated()
files = SettingsManager.get_files(self.settingsSection, u'.png')
# Sort the themes by its name considering language specific
@ -461,8 +439,7 @@ class ThemeManager(QtGui.QWidget):
if os.path.exists(theme):
text_name = os.path.splitext(name)[0]
if text_name == self.global_theme:
name = translate(
'OpenLP.ThemeManager', '%s (default)') % text_name
name = translate('OpenLP.ThemeManager', '%s (default)') % text_name
else:
name = text_name
thumb = os.path.join(self.thumbPath, u'%s.png' % text_name)
@ -510,10 +487,8 @@ class ThemeManager(QtGui.QWidget):
ret = QtGui.QMessageBox.question(self,
translate('OpenLP.ThemeManager', 'Theme Already Exists'),
translate('OpenLP.ThemeManager',
'Theme %s already exists. Do you want to replace it?'
).replace('%s', theme_name),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
'Theme %s already exists. Do you want to replace it?').replace('%s', theme_name),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
return ret == QtGui.QMessageBox.Yes
@ -539,8 +514,7 @@ class ThemeManager(QtGui.QWidget):
xml_tree = ElementTree(element=XML(zip.read(xml_file[0]))).getroot()
v1_background = xml_tree.find(u'BackgroundType')
if v1_background is not None:
theme_name, file_xml, out_file, abort_import = \
self.unzipVersion122(
theme_name, file_xml, out_file, abort_import = self.unzipVersion122(
dir, zip, xml_file[0], xml_tree, v1_background, out_file)
else:
theme_name = xml_tree.find(u'name').text.strip()
@ -555,8 +529,8 @@ class ThemeManager(QtGui.QWidget):
try:
uname = unicode(name, u'utf-8')
except UnicodeDecodeError:
log.exception(u'Theme file contains non utf-8 filename'
u' "%s"' % name.decode(u'utf-8', u'replace'))
log.exception(u'Theme file contains non utf-8 filename "%s"' %
name.decode(u'utf-8', u'replace'))
raise Exception(u'validation')
uname = uname.replace(u'/', os.path.sep)
split_name = uname.split(os.path.sep)
@ -579,8 +553,7 @@ class ThemeManager(QtGui.QWidget):
except Exception as info:
if unicode(info) == u'validation':
critical_error_message_box(translate('OpenLP.ThemeManager',
'Validation Error'), translate('OpenLP.ThemeManager',
'File is not a valid theme.'))
'Validation Error'), translate('OpenLP.ThemeManager', 'File is not a valid theme.'))
else:
raise
finally:
@ -599,10 +572,8 @@ class ThemeManager(QtGui.QWidget):
elif zip is not None:
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' %
file_name)
translate('OpenLP.ThemeManager', 'File is not a valid theme.'))
log.exception(u'Theme file does not contain XML data %s' % file_name)
def unzipVersion122(self, dir, zip, xml_file, xml_tree, background,
out_file):
@ -634,8 +605,7 @@ class ThemeManager(QtGui.QWidget):
out_file.write(zip.read(image_file[0]))
out_file.close()
else:
log.exception(u'Theme file does not contain image file "%s"' %
image_name.decode(u'utf-8', u'replace'))
log.exception(u'Theme file does not contain image file "%s"' % image_name.decode(u'utf-8', u'replace'))
raise Exception(u'validation')
return theme_name, file_xml, out_file, False
@ -650,8 +620,7 @@ class ThemeManager(QtGui.QWidget):
if os.path.exists(theme_dir):
critical_error_message_box(
translate('OpenLP.ThemeManager', 'Validation Error'),
translate('OpenLP.ThemeManager',
'A theme with this name already exists.'))
translate('OpenLP.ThemeManager', 'A theme with this name already exists.'))
return False
return True
@ -661,10 +630,8 @@ class ThemeManager(QtGui.QWidget):
and to trigger the reload of the theme list
"""
self._writeTheme(theme, image_from, image_to)
if theme.background_type == \
BackgroundType.to_string(BackgroundType.Image):
self.mainwindow.imageManager.updateImageBorder(
theme.background_filename,
if theme.background_type == BackgroundType.to_string(BackgroundType.Image):
self.mainwindow.imageManager.updateImageBorder(theme.background_filename,
ImageSource.Theme, QtGui.QColor(theme.background_border_color))
self.mainwindow.imageManager.processUpdates()
@ -693,9 +660,7 @@ class ThemeManager(QtGui.QWidget):
if image_from and image_from != image_to:
try:
encoding = get_filesystem_encoding()
shutil.copyfile(
unicode(image_from).encode(encoding),
unicode(image_to).encode(encoding))
shutil.copyfile(unicode(image_from).encode(encoding), unicode(image_to).encode(encoding))
except IOError:
log.exception(u'Failed to save theme image')
self.generateAndSaveImage(self.path, name, theme)
@ -718,8 +683,7 @@ class ThemeManager(QtGui.QWidget):
self.mainwindow.displayProgressBar(len(self.themeList))
for theme in self.themeList:
self.mainwindow.incrementProgressBar()
self.generateAndSaveImage(
self.path, theme, self.getThemeData(theme))
self.generateAndSaveImage(self.path, theme, self.getThemeData(theme))
self.mainwindow.finishedProgressBar()
self.loadThemes()
@ -734,8 +698,7 @@ class ThemeManager(QtGui.QWidget):
Flag to tell message lines per page need to be generated.
"""
log.debug(u'generateImage \n%s ', theme_data)
return self.mainwindow.renderer.generate_preview(
theme_data, forcePage)
return self.mainwindow.renderer.generate_preview(theme_data, forcePage)
def getPreviewImage(self, theme):
"""
@ -773,28 +736,23 @@ class ThemeManager(QtGui.QWidget):
theme = item.text()
# confirm deletion
if confirm:
answer = QtGui.QMessageBox.question(self, confirm_title,
confirm_text % theme, QtGui.QMessageBox.StandardButtons(
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
answer = QtGui.QMessageBox.question(self, confirm_title, confirm_text % theme,
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
if answer == QtGui.QMessageBox.No:
return False
# should be the same unless default
if theme != item.data(QtCore.Qt.UserRole):
critical_error_message_box(
message=translate('OpenLP.ThemeManager',
'You are unable to delete the default theme.'))
message=translate('OpenLP.ThemeManager', 'You are unable to delete the default theme.'))
return False
# check for use in the system else where.
if testPlugin:
for plugin in self.mainwindow.pluginManager.plugins:
if plugin.usesTheme(theme):
critical_error_message_box(
translate('OpenLP.ThemeManager',
'Validation Error'),
translate('OpenLP.ThemeManager',
'Theme %s is used in the %s plugin.') % \
(theme, plugin.name))
critical_error_message_box(translate('OpenLP.ThemeManager', 'Validation Error'),
translate('OpenLP.ThemeManager', 'Theme %s is used in the %s plugin.') %
(theme, plugin.name))
return False
return True
return False
@ -813,31 +771,20 @@ class ThemeManager(QtGui.QWidget):
new_theme = ThemeXML()
new_theme.theme_name = self.badV1NameChars.sub(u'', theme.Name)
if theme.BackgroundType == 0:
new_theme.background_type = \
BackgroundType.to_string(BackgroundType.Solid)
new_theme.background_color = \
unicode(theme.BackgroundParameter1.name())
new_theme.background_type = BackgroundType.to_string(BackgroundType.Solid)
new_theme.background_color = unicode(theme.BackgroundParameter1.name())
elif theme.BackgroundType == 1:
new_theme.background_type = \
BackgroundType.to_string(BackgroundType.Gradient)
new_theme.background_direction = \
BackgroundGradientType. \
to_string(BackgroundGradientType.Horizontal)
new_theme.background_type = BackgroundType.to_string(BackgroundType.Gradient)
new_theme.background_direction = BackgroundGradientType.to_string(BackgroundGradientType.Horizontal)
if theme.BackgroundParameter3.name() == 1:
new_theme.background_direction = \
BackgroundGradientType. \
to_string(BackgroundGradientType.Horizontal)
new_theme.background_start_color = \
unicode(theme.BackgroundParameter1.name())
new_theme.background_end_color = \
unicode(theme.BackgroundParameter2.name())
new_theme.background_direction = BackgroundGradientType.to_string(BackgroundGradientType.Horizontal)
new_theme.background_start_color = unicode(theme.BackgroundParameter1.name())
new_theme.background_end_color = unicode(theme.BackgroundParameter2.name())
elif theme.BackgroundType == 2:
new_theme.background_type = \
BackgroundType.to_string(BackgroundType.Image)
new_theme.background_type = BackgroundType.to_string(BackgroundType.Image)
new_theme.background_filename = unicode(theme.BackgroundParameter1)
elif theme.BackgroundType == 3:
new_theme.background_type = \
BackgroundType.to_string(BackgroundType.Transparent)
new_theme.background_type = BackgroundType.to_string(BackgroundType.Transparent)
new_theme.font_main_name = theme.FontName
new_theme.font_main_color = unicode(theme.FontColor.name())
new_theme.font_main_size = theme.FontProportion * 3
@ -849,8 +796,7 @@ class ThemeManager(QtGui.QWidget):
new_theme.font_main_shadow_color = unicode(theme.ShadowColor.name())
if theme.Outline == 1:
new_theme.font_main_outline = True
new_theme.font_main_outline_color = \
unicode(theme.OutlineColor.name())
new_theme.font_main_outline_color = unicode(theme.OutlineColor.name())
vAlignCorrection = VerticalType.Top
if theme.VerticalAlign == 2:
vAlignCorrection = VerticalType.Middle

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -51,10 +51,8 @@ class ThemesTab(SettingsTab):
self.GlobalGroupBoxLayout = QtGui.QVBoxLayout(self.GlobalGroupBox)
self.GlobalGroupBoxLayout.setObjectName(u'GlobalGroupBoxLayout')
self.DefaultComboBox = QtGui.QComboBox(self.GlobalGroupBox)
self.DefaultComboBox.setSizeAdjustPolicy(
QtGui.QComboBox.AdjustToMinimumContentsLength)
self.DefaultComboBox.setSizePolicy(
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.DefaultComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToMinimumContentsLength)
self.DefaultComboBox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.DefaultComboBox.setObjectName(u'DefaultComboBox')
self.GlobalGroupBoxLayout.addWidget(self.DefaultComboBox)
self.DefaultListView = QtGui.QLabel(self.GlobalGroupBox)
@ -65,10 +63,8 @@ class ThemesTab(SettingsTab):
self.LevelGroupBox = QtGui.QGroupBox(self.rightColumn)
self.LevelGroupBox.setObjectName(u'LevelGroupBox')
self.LevelLayout = QtGui.QFormLayout(self.LevelGroupBox)
self.LevelLayout.setLabelAlignment(
QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.LevelLayout.setFormAlignment(
QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.LevelLayout.setLabelAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.LevelLayout.setFormAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
self.LevelLayout.setObjectName(u'LevelLayout')
self.SongLevelRadioButton = QtGui.QRadioButton(self.LevelGroupBox)
self.SongLevelRadioButton.setObjectName(u'SongLevelRadioButton')
@ -79,58 +75,44 @@ class ThemesTab(SettingsTab):
self.ServiceLevelRadioButton.setObjectName(u'ServiceLevelRadioButton')
self.ServiceLevelLabel = QtGui.QLabel(self.LevelGroupBox)
self.ServiceLevelLabel.setObjectName(u'ServiceLevelLabel')
self.LevelLayout.addRow(self.ServiceLevelRadioButton,
self.ServiceLevelLabel)
self.LevelLayout.addRow(self.ServiceLevelRadioButton, self.ServiceLevelLabel)
self.GlobalLevelRadioButton = QtGui.QRadioButton(self.LevelGroupBox)
self.GlobalLevelRadioButton.setObjectName(u'GlobalLevelRadioButton')
self.GlobalLevelLabel = QtGui.QLabel(self.LevelGroupBox)
self.GlobalLevelLabel.setObjectName(u'GlobalLevelLabel')
self.LevelLayout.addRow(self.GlobalLevelRadioButton,
self.GlobalLevelLabel)
self.LevelLayout.addRow(self.GlobalLevelRadioButton, self.GlobalLevelLabel)
label_top_margin = (self.SongLevelRadioButton.sizeHint().height() -
self.SongLevelLabel.sizeHint().height()) / 2
for label in [self.SongLevelLabel, self.ServiceLevelLabel,
self.GlobalLevelLabel]:
for label in [self.SongLevelLabel, self.ServiceLevelLabel, self.GlobalLevelLabel]:
rect = label.rect()
rect.setTop(rect.top() + label_top_margin)
label.setFrameRect(rect)
label.setWordWrap(True)
self.rightLayout.addWidget(self.LevelGroupBox)
self.rightLayout.addStretch()
QtCore.QObject.connect(self.SongLevelRadioButton,
QtCore.SIGNAL(u'clicked()'), self.onSongLevelButtonClicked)
QtCore.QObject.connect(self.ServiceLevelRadioButton,
QtCore.SIGNAL(u'clicked()'), self.onServiceLevelButtonClicked)
QtCore.QObject.connect(self.GlobalLevelRadioButton,
QtCore.SIGNAL(u'clicked()'), self.onGlobalLevelButtonClicked)
QtCore.QObject.connect(self.DefaultComboBox,
QtCore.SIGNAL(u'activated(int)'), self.onDefaultComboBoxChanged)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList)
QtCore.QObject.connect(self.SongLevelRadioButton, QtCore.SIGNAL(u'clicked()'), self.onSongLevelButtonClicked)
QtCore.QObject.connect(self.ServiceLevelRadioButton, QtCore.SIGNAL(u'clicked()'),
self.onServiceLevelButtonClicked)
QtCore.QObject.connect(self.GlobalLevelRadioButton, QtCore.SIGNAL(u'clicked()'),
self.onGlobalLevelButtonClicked)
QtCore.QObject.connect(self.DefaultComboBox, QtCore.SIGNAL(u'activated(int)'), self.onDefaultComboBoxChanged)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList)
def retranslateUi(self):
self.tabTitleVisible = UiStrings().Themes
self.GlobalGroupBox.setTitle(
translate('OpenLP.ThemesTab', 'Global Theme'))
self.LevelGroupBox.setTitle(
translate('OpenLP.ThemesTab', 'Theme Level'))
self.SongLevelRadioButton.setText(
translate('OpenLP.ThemesTab', 'S&ong Level'))
self.SongLevelLabel.setText(
translate('OpenLP.ThemesTab', 'Use the theme from each song '
self.GlobalGroupBox.setTitle(translate('OpenLP.ThemesTab', 'Global Theme'))
self.LevelGroupBox.setTitle(translate('OpenLP.ThemesTab', 'Theme Level'))
self.SongLevelRadioButton.setText(translate('OpenLP.ThemesTab', 'S&ong Level'))
self.SongLevelLabel.setText(translate('OpenLP.ThemesTab', 'Use the theme from each song '
'in the database. If a song doesn\'t have a theme associated with '
'it, then use the service\'s theme. If the service doesn\'t have '
'a theme, then use the global theme.'))
self.ServiceLevelRadioButton.setText(
translate('OpenLP.ThemesTab', '&Service Level'))
self.ServiceLevelLabel.setText(
translate('OpenLP.ThemesTab', 'Use the theme from the service, '
self.ServiceLevelRadioButton.setText(translate('OpenLP.ThemesTab', '&Service Level'))
self.ServiceLevelLabel.setText(translate('OpenLP.ThemesTab', 'Use the theme from the service, '
'overriding any of the individual songs\' themes. If the '
'service doesn\'t have a theme, then use the global theme.'))
self.GlobalLevelRadioButton.setText(
translate('OpenLP.ThemesTab', '&Global Level'))
self.GlobalLevelLabel.setText(
translate('OpenLP.ThemesTab', 'Use the global theme, overriding '
self.GlobalLevelRadioButton.setText(translate('OpenLP.ThemesTab', '&Global Level'))
self.GlobalLevelLabel.setText(translate('OpenLP.ThemesTab', 'Use the global theme, overriding '
'any themes associated with either the service or the songs.'))
def load(self):
@ -183,8 +165,7 @@ class ThemesTab(SettingsTab):
[u'Bible Theme', u'Song Theme']
"""
# Reload as may have been triggered by the ThemeManager.
self.global_theme = Settings().value(
self.settingsSection + u'/global theme', u'')
self.global_theme = Settings().value(self.settingsSection + u'/global theme', u'')
self.DefaultComboBox.clear()
self.DefaultComboBox.addItems(theme_list)
find_and_set_in_combo_box(self.DefaultComboBox, self.global_theme)
@ -197,10 +178,8 @@ class ThemesTab(SettingsTab):
"""
Utility method to update the global theme preview image.
"""
image = self.mainwindow.themeManagerContents.getPreviewImage(
self.global_theme)
image = self.mainwindow.themeManagerContents.getPreviewImage(self.global_theme)
preview = QtGui.QPixmap(unicode(image))
if not preview.isNull():
preview = preview.scaled(300, 255, QtCore.Qt.KeepAspectRatio,
QtCore.Qt.SmoothTransformation)
preview = preview.scaled(300, 255, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
self.DefaultListView.setPixmap(preview)

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -30,10 +30,8 @@
from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate, build_icon
from openlp.core.lib.theme import HorizontalType, BackgroundType, \
BackgroundGradientType
from openlp.core.lib.ui import UiStrings, add_welcome_page, \
create_valign_selection_widgets
from openlp.core.lib.theme import HorizontalType, BackgroundType, BackgroundGradientType
from openlp.core.lib.ui import UiStrings, add_welcome_page, create_valign_selection_widgets
class Ui_ThemeWizard(object):
def setupUi(self, themeWizard):
@ -43,8 +41,7 @@ class Ui_ThemeWizard(object):
themeWizard.setOptions(QtGui.QWizard.IndependentPages |
QtGui.QWizard.NoBackButtonOnStartPage |
QtGui.QWizard.HaveCustomButton1)
self.spacer = QtGui.QSpacerItem(10, 0,
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)
self.spacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum)
# Welcome Page
add_welcome_page(themeWizard, u':/wizards/wizard_createtheme.bmp')
# Background Page
@ -59,10 +56,8 @@ class Ui_ThemeWizard(object):
self.backgroundComboBox = QtGui.QComboBox(self.backgroundPage)
self.backgroundComboBox.addItems([u'', u'', u'', u''])
self.backgroundComboBox.setObjectName(u'BackgroundComboBox')
self.backgroundTypeLayout.addRow(self.backgroundLabel,
self.backgroundComboBox)
self.backgroundTypeLayout.setItem(1, QtGui.QFormLayout.LabelRole,
self.spacer)
self.backgroundTypeLayout.addRow(self.backgroundLabel, self.backgroundComboBox)
self.backgroundTypeLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.spacer)
self.backgroundLayout.addLayout(self.backgroundTypeLayout)
self.backgroundStack = QtGui.QStackedLayout()
self.backgroundStack.setObjectName(u'BackgroundStack')
@ -87,21 +82,18 @@ class Ui_ThemeWizard(object):
self.gradientStartLabel.setObjectName(u'GradientStartLabel')
self.gradientStartButton = QtGui.QPushButton(self.gradientWidget)
self.gradientStartButton.setObjectName(u'GradientStartButton')
self.gradientLayout.addRow(self.gradientStartLabel,
self.gradientStartButton)
self.gradientLayout.addRow(self.gradientStartLabel, self.gradientStartButton)
self.gradientEndLabel = QtGui.QLabel(self.gradientWidget)
self.gradientEndLabel.setObjectName(u'GradientEndLabel')
self.gradientEndButton = QtGui.QPushButton(self.gradientWidget)
self.gradientEndButton.setObjectName(u'GradientEndButton')
self.gradientLayout.addRow(self.gradientEndLabel,
self.gradientEndButton)
self.gradientLayout.addRow(self.gradientEndLabel, self.gradientEndButton)
self.gradientTypeLabel = QtGui.QLabel(self.gradientWidget)
self.gradientTypeLabel.setObjectName(u'GradientTypeLabel')
self.gradientComboBox = QtGui.QComboBox(self.gradientWidget)
self.gradientComboBox.setObjectName(u'GradientComboBox')
self.gradientComboBox.addItems([u'', u'', u'', u'', u''])
self.gradientLayout.addRow(self.gradientTypeLabel,
self.gradientComboBox)
self.gradientLayout.addRow(self.gradientTypeLabel, self.gradientComboBox)
self.gradientLayout.setItem(3, QtGui.QFormLayout.LabelRole, self.spacer)
self.backgroundStack.addWidget(self.gradientWidget)
self.imageWidget = QtGui.QWidget(self.backgroundPage)
@ -123,8 +115,7 @@ class Ui_ThemeWizard(object):
self.imageFileLayout.addWidget(self.imageFileEdit)
self.imageBrowseButton = QtGui.QToolButton(self.imageWidget)
self.imageBrowseButton.setObjectName(u'ImageBrowseButton')
self.imageBrowseButton.setIcon(
build_icon(u':/general/general_open.png'))
self.imageBrowseButton.setIcon(build_icon(u':/general/general_open.png'))
self.imageFileLayout.addWidget(self.imageBrowseButton)
self.imageLayout.addRow(self.imageLabel, self.imageFileLayout)
self.imageLayout.setItem(2, QtGui.QFormLayout.LabelRole, self.spacer)
@ -162,8 +153,7 @@ class Ui_ThemeWizard(object):
self.mainItalicsCheckBox = QtGui.QCheckBox(self.mainAreaPage)
self.mainItalicsCheckBox.setObjectName(u'MainItalicsCheckBox')
self.mainPropertiesLayout.addWidget(self.mainItalicsCheckBox)
self.mainAreaLayout.addRow(self.mainColorLabel,
self.mainPropertiesLayout)
self.mainAreaLayout.addRow(self.mainColorLabel, self.mainPropertiesLayout)
self.mainSizeLabel = QtGui.QLabel(self.mainAreaPage)
self.mainSizeLabel.setObjectName(u'MainSizeLabel')
self.mainSizeLayout = QtGui.QHBoxLayout()
@ -183,8 +173,7 @@ class Ui_ThemeWizard(object):
self.lineSpacingSpinBox.setMinimum(-50)
self.lineSpacingSpinBox.setMaximum(50)
self.lineSpacingSpinBox.setObjectName(u'LineSpacingSpinBox')
self.mainAreaLayout.addRow(self.lineSpacingLabel,
self.lineSpacingSpinBox)
self.mainAreaLayout.addRow(self.lineSpacingLabel, self.lineSpacingSpinBox)
self.outlineCheckBox = QtGui.QCheckBox(self.mainAreaPage)
self.outlineCheckBox.setObjectName(u'OutlineCheckBox')
self.outlineLayout = QtGui.QHBoxLayout()
@ -229,24 +218,20 @@ class Ui_ThemeWizard(object):
self.footerFontLabel.setObjectName(u'FooterFontLabel')
self.footerFontComboBox = QtGui.QFontComboBox(self.footerAreaPage)
self.footerFontComboBox.setObjectName(u'footerFontComboBox')
self.footerAreaLayout.addRow(self.footerFontLabel,
self.footerFontComboBox)
self.footerAreaLayout.addRow(self.footerFontLabel, self.footerFontComboBox)
self.footerColorLabel = QtGui.QLabel(self.footerAreaPage)
self.footerColorLabel.setObjectName(u'FooterColorLabel')
self.footerColorButton = QtGui.QPushButton(self.footerAreaPage)
self.footerColorButton.setObjectName(u'footerColorButton')
self.footerAreaLayout.addRow(self.footerColorLabel,
self.footerColorButton)
self.footerAreaLayout.addRow(self.footerColorLabel, self.footerColorButton)
self.footerSizeLabel = QtGui.QLabel(self.footerAreaPage)
self.footerSizeLabel.setObjectName(u'FooterSizeLabel')
self.footerSizeSpinBox = QtGui.QSpinBox(self.footerAreaPage)
self.footerSizeSpinBox.setMaximum(999)
self.footerSizeSpinBox.setValue(10)
self.footerSizeSpinBox.setObjectName(u'FooterSizeSpinBox')
self.footerAreaLayout.addRow(self.footerSizeLabel,
self.footerSizeSpinBox)
self.footerAreaLayout.setItem(3, QtGui.QFormLayout.LabelRole,
self.spacer)
self.footerAreaLayout.addRow(self.footerSizeLabel, self.footerSizeSpinBox)
self.footerAreaLayout.setItem(3, QtGui.QFormLayout.LabelRole, self.spacer)
themeWizard.addPage(self.footerAreaPage)
# Alignment Page
self.alignmentPage = QtGui.QWizardPage()
@ -258,10 +243,8 @@ class Ui_ThemeWizard(object):
self.horizontalComboBox = QtGui.QComboBox(self.alignmentPage)
self.horizontalComboBox.addItems([u'', u'', u'', u''])
self.horizontalComboBox.setObjectName(u'HorizontalComboBox')
self.alignmentLayout.addRow(self.horizontalLabel,
self.horizontalComboBox)
self.verticalLabel, self.verticalComboBox = \
create_valign_selection_widgets(self.alignmentPage)
self.alignmentLayout.addRow(self.horizontalLabel, self.horizontalComboBox)
self.verticalLabel, self.verticalComboBox = create_valign_selection_widgets(self.alignmentPage)
self.verticalLabel.setObjectName(u'verticalLabel')
self.verticalComboBox.setObjectName(u'verticalComboBox')
self.alignmentLayout.addRow(self.verticalLabel, self.verticalComboBox)
@ -269,10 +252,8 @@ class Ui_ThemeWizard(object):
self.transitionsLabel.setObjectName(u'TransitionsLabel')
self.transitionsCheckBox = QtGui.QCheckBox(self.alignmentPage)
self.transitionsCheckBox.setObjectName(u'TransitionsCheckBox')
self.alignmentLayout.addRow(self.transitionsLabel,
self.transitionsCheckBox)
self.alignmentLayout.setItem(3, QtGui.QFormLayout.LabelRole,
self.spacer)
self.alignmentLayout.addRow(self.transitionsLabel, self.transitionsCheckBox)
self.alignmentLayout.setItem(3, QtGui.QFormLayout.LabelRole, self.spacer)
themeWizard.addPage(self.alignmentPage)
# Area Position Page
self.areaPositionPage = QtGui.QWizardPage()
@ -303,23 +284,19 @@ class Ui_ThemeWizard(object):
self.mainWidthSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox)
self.mainWidthSpinBox.setMaximum(9999)
self.mainWidthSpinBox.setObjectName(u'MainWidthSpinBox')
self.mainPositionLayout.addRow(self.mainWidthLabel,
self.mainWidthSpinBox)
self.mainPositionLayout.addRow(self.mainWidthLabel, self.mainWidthSpinBox)
self.mainHeightLabel = QtGui.QLabel(self.mainPositionGroupBox)
self.mainHeightLabel.setObjectName(u'MainHeightLabel')
self.mainHeightSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox)
self.mainHeightSpinBox.setMaximum(9999)
self.mainHeightSpinBox.setObjectName(u'MainHeightSpinBox')
self.mainPositionLayout.addRow(self.mainHeightLabel,
self.mainHeightSpinBox)
self.mainPositionLayout.addRow(self.mainHeightLabel, self.mainHeightSpinBox)
self.areaPositionLayout.addWidget(self.mainPositionGroupBox)
self.footerPositionGroupBox = QtGui.QGroupBox(self.areaPositionPage)
self.footerPositionGroupBox.setObjectName(u'FooterPositionGroupBox')
self.footerPositionLayout = QtGui.QFormLayout(
self.footerPositionGroupBox)
self.footerPositionLayout = QtGui.QFormLayout(self.footerPositionGroupBox)
self.footerPositionLayout.setObjectName(u'FooterPositionLayout')
self.footerPositionCheckBox = QtGui.QCheckBox(
self.footerPositionGroupBox)
self.footerPositionCheckBox = QtGui.QCheckBox(self.footerPositionGroupBox)
self.footerPositionCheckBox.setObjectName(u'FooterPositionCheckBox')
self.footerPositionLayout.addRow(self.footerPositionCheckBox)
self.footerXLabel = QtGui.QLabel(self.footerPositionGroupBox)
@ -339,15 +316,13 @@ class Ui_ThemeWizard(object):
self.footerWidthSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox)
self.footerWidthSpinBox.setMaximum(9999)
self.footerWidthSpinBox.setObjectName(u'FooterWidthSpinBox')
self.footerPositionLayout.addRow(self.footerWidthLabel,
self.footerWidthSpinBox)
self.footerPositionLayout.addRow(self.footerWidthLabel, self.footerWidthSpinBox)
self.footerHeightLabel = QtGui.QLabel(self.footerPositionGroupBox)
self.footerHeightLabel.setObjectName(u'FooterHeightLabel')
self.footerHeightSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox)
self.footerHeightSpinBox.setMaximum(9999)
self.footerHeightSpinBox.setObjectName(u'FooterHeightSpinBox')
self.footerPositionLayout.addRow(self.footerHeightLabel,
self.footerHeightSpinBox)
self.footerPositionLayout.addRow(self.footerHeightLabel, self.footerHeightSpinBox)
self.areaPositionLayout.addWidget(self.footerPositionGroupBox)
themeWizard.addPage(self.areaPositionPage)
# Preview Page
@ -360,8 +335,7 @@ class Ui_ThemeWizard(object):
self.themeNameLabel = QtGui.QLabel(self.previewPage)
self.themeNameLabel.setObjectName(u'ThemeNameLabel')
self.themeNameEdit = QtGui.QLineEdit(self.previewPage)
self.themeNameEdit.setValidator(QtGui.QRegExpValidator(
QtCore.QRegExp(r'[^/\\?*|<>\[\]":<>+%]+'), self))
self.themeNameEdit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(r'[^/\\?*|<>\[\]":<>+%]+'), self))
self.themeNameEdit.setObjectName(u'ThemeNameEdit')
self.themeNameLayout.addRow(self.themeNameLabel, self.themeNameEdit)
self.previewLayout.addLayout(self.themeNameLayout)
@ -380,78 +354,55 @@ class Ui_ThemeWizard(object):
self.previewLayout.addWidget(self.previewArea)
themeWizard.addPage(self.previewPage)
self.retranslateUi(themeWizard)
QtCore.QObject.connect(self.backgroundComboBox,
QtCore.SIGNAL(u'currentIndexChanged(int)'), self.backgroundStack,
QtCore.SLOT(u'setCurrentIndex(int)'))
QtCore.QObject.connect(self.outlineCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.outlineColorButton,
QtCore.QObject.connect(self.backgroundComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'),
self.backgroundStack, QtCore.SLOT(u'setCurrentIndex(int)'))
QtCore.QObject.connect(self.outlineCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.outlineColorButton,
QtCore.SLOT(u'setEnabled(bool)'))
QtCore.QObject.connect(self.outlineCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.outlineSizeSpinBox,
QtCore.QObject.connect(self.outlineCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.outlineSizeSpinBox,
QtCore.SLOT(u'setEnabled(bool)'))
QtCore.QObject.connect(self.shadowCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.shadowColorButton,
QtCore.QObject.connect(self.shadowCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.shadowColorButton,
QtCore.SLOT(u'setEnabled(bool)'))
QtCore.QObject.connect(self.shadowCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.shadowSizeSpinBox,
QtCore.QObject.connect(self.shadowCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.shadowSizeSpinBox,
QtCore.SLOT(u'setEnabled(bool)'))
QtCore.QObject.connect(self.mainPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.mainXSpinBox,
QtCore.QObject.connect(self.mainPositionCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.mainXSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
QtCore.QObject.connect(self.mainPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.mainYSpinBox,
QtCore.QObject.connect(self.mainPositionCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.mainYSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
QtCore.QObject.connect(self.mainPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.mainWidthSpinBox,
QtCore.QObject.connect(self.mainPositionCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.mainWidthSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
QtCore.QObject.connect(self.mainPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.mainHeightSpinBox,
QtCore.QObject.connect(self.mainPositionCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.mainHeightSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
QtCore.QObject.connect(self.footerPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.footerXSpinBox,
QtCore.QObject.connect(self.footerPositionCheckBox,QtCore.SIGNAL(u'toggled(bool)'), self.footerXSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
QtCore.QObject.connect(self.footerPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.footerYSpinBox,
QtCore.QObject.connect(self.footerPositionCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.footerYSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
QtCore.QObject.connect(self.footerPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.footerWidthSpinBox,
QtCore.QObject.connect(self.footerPositionCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.footerWidthSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
QtCore.QObject.connect(self.footerPositionCheckBox,
QtCore.SIGNAL(u'toggled(bool)'), self.footerHeightSpinBox,
QtCore.QObject.connect(self.footerPositionCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.footerHeightSpinBox,
QtCore.SLOT(u'setDisabled(bool)'))
def retranslateUi(self, themeWizard):
themeWizard.setWindowTitle(
translate('OpenLP.ThemeWizard', 'Theme Wizard'))
self.titleLabel.setText(
u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
themeWizard.setWindowTitle(translate('OpenLP.ThemeWizard', 'Theme Wizard'))
self.titleLabel.setText(u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
translate('OpenLP.ThemeWizard', 'Welcome to the Theme Wizard'))
self.informationLabel.setText(
translate('OpenLP.ThemeWizard', 'This wizard will help you to '
'create and edit your themes. Click the next button below to '
'start the process by setting up your background.'))
self.backgroundPage.setTitle(
translate('OpenLP.ThemeWizard', 'Set Up Background'))
self.backgroundPage.setSubTitle(
translate('OpenLP.ThemeWizard', 'Set up your theme\'s background '
self.backgroundPage.setTitle(translate('OpenLP.ThemeWizard', 'Set Up Background'))
self.backgroundPage.setSubTitle(translate('OpenLP.ThemeWizard', 'Set up your theme\'s background '
'according to the parameters below.'))
self.backgroundLabel.setText(
translate('OpenLP.ThemeWizard', 'Background type:'))
self.backgroundLabel.setText(translate('OpenLP.ThemeWizard', 'Background type:'))
self.backgroundComboBox.setItemText(BackgroundType.Solid,
translate('OpenLP.ThemeWizard', 'Solid Color'))
self.backgroundComboBox.setItemText(BackgroundType.Gradient,
translate('OpenLP.ThemeWizard', 'Gradient'))
self.backgroundComboBox.setItemText(
BackgroundType.Image, UiStrings().Image)
self.backgroundComboBox.setItemText(BackgroundType.Transparent,
translate('OpenLP.ThemeWizard', 'Transparent'))
self.backgroundComboBox.setItemText(BackgroundType.Image, UiStrings().Image)
self.backgroundComboBox.setItemText(BackgroundType.Transparent, translate('OpenLP.ThemeWizard', 'Transparent'))
self.colorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:'))
self.gradientStartLabel.setText(
translate(u'OpenLP.ThemeWizard', 'Starting color:'))
self.gradientEndLabel.setText(
translate(u'OpenLP.ThemeWizard', 'Ending color:'))
self.gradientTypeLabel.setText(
translate('OpenLP.ThemeWizard', 'Gradient:'))
self.gradientStartLabel.setText(translate(u'OpenLP.ThemeWizard', 'Starting color:'))
self.gradientEndLabel.setText(translate(u'OpenLP.ThemeWizard', 'Ending color:'))
self.gradientTypeLabel.setText(translate('OpenLP.ThemeWizard', 'Gradient:'))
self.gradientComboBox.setItemText(BackgroundGradientType.Horizontal,
translate('OpenLP.ThemeWizard', 'Horizontal'))
self.gradientComboBox.setItemText(BackgroundGradientType.Vertical,
@ -462,66 +413,46 @@ class Ui_ThemeWizard(object):
translate('OpenLP.ThemeWizard', 'Top Left - Bottom Right'))
self.gradientComboBox.setItemText(BackgroundGradientType.LeftBottom,
translate('OpenLP.ThemeWizard', 'Bottom Left - Top Right'))
self.imageColorLabel.setText(
translate(u'OpenLP.ThemeWizard', 'Background color:'))
self.imageColorLabel.setText(translate(u'OpenLP.ThemeWizard', 'Background color:'))
self.imageLabel.setText(u'%s:' % UiStrings().Image)
self.mainAreaPage.setTitle(
translate('OpenLP.ThemeWizard', 'Main Area Font Details'))
self.mainAreaPage.setSubTitle(
translate('OpenLP.ThemeWizard', 'Define the font and display '
self.mainAreaPage.setTitle(translate('OpenLP.ThemeWizard', 'Main Area Font Details'))
self.mainAreaPage.setSubTitle(translate('OpenLP.ThemeWizard', 'Define the font and display '
'characteristics for the Display text'))
self.mainFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:'))
self.mainColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:'))
self.mainSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
self.mainSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
self.lineSpacingLabel.setText(
translate('OpenLP.ThemeWizard', 'Line Spacing:'))
self.lineSpacingLabel.setText(translate('OpenLP.ThemeWizard', 'Line Spacing:'))
self.lineSpacingSpinBox.setSuffix(UiStrings().FontSizePtUnit)
self.outlineCheckBox.setText(
translate('OpenLP.ThemeWizard', '&Outline:'))
self.outlineCheckBox.setText(translate('OpenLP.ThemeWizard', '&Outline:'))
self.outlineSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
self.outlineSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
self.shadowCheckBox.setText(translate('OpenLP.ThemeWizard', '&Shadow:'))
self.shadowSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
self.shadowSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
self.mainBoldCheckBox.setText(translate('OpenLP.ThemeWizard', 'Bold'))
self.mainItalicsCheckBox.setText(
translate('OpenLP.ThemeWizard', 'Italic'))
self.footerAreaPage.setTitle(
translate('OpenLP.ThemeWizard', 'Footer Area Font Details'))
self.footerAreaPage.setSubTitle(
translate('OpenLP.ThemeWizard', 'Define the font and display '
self.mainItalicsCheckBox.setText(translate('OpenLP.ThemeWizard', 'Italic'))
self.footerAreaPage.setTitle(translate('OpenLP.ThemeWizard', 'Footer Area Font Details'))
self.footerAreaPage.setSubTitle(translate('OpenLP.ThemeWizard', 'Define the font and display '
'characteristics for the Footer text'))
self.footerFontLabel.setText(translate('OpenLP.ThemeWizard', 'Font:'))
self.footerColorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:'))
self.footerSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:'))
self.footerSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit)
self.alignmentPage.setTitle(
translate('OpenLP.ThemeWizard', 'Text Formatting Details'))
self.alignmentPage.setSubTitle(
translate('OpenLP.ThemeWizard', 'Allows additional display '
self.alignmentPage.setTitle(translate('OpenLP.ThemeWizard', 'Text Formatting Details'))
self.alignmentPage.setSubTitle(translate('OpenLP.ThemeWizard', 'Allows additional display '
'formatting information to be defined'))
self.horizontalLabel.setText(
translate('OpenLP.ThemeWizard', 'Horizontal Align:'))
self.horizontalComboBox.setItemText(HorizontalType.Left,
translate('OpenLP.ThemeWizard', 'Left'))
self.horizontalComboBox.setItemText(HorizontalType.Right,
translate('OpenLP.ThemeWizard', 'Right'))
self.horizontalComboBox.setItemText(HorizontalType.Center,
translate('OpenLP.ThemeWizard', 'Center'))
self.horizontalComboBox.setItemText(HorizontalType.Justify,
translate('OpenLP.ThemeWizard', 'Justify'))
self.transitionsLabel.setText(
translate('OpenLP.ThemeWizard', 'Transitions:'))
self.areaPositionPage.setTitle(
translate('OpenLP.ThemeWizard', 'Output Area Locations'))
self.areaPositionPage.setSubTitle(
translate('OpenLP.ThemeWizard', 'Allows you to change and move the'
self.horizontalLabel.setText(translate('OpenLP.ThemeWizard', 'Horizontal Align:'))
self.horizontalComboBox.setItemText(HorizontalType.Left, translate('OpenLP.ThemeWizard', 'Left'))
self.horizontalComboBox.setItemText(HorizontalType.Right, translate('OpenLP.ThemeWizard', 'Right'))
self.horizontalComboBox.setItemText(HorizontalType.Center, translate('OpenLP.ThemeWizard', 'Center'))
self.horizontalComboBox.setItemText(HorizontalType.Justify, translate('OpenLP.ThemeWizard', 'Justify'))
self.transitionsLabel.setText(translate('OpenLP.ThemeWizard', 'Transitions:'))
self.areaPositionPage.setTitle(translate('OpenLP.ThemeWizard', 'Output Area Locations'))
self.areaPositionPage.setSubTitle(translate('OpenLP.ThemeWizard', 'Allows you to change and move the'
' main and footer areas.'))
self.mainPositionGroupBox.setTitle(
translate('OpenLP.ThemeWizard', '&Main Area'))
self.mainPositionCheckBox.setText(
translate('OpenLP.ThemeWizard', '&Use default location'))
self.mainPositionGroupBox.setTitle(translate('OpenLP.ThemeWizard', '&Main Area'))
self.mainPositionCheckBox.setText(translate('OpenLP.ThemeWizard', '&Use default location'))
self.mainXLabel.setText(translate('OpenLP.ThemeWizard', 'X position:'))
self.mainXSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
self.mainYSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
@ -529,37 +460,24 @@ class Ui_ThemeWizard(object):
self.mainWidthSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
self.mainWidthLabel.setText(translate('OpenLP.ThemeWizard', 'Width:'))
self.mainHeightSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
self.mainHeightLabel.setText(
translate('OpenLP.ThemeWizard', 'Height:'))
self.footerPositionGroupBox.setTitle(
translate('OpenLP.ThemeWizard', '&Footer Area'))
self.footerXLabel.setText(
translate('OpenLP.ThemeWizard', 'X position:'))
self.mainHeightLabel.setText(translate('OpenLP.ThemeWizard', 'Height:'))
self.footerPositionGroupBox.setTitle(translate('OpenLP.ThemeWizard', '&Footer Area'))
self.footerXLabel.setText(translate('OpenLP.ThemeWizard', 'X position:'))
self.footerXSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
self.footerYLabel.setText(
translate('OpenLP.ThemeWizard', 'Y position:'))
self.footerYLabel.setText(translate('OpenLP.ThemeWizard', 'Y position:'))
self.footerYSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
self.footerWidthLabel.setText(
translate('OpenLP.ThemeWizard', 'Width:'))
self.footerWidthSpinBox.setSuffix(
translate('OpenLP.ThemeWizard', 'px'))
self.footerHeightLabel.setText(
translate('OpenLP.ThemeWizard', 'Height:'))
self.footerHeightSpinBox.setSuffix(
translate('OpenLP.ThemeWizard', 'px'))
self.footerPositionCheckBox.setText(
translate('OpenLP.ThemeWizard', 'Use default location'))
self.footerWidthLabel.setText(translate('OpenLP.ThemeWizard', 'Width:'))
self.footerWidthSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
self.footerHeightLabel.setText(translate('OpenLP.ThemeWizard', 'Height:'))
self.footerHeightSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px'))
self.footerPositionCheckBox.setText(translate('OpenLP.ThemeWizard', 'Use default location'))
themeWizard.setOption(QtGui.QWizard.HaveCustomButton1, False)
themeWizard.setButtonText(QtGui.QWizard.CustomButton1,
translate('OpenLP.ThemeWizard', 'Layout Preview'))
self.previewPage.setTitle(
translate('OpenLP.ThemeWizard', 'Preview and Save'))
self.previewPage.setSubTitle(
translate('OpenLP.ThemeWizard', 'Preview the theme and save it.'))
self.themeNameLabel.setText(
translate('OpenLP.ThemeWizard', 'Theme name:'))
self.previewPage.setTitle(translate('OpenLP.ThemeWizard', 'Preview and Save'))
self.previewPage.setSubTitle(translate('OpenLP.ThemeWizard', 'Preview the theme and save it.'))
self.themeNameLabel.setText(translate('OpenLP.ThemeWizard', 'Theme name:'))
# Align all QFormLayouts towards each other.
labelWidth = max(self.backgroundLabel.minimumSizeHint().width(),
self.horizontalLabel.minimumSizeHint().width())
self.spacer.changeSize(labelWidth, 0,
QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
self.spacer.changeSize(labelWidth, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
###############################################################################
# OpenLP - Open Source Lyrics Projection #
@ -60,8 +60,7 @@ class WizardStrings(object):
'Select the import format and the location to import from.')
NoSqlite = translate('OpenLP.Ui', 'The openlp.org 1.x importer has been '
'disabled due to a missing Python module. If you want to use this '
'importer, you will need to install the "python-sqlite" '
'module.')
'importer, you will need to install the "python-sqlite" module.')
OpenTypeFile = translate('OpenLP.Ui', 'Open %s File')
OpenTypeFolder = translate('OpenLP.Ui', 'Open %s Folder')
PercentSymbolFormat = translate('OpenLP.Ui', '%p%')
@ -92,12 +91,9 @@ class OpenLPWizard(QtGui.QWizard):
self.registerFields()
self.customInit()
self.customSignals()
QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'),
self.onCurrentIdChanged)
QtCore.QObject.connect(self.errorCopyToButton,
QtCore.SIGNAL(u'clicked()'), self.onErrorCopyToButtonClicked)
QtCore.QObject.connect(self.errorSaveToButton,
QtCore.SIGNAL(u'clicked()'), self.onErrorSaveToButtonClicked)
QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), self.onCurrentIdChanged)
QtCore.QObject.connect(self.errorCopyToButton, QtCore.SIGNAL(u'clicked()'), self.onErrorCopyToButtonClicked)
QtCore.QObject.connect(self.errorSaveToButton, QtCore.SIGNAL(u'clicked()'), self.onErrorSaveToButtonClicked)
def setupUi(self, image):
"""
@ -145,20 +141,17 @@ class OpenLPWizard(QtGui.QWizard):
self.progressLayout.addWidget(self.errorReportTextEdit)
self.errorButtonLayout = QtGui.QHBoxLayout()
self.errorButtonLayout.setObjectName(u'errorButtonLayout')
spacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
spacer = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.errorButtonLayout.addItem(spacer)
self.errorCopyToButton = QtGui.QPushButton(self.progressPage)
self.errorCopyToButton.setObjectName(u'errorCopyToButton')
self.errorCopyToButton.setHidden(True)
self.errorCopyToButton.setIcon(
build_icon(u':/system/system_edit_copy.png'))
self.errorCopyToButton.setIcon(build_icon(u':/system/system_edit_copy.png'))
self.errorButtonLayout.addWidget(self.errorCopyToButton)
self.errorSaveToButton = QtGui.QPushButton(self.progressPage)
self.errorSaveToButton.setObjectName(u'errorSaveToButton')
self.errorSaveToButton.setHidden(True)
self.errorSaveToButton.setIcon(
build_icon(u':/general/general_save.png'))
self.errorSaveToButton.setIcon(build_icon(u':/general/general_save.png'))
self.errorButtonLayout.addWidget(self.errorSaveToButton)
self.progressLayout.addLayout(self.errorButtonLayout)
self.addPage(self.progressPage)
@ -280,9 +273,8 @@ class OpenLPWizard(QtGui.QWizard):
An editbox (QLineEdit).
"""
folder = unicode(QtGui.QFileDialog.getExistingDirectory(self, title,
os.path.dirname(SettingsManager.get_last_dir(
self.plugin.settingsSection, 1)), QtGui.QFileDialog.ShowDirsOnly))
os.path.dirname(SettingsManager.get_last_dir(self.plugin.settingsSection, 1)),
QtGui.QFileDialog.ShowDirsOnly))
if folder:
editbox.setText(folder)
SettingsManager.set_last_dir(self.plugin.settingsSection,
folder, 1)
SettingsManager.set_last_dir(self.plugin.settingsSection, folder, 1)