From 66d8a188fedbeddfc888a79338e344bb7770403d Mon Sep 17 00:00:00 2001 From: M2j Date: Thu, 23 Dec 2010 18:44:42 +0100 Subject: [PATCH 01/49] Remove most manual formating in the themewizard (regards to bug #686103) --- openlp/core/ui/themeform.py | 11 + openlp/core/ui/themewizard.py | 332 +++++------------ resources/forms/themewizard.ui | 661 +++++++-------------------------- 3 files changed, 242 insertions(+), 762 deletions(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 7ed58e943..94a4e858a 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -456,6 +456,17 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.theme.background_type = BackgroundType.to_string(index) self.setBackgroundTabValues() + self.colorLabel.setVisible(index == 0) + self.colorButton.setVisible(index == 0) + self.gradientStartLabel.setVisible(index == 1) + self.gradientStartButton.setVisible(index == 1) + self.gradientEndLabel.setVisible(index == 1) + self.gradientEndButton.setVisible(index == 1) + self.gradientTypeLabel.setVisible(index == 1) + self.gradientComboBox.setVisible(index == 1) + self.imageLabel.setVisible(index == 2) + self.imageLineEdit.setVisible(index == 2) + self.imageBrowseButton.setVisible(index == 2) def onGradientComboBox(self, index): """ diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index d86792af4..84ef6c714 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -31,24 +31,21 @@ from openlp.core.lib import translate, build_icon class Ui_ThemeWizard(object): def setupUi(self, ThemeWizard): ThemeWizard.setObjectName(u'OpenLP.ThemeWizard') - ThemeWizard.resize(550, 386) ThemeWizard.setModal(True) ThemeWizard.setWizardStyle(QtGui.QWizard.ModernStyle) ThemeWizard.setOptions( QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage) self.welcomePage = QtGui.QWizardPage() - self.welcomePage.setTitle(u'') - self.welcomePage.setSubTitle(u'') - self.welcomePage.setObjectName(u'welcomePage') self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(u':/wizards/wizard_createtheme.bmp')) + self.welcomePage.setObjectName(u'welcomePage') self.welcomeLayout = QtGui.QHBoxLayout(self.welcomePage) - self.welcomeLayout.setSpacing(8) self.welcomeLayout.setMargin(0) self.welcomeLayout.setObjectName(u'welcomeLayout') self.welcomePageLayout = QtGui.QVBoxLayout() - self.welcomePageLayout.setSpacing(8) + self.welcomePageLayout.setSpacing(6) + self.welcomePageLayout.setMargin(12) self.welcomePageLayout.setObjectName(u'welcomePageLayout') self.titleLabel = QtGui.QLabel(self.welcomePage) self.titleLabel.setObjectName(u'titleLabel') @@ -58,7 +55,6 @@ class Ui_ThemeWizard(object): self.welcomePageLayout.addItem(self.welcomeTopSpacer) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) - self.informationLabel.setMargin(10) self.informationLabel.setObjectName(u'informationLabel') self.welcomePageLayout.addWidget(self.informationLabel) self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40, @@ -68,137 +64,91 @@ class Ui_ThemeWizard(object): ThemeWizard.addPage(self.welcomePage) self.backgroundPage = QtGui.QWizardPage() self.backgroundPage.setObjectName(u'backgroundPage') - self.backgroundLayout = QtGui.QVBoxLayout(self.backgroundPage) - self.backgroundLayout.setSpacing(8) - self.backgroundLayout.setMargin(20) + self.backgroundLayout = QtGui.QFormLayout(self.backgroundPage) + self.backgroundLayout.setMargin(12) + self.backgroundLayout.setVerticalSpacing(6) self.backgroundLayout.setObjectName(u'backgroundLayout') - self.backgroundTypeLayout = QtGui.QHBoxLayout() - self.backgroundTypeLayout.setSpacing(8) - self.backgroundTypeLayout.setObjectName(u'backgroundTypeLayout') self.backgroundTypeLabel = QtGui.QLabel(self.backgroundPage) self.backgroundTypeLabel.setObjectName(u'backgroundTypeLabel') - self.backgroundTypeLayout.addWidget(self.backgroundTypeLabel) + self.backgroundLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.backgroundTypeLabel) self.backgroundTypeComboBox = QtGui.QComboBox(self.backgroundPage) + self.backgroundTypeComboBox.addItem(u'') + self.backgroundTypeComboBox.addItem(u'') + self.backgroundTypeComboBox.addItem(u'') self.backgroundTypeComboBox.setObjectName(u'backgroundTypeComboBox') - self.backgroundTypeComboBox.addItem(u'') - self.backgroundTypeComboBox.addItem(u'') - self.backgroundTypeComboBox.addItem(u'') - self.backgroundTypeLayout.addWidget(self.backgroundTypeComboBox) - self.backgroundTypeSpacer = QtGui.QSpacerItem(40, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.backgroundTypeLayout.addItem(self.backgroundTypeSpacer) - self.backgroundLayout.addLayout(self.backgroundTypeLayout) - self.backgroundStackedWidget = QtGui.QStackedWidget( - self.backgroundPage) - self.backgroundStackedWidget.setObjectName(u'backgroundStackedWidget') - self.colorPage = QtGui.QWidget() - self.colorPage.setObjectName(u'colorPage') - self.colorLayout = QtGui.QFormLayout(self.colorPage) - self.colorLayout.setMargin(0) - self.colorLayout.setSpacing(8) - self.colorLayout.setObjectName(u'colorLayout') - self.colorLabel = QtGui.QLabel(self.colorPage) - self.colorLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.colorLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.backgroundLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.backgroundTypeComboBox) + self.colorLabel = QtGui.QLabel(self.backgroundPage) self.colorLabel.setObjectName(u'colorLabel') - self.colorLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.colorLabel) - self.colorButton = QtGui.QPushButton(self.colorPage) - self.colorButton.setText(u'') + self.backgroundLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.colorLabel) + self.colorButton = QtGui.QPushButton(self.backgroundPage) self.colorButton.setObjectName(u'colorButton') - self.colorLayout.setWidget(0, - QtGui.QFormLayout.FieldRole, self.colorButton) - self.backgroundStackedWidget.addWidget(self.colorPage) - self.gradientPage = QtGui.QWidget() - self.gradientPage.setObjectName(u'gradientPage') - self.gradientLayout = QtGui.QFormLayout(self.gradientPage) - self.gradientLayout.setMargin(0) - self.gradientLayout.setSpacing(8) - self.gradientLayout.setObjectName(u'gradientLayout') - self.gradientStartLabel = QtGui.QLabel(self.gradientPage) - self.gradientStartLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.gradientStartLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.backgroundLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.colorButton) + self.gradientStartLabel = QtGui.QLabel(self.backgroundPage) + self.gradientStartLabel.setVisible(False) self.gradientStartLabel.setObjectName(u'gradientStartLabel') - self.gradientLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.gradientStartLabel) - self.gradientStartButton = QtGui.QPushButton(self.gradientPage) - self.gradientStartButton.setText(u'') + self.backgroundLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.gradientStartLabel) + self.gradientStartButton = QtGui.QPushButton(self.backgroundPage) + self.gradientStartButton.setVisible(False) self.gradientStartButton.setObjectName(u'gradientStartButton') - self.gradientLayout.setWidget(0, - QtGui.QFormLayout.FieldRole, self.gradientStartButton) - self.gradientEndLabel = QtGui.QLabel(self.gradientPage) - self.gradientEndLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.gradientEndLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.backgroundLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.gradientStartButton) + self.gradientEndLabel = QtGui.QLabel(self.backgroundPage) + self.gradientEndLabel.setVisible(False) self.gradientEndLabel.setObjectName(u'gradientEndLabel') - self.gradientLayout.setWidget(1, - QtGui.QFormLayout.LabelRole, self.gradientEndLabel) - self.gradientEndButton = QtGui.QPushButton(self.gradientPage) - self.gradientEndButton.setText(u'') + self.backgroundLayout.setWidget(3, QtGui.QFormLayout.LabelRole, + self.gradientEndLabel) + self.gradientEndButton = QtGui.QPushButton(self.backgroundPage) + self.gradientEndButton.setVisible(False) self.gradientEndButton.setObjectName(u'gradientEndButton') - self.gradientLayout.setWidget(1, - QtGui.QFormLayout.FieldRole, self.gradientEndButton) - self.gradientTypeLabel = QtGui.QLabel(self.gradientPage) - self.gradientTypeLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.gradientTypeLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.backgroundLayout.setWidget(3, QtGui.QFormLayout.FieldRole, + self.gradientEndButton) + self.gradientTypeLabel = QtGui.QLabel(self.backgroundPage) + self.gradientTypeLabel.setVisible(False) self.gradientTypeLabel.setObjectName(u'gradientTypeLabel') - self.gradientLayout.setWidget(2, - QtGui.QFormLayout.LabelRole, self.gradientTypeLabel) - self.gradientComboBox = QtGui.QComboBox(self.gradientPage) + self.backgroundLayout.setWidget(4, QtGui.QFormLayout.LabelRole, + self.gradientTypeLabel) + self.gradientComboBox = QtGui.QComboBox(self.backgroundPage) + self.gradientComboBox.setVisible(False) self.gradientComboBox.setObjectName(u'gradientComboBox') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') self.gradientComboBox.addItem(u'') - self.gradientLayout.setWidget(2, - QtGui.QFormLayout.FieldRole, self.gradientComboBox) - self.backgroundStackedWidget.addWidget(self.gradientPage) - self.imagePage = QtGui.QWidget() - self.imagePage.setObjectName(u'imagePage') - self.imageLayout = QtGui.QFormLayout(self.imagePage) - self.imageLayout.setMargin(0) - self.imageLayout.setSpacing(8) - self.imageLayout.setObjectName(u'imageLayout') - self.imageLabel = QtGui.QLabel(self.imagePage) - self.imageLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.imageLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.backgroundLayout.setWidget(4, QtGui.QFormLayout.FieldRole, + self.gradientComboBox) + self.imageLabel = QtGui.QLabel(self.backgroundPage) + self.imageLabel.setVisible(False) self.imageLabel.setObjectName(u'imageLabel') - self.imageLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.imageLabel) + self.backgroundLayout.setWidget(5, QtGui.QFormLayout.LabelRole, + self.imageLabel) self.imageFileLayout = QtGui.QHBoxLayout() - self.imageFileLayout.setSpacing(8) self.imageFileLayout.setObjectName(u'imageFileLayout') - self.imageLineEdit = QtGui.QLineEdit(self.imagePage) + self.imageLineEdit = QtGui.QLineEdit(self.backgroundPage) + self.imageLineEdit.setVisible(False) self.imageLineEdit.setObjectName(u'imageLineEdit') self.imageFileLayout.addWidget(self.imageLineEdit) - self.imageBrowseButton = QtGui.QToolButton(self.imagePage) - self.imageBrowseButton.setText(u'') + self.imageBrowseButton = QtGui.QToolButton(self.backgroundPage) + self.imageBrowseButton.setVisible(False) + self.imageBrowseButton.setObjectName(u'imageBrowseButton') self.imageBrowseButton.setIcon( build_icon(u':/general/general_open.png')) - self.imageBrowseButton.setObjectName(u'imageBrowseButton') self.imageFileLayout.addWidget(self.imageBrowseButton) - self.imageLayout.setLayout(0, - QtGui.QFormLayout.FieldRole, self.imageFileLayout) - self.backgroundStackedWidget.addWidget(self.imagePage) - self.backgroundLayout.addWidget(self.backgroundStackedWidget) + self.backgroundLayout.setLayout(5, QtGui.QFormLayout.FieldRole, + self.imageFileLayout) ThemeWizard.addPage(self.backgroundPage) self.mainAreaPage = QtGui.QWizardPage() self.mainAreaPage.setObjectName(u'mainAreaPage') self.mainAreaLayout = QtGui.QFormLayout(self.mainAreaPage) - self.mainAreaLayout.setFormAlignment(QtCore.Qt.AlignLeading | - QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) - self.mainAreaLayout.setMargin(20) - self.mainAreaLayout.setSpacing(8) + self.mainAreaLayout.setMargin(12) + self.mainAreaLayout.setVerticalSpacing(6) self.mainAreaLayout.setObjectName(u'mainAreaLayout') self.mainFontLabel = QtGui.QLabel(self.mainAreaPage) - self.mainFontLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.mainFontLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.mainFontLabel.setObjectName(u'mainFontLabel') self.mainAreaLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.mainFontLabel) @@ -211,10 +161,9 @@ class Ui_ThemeWizard(object): self.mainAreaLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.mainColorLabel) self.fontPropertiesLayout = QtGui.QHBoxLayout() - self.fontPropertiesLayout.setSpacing(24) + self.fontPropertiesLayout.setSpacing(12) self.fontPropertiesLayout.setObjectName(u'fontPropertiesLayout') self.mainColorPushButton = QtGui.QPushButton(self.mainAreaPage) - self.mainColorPushButton.setText(u'') self.mainColorPushButton.setObjectName(u'mainColorPushButton') self.fontPropertiesLayout.addWidget(self.mainColorPushButton) self.boldCheckBox = QtGui.QCheckBox(self.mainAreaPage) @@ -230,18 +179,8 @@ class Ui_ThemeWizard(object): self.mainAreaLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.mainSizeLabel) self.mainSizeLayout = QtGui.QHBoxLayout() - self.mainSizeLayout.setSpacing(8) - self.mainSizeLayout.setMargin(0) self.mainSizeLayout.setObjectName(u'mainSizeLayout') self.mainSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.mainSizeSpinBox.sizePolicy().hasHeightForWidth()) - self.mainSizeSpinBox.setSizePolicy(sizePolicy) - self.mainSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) self.mainSizeSpinBox.setMaximum(999) self.mainSizeSpinBox.setProperty(u'value', 16) self.mainSizeSpinBox.setObjectName(u'mainSizeSpinBox') @@ -268,8 +207,6 @@ class Ui_ThemeWizard(object): self.outlineLayout = QtGui.QHBoxLayout() self.outlineLayout.setObjectName(u'outlineLayout') self.outlineColorPushButton = QtGui.QPushButton(self.mainAreaPage) - self.outlineColorPushButton.setEnabled(True) - self.outlineColorPushButton.setText(u'') self.outlineColorPushButton.setObjectName(u'outlineColorPushButton') self.outlineLayout.addWidget(self.outlineColorPushButton) self.outlineSizeLabel = QtGui.QLabel(self.mainAreaPage) @@ -287,8 +224,6 @@ class Ui_ThemeWizard(object): self.shadowLayout = QtGui.QHBoxLayout() self.shadowLayout.setObjectName(u'shadowLayout') self.shadowColorPushButton = QtGui.QPushButton(self.mainAreaPage) - self.shadowColorPushButton.setEnabled(True) - self.shadowColorPushButton.setText(u'') self.shadowColorPushButton.setObjectName(u'shadowColorPushButton') self.shadowLayout.addWidget(self.shadowColorPushButton) self.shadowSizeLabel = QtGui.QLabel(self.mainAreaPage) @@ -303,15 +238,10 @@ class Ui_ThemeWizard(object): self.footerAreaPage = QtGui.QWizardPage() self.footerAreaPage.setObjectName(u'footerAreaPage') self.footerLayout = QtGui.QFormLayout(self.footerAreaPage) - self.footerLayout.setFieldGrowthPolicy( - QtGui.QFormLayout.ExpandingFieldsGrow) - self.footerLayout.setMargin(20) - self.footerLayout.setSpacing(8) + self.footerLayout.setMargin(12) + self.footerLayout.setVerticalSpacing(6) self.footerLayout.setObjectName(u'footerLayout') self.footerFontLabel = QtGui.QLabel(self.footerAreaPage) - self.footerFontLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.footerFontLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.footerFontLabel.setObjectName(u'footerFontLabel') self.footerLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.footerFontLabel) @@ -324,7 +254,6 @@ class Ui_ThemeWizard(object): self.footerLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.footerColorLabel) self.footerColorPushButton = QtGui.QPushButton(self.footerAreaPage) - self.footerColorPushButton.setText(u'') self.footerColorPushButton.setObjectName(u'footerColorPushButton') self.footerLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.footerColorPushButton) @@ -333,14 +262,6 @@ class Ui_ThemeWizard(object): self.footerLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.footerSizeLabel) self.footerSizeSpinBox = QtGui.QSpinBox(self.footerAreaPage) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.footerSizeSpinBox.sizePolicy().hasHeightForWidth()) - self.footerSizeSpinBox.setSizePolicy(sizePolicy) - self.footerSizeSpinBox.setMinimumSize(QtCore.QSize(70, 0)) self.footerSizeSpinBox.setMaximum(999) self.footerSizeSpinBox.setProperty(u'value', 10) self.footerSizeSpinBox.setObjectName(u'footerSizeSpinBox') @@ -350,18 +271,14 @@ class Ui_ThemeWizard(object): self.alignmentPage = QtGui.QWizardPage() self.alignmentPage.setObjectName(u'alignmentPage') self.alignmentLayout = QtGui.QFormLayout(self.alignmentPage) - self.alignmentLayout.setMargin(20) - self.alignmentLayout.setSpacing(8) + self.alignmentLayout.setMargin(12) + self.alignmentLayout.setVerticalSpacing(6) self.alignmentLayout.setObjectName(u'alignmentLayout') self.horizontalLabel = QtGui.QLabel(self.alignmentPage) - self.horizontalLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.horizontalLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.horizontalLabel.setObjectName(u'horizontalLabel') self.alignmentLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.horizontalLabel) self.horizontalComboBox = QtGui.QComboBox(self.alignmentPage) - self.horizontalComboBox.setEditable(False) self.horizontalComboBox.setObjectName(u'horizontalComboBox') self.horizontalComboBox.addItem(u'') self.horizontalComboBox.addItem(u'') @@ -387,106 +304,67 @@ class Ui_ThemeWizard(object): self.areaPositionPage = QtGui.QWizardPage() self.areaPositionPage.setObjectName(u'areaPositionPage') self.areaPositionLayout = QtGui.QGridLayout(self.areaPositionPage) - self.areaPositionLayout.setMargin(20) - self.areaPositionLayout.setSpacing(8) self.areaPositionLayout.setObjectName(u'areaPositionLayout') self.mainPositionGroupBox = QtGui.QGroupBox(self.areaPositionPage) - self.mainPositionGroupBox.setMinimumSize(QtCore.QSize(248, 0)) self.mainPositionGroupBox.setObjectName(u'mainPositionGroupBox') self.mainPositionLayout = QtGui.QFormLayout(self.mainPositionGroupBox) - self.mainPositionLayout.setMargin(8) - self.mainPositionLayout.setSpacing(8) + self.mainPositionLayout.setSpacing(6) self.mainPositionLayout.setObjectName(u'mainPositionLayout') self.mainDefaultPositionCheckBox = QtGui.QCheckBox( self.mainPositionGroupBox) self.mainDefaultPositionCheckBox.setChecked(True) - self.mainDefaultPositionCheckBox.setTristate(False) self.mainDefaultPositionCheckBox.setObjectName( u'mainDefaultPositionCheckBox') self.mainPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.mainDefaultPositionCheckBox) - self.nainXLabel = QtGui.QLabel(self.mainPositionGroupBox) - self.nainXLabel.setObjectName(u'nainXLabel') + self.mainXLabel = QtGui.QLabel(self.mainPositionGroupBox) + self.mainXLabel.setObjectName(u'mainXLabel') self.mainPositionLayout.setWidget(1, - QtGui.QFormLayout.LabelRole, self.nainXLabel) + QtGui.QFormLayout.LabelRole, self.mainXLabel) self.mainXSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) self.mainXSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.mainXSpinBox.sizePolicy().hasHeightForWidth()) - self.mainXSpinBox.setSizePolicy(sizePolicy) - self.mainXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.mainXSpinBox.setMaximum(9999) self.mainXSpinBox.setProperty(u'value', 0) self.mainXSpinBox.setObjectName(u'mainXSpinBox') self.mainPositionLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.mainXSpinBox) - self.mainYSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) - self.mainYSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.mainYSpinBox.sizePolicy().hasHeightForWidth()) - self.mainYSpinBox.setSizePolicy(sizePolicy) - self.mainYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.mainYSpinBox.setMaximum(9999) - self.mainYSpinBox.setObjectName(u'mainYSpinBox') - self.mainPositionLayout.setWidget(2, - QtGui.QFormLayout.FieldRole, self.mainYSpinBox) self.mainYLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainYLabel.setObjectName(u'mainYLabel') self.mainPositionLayout.setWidget(2, QtGui.QFormLayout.LabelRole, self.mainYLabel) - self.mainWidthSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) - self.mainWidthSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.mainWidthSpinBox.sizePolicy().hasHeightForWidth()) - self.mainWidthSpinBox.setSizePolicy(sizePolicy) - self.mainWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.mainWidthSpinBox.setMaximum(9999) - self.mainWidthSpinBox.setObjectName(u'mainWidthSpinBox') - self.mainPositionLayout.setWidget(3, - QtGui.QFormLayout.FieldRole, self.mainWidthSpinBox) + self.mainYSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) + self.mainYSpinBox.setEnabled(False) + self.mainYSpinBox.setMaximum(9999) + self.mainYSpinBox.setObjectName(u'mainYSpinBox') + self.mainPositionLayout.setWidget(2, + QtGui.QFormLayout.FieldRole, self.mainYSpinBox) self.mainWidthLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainWidthLabel.setObjectName(u'mainWidthLabel') self.mainPositionLayout.setWidget(3, QtGui.QFormLayout.LabelRole, self.mainWidthLabel) - self.mainHeightSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) - self.mainHeightSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.mainHeightSpinBox.sizePolicy().hasHeightForWidth()) - self.mainHeightSpinBox.setSizePolicy(sizePolicy) - self.mainHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) - self.mainHeightSpinBox.setMaximum(9999) - self.mainHeightSpinBox.setObjectName(u'mainHeightSpinBox') - self.mainPositionLayout.setWidget(4, - QtGui.QFormLayout.FieldRole, self.mainHeightSpinBox) + self.mainWidthSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) + self.mainWidthSpinBox.setEnabled(False) + self.mainWidthSpinBox.setMaximum(9999) + self.mainWidthSpinBox.setObjectName(u'mainWidthSpinBox') + self.mainPositionLayout.setWidget(3, + QtGui.QFormLayout.FieldRole, self.mainWidthSpinBox) self.mainHeightLabel = QtGui.QLabel(self.mainPositionGroupBox) self.mainHeightLabel.setObjectName(u'mainHeightLabel') self.mainPositionLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.mainHeightLabel) + self.mainHeightSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) + self.mainHeightSpinBox.setEnabled(False) + self.mainHeightSpinBox.setMaximum(9999) + self.mainHeightSpinBox.setObjectName(u'mainHeightSpinBox') + self.mainPositionLayout.setWidget(4, + QtGui.QFormLayout.FieldRole, self.mainHeightSpinBox) self.areaPositionLayout.addWidget( self.mainPositionGroupBox, 1, 0, 1, 1) self.footerPositionGroupBox = QtGui.QGroupBox(self.areaPositionPage) - self.footerPositionGroupBox.setMinimumSize(QtCore.QSize(248, 0)) self.footerPositionGroupBox.setObjectName(u'footerPositionGroupBox') self.footerPositionLayout = QtGui.QFormLayout( self.footerPositionGroupBox) - self.footerPositionLayout.setMargin(8) - self.footerPositionLayout.setSpacing(8) + self.footerPositionLayout.setVerticalSpacing(6) self.footerPositionLayout.setObjectName(u'footerPositionLayout') self.footerXLabel = QtGui.QLabel(self.footerPositionGroupBox) self.footerXLabel.setObjectName(u'footerXLabel') @@ -494,14 +372,6 @@ class Ui_ThemeWizard(object): QtGui.QFormLayout.LabelRole, self.footerXLabel) self.footerXSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerXSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.footerXSpinBox.sizePolicy().hasHeightForWidth()) - self.footerXSpinBox.setSizePolicy(sizePolicy) - self.footerXSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerXSpinBox.setMaximum(9999) self.footerXSpinBox.setProperty(u'value', 0) self.footerXSpinBox.setObjectName(u'footerXSpinBox') @@ -513,14 +383,6 @@ class Ui_ThemeWizard(object): QtGui.QFormLayout.LabelRole, self.footerYLabel) self.footerYSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) self.footerYSpinBox.setEnabled(False) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.footerYSpinBox.sizePolicy().hasHeightForWidth()) - self.footerYSpinBox.setSizePolicy(sizePolicy) - self.footerYSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerYSpinBox.setMaximum(9999) self.footerYSpinBox.setProperty(u'value', 0) self.footerYSpinBox.setObjectName(u'footerYSpinBox') @@ -561,17 +423,12 @@ class Ui_ThemeWizard(object): self.previewPage = QtGui.QWizardPage() self.previewPage.setObjectName(u'previewPage') self.previewLayout = QtGui.QVBoxLayout(self.previewPage) - self.previewLayout.setSpacing(8) - self.previewLayout.setMargin(20) + self.previewLayout.setSpacing(6) + self.previewLayout.setMargin(12) self.previewLayout.setObjectName(u'previewLayout') self.themeNameLayout = QtGui.QHBoxLayout() - self.themeNameLayout.setSpacing(8) self.themeNameLayout.setObjectName(u'themeNameLayout') self.themeNameLabel = QtGui.QLabel(self.previewPage) - self.themeNameLabel.setMinimumSize(QtCore.QSize(103, 0)) - self.themeNameLabel.setTextFormat(QtCore.Qt.PlainText) - self.themeNameLabel.setAlignment(QtCore.Qt.AlignRight | - QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.themeNameLabel.setObjectName(u'themeNameLabel') self.themeNameLayout.addWidget(self.themeNameLabel) self.themeNameEdit = QtGui.QLineEdit(self.previewPage) @@ -579,9 +436,8 @@ class Ui_ThemeWizard(object): self.themeNameLayout.addWidget(self.themeNameEdit) self.previewLayout.addLayout(self.themeNameLayout) self.previewPaneLayout = QtGui.QHBoxLayout() - self.previewPaneLayout.setSpacing(0) self.previewPaneLayout.setObjectName(u'previewPaneLayout') - self.previewLeftSpacer = QtGui.QSpacerItem(58, 20, + self.previewLeftSpacer = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.previewPaneLayout.addItem(self.previewLeftSpacer) self.previewBoxLabel = QtGui.QLabel(self.previewPage) @@ -596,11 +452,10 @@ class Ui_ThemeWizard(object): self.previewBoxLabel.setFrameShape(QtGui.QFrame.WinPanel) self.previewBoxLabel.setFrameShadow(QtGui.QFrame.Sunken) self.previewBoxLabel.setLineWidth(1) - self.previewBoxLabel.setText(u'') self.previewBoxLabel.setScaledContents(True) self.previewBoxLabel.setObjectName(u'previewBoxLabel') self.previewPaneLayout.addWidget(self.previewBoxLabel) - self.previewRightSpacer = QtGui.QSpacerItem(78, 20, + self.previewRightSpacer = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.previewPaneLayout.addItem(self.previewRightSpacer) self.previewLayout.addLayout(self.previewPaneLayout) @@ -608,15 +463,10 @@ class Ui_ThemeWizard(object): self.themeNameLabel.setBuddy(self.themeNameEdit) self.retranslateUi(ThemeWizard) - self.backgroundStackedWidget.setCurrentIndex(0) QtCore.QObject.connect( ThemeWizard, QtCore.SIGNAL(u'accepted()'), ThemeWizard.accept) - QtCore.QObject.connect( - self.backgroundTypeComboBox, - QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.backgroundStackedWidget.setCurrentIndex) QtCore.QMetaObject.connectSlotsByName(ThemeWizard) def retranslateUi(self, ThemeWizard): @@ -627,7 +477,7 @@ class Ui_ThemeWizard(object): 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 ' + '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')) @@ -727,7 +577,7 @@ class Ui_ThemeWizard(object): translate('OpenLP.ThemeWizard', '&Main Area')) self.mainDefaultPositionCheckBox.setText( translate('OpenLP.ThemeWizard', '&Use default location')) - self.nainXLabel.setText(translate('OpenLP.ThemeWizard', 'X position:')) + self.mainXLabel.setText(translate('OpenLP.ThemeWizard', 'X position:')) self.mainXSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) self.mainYSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) self.mainYLabel.setText(translate('OpenLP.ThemeWizard', 'Y position:')) @@ -737,7 +587,7 @@ class Ui_ThemeWizard(object): self.mainHeightLabel.setText( translate('OpenLP.ThemeWizard', 'Height:')) self.footerPositionGroupBox.setTitle( - translate('OpenLP.ThemeWizard', 'Footer Area')) + translate('OpenLP.ThemeWizard', '&Footer Area')) self.footerXLabel.setText( translate('OpenLP.ThemeWizard', 'X position:')) self.footerXSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) diff --git a/resources/forms/themewizard.ui b/resources/forms/themewizard.ui index 9e1f8f9e8..f6428cdc7 100644 --- a/resources/forms/themewizard.ui +++ b/resources/forms/themewizard.ui @@ -2,14 +2,6 @@ ThemeWizard - - - 0 - 0 - 550 - 386 - - Theme Wizard @@ -23,51 +15,30 @@ QWizard::IndependentPages|QWizard::NoBackButtonOnStartPage - - - - - - - - 8 - 0 - - - 163 - 0 - - - - - 163 - 16777215 - - - - 0 - - - + + + 0 + 0 + :/wizards/wizard_importbible.bmp - - 0 - - 8 + 6 + + + 12 @@ -78,6 +49,9 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:600;">Welcome to the Theme Wizard</span></p></body></html> + + true + @@ -99,14 +73,11 @@ p, li { white-space: pre-wrap; } - This wizard will help you to maintain Themes . Click the next button below to start the process by setting up your background. + This wizard will help you to maintain Themes. Click the next button below to start the process by setting up your background. true - - 10 - @@ -133,256 +104,127 @@ p, li { white-space: pre-wrap; } Set up your theme's background according to the parameters below. - - - 8 + + + 6 - 20 + 12 - - - - 8 + + + + Background type: + + + + - - - Background type: - - + + Solid Color + - - - - Solid Color - - - - - Gradient - - - - - Image - - - + + Gradient + - - - Qt::Horizontal + + Image + + + + + + + + Color: + + + + + + + + + + Starting color: + + + + + + + + + + Ending color: + + + + + + + + + + Gradient: + + + + + + + + Horizontal + + + + + Vertical + + + + + Circular + + + + + Top Left - Bottom Right + + + + + Bottom Left - Top Right + + + + + + + + Image: + + + + + + + + + + + + + :/general/general_open.png:/general/general_open.png - - - 40 - 20 - - - + - - - - 0 - - - - - 8 - - - 8 - - - 0 - - - - - - 103 - 0 - - - - Color: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - - - - 8 - - - 8 - - - 0 - - - - - - 103 - 0 - - - - Starting color: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - - - 103 - 0 - - - - Ending color: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - - - 103 - 0 - - - - Gradient: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - Horizontal - - - - - Vertical - - - - - Circular - - - - - Top Left - Bottom Right - - - - - Bottom Left - Top Right - - - - - - - - - - 8 - - - 8 - - - 0 - - - - - - 103 - 0 - - - - Image: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - 8 - - - - - - - - - - - - :/general/general_open.png:/general/general_open.png - - - - - - - - - @@ -393,29 +235,17 @@ p, li { white-space: pre-wrap; } Define the font and display characteristics for the Display text - - 8 - - 8 + 6 - 20 + 12 - - - 103 - 0 - - Font: - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - @@ -431,14 +261,10 @@ p, li { white-space: pre-wrap; } - 24 + 12 - - - - - + @@ -465,26 +291,8 @@ p, li { white-space: pre-wrap; } - - 8 - - - 0 - - - - 0 - 0 - - - - - 70 - 0 - - pt @@ -535,14 +343,7 @@ p, li { white-space: pre-wrap; } - - - true - - - - - + @@ -574,9 +375,6 @@ p, li { white-space: pre-wrap; } true - - - @@ -605,32 +403,17 @@ p, li { white-space: pre-wrap; } Define the font and display characteristics for the Footer text - - QFormLayout::ExpandingFieldsGrow - - - 8 - - 8 + 6 - 20 + 12 - - - 103 - 0 - - Font: - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - @@ -644,11 +427,7 @@ p, li { white-space: pre-wrap; } - - - - - + @@ -659,18 +438,6 @@ p, li { white-space: pre-wrap; } - - - 0 - 0 - - - - - 70 - 0 - - pt @@ -692,36 +459,21 @@ p, li { white-space: pre-wrap; } Allows additional display formatting information to be defined - - 8 - - 8 + 6 - 20 + 12 - - - 103 - 0 - - Horizontal Align: - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - Left @@ -783,31 +535,16 @@ p, li { white-space: pre-wrap; } - 20 - - - 8 + 12 - - - 248 - 0 - - &Main Area - - 8 - - 8 - - - 8 + 6 @@ -817,13 +554,10 @@ p, li { white-space: pre-wrap; } true - - false - - + X position: @@ -840,12 +574,6 @@ p, li { white-space: pre-wrap; } 0 - - - 78 - 0 - - px @@ -868,12 +596,6 @@ p, li { white-space: pre-wrap; } 0 - - - 78 - 0 - - px @@ -900,12 +622,6 @@ p, li { white-space: pre-wrap; } 0 - - - 78 - 0 - - px @@ -926,18 +642,6 @@ p, li { white-space: pre-wrap; } false - - - 0 - 0 - - - - - 78 - 0 - - px @@ -958,24 +662,12 @@ p, li { white-space: pre-wrap; } - - - 248 - 0 - - - Footer Area + &Footer Area - - 8 - - 8 - - - 8 + 6 @@ -989,18 +681,6 @@ p, li { white-space: pre-wrap; } false - - - 0 - 0 - - - - - 78 - 0 - - px @@ -1024,18 +704,6 @@ p, li { white-space: pre-wrap; } false - - - 0 - 0 - - - - - 78 - 0 - - px @@ -1059,12 +727,6 @@ p, li { white-space: pre-wrap; } false - - - 78 - 0 - - px @@ -1085,12 +747,6 @@ p, li { white-space: pre-wrap; } false - - - 78 - 0 - - px @@ -1123,33 +779,18 @@ p, li { white-space: pre-wrap; } - 8 + 6 - 20 + 12 - - 8 - - - - 103 - 0 - - Theme name: - - Qt::PlainText - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - themeNameEdit @@ -1162,9 +803,6 @@ p, li { white-space: pre-wrap; } - - 0 - @@ -1172,7 +810,7 @@ p, li { white-space: pre-wrap; } - 58 + 40 20 @@ -1201,9 +839,6 @@ p, li { white-space: pre-wrap; } 1 - - - true @@ -1216,7 +851,7 @@ p, li { white-space: pre-wrap; } - 78 + 40 20 @@ -1247,21 +882,5 @@ p, li { white-space: pre-wrap; } - - backgroundTypeComboBox - currentIndexChanged(int) - backgroundStackedWidget - setCurrentIndex(int) - - - 178 - 78 - - - 249 - 199 - - - From b0a53020f6ad87ebb4923216b00004d58f5be0cf Mon Sep 17 00:00:00 2001 From: M2j Date: Fri, 24 Dec 2010 01:44:41 +0100 Subject: [PATCH 03/49] bible wizard without manual design tweaks --- openlp/core/ui/themewizard.py | 18 +- .../plugins/bibles/forms/bibleimportform.py | 81 ++-- .../plugins/bibles/forms/bibleimportwizard.py | 445 ++++++++---------- 3 files changed, 258 insertions(+), 286 deletions(-) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index 84ef6c714..ce17e233a 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -40,27 +40,23 @@ class Ui_ThemeWizard(object): self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(u':/wizards/wizard_createtheme.bmp')) self.welcomePage.setObjectName(u'welcomePage') - self.welcomeLayout = QtGui.QHBoxLayout(self.welcomePage) - self.welcomeLayout.setMargin(0) + self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage) + self.welcomeLayout.setMargin(12) + self.welcomeLayout.setSpacing(6) self.welcomeLayout.setObjectName(u'welcomeLayout') - self.welcomePageLayout = QtGui.QVBoxLayout() - self.welcomePageLayout.setSpacing(6) - self.welcomePageLayout.setMargin(12) - self.welcomePageLayout.setObjectName(u'welcomePageLayout') self.titleLabel = QtGui.QLabel(self.welcomePage) self.titleLabel.setObjectName(u'titleLabel') - self.welcomePageLayout.addWidget(self.titleLabel) + self.welcomeLayout.addWidget(self.titleLabel) self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - self.welcomePageLayout.addItem(self.welcomeTopSpacer) + self.welcomeLayout.addItem(self.welcomeTopSpacer) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) self.informationLabel.setObjectName(u'informationLabel') - self.welcomePageLayout.addWidget(self.informationLabel) + self.welcomeLayout.addWidget(self.informationLabel) self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.welcomePageLayout.addItem(self.welcomeBottomSpacer) - self.welcomeLayout.addLayout(self.welcomePageLayout) + self.welcomeLayout.addItem(self.welcomeBottomSpacer) ThemeWizard.addPage(self.welcomePage) self.backgroundPage = QtGui.QWizardPage() self.backgroundPage.setObjectName(u'backgroundPage') diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 0cc62074c..82f549694 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -79,12 +79,8 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): QtGui.QWizard.__init__(self, parent) self.setupUi(self) self.registerFields() - if not BibleFormat.get_availability(BibleFormat.OpenLP1): - self.openlp1Page.setVisible(False) - self.openlp1LocationLabel.setVisible(False) - self.openlp1LocationEdit.setVisible(False) - self.openlp1FileButton.setVisible(False) - self.openlp1DisabledLabel.setVisible(True) + self.hasOpenlp1Import = \ + BibleFormat.get_availability(BibleFormat.OpenLP1) self.finishButton = self.button(QtGui.QWizard.FinishButton) self.cancelButton = self.button(QtGui.QWizard.CancelButton) self.manager = manager @@ -92,19 +88,22 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.manager.set_process_dialog(self) self.web_bible_list = {} self.loadWebBibles() - QtCore.QObject.connect(self.locationComboBox, + QtCore.QObject.connect(self.formatComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onLocationComboBoxChanged) + self.onFormatComboBoxChanged) + QtCore.QObject.connect(self.webSourceComboBox, + QtCore.SIGNAL(u'currentIndexChanged(int)'), + self.onWebSourceComboBoxChanged) QtCore.QObject.connect(self.osisFileButton, QtCore.SIGNAL(u'clicked()'), self.onOsisFileButtonClicked) - QtCore.QObject.connect(self.booksFileButton, + QtCore.QObject.connect(self.csvBooksButton, QtCore.SIGNAL(u'clicked()'), self.onBooksFileButtonClicked) - QtCore.QObject.connect(self.csvVersesFileButton, + QtCore.QObject.connect(self.csvVersesButton, QtCore.SIGNAL(u'clicked()'), self.onCsvVersesFileButtonClicked) - QtCore.QObject.connect(self.openSongBrowseButton, + QtCore.QObject.connect(self.openSongFileButton, QtCore.SIGNAL(u'clicked()'), self.onOpenSongBrowseButtonClicked) QtCore.QObject.connect(self.openlp1FileButton, @@ -225,7 +224,28 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): # Progress page return True - def onLocationComboBoxChanged(self, index): + def onFormatComboBoxChanged(self, index): + """ + Set Widgets for the selected import format visible. + + ``index`` + The index of the combo box. + """ + self.osisFileLabel.setVisible(index == 0) + self.osisFileWidget.setVisible(index == 0) + self.csvBooksLabel.setVisible(index == 1) + self.csvBooksWidget.setVisible(index == 1) + self.csvVersesLabel.setVisible(index == 1) + self.csvVersesWidget.setVisible(index == 1) + self.openSongFileLabel.setVisible(index == 2) + self.openSongFileWidget.setVisible(index == 2) + self.webTabWidget.setVisible(index == 3) + self.openlp1FileLabel.setVisible(index == 4 and self.hasOpenlp1Import) + self.openlp1FileWidget.setVisible(index == 4 and self.hasOpenlp1Import) + self.openlp1DisabledLabel.setVisible(index == 4 and + not self.hasOpenlp1Import) + + def onWebSourceComboBoxChanged(self, index): """ Setup the list of Bibles when you select a different source on the web download page. @@ -233,11 +253,11 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): ``index`` The index of the combo box. """ - self.bibleComboBox.clear() + self.webTranslationComboBox.clear() bibles = self.web_bible_list[index].keys() bibles.sort() for bible in bibles: - self.bibleComboBox.addItem(bible) + self.webTranslationComboBox.addItem(bible) def onOsisFileButtonClicked(self): """ @@ -245,7 +265,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): """ self.getFileName( translate('BiblesPlugin.ImportWizardForm', 'Open OSIS File'), - self.OSISLocationEdit) + self.osisFileEdit) def onBooksFileButtonClicked(self): """ @@ -253,7 +273,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): """ self.getFileName( translate('BiblesPlugin.ImportWizardForm', 'Open Books CSV File'), - self.booksLocationEdit, u'%s (*.csv)' + self.csvBooksEdit, u'%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File')) def onCsvVersesFileButtonClicked(self): @@ -261,7 +281,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): Show the file open dialog for the verses CSV file. """ self.getFileName(translate('BiblesPlugin.ImportWizardForm', - 'Open Verses CSV File'), self.csvVerseLocationEdit, u'%s (*.csv)' + 'Open Verses CSV File'), self.csvVersesEdit, u'%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File')) def onOpenSongBrowseButtonClicked(self): @@ -278,7 +298,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): """ self.getFileName( translate('BiblesPlugin.ImportWizardForm', - 'Open openlp.org 1.x Bible'), self.openlp1LocationEdit, + 'Open openlp.org 1.x Bible'), self.openlp1FileEdit, u'%s (*.bible)' % translate('BiblesPlugin.ImportWizardForm', 'openlp.org 1.x bible')) @@ -290,18 +310,17 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): def registerFields(self): self.selectPage.registerField(u'source_format', self.formatComboBox) - self.selectPage.registerField(u'osis_location', self.OSISLocationEdit) - self.selectPage.registerField(u'csv_booksfile', self.booksLocationEdit) - self.selectPage.registerField( - u'csv_versefile', self.csvVerseLocationEdit) + self.selectPage.registerField(u'osis_location', self.osisFileEdit) + self.selectPage.registerField(u'csv_booksfile', self.csvBooksEdit) + self.selectPage.registerField(u'csv_versefile', self.csvVersesEdit) self.selectPage.registerField(u'opensong_file', self.openSongFileEdit) - self.selectPage.registerField(u'web_location', self.locationComboBox) - self.selectPage.registerField(u'web_biblename', self.bibleComboBox) - self.selectPage.registerField(u'proxy_server', self.addressEdit) - self.selectPage.registerField(u'proxy_username', self.usernameEdit) - self.selectPage.registerField(u'proxy_password', self.passwordEdit) - self.selectPage.registerField( - u'openlp1_location', self.openlp1LocationEdit) + self.selectPage.registerField(u'web_location', self.webSourceComboBox) + self.selectPage.registerField(u'web_biblename', + self.webTranslationComboBox) + self.selectPage.registerField(u'proxy_server', self.webServerEdit) + self.selectPage.registerField(u'proxy_username', self.webUserEdit) + self.selectPage.registerField(u'proxy_password', self.webPasswordEdit) + self.selectPage.registerField(u'openlp1_location', self.openlp1FileEdit) self.licenseDetailsPage.registerField( u'license_version', self.versionNameEdit) self.licenseDetailsPage.registerField( @@ -322,7 +341,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.setField(u'opensong_file', QtCore.QVariant('')) self.setField(u'web_location', QtCore.QVariant(WebDownload.Crosswalk)) self.setField(u'web_biblename', - QtCore.QVariant(self.bibleComboBox.currentIndex())) + QtCore.QVariant(self.webTranslationComboBox.currentIndex())) self.setField(u'proxy_server', settings.value(u'proxy address', QtCore.QVariant(u''))) self.setField(u'proxy_username', @@ -336,7 +355,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): QtCore.QVariant(self.copyrightEdit.text())) self.setField(u'license_permissions', QtCore.QVariant(self.permissionsEdit.text())) - self.onLocationComboBoxChanged(WebDownload.Crosswalk) + self.onWebSourceComboBoxChanged(WebDownload.Crosswalk) settings.endGroup() def loadWebBibles(self): diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index a0b2b99b9..647754674 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -31,7 +31,6 @@ from openlp.core.lib import build_icon, translate class Ui_BibleImportWizard(object): def setupUi(self, bibleImportWizard): bibleImportWizard.setObjectName(u'bibleImportWizard') - bibleImportWizard.resize(550, 386) bibleImportWizard.setModal(True) bibleImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle) bibleImportWizard.setOptions( @@ -44,256 +43,221 @@ class Ui_BibleImportWizard(object): QtGui.QPixmap(u':/wizards/wizard_importbible.bmp')) self.welcomePage.setObjectName(u'WelcomePage') self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage) - self.welcomeLayout.setSpacing(8) - self.welcomeLayout.setMargin(0) + self.welcomeLayout.setMargin(12) + self.welcomeLayout.setSpacing(6) self.welcomeLayout.setObjectName(u'WelcomeLayout') self.titleLabel = QtGui.QLabel(self.welcomePage) self.titleLabel.setObjectName(u'TitleLabel') self.welcomeLayout.addWidget(self.titleLabel) - spacerItem = QtGui.QSpacerItem(20, 40, + self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - self.welcomeLayout.addItem(spacerItem) + self.welcomeLayout.addItem(self.welcomeTopSpacer) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) - self.informationLabel.setMargin(10) self.informationLabel.setObjectName(u'InformationLabel') self.welcomeLayout.addWidget(self.informationLabel) - spacerItem1 = QtGui.QSpacerItem(20, 40, + self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.welcomeLayout.addItem(spacerItem1) + self.welcomeLayout.addItem(self.welcomeBottomSpacer) bibleImportWizard.addPage(self.welcomePage) # Select page self.selectPage = QtGui.QWizardPage() self.selectPage.setObjectName(u'SelectPage') self.selectPageLayout = QtGui.QVBoxLayout(self.selectPage) - self.selectPageLayout.setSpacing(8) - self.selectPageLayout.setMargin(20) - self.selectPageLayout.setObjectName(u'selectPageLayout') - self.formatSelectLayout = QtGui.QHBoxLayout() - self.formatSelectLayout.setSpacing(8) - self.formatSelectLayout.setObjectName(u'FormatSelectLayout') + self.selectPageLayout.setMargin(12) + self.selectPageLayout.setObjectName(u'SelectPageLayout') + self.selectFormLayout = QtGui.QFormLayout() + self.selectFormLayout.setVerticalSpacing(6) + self.selectFormLayout.setObjectName(u'SelectFormLayout') self.formatLabel = QtGui.QLabel(self.selectPage) self.formatLabel.setObjectName(u'FormatLabel') - self.formatSelectLayout.addWidget(self.formatLabel) + self.selectFormLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.formatLabel) self.formatComboBox = QtGui.QComboBox(self.selectPage) + self.formatComboBox.addItem(u'') + self.formatComboBox.addItem(u'') + self.formatComboBox.addItem(u'') + self.formatComboBox.addItem(u'') + self.formatComboBox.addItem(u'') self.formatComboBox.setObjectName(u'FormatComboBox') - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') - self.formatSelectLayout.addWidget(self.formatComboBox) - spacerItem2 = QtGui.QSpacerItem(40, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.formatSelectLayout.addItem(spacerItem2) - self.selectPageLayout.addLayout(self.formatSelectLayout) - self.formatWidget = QtGui.QStackedWidget(self.selectPage) - self.formatWidget.setObjectName(u'FormatWidget') - generalIcon = build_icon(u':/general/general_open.png') - self.osisPage = QtGui.QWidget() - self.osisPage.setObjectName(u'OsisPage') - self.osisLayout = QtGui.QFormLayout(self.osisPage) - self.osisLayout.setFieldGrowthPolicy( - QtGui.QFormLayout.ExpandingFieldsGrow) - self.osisLayout.setMargin(0) - self.osisLayout.setSpacing(8) - self.osisLayout.setObjectName(u'OsisLayout') - self.osisLocationLabel = QtGui.QLabel(self.osisPage) - self.osisLocationLabel.setObjectName(u'OsisLocationLabel') - self.osisLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.osisLocationLabel) - self.osisLocationLayout = QtGui.QHBoxLayout() - self.osisLocationLayout.setSpacing(8) - self.osisLocationLayout.setObjectName(u'OsisLocationLayout') - self.OSISLocationEdit = QtGui.QLineEdit(self.osisPage) - self.OSISLocationEdit.setObjectName(u'OSISLocationEdit') - self.osisLocationLayout.addWidget(self.OSISLocationEdit) - self.osisFileButton = QtGui.QToolButton(self.osisPage) - self.osisFileButton.setMaximumSize(QtCore.QSize(32, 16777215)) - self.osisFileButton.setIcon(generalIcon) + self.selectFormLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.formatComboBox) + self.osisFileLabel = QtGui.QLabel(self.selectPage) + self.osisFileLabel.setObjectName(u'OsisFileLabel') + self.selectFormLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.osisFileLabel) + self.osisFileWidget = QtGui.QWidget(self.selectPage) + self.osisFileWidget.setObjectName(u'OsisFileWidget') + self.osisFileLayout = QtGui.QHBoxLayout(self.osisFileWidget) + self.osisFileLayout.setMargin(0) + self.osisFileLayout.setObjectName(u'OsisFileLayout') + self.osisFileEdit = QtGui.QLineEdit(self.osisFileWidget) + self.osisFileEdit.setObjectName(u'OsisFileEdit') + self.osisFileLayout.addWidget(self.osisFileEdit) + self.osisFileButton = QtGui.QToolButton(self.osisFileWidget) + self.osisFileButton.setIcon(build_icon(u':/general/general_open.png')) self.osisFileButton.setObjectName(u'OsisFileButton') - self.osisLocationLayout.addWidget(self.osisFileButton) - self.osisLayout.setLayout(1, QtGui.QFormLayout.FieldRole, - self.osisLocationLayout) - self.formatWidget.addWidget(self.osisPage) - self.csvPage = QtGui.QWidget() - self.csvPage.setObjectName(u'CsvPage') - self.csvSourceLayout = QtGui.QFormLayout(self.csvPage) - self.csvSourceLayout.setFieldGrowthPolicy( - QtGui.QFormLayout.ExpandingFieldsGrow) - self.csvSourceLayout.setLabelAlignment(QtCore.Qt.AlignBottom | - QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing) - self.csvSourceLayout.setFormAlignment(QtCore.Qt.AlignLeading | - QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) - self.csvSourceLayout.setMargin(0) - self.csvSourceLayout.setSpacing(8) - self.csvSourceLayout.setObjectName(u'CsvSourceLayout') - self.booksLocationLabel = QtGui.QLabel(self.csvPage) - self.booksLocationLabel.setObjectName(u'BooksLocationLabel') - self.csvSourceLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.booksLocationLabel) - self.csvBooksLayout = QtGui.QHBoxLayout() - self.csvBooksLayout.setSpacing(8) + self.osisFileLayout.addWidget(self.osisFileButton) + self.selectFormLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.osisFileWidget) + self.csvBooksLabel = QtGui.QLabel(self.selectPage) + self.csvBooksLabel.setVisible(False) + self.csvBooksLabel.setObjectName(u'CsvBooksLabel') + self.selectFormLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.csvBooksLabel) + self.csvBooksWidget = QtGui.QWidget(self.selectPage) + self.csvBooksWidget.setVisible(False) + self.csvBooksWidget.setObjectName(u'CsvBooksWidget') + self.csvBooksLayout = QtGui.QHBoxLayout(self.csvBooksWidget) + self.csvBooksLayout.setMargin(0) self.csvBooksLayout.setObjectName(u'CsvBooksLayout') - self.booksLocationEdit = QtGui.QLineEdit(self.csvPage) - self.booksLocationEdit.setObjectName(u'BooksLocationEdit') - self.csvBooksLayout.addWidget(self.booksLocationEdit) - self.booksFileButton = QtGui.QToolButton(self.csvPage) - self.booksFileButton.setMaximumSize(QtCore.QSize(32, 16777215)) - self.booksFileButton.setIcon(generalIcon) - self.booksFileButton.setObjectName(u'BooksFileButton') - self.csvBooksLayout.addWidget(self.booksFileButton) - self.csvSourceLayout.setLayout(0, QtGui.QFormLayout.FieldRole, - self.csvBooksLayout) - self.verseLocationLabel = QtGui.QLabel(self.csvPage) - self.verseLocationLabel.setObjectName(u'VerseLocationLabel') - self.csvSourceLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.verseLocationLabel) - self.csvVerseLayout = QtGui.QHBoxLayout() - self.csvVerseLayout.setSpacing(8) - self.csvVerseLayout.setObjectName(u'CsvVerseLayout') - self.csvVerseLocationEdit = QtGui.QLineEdit(self.csvPage) - self.csvVerseLocationEdit.setObjectName(u'CsvVerseLocationEdit') - self.csvVerseLayout.addWidget(self.csvVerseLocationEdit) - self.csvVersesFileButton = QtGui.QToolButton(self.csvPage) - self.csvVersesFileButton.setMaximumSize(QtCore.QSize(32, 16777215)) - self.csvVersesFileButton.setIcon(generalIcon) - self.csvVersesFileButton.setObjectName(u'CsvVersesFileButton') - self.csvVerseLayout.addWidget(self.csvVersesFileButton) - self.csvSourceLayout.setLayout(1, QtGui.QFormLayout.FieldRole, - self.csvVerseLayout) - self.formatWidget.addWidget(self.csvPage) - self.openSongPage = QtGui.QWidget() - self.openSongPage.setObjectName(u'OpenSongPage') - self.openSongLayout = QtGui.QFormLayout(self.openSongPage) - self.openSongLayout.setMargin(0) - self.openSongLayout.setSpacing(8) - self.openSongLayout.setObjectName(u'OpenSongLayout') - self.openSongFileLabel = QtGui.QLabel(self.openSongPage) + self.csvBooksEdit = QtGui.QLineEdit(self.csvBooksWidget) + self.csvBooksEdit.setObjectName(u'CsvBooksEdit') + self.csvBooksLayout.addWidget(self.csvBooksEdit) + self.csvBooksButton = QtGui.QToolButton(self.csvBooksWidget) + self.csvBooksButton.setIcon(build_icon(u':/general/general_open.png')) + self.csvBooksButton.setObjectName(u'CsvBooksButton') + self.csvBooksLayout.addWidget(self.csvBooksButton) + self.selectFormLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.csvBooksWidget) + self.csvVersesLabel = QtGui.QLabel(self.selectPage) + self.csvVersesLabel.setVisible(False) + self.csvVersesLabel.setObjectName(u'CsvVersesLabel') + self.selectFormLayout.setWidget(3, QtGui.QFormLayout.LabelRole, + self.csvVersesLabel) + self.csvVersesWidget = QtGui.QWidget(self.selectPage) + self.csvVersesWidget.setVisible(False) + self.csvVersesWidget.setObjectName(u'CsvVersesWidget') + self.csvVersesLayout = QtGui.QHBoxLayout(self.csvVersesWidget) + self.csvVersesLayout.setMargin(0) + self.csvVersesLayout.setObjectName(u'CsvVersesLayout') + self.csvVersesEdit = QtGui.QLineEdit(self.csvVersesWidget) + self.csvVersesEdit.setObjectName(u'CsvVersesEdit') + self.csvVersesLayout.addWidget(self.csvVersesEdit) + self.csvVersesButton = QtGui.QToolButton(self.csvVersesWidget) + self.csvVersesButton.setIcon(build_icon(u':/general/general_open.png')) + self.csvVersesButton.setObjectName(u'CsvVersesButton') + self.csvVersesLayout.addWidget(self.csvVersesButton) + self.selectFormLayout.setWidget(3, QtGui.QFormLayout.FieldRole, + self.csvVersesWidget) + self.openSongFileLabel = QtGui.QLabel(self.selectPage) + self.openSongFileLabel.setVisible(False) self.openSongFileLabel.setObjectName(u'OpenSongFileLabel') - self.openSongLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.selectFormLayout.setWidget(4, QtGui.QFormLayout.LabelRole, self.openSongFileLabel) - self.openSongFileLayout = QtGui.QHBoxLayout() - self.openSongFileLayout.setSpacing(8) + self.openSongFileWidget = QtGui.QWidget(self.selectPage) + self.openSongFileWidget.setVisible(False) + self.openSongFileWidget.setObjectName(u'OpenSongFileWidget') + self.openSongFileLayout = QtGui.QHBoxLayout(self.openSongFileWidget) + self.openSongFileLayout.setMargin(0) self.openSongFileLayout.setObjectName(u'OpenSongFileLayout') - self.openSongFileEdit = QtGui.QLineEdit(self.openSongPage) + self.openSongFileEdit = QtGui.QLineEdit(self.openSongFileWidget) self.openSongFileEdit.setObjectName(u'OpenSongFileEdit') self.openSongFileLayout.addWidget(self.openSongFileEdit) - self.openSongBrowseButton = QtGui.QToolButton(self.openSongPage) - self.openSongBrowseButton.setIcon(generalIcon) - self.openSongBrowseButton.setObjectName(u'OpenSongBrowseButton') - self.openSongFileLayout.addWidget(self.openSongBrowseButton) - self.openSongLayout.setLayout(0, QtGui.QFormLayout.FieldRole, - self.openSongFileLayout) - self.formatWidget.addWidget(self.openSongPage) - self.webDownloadPage = QtGui.QWidget() - self.webDownloadPage.setObjectName(u'WebDownloadPage') - self.webDownloadLayout = QtGui.QVBoxLayout(self.webDownloadPage) - self.webDownloadLayout.setSpacing(8) - self.webDownloadLayout.setMargin(0) - self.webDownloadLayout.setObjectName(u'WebDownloadLayout') - self.webDownloadTabWidget = QtGui.QTabWidget(self.webDownloadPage) - self.webDownloadTabWidget.setObjectName(u'WebDownloadTabWidget') - self.downloadOptionsTab = QtGui.QWidget() - self.downloadOptionsTab.setObjectName(u'DownloadOptionsTab') - self.downloadOptionsLayout = QtGui.QFormLayout(self.downloadOptionsTab) - self.downloadOptionsLayout.setMargin(8) - self.downloadOptionsLayout.setSpacing(8) - self.downloadOptionsLayout.setObjectName(u'DownloadOptionsLayout') - self.locationLabel = QtGui.QLabel(self.downloadOptionsTab) - self.locationLabel.setObjectName(u'LocationLabel') - self.downloadOptionsLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.locationLabel) - self.locationComboBox = QtGui.QComboBox(self.downloadOptionsTab) - self.locationComboBox.setObjectName(u'LocationComboBox') - self.locationComboBox.addItem(u'') - self.locationComboBox.addItem(u'') - self.locationComboBox.addItem(u'') - self.downloadOptionsLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.locationComboBox) - self.bibleLabel = QtGui.QLabel(self.downloadOptionsTab) - self.bibleLabel.setObjectName(u'BibleLabel') - self.downloadOptionsLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.bibleLabel) - self.bibleComboBox = QtGui.QComboBox(self.downloadOptionsTab) - self.bibleComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents) - self.bibleComboBox.setObjectName(u'BibleComboBox') - self.bibleComboBox.addItem(u'') - self.bibleComboBox.addItem(u'') - self.bibleComboBox.addItem(u'') - self.downloadOptionsLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.bibleComboBox) - self.webDownloadTabWidget.addTab(self.downloadOptionsTab, u'') - self.proxyServerTab = QtGui.QWidget() - self.proxyServerTab.setObjectName(u'ProxyServerTab') - self.proxyServerLayout = QtGui.QFormLayout(self.proxyServerTab) - self.proxyServerLayout.setObjectName(u'ProxyServerLayout') - self.addressLabel = QtGui.QLabel(self.proxyServerTab) - self.addressLabel.setObjectName(u'AddressLabel') - self.proxyServerLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.addressLabel) - self.addressEdit = QtGui.QLineEdit(self.proxyServerTab) - self.addressEdit.setObjectName(u'AddressEdit') - self.proxyServerLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.addressEdit) - self.usernameLabel = QtGui.QLabel(self.proxyServerTab) - self.usernameLabel.setObjectName(u'UsernameLabel') - self.proxyServerLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.usernameLabel) - self.usernameEdit = QtGui.QLineEdit(self.proxyServerTab) - self.usernameEdit.setObjectName(u'UsernameEdit') - self.proxyServerLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.usernameEdit) - self.passwordLabel = QtGui.QLabel(self.proxyServerTab) - self.passwordLabel.setObjectName(u'PasswordLabel') - self.proxyServerLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.passwordLabel) - self.passwordEdit = QtGui.QLineEdit(self.proxyServerTab) - self.passwordEdit.setObjectName(u'PasswordEdit') - self.proxyServerLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.passwordEdit) - self.webDownloadTabWidget.addTab(self.proxyServerTab, u'') - self.webDownloadLayout.addWidget(self.webDownloadTabWidget) - self.formatWidget.addWidget(self.webDownloadPage) - self.openlp1Page = QtGui.QWidget() - self.openlp1Page.setObjectName(u'Openlp1Page') - self.openlp1Layout = QtGui.QFormLayout(self.openlp1Page) - self.openlp1Layout.setFieldGrowthPolicy( - QtGui.QFormLayout.ExpandingFieldsGrow) - self.openlp1Layout.setMargin(0) - self.openlp1Layout.setSpacing(8) - self.openlp1Layout.setObjectName(u'Openlp1Layout') - self.openlp1LocationLabel = QtGui.QLabel(self.openlp1Page) - self.openlp1LocationLabel.setObjectName(u'Openlp1LocationLabel') - self.openlp1Layout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.openlp1LocationLabel) - self.openlp1LocationLayout = QtGui.QHBoxLayout() - self.openlp1LocationLayout.setSpacing(8) - self.openlp1LocationLayout.setObjectName(u'Openlp1LocationLayout') - self.openlp1LocationEdit = QtGui.QLineEdit(self.openlp1Page) - self.openlp1LocationEdit.setObjectName(u'Openlp1LocationEdit') - self.openlp1LocationLayout.addWidget(self.openlp1LocationEdit) - self.openlp1FileButton = QtGui.QToolButton(self.openlp1Page) - self.openlp1FileButton.setMaximumSize(QtCore.QSize(32, 16777215)) - self.openlp1FileButton.setIcon(generalIcon) + self.openSongFileButton = QtGui.QToolButton(self.openSongFileWidget) + self.openSongFileButton.setIcon( + build_icon(u':/general/general_open.png')) + self.openSongFileButton.setObjectName(u'OpenSongFileButton') + self.openSongFileLayout.addWidget(self.openSongFileButton) + self.selectFormLayout.setWidget(4, QtGui.QFormLayout.FieldRole, + self.openSongFileWidget) + self.openlp1FileLabel = QtGui.QLabel(self.selectPage) + self.openlp1FileLabel.setVisible(False) + self.openlp1FileLabel.setObjectName(u'Openlp1FileLabel') + self.selectFormLayout.setWidget(5, QtGui.QFormLayout.LabelRole, + self.openlp1FileLabel) + self.openlp1FileWidget = QtGui.QWidget(self.selectPage) + self.openlp1FileWidget.setVisible(False) + self.openlp1FileWidget.setObjectName(u'Openlp1FileWidget') + self.openlp1FileLayout = QtGui.QHBoxLayout(self.openlp1FileWidget) + self.openlp1FileLayout.setMargin(0) + self.openlp1FileLayout.setObjectName(u'Openlp1FileLayout') + self.openlp1FileEdit = QtGui.QLineEdit(self.openlp1FileWidget) + self.openlp1FileEdit.setObjectName(u'Openlp1FileEdit') + self.openlp1FileLayout.addWidget(self.openlp1FileEdit) + self.openlp1FileButton = QtGui.QToolButton(self.openlp1FileWidget) + self.openlp1FileButton.setIcon( + build_icon(u':/general/general_open.png')) self.openlp1FileButton.setObjectName(u'Openlp1FileButton') - self.openlp1LocationLayout.addWidget(self.openlp1FileButton) - self.openlp1Layout.setLayout(1, QtGui.QFormLayout.FieldRole, - self.openlp1LocationLayout) - self.openlp1DisabledLabel = QtGui.QLabel(self.openlp1Page) - self.openlp1DisabledLabel.setObjectName(u'openlp1DisabledLabel') + self.openlp1FileLayout.addWidget(self.openlp1FileButton) + self.selectFormLayout.setWidget(5, QtGui.QFormLayout.FieldRole, + self.openlp1FileWidget) + self.selectPageLayout.addItem(self.selectFormLayout) + self.openlp1DisabledLabel = QtGui.QLabel(self.selectPage) self.openlp1DisabledLabel.setVisible(False) - self.openlp1DisabledLabel.setWordWrap(True) - self.openlp1Layout.addWidget(self.openlp1DisabledLabel) - self.formatWidget.addWidget(self.openlp1Page) - self.selectPageLayout.addWidget(self.formatWidget) + self.openlp1DisabledLabel.setObjectName(u'Openlp1DisabledLabel') + self.selectPageLayout.addWidget(self.openlp1DisabledLabel) + self.webTabWidget = QtGui.QTabWidget(self.selectPage) + self.webTabWidget.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding, + QtGui.QSizePolicy.MinimumExpanding) + self.webTabWidget.setVisible(False) + self.webTabWidget.setObjectName(u'WebTabWidget') + self.webBibleTab = QtGui.QWidget() + self.webBibleTab.setObjectName(u'WebBibleTab') + self.webBibleLayout = QtGui.QFormLayout(self.webBibleTab) + self.webBibleLayout.setVerticalSpacing(6) + self.webBibleLayout.setObjectName(u'WebBibleLayout') + self.webSourceLabel = QtGui.QLabel(self.webBibleTab) + self.webSourceLabel.setObjectName(u'WebSourceLabel') + self.webBibleLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.webSourceLabel) + self.webSourceComboBox = QtGui.QComboBox(self.webBibleTab) + self.webSourceComboBox.setObjectName(u'WebSourceComboBox') + self.webSourceComboBox.addItem(u'') + self.webSourceComboBox.addItem(u'') + self.webSourceComboBox.addItem(u'') + self.webBibleLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.webSourceComboBox) + self.webTranslationLabel = QtGui.QLabel(self.webBibleTab) + self.webTranslationLabel.setObjectName(u'webTranslationLabel') + self.webBibleLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.webTranslationLabel) + self.webTranslationComboBox = QtGui.QComboBox(self.webBibleTab) + self.webTranslationComboBox.setObjectName(u'WebTranslationComboBox') + self.webTranslationComboBox.addItem(u'') + self.webTranslationComboBox.addItem(u'') + self.webTranslationComboBox.addItem(u'') + self.webBibleLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.webTranslationComboBox) + self.webTabWidget.addTab(self.webBibleTab, u'') + self.webProxyTab = QtGui.QWidget() + self.webProxyTab.setObjectName(u'WebProxyTab') + self.webProxyLayout = QtGui.QFormLayout(self.webProxyTab) + self.webProxyLayout.setVerticalSpacing(6) + self.webProxyLayout.setObjectName(u'WebProxyLayout') + self.webServerLabel = QtGui.QLabel(self.webProxyTab) + self.webServerLabel.setObjectName(u'WebServerLabel') + self.webProxyLayout.setWidget(0, QtGui.QFormLayout.LabelRole, + self.webServerLabel) + self.webServerEdit = QtGui.QLineEdit(self.webProxyTab) + self.webServerEdit.setObjectName(u'WebServerEdit') + self.webProxyLayout.setWidget(0, QtGui.QFormLayout.FieldRole, + self.webServerEdit) + self.webUserLabel = QtGui.QLabel(self.webProxyTab) + self.webUserLabel.setObjectName(u'WebUserLabel') + self.webProxyLayout.setWidget(1, QtGui.QFormLayout.LabelRole, + self.webUserLabel) + self.webUserEdit = QtGui.QLineEdit(self.webProxyTab) + self.webUserEdit.setObjectName(u'WebUserEdit') + self.webProxyLayout.setWidget(1, QtGui.QFormLayout.FieldRole, + self.webUserEdit) + self.webPasswordLabel = QtGui.QLabel(self.webProxyTab) + self.webPasswordLabel.setObjectName(u'WebPasswordLabel') + self.webProxyLayout.setWidget(2, QtGui.QFormLayout.LabelRole, + self.webPasswordLabel) + self.webPasswordEdit = QtGui.QLineEdit(self.webProxyTab) + self.webPasswordEdit.setObjectName(u'WebPasswordEdit') + self.webProxyLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.webPasswordEdit) + self.webTabWidget.addTab(self.webProxyTab, u'') + self.selectPageLayout.addWidget(self.webTabWidget) bibleImportWizard.addPage(self.selectPage) # License page self.licenseDetailsPage = QtGui.QWizardPage() self.licenseDetailsPage.setObjectName(u'LicenseDetailsPage') self.licenseDetailsLayout = QtGui.QFormLayout(self.licenseDetailsPage) - self.licenseDetailsLayout.setMargin(20) - self.licenseDetailsLayout.setSpacing(8) + self.licenseDetailsLayout.setMargin(12) + self.licenseDetailsLayout.setVerticalSpacing(6) self.licenseDetailsLayout.setObjectName(u'LicenseDetailsLayout') self.versionNameLabel = QtGui.QLabel(self.licenseDetailsPage) self.versionNameLabel.setObjectName(u'VersionNameLabel') @@ -324,25 +288,18 @@ class Ui_BibleImportWizard(object): self.importPage = QtGui.QWizardPage() self.importPage.setObjectName(u'ImportPage') self.importLayout = QtGui.QVBoxLayout(self.importPage) - self.importLayout.setSpacing(8) - self.importLayout.setMargin(50) + self.importLayout.setSpacing(6) + self.importLayout.setMargin(48) self.importLayout.setObjectName(u'ImportLayout') self.importProgressLabel = QtGui.QLabel(self.importPage) self.importProgressLabel.setObjectName(u'ImportProgressLabel') self.importLayout.addWidget(self.importProgressLabel) self.importProgressBar = QtGui.QProgressBar(self.importPage) - self.importProgressBar.setValue(0) self.importProgressBar.setObjectName(u'ImportProgressBar') self.importLayout.addWidget(self.importProgressBar) bibleImportWizard.addPage(self.importPage) - self.retranslateUi(bibleImportWizard) - self.formatWidget.setCurrentIndex(0) - self.webDownloadTabWidget.setCurrentIndex(0) - QtCore.QObject.connect(self.formatComboBox, - QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.formatWidget.setCurrentIndex) - QtCore.QMetaObject.connectSlotsByName(bibleImportWizard) + self.webTabWidget.setCurrentIndex(0) def retranslateUi(self, bibleImportWizard): bibleImportWizard.setWindowTitle( @@ -373,37 +330,37 @@ class Ui_BibleImportWizard(object): translate('BiblesPlugin.ImportWizardForm', 'Web Download')) self.formatComboBox.setItemText(4, translate('BiblesPlugin.ImportWizardForm', 'openlp.org 1.x')) - self.openlp1LocationLabel.setText( + self.openlp1FileLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'File location:')) - self.osisLocationLabel.setText( + self.osisFileLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'File location:')) - self.booksLocationLabel.setText( + self.csvBooksLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Books location:')) - self.verseLocationLabel.setText( + self.csvVersesLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Verse location:')) self.openSongFileLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Bible filename:')) - self.locationLabel.setText( + self.webSourceLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Location:')) - self.locationComboBox.setItemText(0, + self.webSourceComboBox.setItemText(0, translate('BiblesPlugin.ImportWizardForm', 'Crosswalk')) - self.locationComboBox.setItemText(1, + self.webSourceComboBox.setItemText(1, translate('BiblesPlugin.ImportWizardForm', 'BibleGateway')) - self.locationComboBox.setItemText(2, + self.webSourceComboBox.setItemText(2, translate('BiblesPlugin.ImportWizardForm', 'Bibleserver')) - self.bibleLabel.setText( + self.webTranslationLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Bible:')) - self.webDownloadTabWidget.setTabText( - self.webDownloadTabWidget.indexOf(self.downloadOptionsTab), + self.webTabWidget.setTabText( + self.webTabWidget.indexOf(self.webBibleTab), translate('BiblesPlugin.ImportWizardForm', 'Download Options')) - self.addressLabel.setText( + self.webServerLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Server:')) - self.usernameLabel.setText( + self.webUserLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Username:')) - self.passwordLabel.setText( + self.webPasswordLabel.setText( translate('BiblesPlugin.ImportWizardForm', 'Password:')) - self.webDownloadTabWidget.setTabText( - self.webDownloadTabWidget.indexOf(self.proxyServerTab), + self.webTabWidget.setTabText( + self.webTabWidget.indexOf(self.webProxyTab), translate('BiblesPlugin.ImportWizardForm', 'Proxy Server (Optional)')) self.licenseDetailsPage.setTitle( From e77ce3ffdb3f2495dc9d1ecaef0178300b826b21 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 26 Dec 2010 11:04:47 +0000 Subject: [PATCH 04/49] Bump values by 1 version or year --- openlp.pyw | 6 +++--- openlp/__init__.py | 6 +++--- openlp/core/__init__.py | 6 +++--- openlp/core/lib/__init__.py | 6 +++--- openlp/core/lib/baselistwithdnd.py | 6 +++--- openlp/core/lib/db.py | 6 +++--- openlp/core/lib/dockwidget.py | 6 +++--- openlp/core/lib/eventreceiver.py | 6 +++--- openlp/core/lib/htmlbuilder.py | 6 +++--- openlp/core/lib/imagemanager.py | 6 +++--- openlp/core/lib/mediamanageritem.py | 6 +++--- openlp/core/lib/plugin.py | 6 +++--- openlp/core/lib/pluginmanager.py | 6 +++--- openlp/core/lib/renderer.py | 6 +++--- openlp/core/lib/rendermanager.py | 6 +++--- openlp/core/lib/serviceitem.py | 6 +++--- openlp/core/lib/settingsmanager.py | 6 +++--- openlp/core/lib/settingstab.py | 6 +++--- openlp/core/lib/spelltextedit.py | 6 +++--- openlp/core/lib/theme.py | 6 +++--- openlp/core/lib/toolbar.py | 6 +++--- openlp/core/theme/__init__.py | 6 +++--- openlp/core/theme/theme.py | 6 +++--- openlp/core/ui/__init__.py | 6 +++--- openlp/core/ui/aboutdialog.py | 11 +++++------ openlp/core/ui/aboutform.py | 6 +++--- openlp/core/ui/advancedtab.py | 6 +++--- openlp/core/ui/exceptiondialog.py | 6 +++--- openlp/core/ui/exceptionform.py | 6 +++--- openlp/core/ui/filerenamedialog.py | 6 +++--- openlp/core/ui/filerenameform.py | 6 +++--- openlp/core/ui/generaltab.py | 6 +++--- openlp/core/ui/maindisplay.py | 5 ++--- openlp/core/ui/mainwindow.py | 6 +++--- openlp/core/ui/mediadockmanager.py | 6 +++--- openlp/core/ui/plugindialog.py | 5 ++--- openlp/core/ui/pluginform.py | 6 +++--- openlp/core/ui/screen.py | 6 +++--- openlp/core/ui/serviceitemeditdialog.py | 6 +++--- openlp/core/ui/serviceitemeditform.py | 6 +++--- openlp/core/ui/servicemanager.py | 6 +++--- openlp/core/ui/servicenotedialog.py | 6 +++--- openlp/core/ui/servicenoteform.py | 6 +++--- openlp/core/ui/settingsdialog.py | 6 +++--- openlp/core/ui/settingsform.py | 6 +++--- openlp/core/ui/shortcutlistdialog.py | 5 ++--- openlp/core/ui/shortcutlistform.py | 5 ++--- openlp/core/ui/slidecontroller.py | 6 +++--- openlp/core/ui/splashscreen.py | 6 +++--- openlp/core/ui/themeform.py | 6 +++--- openlp/core/ui/thememanager.py | 6 +++--- openlp/core/ui/themestab.py | 6 +++--- openlp/core/ui/themewizard.py | 6 +++--- openlp/core/utils/__init__.py | 6 +++--- openlp/core/utils/actions.py | 6 +++--- openlp/core/utils/languagemanager.py | 6 +++--- openlp/plugins/__init__.py | 6 +++--- openlp/plugins/alerts/__init__.py | 6 +++--- openlp/plugins/alerts/alertsplugin.py | 8 ++++---- openlp/plugins/alerts/forms/__init__.py | 6 +++--- openlp/plugins/alerts/forms/alertdialog.py | 6 +++--- openlp/plugins/alerts/forms/alertform.py | 6 +++--- openlp/plugins/alerts/lib/__init__.py | 6 +++--- openlp/plugins/alerts/lib/alertsmanager.py | 6 +++--- openlp/plugins/alerts/lib/alertstab.py | 6 +++--- openlp/plugins/alerts/lib/db.py | 6 +++--- openlp/plugins/bibles/__init__.py | 6 +++--- openlp/plugins/bibles/bibleplugin.py | 8 ++++---- openlp/plugins/bibles/forms/__init__.py | 6 +++--- openlp/plugins/bibles/forms/bibleimportform.py | 6 +++--- openlp/plugins/bibles/forms/bibleimportwizard.py | 6 +++--- openlp/plugins/bibles/lib/__init__.py | 6 +++--- openlp/plugins/bibles/lib/biblestab.py | 6 +++--- openlp/plugins/bibles/lib/csvbible.py | 6 +++--- openlp/plugins/bibles/lib/db.py | 6 +++--- openlp/plugins/bibles/lib/http.py | 6 +++--- openlp/plugins/bibles/lib/manager.py | 5 ++--- openlp/plugins/bibles/lib/mediaitem.py | 6 +++--- openlp/plugins/bibles/lib/openlp1.py | 6 +++--- openlp/plugins/bibles/lib/opensong.py | 6 +++--- openlp/plugins/bibles/lib/osis.py | 6 +++--- openlp/plugins/custom/__init__.py | 6 +++--- openlp/plugins/custom/customplugin.py | 8 ++++---- openlp/plugins/custom/forms/__init__.py | 6 +++--- openlp/plugins/custom/forms/editcustomdialog.py | 6 +++--- openlp/plugins/custom/forms/editcustomform.py | 6 +++--- openlp/plugins/custom/forms/editcustomslidedialog.py | 6 +++--- openlp/plugins/custom/forms/editcustomslideform.py | 6 +++--- openlp/plugins/custom/lib/__init__.py | 6 +++--- openlp/plugins/custom/lib/customtab.py | 6 +++--- openlp/plugins/custom/lib/customxmlhandler.py | 6 +++--- openlp/plugins/custom/lib/db.py | 6 +++--- openlp/plugins/custom/lib/mediaitem.py | 6 +++--- openlp/plugins/images/__init__.py | 6 +++--- openlp/plugins/images/imageplugin.py | 4 ++-- openlp/plugins/images/lib/__init__.py | 6 +++--- openlp/plugins/images/lib/mediaitem.py | 6 +++--- openlp/plugins/media/__init__.py | 6 +++--- openlp/plugins/media/lib/__init__.py | 6 +++--- openlp/plugins/media/lib/mediaitem.py | 6 +++--- openlp/plugins/media/lib/mediatab.py | 6 +++--- openlp/plugins/media/mediaplugin.py | 8 ++++---- openlp/plugins/presentations/__init__.py | 6 +++--- openlp/plugins/presentations/lib/__init__.py | 6 +++--- openlp/plugins/presentations/lib/impresscontroller.py | 6 +++--- openlp/plugins/presentations/lib/mediaitem.py | 6 +++--- openlp/plugins/presentations/lib/messagelistener.py | 6 +++--- .../plugins/presentations/lib/powerpointcontroller.py | 6 +++--- openlp/plugins/presentations/lib/pptviewcontroller.py | 6 +++--- .../plugins/presentations/lib/pptviewlib/ppttest.py | 4 ++-- .../presentations/lib/presentationcontroller.py | 6 +++--- openlp/plugins/presentations/lib/presentationtab.py | 6 +++--- openlp/plugins/presentations/presentationplugin.py | 8 ++++---- openlp/plugins/remotes/__init__.py | 6 +++--- openlp/plugins/remotes/lib/__init__.py | 6 +++--- openlp/plugins/remotes/lib/httpserver.py | 6 +++--- openlp/plugins/remotes/lib/remotetab.py | 6 +++--- openlp/plugins/remotes/remoteplugin.py | 8 ++++---- openlp/plugins/songs/__init__.py | 6 +++--- openlp/plugins/songs/forms/__init__.py | 6 +++--- openlp/plugins/songs/forms/authorsdialog.py | 6 +++--- openlp/plugins/songs/forms/authorsform.py | 6 +++--- openlp/plugins/songs/forms/editsongdialog.py | 6 +++--- openlp/plugins/songs/forms/editsongform.py | 6 +++--- openlp/plugins/songs/forms/editversedialog.py | 6 +++--- openlp/plugins/songs/forms/editverseform.py | 6 +++--- openlp/plugins/songs/forms/songbookdialog.py | 6 +++--- openlp/plugins/songs/forms/songbookform.py | 6 +++--- openlp/plugins/songs/forms/songimportform.py | 6 +++--- openlp/plugins/songs/forms/songimportwizard.py | 6 +++--- openlp/plugins/songs/forms/songmaintenancedialog.py | 6 +++--- openlp/plugins/songs/forms/songmaintenanceform.py | 6 +++--- openlp/plugins/songs/forms/topicsdialog.py | 6 +++--- openlp/plugins/songs/forms/topicsform.py | 6 +++--- openlp/plugins/songs/lib/__init__.py | 6 +++--- openlp/plugins/songs/lib/cclifileimport.py | 6 +++--- openlp/plugins/songs/lib/db.py | 6 +++--- openlp/plugins/songs/lib/ewimport.py | 6 +++--- openlp/plugins/songs/lib/importer.py | 6 +++--- openlp/plugins/songs/lib/mediaitem.py | 6 +++--- openlp/plugins/songs/lib/olp1import.py | 6 +++--- openlp/plugins/songs/lib/olpimport.py | 6 +++--- openlp/plugins/songs/lib/oooimport.py | 6 +++--- openlp/plugins/songs/lib/opensongimport.py | 6 +++--- openlp/plugins/songs/lib/sofimport.py | 6 +++--- openlp/plugins/songs/lib/songbeamerimport.py | 6 +++--- openlp/plugins/songs/lib/songimport.py | 6 +++--- openlp/plugins/songs/lib/songstab.py | 6 +++--- openlp/plugins/songs/lib/wowimport.py | 5 ++--- openlp/plugins/songs/lib/xml.py | 6 +++--- openlp/plugins/songs/songsplugin.py | 9 ++++----- openlp/plugins/songusage/__init__.py | 6 +++--- openlp/plugins/songusage/forms/__init__.py | 6 +++--- .../plugins/songusage/forms/songusagedeletedialog.py | 6 +++--- openlp/plugins/songusage/forms/songusagedeleteform.py | 6 +++--- .../plugins/songusage/forms/songusagedetaildialog.py | 6 +++--- openlp/plugins/songusage/forms/songusagedetailform.py | 6 +++--- openlp/plugins/songusage/lib/__init__.py | 6 +++--- openlp/plugins/songusage/lib/db.py | 6 +++--- openlp/plugins/songusage/songusageplugin.py | 8 ++++---- setup.py | 6 +++--- 161 files changed, 485 insertions(+), 493 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 17743903f..8cc7a16a6 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -5,8 +5,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -264,4 +264,4 @@ if __name__ == u'__main__': """ Instantiate and run the application. """ - main() + main() \ No newline at end of file diff --git a/openlp/__init__.py b/openlp/__init__.py index f22f0ef70..b88547df6 100644 --- a/openlp/__init__.py +++ b/openlp/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -25,4 +25,4 @@ ############################################################################### """ The :mod:`openlp` module contains all the project produced OpenLP functionality -""" +""" \ No newline at end of file diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index a6cfa60c7..17db85184 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -28,4 +28,4 @@ The :mod:`core` module provides all core application functions All the core functions of the OpenLP application including the GUI, settings, logging and a plugin framework are contained within the openlp.core module. -""" +""" \ No newline at end of file diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 956b6c787..99255c6ee 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -325,4 +325,4 @@ from dockwidget import OpenLPDockWidget from renderer import Renderer from rendermanager import RenderManager from mediamanageritem import MediaManagerItem -from baselistwithdnd import BaseListWithDnD +from baselistwithdnd import BaseListWithDnD \ No newline at end of file diff --git a/openlp/core/lib/baselistwithdnd.py b/openlp/core/lib/baselistwithdnd.py index 2ad500e9e..86535f6e7 100644 --- a/openlp/core/lib/baselistwithdnd.py +++ b/openlp/core/lib/baselistwithdnd.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -52,4 +52,4 @@ class BaseListWithDnD(QtGui.QListWidget): mimeData = QtCore.QMimeData() drag.setMimeData(mimeData) mimeData.setText(self.PluginName) - drag.start(QtCore.Qt.CopyAction) + drag.start(QtCore.Qt.CopyAction) \ No newline at end of file diff --git a/openlp/core/lib/db.py b/openlp/core/lib/db.py index 8afa02111..c2e1243ce 100644 --- a/openlp/core/lib/db.py +++ b/openlp/core/lib/db.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -295,4 +295,4 @@ class Manager(object): if self.is_dirty: engine = create_engine(self.db_url) if self.db_url.startswith(u'sqlite'): - engine.execute("vacuum") + engine.execute("vacuum") \ No newline at end of file diff --git a/openlp/core/lib/dockwidget.py b/openlp/core/lib/dockwidget.py index 15fd74ebc..a66d9e8e3 100644 --- a/openlp/core/lib/dockwidget.py +++ b/openlp/core/lib/dockwidget.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -46,4 +46,4 @@ class OpenLPDockWidget(QtGui.QDockWidget): if name: self.setObjectName(name) self.setFloating(False) - log.debug(u'Init done') + log.debug(u'Init done') \ No newline at end of file diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index 1080cd2f5..4f69c519f 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -278,4 +278,4 @@ class Receiver(object): """ Get the global ``eventreceiver`` instance. """ - return Receiver.eventreceiver + return Receiver.eventreceiver \ No newline at end of file diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py index 9bbaa65d1..0a26382f8 100644 --- a/openlp/core/lib/htmlbuilder.py +++ b/openlp/core/lib/htmlbuilder.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -641,4 +641,4 @@ def build_alert_css(alertTab, width): align = u'top' alert = style % (width, align, alertTab.font_face, alertTab.font_size, alertTab.font_color, alertTab.bg_color) - return alert + return alert \ No newline at end of file diff --git a/openlp/core/lib/imagemanager.py b/openlp/core/lib/imagemanager.py index 14de141fc..0be1a01c8 100644 --- a/openlp/core/lib/imagemanager.py +++ b/openlp/core/lib/imagemanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -165,4 +165,4 @@ class ImageManager(QtCore.QObject): image = self._cache[key] if image.dirty: image.image_bytes = image_to_byte(image.image) - image.dirty = False + image.dirty = False \ No newline at end of file diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index acf24ae22..50e43afd0 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -544,4 +544,4 @@ class MediaManagerItem(QtGui.QWidget): Method to add processing when a service has been loaded and individual service items need to be processed by the plugins """ - pass + pass \ No newline at end of file diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index f73b58735..8bc5fdb96 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -314,4 +314,4 @@ class Plugin(QtCore.QObject): """ Called to define all translatable texts of the plugin """ - pass + pass \ No newline at end of file diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index 362d8c197..8081cbf71 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -221,4 +221,4 @@ class PluginManager(object): for plugin in self.plugins: if plugin.isActive(): plugin.finalise() - log.info(u'Finalisation Complete for %s ' % plugin.name) + log.info(u'Finalisation Complete for %s ' % plugin.name) \ No newline at end of file diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 68839f16d..fe118b76b 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -144,4 +144,4 @@ class Renderer(object): html_text = html_text[:len(html_text)-4] formatted.append(html_text) log.debug(u'format_slide - End') - return formatted + return formatted \ No newline at end of file diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index f448217ee..5896ca4e6 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -261,4 +261,4 @@ class RenderManager(object): log.debug(u'calculate default %d, %d, %f', self.width, self.height, self.screen_ratio ) # 90% is start of footer - self.footer_start = int(self.height * 0.90) + self.footer_start = int(self.height * 0.90) \ No newline at end of file diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 9b4a035a5..271d3107e 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -397,4 +397,4 @@ class ServiceItem(object): """ Returns the path of the raw frame """ - return self._raw_frames[row][u'path'] + return self._raw_frames[row][u'path'] \ No newline at end of file diff --git a/openlp/core/lib/settingsmanager.py b/openlp/core/lib/settingsmanager.py index 8d249d2cd..d13108b2e 100644 --- a/openlp/core/lib/settingsmanager.py +++ b/openlp/core/lib/settingsmanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -178,4 +178,4 @@ class SettingsManager(object): if extension == os.path.splitext(filename)[1]] else: # no filtering required - return files + return files \ No newline at end of file diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py index 048751006..518080368 100644 --- a/openlp/core/lib/settingstab.py +++ b/openlp/core/lib/settingstab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -95,4 +95,4 @@ class SettingsTab(QtGui.QWidget): Indicates if called before or after updates. """ - pass + pass \ No newline at end of file diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py index 76271b6a7..ebd4046c0 100644 --- a/openlp/core/lib/spelltextedit.py +++ b/openlp/core/lib/spelltextedit.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -158,4 +158,4 @@ class SpellAction(QtGui.QAction): def __init__(self, *args): QtGui.QAction.__init__(self, *args) self.triggered.connect(lambda x: self.correct.emit( - unicode(self.text()))) + unicode(self.text()))) \ No newline at end of file diff --git a/openlp/core/lib/theme.py b/openlp/core/lib/theme.py index 130eb817d..1e4a9854e 100644 --- a/openlp/core/lib/theme.py +++ b/openlp/core/lib/theme.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -598,4 +598,4 @@ class ThemeXML(object): self.font_footer_shadow_size) self.add_display(self.display_horizontal_align, self.display_vertical_align, - self.display_slide_transition) + self.display_slide_transition) \ No newline at end of file diff --git a/openlp/core/lib/toolbar.py b/openlp/core/lib/toolbar.py index a98edab9a..e37dc6f22 100644 --- a/openlp/core/lib/toolbar.py +++ b/openlp/core/lib/toolbar.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -154,4 +154,4 @@ class OpenLPToolbar(QtGui.QToolBar): push_button.setCheckable(True) push_button.setFlat(True) self.addWidget(push_button) - return push_button + return push_button \ No newline at end of file diff --git a/openlp/core/theme/__init__.py b/openlp/core/theme/__init__.py index 4ffcb2813..350b550a2 100644 --- a/openlp/core/theme/__init__.py +++ b/openlp/core/theme/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -24,4 +24,4 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from openlp.core.theme.theme import Theme +from openlp.core.theme.theme import Theme \ No newline at end of file diff --git a/openlp/core/theme/theme.py b/openlp/core/theme/theme.py index 52dda1631..f3dabca5e 100644 --- a/openlp/core/theme/theme.py +++ b/openlp/core/theme/theme.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -222,4 +222,4 @@ class Theme(object): for key in dir(self): if key[0:1] != u'_': theme_strings.append(u'%30s : %s' % (key, getattr(self, key))) - return u'\n'.join(theme_strings) + return u'\n'.join(theme_strings) \ No newline at end of file diff --git a/openlp/core/ui/__init__.py b/openlp/core/ui/__init__.py index 377999553..c806730c8 100644 --- a/openlp/core/ui/__init__.py +++ b/openlp/core/ui/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -58,4 +58,4 @@ from thememanager import ThemeManager __all__ = ['SplashScreen', 'AboutForm', 'SettingsForm', 'MainDisplay', 'SlideController', 'ServiceManager', 'ThemeManager', - 'MediaDockManager', 'ServiceItemEditForm'] + 'MediaDockManager', 'ServiceItemEditForm'] \ No newline at end of file diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py index 401560cf0..430ca406d 100644 --- a/openlp/core/ui/aboutdialog.py +++ b/openlp/core/ui/aboutdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -182,8 +182,8 @@ class Ui_AboutDialog(object): self.aboutNotebook.indexOf(self.creditsTab), translate('OpenLP.AboutForm', 'Credits')) self.licenseTextEdit.setPlainText(translate('OpenLP.AboutForm', - 'Copyright \xa9 2004-2010 Raoul Snyman\n' - 'Portions copyright \xa9 2004-2010 ' + 'Copyright \xa9 2004-2011 Raoul Snyman\n' + 'Portions copyright \xa9 2004-2011 ' 'Tim Bentley, Jonathan Corwin, Michael Gorven, Scott Guerrieri, ' 'Christian Richter, Maikel Stuivenberg, Martin Thompson, Jon ' 'Tibble, Carsten Tinggaard\n' @@ -575,5 +575,4 @@ class Ui_AboutDialog(object): translate('OpenLP.AboutForm', 'License')) self.contributeButton.setText(translate('OpenLP.AboutForm', 'Contribute')) - self.closeButton.setText(translate('OpenLP.AboutForm', 'Close')) - + self.closeButton.setText(translate('OpenLP.AboutForm', 'Close')) \ No newline at end of file diff --git a/openlp/core/ui/aboutform.py b/openlp/core/ui/aboutform.py index 3b49ff274..f3fcc18a8 100644 --- a/openlp/core/ui/aboutform.py +++ b/openlp/core/ui/aboutform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -61,4 +61,4 @@ class AboutForm(QtGui.QDialog, Ui_AboutDialog): import webbrowser url = u'http://www.openlp.org/en/documentation/introduction/' \ + u'contributing.html' - webbrowser.open_new(url) + webbrowser.open_new(url) \ No newline at end of file diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index df3add595..0a8547837 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -204,4 +204,4 @@ class AdvancedTab(SettingsTab): """ self.sharedLabel.setEnabled(checked) self.sharedTextEdit.setEnabled(checked) - self.sharedPushButton.setEnabled(checked) + self.sharedPushButton.setEnabled(checked) \ No newline at end of file diff --git a/openlp/core/ui/exceptiondialog.py b/openlp/core/ui/exceptiondialog.py index 03bbde764..eaed502b3 100644 --- a/openlp/core/ui/exceptiondialog.py +++ b/openlp/core/ui/exceptiondialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -98,4 +98,4 @@ class Ui_ExceptionDialog(object): self.sendReportButton.setText(translate('OpenLP.ExceptionDialog', 'Send E-Mail')) self.saveReportButton.setText(translate('OpenLP.ExceptionDialog', - 'Save to File')) + 'Save to File')) \ No newline at end of file diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py index 3e05ad73a..90a54e12e 100644 --- a/openlp/core/ui/exceptionform.py +++ b/openlp/core/ui/exceptionform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -144,4 +144,4 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): exception = line.split(u'\n')[-1].split(u':')[0] subject = u'Bug report: %s in %s' % (exception, source) mailto(address=u'bugs@openlp.org', subject=subject, - body=body % content) + body=body % content) \ No newline at end of file diff --git a/openlp/core/ui/filerenamedialog.py b/openlp/core/ui/filerenamedialog.py index 8bc804bb3..47d301dd9 100644 --- a/openlp/core/ui/filerenamedialog.py +++ b/openlp/core/ui/filerenamedialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -54,4 +54,4 @@ class Ui_FileRenameDialog(object): def retranslateUi(self, FileRenameDialog): self.fileRenameLabel.setText(translate('OpenLP.FileRenameForm', - 'New File Name:')) + 'New File Name:')) \ No newline at end of file diff --git a/openlp/core/ui/filerenameform.py b/openlp/core/ui/filerenameform.py index 422d7ecb8..9ff310030 100644 --- a/openlp/core/ui/filerenameform.py +++ b/openlp/core/ui/filerenameform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -52,4 +52,4 @@ class FileRenameForm(QtGui.QDialog, Ui_FileRenameDialog): else: self.setWindowTitle(translate('OpenLP.FileRenameForm', 'File Rename')) - return QtGui.QDialog.exec_(self) + return QtGui.QDialog.exec_(self) \ No newline at end of file diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index f9b9f71cb..8c56648c8 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -530,4 +530,4 @@ class GeneralTab(SettingsTab): """ Called when the width, height, x position or y position has changed. """ - self.overrideChanged = True + self.overrideChanged = True \ No newline at end of file diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 69eb9305d..2028e7f30 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -541,4 +541,3 @@ class AudioPlayer(QtCore.QObject): """ log.debug(u'AudioPlayer Reached end of media playlist') self.mediaObject.clearQueue() - diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index ed06877e5..50953dc08 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -1009,4 +1009,4 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.recentFiles.insert(0, QtCore.QString(filename)) while self.recentFiles.count() > maxRecentFiles: # Don't care what API says takeLast works, removeLast doesn't! - self.recentFiles.takeLast() + self.recentFiles.takeLast() \ No newline at end of file diff --git a/openlp/core/ui/mediadockmanager.py b/openlp/core/ui/mediadockmanager.py index c49d7fab3..ced3850ec 100644 --- a/openlp/core/ui/mediadockmanager.py +++ b/openlp/core/ui/mediadockmanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -85,4 +85,4 @@ class MediaDockManager(object): if self.media_dock.widget(dock_index).settingsSection == \ media_item.plugin.name.lower(): self.media_dock.widget(dock_index).hide() - self.media_dock.removeItem(dock_index) + self.media_dock.removeItem(dock_index) \ No newline at end of file diff --git a/openlp/core/ui/plugindialog.py b/openlp/core/ui/plugindialog.py index 45305d75c..63d7ae014 100644 --- a/openlp/core/ui/plugindialog.py +++ b/openlp/core/ui/plugindialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -114,4 +114,3 @@ class Ui_PluginViewDialog(object): translate('OpenLP.PluginForm', 'Active')) self.statusComboBox.setItemText(1, translate('OpenLP.PluginForm', 'Inactive')) - diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index f3caf67a8..dfefef476 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -142,4 +142,4 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): translate('OpenLP.PluginForm', '%s (Disabled)')) name_string = self.activePlugin.getString(StringContent.Name) self.pluginListWidget.currentItem().setText( - status_text % name_string[u'singular']) + status_text % name_string[u'singular']) \ No newline at end of file diff --git a/openlp/core/ui/screen.py b/openlp/core/ui/screen.py index 1d4ad8c48..430426fd5 100644 --- a/openlp/core/ui/screen.py +++ b/openlp/core/ui/screen.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -99,4 +99,4 @@ class ScreenList(object): user wants to use the correct screen attributes """ log.debug(u'reset_current_display') - self.set_current_display(self.current_display) + self.set_current_display(self.current_display) \ No newline at end of file diff --git a/openlp/core/ui/serviceitemeditdialog.py b/openlp/core/ui/serviceitemeditdialog.py index 215cc6146..19639a7c2 100644 --- a/openlp/core/ui/serviceitemeditdialog.py +++ b/openlp/core/ui/serviceitemeditdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -82,4 +82,4 @@ class Ui_ServiceItemEditDialog(object): serviceItemEditDialog.setWindowTitle( translate('OpenLP.ServiceItemEditForm', 'Reorder Service Item')) self.deleteButton.setText(translate('OpenLP.ServiceItemEditForm', - 'Delete')) + 'Delete')) \ No newline at end of file diff --git a/openlp/core/ui/serviceitemeditform.py b/openlp/core/ui/serviceitemeditform.py index e57474315..6516fa40f 100644 --- a/openlp/core/ui/serviceitemeditform.py +++ b/openlp/core/ui/serviceitemeditform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -122,4 +122,4 @@ class ServiceItemEditForm(QtGui.QDialog, Ui_ServiceItemEditDialog): self.itemList.remove(self.itemList[row]) self.itemList.insert(row + 1, temp) self.loadData() - self.listWidget.setCurrentRow(row + 1) + self.listWidget.setCurrentRow(row + 1) \ No newline at end of file diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 32e46dffb..e2c1a765b 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -1119,4 +1119,4 @@ class ServiceManager(QtGui.QWidget): data_item[u'notes'] = unicode(service_item.notes) data_item[u'selected'] = (item == curitem) data.append(data_item) - Receiver.send_message(u'servicemanager_list_response', data) + Receiver.send_message(u'servicemanager_list_response', data) \ No newline at end of file diff --git a/openlp/core/ui/servicenotedialog.py b/openlp/core/ui/servicenotedialog.py index 899db64be..eb3aba9d4 100644 --- a/openlp/core/ui/servicenotedialog.py +++ b/openlp/core/ui/servicenotedialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -50,4 +50,4 @@ class Ui_ServiceNoteEdit(object): def retranslateUi(self, serviceNoteEdit): serviceNoteEdit.setWindowTitle( - translate('OpenLP.ServiceNoteForm', 'Service Item Notes')) + translate('OpenLP.ServiceNoteForm', 'Service Item Notes')) \ No newline at end of file diff --git a/openlp/core/ui/servicenoteform.py b/openlp/core/ui/servicenoteform.py index a453c863e..de689e842 100644 --- a/openlp/core/ui/servicenoteform.py +++ b/openlp/core/ui/servicenoteform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -41,4 +41,4 @@ class ServiceNoteForm(QtGui.QDialog, Ui_ServiceNoteEdit): QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'accepted()'), self.accept) QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL(u'rejected()'), - self.reject) + self.reject) \ No newline at end of file diff --git a/openlp/core/ui/settingsdialog.py b/openlp/core/ui/settingsdialog.py index 93b4e6141..d4bc8e110 100644 --- a/openlp/core/ui/settingsdialog.py +++ b/openlp/core/ui/settingsdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -65,4 +65,4 @@ class Ui_SettingsDialog(object): def retranslateUi(self, settingsDialog): settingsDialog.setWindowTitle(translate('OpenLP.SettingsForm', - 'Configure OpenLP')) + 'Configure OpenLP')) \ No newline at end of file diff --git a/openlp/core/ui/settingsform.py b/openlp/core/ui/settingsform.py index d1cf19622..86e3c6150 100644 --- a/openlp/core/ui/settingsform.py +++ b/openlp/core/ui/settingsform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -98,4 +98,4 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog): Run any post-setup code for the tabs on the form """ for tabIndex in range(0, self.settingsTabWidget.count()): - self.settingsTabWidget.widget(tabIndex).postSetUp() + self.settingsTabWidget.widget(tabIndex).postSetUp() \ No newline at end of file diff --git a/openlp/core/ui/shortcutlistdialog.py b/openlp/core/ui/shortcutlistdialog.py index d64f4e2fc..f66772d9b 100644 --- a/openlp/core/ui/shortcutlistdialog.py +++ b/openlp/core/ui/shortcutlistdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -111,4 +111,3 @@ class Ui_ShortcutListDialog(object): translate('OpenLP.ShortcutListDialog', 'Custom:')) self.shortcutPushButton.setText( translate('OpenLP.ShortcutListDialog', 'None')) - diff --git a/openlp/core/ui/shortcutlistform.py b/openlp/core/ui/shortcutlistform.py index e83c2cc7d..0d9a4bab3 100644 --- a/openlp/core/ui/shortcutlistform.py +++ b/openlp/core/ui/shortcutlistform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -107,4 +107,3 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): def onShortcutPushButtonClicked(self, toggled): self.captureShortcut = toggled - diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 8cf0752e2..be1fcd44a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -1033,4 +1033,4 @@ class SlideController(QtGui.QWidget): self.mediaObject.clearQueue() self.video.hide() self.SlidePreview.clear() - self.SlidePreview.show() + self.SlidePreview.show() \ No newline at end of file diff --git a/openlp/core/ui/splashscreen.py b/openlp/core/ui/splashscreen.py index 95fdba841..53546a6dd 100644 --- a/openlp/core/ui/splashscreen.py +++ b/openlp/core/ui/splashscreen.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -55,4 +55,4 @@ class SplashScreen(object): self.splash_screen.show() def finish(self, widget): - self.splash_screen.finish(widget) + self.splash_screen.finish(widget) \ No newline at end of file diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 7ed58e943..c7854e187 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -620,4 +620,4 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QColor(field), self) if new_color.isValid(): field = new_color.name() - return field + return field \ No newline at end of file diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 477b07422..82d7c4b0e 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -795,4 +795,4 @@ class ThemeManager(QtGui.QWidget): unicode(translate('OpenLP.ThemeManager', 'Theme %s is used by the service manager.')) % theme) return False - return True + return True \ No newline at end of file diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index 294d521dc..21df94d9d 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -212,4 +212,4 @@ class ThemesTab(SettingsTab): if not preview.isNull(): preview = preview.scaled(300, 255, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) - self.DefaultListView.setPixmap(preview) + self.DefaultListView.setPixmap(preview) \ No newline at end of file diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index d86792af4..60649ca47 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -761,4 +761,4 @@ class Ui_ThemeWizard(object): 'replacing the current one or change the name to create a ' 'new theme')) self.themeNameLabel.setText( - translate('OpenLP.ThemeWizard', 'Theme name:')) + translate('OpenLP.ThemeWizard', 'Theme name:')) \ No newline at end of file diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 23f77291c..ff354b1c6 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -279,4 +279,4 @@ from languagemanager import LanguageManager from actions import ActionList __all__ = [u'AppLocation', u'check_latest_version', u'add_actions', - u'get_filesystem_encoding', u'LanguageManager', u'ActionList'] + u'get_filesystem_encoding', u'LanguageManager', u'ActionList'] \ No newline at end of file diff --git a/openlp/core/utils/actions.py b/openlp/core/utils/actions.py index 31afe93d1..4434c416e 100644 --- a/openlp/core/utils/actions.py +++ b/openlp/core/utils/actions.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -181,4 +181,4 @@ class ActionList(object): if weight is None: self.categories[category].actions.append(action) else: - self.categories[category].actions.add(action, weight) + self.categories[category].actions.add(action, weight) \ No newline at end of file diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 187834beb..76c584bb3 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -143,4 +143,4 @@ class LanguageManager(object): """ if not LanguageManager.__qm_list__: LanguageManager.init_qm_list() - return LanguageManager.__qm_list__ + return LanguageManager.__qm_list__ \ No newline at end of file diff --git a/openlp/plugins/__init__.py b/openlp/plugins/__init__.py index 258707016..7bf441119 100644 --- a/openlp/plugins/__init__.py +++ b/openlp/plugins/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -25,4 +25,4 @@ ############################################################################### """ The :mod:`plugins` module provides all the project produced plugins -""" +""" \ No newline at end of file diff --git a/openlp/plugins/alerts/__init__.py b/openlp/plugins/alerts/__init__.py index bb06bffb0..dafae0885 100644 --- a/openlp/plugins/alerts/__init__.py +++ b/openlp/plugins/alerts/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -26,4 +26,4 @@ """ The :mod:`alerts` module provides the Alerts plugin for producing impromptu on-screen announcements during a service. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index fbd51a13a..277a3903a 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -40,7 +40,7 @@ class AlertsPlugin(Plugin): log.info(u'Alerts Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Alerts', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'Alerts', u'1.9.4', plugin_helpers) self.weight = -3 self.icon = build_icon(u':/plugins/plugin_alerts.png') self.alertsmanager = AlertsManager(self) @@ -120,4 +120,4 @@ class AlertsPlugin(Plugin): ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { u'title': translate('AlertsPlugin', 'Alerts') - } + } \ No newline at end of file diff --git a/openlp/plugins/alerts/forms/__init__.py b/openlp/plugins/alerts/forms/__init__.py index 0eb49be15..da7ae6683 100644 --- a/openlp/plugins/alerts/forms/__init__.py +++ b/openlp/plugins/alerts/forms/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -24,4 +24,4 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from alertform import AlertForm +from alertform import AlertForm \ No newline at end of file diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index 24cc4317b..ac0a5ebc8 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -140,4 +140,4 @@ class Ui_AlertDialog(object): self.DisplayCloseButton.setText( translate('AlertsPlugin.AlertForm', 'Display && Cl&ose')) self.CloseButton.setText( - translate('AlertsPlugin.AlertForm', '&Close')) + translate('AlertsPlugin.AlertForm', '&Close')) \ No newline at end of file diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index cf9c86c27..8e0d808a0 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -193,4 +193,4 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): text = text.replace(u'<>', unicode(self.ParameterEdit.text())) self.parent.alertsmanager.displayAlert(text) return True - return False + return False \ No newline at end of file diff --git a/openlp/plugins/alerts/lib/__init__.py b/openlp/plugins/alerts/lib/__init__.py index 722ee0c3d..f6a535b1b 100644 --- a/openlp/plugins/alerts/lib/__init__.py +++ b/openlp/plugins/alerts/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -25,4 +25,4 @@ ############################################################################### from alertsmanager import AlertsManager -from alertstab import AlertsTab +from alertstab import AlertsTab \ No newline at end of file diff --git a/openlp/plugins/alerts/lib/alertsmanager.py b/openlp/plugins/alerts/lib/alertsmanager.py index 0f2eb4ec7..6fe0ae132 100644 --- a/openlp/plugins/alerts/lib/alertsmanager.py +++ b/openlp/plugins/alerts/lib/alertsmanager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -103,4 +103,4 @@ class AlertsManager(QtCore.QObject): self.parent.liveController.display.alert(u'') self.killTimer(self.timer_id) self.timer_id = 0 - self.generateAlert() + self.generateAlert() \ No newline at end of file diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 625287603..4186627d8 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -294,4 +294,4 @@ class AlertsTab(SettingsTab): font.setPointSize(self.font_size) self.FontPreview.setFont(font) self.FontPreview.setStyleSheet(u'background-color: %s; color: %s' % - (self.bg_color, self.font_color)) + (self.bg_color, self.font_color)) \ No newline at end of file diff --git a/openlp/plugins/alerts/lib/db.py b/openlp/plugins/alerts/lib/db.py index e71007c28..e324bc838 100644 --- a/openlp/plugins/alerts/lib/db.py +++ b/openlp/plugins/alerts/lib/db.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -55,4 +55,4 @@ def init_schema(url): mapper(AlertItem, alerts_table) metadata.create_all(checkfirst=True) - return session + return session \ No newline at end of file diff --git a/openlp/plugins/bibles/__init__.py b/openlp/plugins/bibles/__init__.py index a1e8f5a51..59cd2afec 100644 --- a/openlp/plugins/bibles/__init__.py +++ b/openlp/plugins/bibles/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -26,4 +26,4 @@ """ The :mod:`bibles` module provides the Bible plugin to enable OpenLP to display scripture. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 42976cde6..3e8dc82ee 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -37,7 +37,7 @@ class BiblePlugin(Plugin): log.info(u'Bible Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Bibles', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'Bibles', u'1.9.4', plugin_helpers) self.weight = -9 self.icon_path = u':/plugins/plugin_bibles.png' self.icon = build_icon(self.icon_path) @@ -175,4 +175,4 @@ class BiblePlugin(Plugin): u'title': translate('BiblesPlugin', 'Service'), u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/bibles/forms/__init__.py b/openlp/plugins/bibles/forms/__init__.py index e5d0317c5..1365dc5e0 100644 --- a/openlp/plugins/bibles/forms/__init__.py +++ b/openlp/plugins/bibles/forms/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -53,4 +53,4 @@ from the .ui files later if necessary. from bibleimportform import BibleImportForm -__all__ = ['BibleImportForm'] +__all__ = ['BibleImportForm'] \ No newline at end of file diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 0cc62074c..1fce74902 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -538,4 +538,4 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.importProgressBar.setValue(self.importProgressBar.maximum()) self.finishButton.setVisible(True) self.cancelButton.setVisible(False) - Receiver.send_message(u'openlp_process_events') + Receiver.send_message(u'openlp_process_events') \ No newline at end of file diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index a0b2b99b9..8bd48cb52 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -429,4 +429,4 @@ class Ui_BibleImportWizard(object): translate('BiblesPlugin.ImportWizardForm', '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.')) + '"python-sqlite" module.')) \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py index 7975bfed7..31c7e4f3f 100644 --- a/openlp/plugins/bibles/lib/__init__.py +++ b/openlp/plugins/bibles/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -222,4 +222,4 @@ class SearchResults(object): from manager import BibleManager from biblestab import BiblesTab -from mediaitem import BibleMediaItem +from mediaitem import BibleMediaItem \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index a52c31fb7..c4815f2aa 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -251,4 +251,4 @@ class BiblesTab(SettingsTab): # Not Found. index = 0 self.bible_theme = u'' - self.BibleThemeComboBox.setCurrentIndex(index) + self.BibleThemeComboBox.setCurrentIndex(index) \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py index d02ff2a70..b6cd81bf5 100644 --- a/openlp/plugins/bibles/lib/csvbible.py +++ b/openlp/plugins/bibles/lib/csvbible.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -109,4 +109,4 @@ class CSVBible(BibleDB): if self.stop_import_flag: return False else: - return success + return success \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index cdc81d408..0ff2d999e 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -435,4 +435,4 @@ class BibleDB(QtCore.QObject, Manager): log.debug(books) log.debug(u'...............................Verses ') verses = self.session.query(Verse).all() - log.debug(verses) + log.debug(verses) \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index 79d3f311f..07416b965 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -522,4 +522,4 @@ class HTTPBible(BibleDB): ``chapter`` The chapter whose verses are being counted. """ - return HTTPBooks.get_verse_count(book, chapter) + return HTTPBooks.get_verse_count(book, chapter) \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 93f301713..9dc70e85a 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -357,4 +357,3 @@ class BibleManager(object): BibleFormat.set_availability(BibleFormat.OpenLP1, has_openlp1) __all__ = [u'BibleFormat'] - diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index dfed1697d..20fa9e1f6 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -921,4 +921,4 @@ class BibleMediaItem(MediaManagerItem): verse_text = u'{su}[' + verse_text + u']{/su}' else: verse_text = u'{su}' + verse_text + u'{/su}' - return verse_text + return verse_text \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/openlp1.py b/openlp/plugins/bibles/lib/openlp1.py index ba9476fca..41f4a2836 100644 --- a/openlp/plugins/bibles/lib/openlp1.py +++ b/openlp/plugins/bibles/lib/openlp1.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -90,4 +90,4 @@ class OpenLP1Bible(BibleDB): Receiver.send_message(u'openlp_process_events') self.session.commit() connection.close() - return True + return True \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py index 14454a69f..241efbc0e 100644 --- a/openlp/plugins/bibles/lib/opensong.py +++ b/openlp/plugins/bibles/lib/opensong.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -97,4 +97,4 @@ class OpenSongBible(BibleDB): if self.stop_import_flag: return False else: - return success + return success \ No newline at end of file diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index f39a4ab0f..5b359240f 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -180,4 +180,4 @@ class OSISBible(BibleDB): if self.stop_import_flag: return False else: - return success + return success \ No newline at end of file diff --git a/openlp/plugins/custom/__init__.py b/openlp/plugins/custom/__init__.py index 2bbf2a58b..fb86201a3 100644 --- a/openlp/plugins/custom/__init__.py +++ b/openlp/plugins/custom/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -27,4 +27,4 @@ The :mod:`custom` module provides the Custom plugin which allows custom, themed, text based items to be displayed without having to misuse another item type. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index ad170ea12..9580077a8 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -47,7 +47,7 @@ class CustomPlugin(Plugin): log.info(u'Custom Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Custom', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'Custom', u'1.9.4', plugin_helpers) self.weight = -5 self.manager = Manager(u'custom', init_schema) self.edit_custom_form = EditCustomForm(self.manager) @@ -167,4 +167,4 @@ class CustomPlugin(Plugin): """ log.info(u'Custom Finalising') self.manager.finalise() - Plugin.finalise(self) + Plugin.finalise(self) \ No newline at end of file diff --git a/openlp/plugins/custom/forms/__init__.py b/openlp/plugins/custom/forms/__init__.py index f31745e14..60f1395fb 100644 --- a/openlp/plugins/custom/forms/__init__.py +++ b/openlp/plugins/custom/forms/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -25,4 +25,4 @@ ############################################################################### from editcustomform import EditCustomForm -from editcustomslideform import EditCustomSlideForm +from editcustomslideform import EditCustomSlideForm \ No newline at end of file diff --git a/openlp/plugins/custom/forms/editcustomdialog.py b/openlp/plugins/custom/forms/editcustomdialog.py index 1b16c6236..266673daf 100644 --- a/openlp/plugins/custom/forms/editcustomdialog.py +++ b/openlp/plugins/custom/forms/editcustomdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -152,4 +152,4 @@ class Ui_CustomEditDialog(object): self.themeLabel.setText( translate('CustomPlugin.EditCustomForm', 'The&me:')) self.creditLabel.setText( - translate('CustomPlugin.EditCustomForm', '&Credits:')) + translate('CustomPlugin.EditCustomForm', '&Credits:')) \ No newline at end of file diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index 359cc9eae..2f005828a 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -265,4 +265,4 @@ class EditCustomForm(QtGui.QDialog, Ui_CustomEditDialog): if self.slideListView.count() == 0: return False, translate('CustomPlugin.EditCustomForm', 'You need to add at least one slide') - return True, u'' + return True, u'' \ No newline at end of file diff --git a/openlp/plugins/custom/forms/editcustomslidedialog.py b/openlp/plugins/custom/forms/editcustomslidedialog.py index ce4cf6e29..d16dc67f0 100644 --- a/openlp/plugins/custom/forms/editcustomslidedialog.py +++ b/openlp/plugins/custom/forms/editcustomslidedialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -56,4 +56,4 @@ class Ui_CustomSlideEditDialog(object): translate('CustomPlugin.EditCustomForm', 'Split Slide')) self.splitButton.setToolTip( translate('CustomPlugin.EditCustomForm', 'Split a slide into two ' - 'by inserting a slide splitter.')) + 'by inserting a slide splitter.')) \ No newline at end of file diff --git a/openlp/plugins/custom/forms/editcustomslideform.py b/openlp/plugins/custom/forms/editcustomslideform.py index 72c7dbb4a..c8b74a387 100644 --- a/openlp/plugins/custom/forms/editcustomslideform.py +++ b/openlp/plugins/custom/forms/editcustomslideform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -72,4 +72,4 @@ class EditCustomSlideForm(QtGui.QDialog, Ui_CustomSlideEditDialog): if self.slideTextEdit.textCursor().columnNumber() != 0: self.slideTextEdit.insertPlainText(u'\n') self.slideTextEdit.insertPlainText(u'[---]\n' ) - self.slideTextEdit.setFocus() + self.slideTextEdit.setFocus() \ No newline at end of file diff --git a/openlp/plugins/custom/lib/__init__.py b/openlp/plugins/custom/lib/__init__.py index 15e764dcd..d3d8312d7 100644 --- a/openlp/plugins/custom/lib/__init__.py +++ b/openlp/plugins/custom/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -26,4 +26,4 @@ from customxmlhandler import CustomXMLBuilder, CustomXMLParser from mediaitem import CustomMediaItem -from customtab import CustomTab +from customtab import CustomTab \ No newline at end of file diff --git a/openlp/plugins/custom/lib/customtab.py b/openlp/plugins/custom/lib/customtab.py index 461d6af59..5063ee995 100644 --- a/openlp/plugins/custom/lib/customtab.py +++ b/openlp/plugins/custom/lib/customtab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -76,4 +76,4 @@ class CustomTab(SettingsTab): def save(self): QtCore.QSettings().setValue(self.settingsSection + u'/display footer', - QtCore.QVariant(self.displayFooter)) + QtCore.QVariant(self.displayFooter)) \ No newline at end of file diff --git a/openlp/plugins/custom/lib/customxmlhandler.py b/openlp/plugins/custom/lib/customxmlhandler.py index 14ca23ee0..1171ce6bd 100644 --- a/openlp/plugins/custom/lib/customxmlhandler.py +++ b/openlp/plugins/custom/lib/customxmlhandler.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -153,4 +153,4 @@ class CustomXMLParser(object): """ Debugging aid to dump XML so that we can see what we have. """ - return dump(self.custom_xml) + return dump(self.custom_xml) \ No newline at end of file diff --git a/openlp/plugins/custom/lib/db.py b/openlp/plugins/custom/lib/db.py index 1977a4188..1fbc04980 100644 --- a/openlp/plugins/custom/lib/db.py +++ b/openlp/plugins/custom/lib/db.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -59,4 +59,4 @@ def init_schema(url): mapper(CustomSlide, custom_slide_table) metadata.create_all(checkfirst=True) - return session + return session \ No newline at end of file diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 5d9d49a25..304773ea5 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -182,4 +182,4 @@ class CustomMediaItem(MediaManagerItem): else: raw_footer.append(u'') service_item.raw_footer = raw_footer - return True + return True \ No newline at end of file diff --git a/openlp/plugins/images/__init__.py b/openlp/plugins/images/__init__.py index a98ed8ed1..6ea473c72 100644 --- a/openlp/plugins/images/__init__.py +++ b/openlp/plugins/images/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -26,4 +26,4 @@ """ The :mod:`images` module provides the Images plugin. The Images plugin provides the facility to display images from OpenLP. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index a1e539799..4bd7783ee 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # diff --git a/openlp/plugins/images/lib/__init__.py b/openlp/plugins/images/lib/__init__.py index fb7b0a249..6ff2a295b 100644 --- a/openlp/plugins/images/lib/__init__.py +++ b/openlp/plugins/images/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -24,4 +24,4 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from mediaitem import ImageMediaItem +from mediaitem import ImageMediaItem \ No newline at end of file diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 0774787f5..fabad8e8c 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -195,4 +195,4 @@ class ImageMediaItem(MediaManagerItem): self.resetButton.setVisible(True) def onPreviewClick(self): - MediaManagerItem.onPreviewClick(self) + MediaManagerItem.onPreviewClick(self) \ No newline at end of file diff --git a/openlp/plugins/media/__init__.py b/openlp/plugins/media/__init__.py index d45371e8d..7be6e5ea9 100644 --- a/openlp/plugins/media/__init__.py +++ b/openlp/plugins/media/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -28,4 +28,4 @@ The :mod:`media` module provides the Media plugin which allows OpenLP to display videos. The media supported depends not only on the Python support but also extensively on the codecs installed on the underlying operating system being picked up and usable by Python. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/media/lib/__init__.py b/openlp/plugins/media/lib/__init__.py index 8d3ba2fe4..59d7642df 100644 --- a/openlp/plugins/media/lib/__init__.py +++ b/openlp/plugins/media/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -27,4 +27,4 @@ from mediaitem import MediaMediaItem from mediatab import MediaTab -__all__ = ['MediaMediaItem'] +__all__ = ['MediaMediaItem'] \ No newline at end of file diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 11e00628e..e2309ea76 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -159,4 +159,4 @@ class MediaMediaItem(MediaManagerItem): img = QtGui.QPixmap(u':/media/media_video.png').toImage() item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) - self.listView.addItem(item_name) + self.listView.addItem(item_name) \ No newline at end of file diff --git a/openlp/plugins/media/lib/mediatab.py b/openlp/plugins/media/lib/mediatab.py index e67da62df..2fc372070 100644 --- a/openlp/plugins/media/lib/mediatab.py +++ b/openlp/plugins/media/lib/mediatab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -79,4 +79,4 @@ class MediaTab(SettingsTab): if oldUsePhonon != self.usePhonon: QtCore.QSettings().setValue(self.settingsSection + u'/use phonon', QtCore.QVariant(self.usePhonon)) - Receiver.send_message(u'config_screen_changed') + Receiver.send_message(u'config_screen_changed') \ No newline at end of file diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 7660e8514..2f5b78b8e 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -38,7 +38,7 @@ class MediaPlugin(Plugin): log.info(u'%s MediaPlugin loaded', __name__) def __init__(self, plugin_helpers): - Plugin.__init__(self, u'Media', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'Media', u'1.9.4', plugin_helpers) self.weight = -6 self.icon_path = u':/plugins/plugin_media.png' self.icon = build_icon(self.icon_path) @@ -142,4 +142,4 @@ class MediaPlugin(Plugin): u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/presentations/__init__.py b/openlp/plugins/presentations/__init__.py index 4e492fa0c..317281c23 100644 --- a/openlp/plugins/presentations/__init__.py +++ b/openlp/plugins/presentations/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -26,4 +26,4 @@ """ The :mod:`presentations` module provides the Presentations plugin which allows OpenLP to show presentations from most popular presentation packages. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/__init__.py b/openlp/plugins/presentations/lib/__init__.py index e64169b92..2e46cf486 100644 --- a/openlp/plugins/presentations/lib/__init__.py +++ b/openlp/plugins/presentations/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -27,4 +27,4 @@ from presentationcontroller import PresentationController from messagelistener import MessageListener from mediaitem import PresentationMediaItem -from presentationtab import PresentationTab +from presentationtab import PresentationTab \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index 8f8e06734..6ec90c853 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -478,4 +478,4 @@ class ImpressDocument(PresentationDocument): shape = notes.getByIndex(idx) if shape.supportsService("com.sun.star.drawing.Text"): text += shape.getString() + '\n' - return text + return text \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 8e3a2fc36..4b1067e8e 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -293,4 +293,4 @@ class PresentationMediaItem(MediaManagerItem): if self.controllers[controller].enabled(): if filetype in self.controllers[controller].alsosupports: return controller - return None + return None \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py index 535744369..566fc5706 100644 --- a/openlp/plugins/presentations/lib/messagelistener.py +++ b/openlp/plugins/presentations/lib/messagelistener.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -367,4 +367,4 @@ class MessageListener(object): to check which slide is currently displayed so the slidecontroller view can be updated """ - self.live_handler.poll() + self.live_handler.poll() \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/powerpointcontroller.py b/openlp/plugins/presentations/lib/powerpointcontroller.py index 58bb6b3d6..012f8534a 100644 --- a/openlp/plugins/presentations/lib/powerpointcontroller.py +++ b/openlp/plugins/presentations/lib/powerpointcontroller.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -312,4 +312,4 @@ class PowerpointDocument(PresentationDocument): shape = shapes(idx + 1) if shape.HasTextFrame: text += shape.TextFrame.TextRange.Text + '\n' - return text + return text \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/pptviewcontroller.py b/openlp/plugins/presentations/lib/pptviewcontroller.py index 281e647de..4c8e7bf95 100644 --- a/openlp/plugins/presentations/lib/pptviewcontroller.py +++ b/openlp/plugins/presentations/lib/pptviewcontroller.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -247,4 +247,4 @@ class PptviewDocument(PresentationDocument): """ Triggers the previous slide on the running presentation """ - self.controller.process.PrevStep(self.pptid) + self.controller.process.PrevStep(self.pptid) \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/pptviewlib/ppttest.py b/openlp/plugins/presentations/lib/pptviewlib/ppttest.py index 304c942f0..de0be3e73 100644 --- a/openlp/plugins/presentations/lib/pptviewlib/ppttest.py +++ b/openlp/plugins/presentations/lib/pptviewlib/ppttest.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # diff --git a/openlp/plugins/presentations/lib/presentationcontroller.py b/openlp/plugins/presentations/lib/presentationcontroller.py index 5bd0719e9..42f7b654a 100644 --- a/openlp/plugins/presentations/lib/presentationcontroller.py +++ b/openlp/plugins/presentations/lib/presentationcontroller.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -440,4 +440,4 @@ class PresentationDocument(object): ``slide_no`` The slide the notes are required for, starting at 1 """ - return '' + return '' \ No newline at end of file diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index d1ebb570c..cd4dd7901 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -160,4 +160,4 @@ class PresentationTab(SettingsTab): QtCore.QVariant(self.OverrideAppCheckBox.checkState())) changed = True if changed: - Receiver.send_message(u'mediaitem_presentation_rebuild') + Receiver.send_message(u'mediaitem_presentation_rebuild') \ No newline at end of file diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 300314bde..9c4a64866 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -51,7 +51,7 @@ class PresentationPlugin(Plugin): """ log.debug(u'Initialised') self.controllers = {} - Plugin.__init__(self, u'Presentations', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'Presentations', u'1.9.4', plugin_helpers) self.weight = -8 self.icon_path = u':/plugins/plugin_presentations.png' self.icon = build_icon(self.icon_path) @@ -189,4 +189,4 @@ class PresentationPlugin(Plugin): u'title': translate('PresentationPlugin', 'Service'), u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') - } + } \ No newline at end of file diff --git a/openlp/plugins/remotes/__init__.py b/openlp/plugins/remotes/__init__.py index 3c35beb4c..4e619fb67 100644 --- a/openlp/plugins/remotes/__init__.py +++ b/openlp/plugins/remotes/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -26,4 +26,4 @@ """ The :mod:`remotes` plugin allows OpenLP to be controlled from another machine over a network connection. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/remotes/lib/__init__.py b/openlp/plugins/remotes/lib/__init__.py index 829afe759..b6f952242 100644 --- a/openlp/plugins/remotes/lib/__init__.py +++ b/openlp/plugins/remotes/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -25,4 +25,4 @@ ############################################################################### from remotetab import RemoteTab -from httpserver import HttpServer +from httpserver import HttpServer \ No newline at end of file diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py index f1796101f..6ec9476a8 100644 --- a/openlp/plugins/remotes/lib/httpserver.py +++ b/openlp/plugins/remotes/lib/httpserver.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -347,4 +347,4 @@ class HttpConnection(object): log.debug(u'close socket') self.socket.close() self.socket = None - self.parent.close_connection(self) + self.parent.close_connection(self) \ No newline at end of file diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py index 123aa291d..e81cc99ae 100644 --- a/openlp/plugins/remotes/lib/remotetab.py +++ b/openlp/plugins/remotes/lib/remotetab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -78,4 +78,4 @@ class RemoteTab(SettingsTab): QtCore.QSettings().setValue(self.settingsSection + u'/port', QtCore.QVariant(self.portSpinBox.value())) QtCore.QSettings().setValue(self.settingsSection + u'/ip address', - QtCore.QVariant(self.addressEdit.text())) + QtCore.QVariant(self.addressEdit.text())) \ No newline at end of file diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 4b6a57cad..419a51a72 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -38,7 +38,7 @@ class RemotesPlugin(Plugin): """ remotes constructor """ - Plugin.__init__(self, u'Remotes', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'Remotes', u'1.9.4', plugin_helpers) self.icon = build_icon(u':/plugins/plugin_remote.png') self.weight = -1 self.server = None @@ -90,4 +90,4 @@ class RemotesPlugin(Plugin): ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { u'title': translate('RemotePlugin', 'Remote') - } + } \ No newline at end of file diff --git a/openlp/plugins/songs/__init__.py b/openlp/plugins/songs/__init__.py index 7631351e0..c95d29c46 100644 --- a/openlp/plugins/songs/__init__.py +++ b/openlp/plugins/songs/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -26,4 +26,4 @@ """ The :mod:`songs` module provides the Songs plugin. The Songs plugin provides the main lyric projection function of OpenLP. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/songs/forms/__init__.py b/openlp/plugins/songs/forms/__init__.py index 511d82747..160a014ac 100644 --- a/openlp/plugins/songs/forms/__init__.py +++ b/openlp/plugins/songs/forms/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -57,4 +57,4 @@ from songbookform import SongBookForm from editverseform import EditVerseForm from editsongform import EditSongForm from songmaintenanceform import SongMaintenanceForm -from songimportform import SongImportForm +from songimportform import SongImportForm \ No newline at end of file diff --git a/openlp/plugins/songs/forms/authorsdialog.py b/openlp/plugins/songs/forms/authorsdialog.py index 8141703b0..1c5191702 100644 --- a/openlp/plugins/songs/forms/authorsdialog.py +++ b/openlp/plugins/songs/forms/authorsdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -83,4 +83,4 @@ class Ui_AuthorsDialog(object): self.FirstNameLabel.setText( translate('SongsPlugin.AuthorsForm', 'First name:')) self.LastNameLabel.setText( - translate('SongsPlugin.AuthorsForm', 'Last name:')) + translate('SongsPlugin.AuthorsForm', 'Last name:')) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/authorsform.py b/openlp/plugins/songs/forms/authorsform.py index 1dacd82cc..6777d2f49 100644 --- a/openlp/plugins/songs/forms/authorsform.py +++ b/openlp/plugins/songs/forms/authorsform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -108,4 +108,4 @@ class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog): self.DisplayEdit.setFocus() return False else: - return QtGui.QDialog.accept(self) + return QtGui.QDialog.accept(self) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/editsongdialog.py b/openlp/plugins/songs/forms/editsongdialog.py index 66ade5bcd..7765b1a26 100644 --- a/openlp/plugins/songs/forms/editsongdialog.py +++ b/openlp/plugins/songs/forms/editsongdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -470,4 +470,4 @@ class Ui_EditSongDialog(object): self.SongTabWidget.setTabText( self.SongTabWidget.indexOf(self.ThemeTab), translate('SongsPlugin.EditSongForm', - 'Theme, Copyright Info && Comments')) + 'Theme, Copyright Info && Comments')) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index ad4182d54..929dfd839 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -753,4 +753,4 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): def processTitle(self): log.debug(u'processTitle') self.song.search_title = re.sub(r'[\'"`,;:(){}?]+', u'', - unicode(self.song.search_title)).lower() + unicode(self.song.search_title)).lower() \ No newline at end of file diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index 43dc8b96d..f83579044 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -104,4 +104,4 @@ class Ui_EditVerseDialog(object): self.verseTypeComboBox.setItemText(6, VerseType.to_string(VerseType.Other)) self.insertButton.setText( - translate('SongsPlugin.EditVerseForm', '&Insert')) + translate('SongsPlugin.EditVerseForm', '&Insert')) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 8f5f04194..a1a301b61 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -172,4 +172,4 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): translate('SongsPlugin.EditSongForm', 'You need to type some text in to the verse.')) return False - QtGui.QDialog.accept(self) + QtGui.QDialog.accept(self) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songbookdialog.py b/openlp/plugins/songs/forms/songbookdialog.py index 5a02674b3..8166453a2 100644 --- a/openlp/plugins/songs/forms/songbookdialog.py +++ b/openlp/plugins/songs/forms/songbookdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -74,4 +74,4 @@ class Ui_SongBookDialog(object): translate('SongsPlugin.SongBookForm', 'Song Book Maintenance')) self.NameLabel.setText(translate('SongsPlugin.SongBookForm', '&Name:')) self.PublisherLabel.setText( - translate('SongsPlugin.SongBookForm', '&Publisher:')) + translate('SongsPlugin.SongBookForm', '&Publisher:')) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songbookform.py b/openlp/plugins/songs/forms/songbookform.py index bdec26dfe..23c8c6533 100644 --- a/openlp/plugins/songs/forms/songbookform.py +++ b/openlp/plugins/songs/forms/songbookform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -56,4 +56,4 @@ class SongBookForm(QtGui.QDialog, Ui_SongBookDialog): self.NameEdit.setFocus() return False else: - return QtGui.QDialog.accept(self) + return QtGui.QDialog.accept(self) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 81acea00f..e49334b7a 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -540,4 +540,4 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): self.importProgressBar.setValue(self.importProgressBar.maximum()) self.finishButton.setVisible(True) self.cancelButton.setVisible(False) - Receiver.send_message(u'openlp_process_events') + Receiver.send_message(u'openlp_process_events') \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py index aafff1051..809427037 100644 --- a/openlp/plugins/songs/forms/songimportwizard.py +++ b/openlp/plugins/songs/forms/songimportwizard.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -376,4 +376,4 @@ class Ui_SongImportWizard(object): setattr(self, prefix + u'DisabledLayout', disabledLayout) setattr(self, prefix + u'DisabledLabel', disabledLabel) setattr(self, prefix + u'ImportWidget', importWidget) - return importWidget + return importWidget \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songmaintenancedialog.py b/openlp/plugins/songs/forms/songmaintenancedialog.py index 909294707..87d99e853 100644 --- a/openlp/plugins/songs/forms/songmaintenancedialog.py +++ b/openlp/plugins/songs/forms/songmaintenancedialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -236,4 +236,4 @@ class Ui_SongMaintenanceDialog(object): self.BookEditButton.setText( translate('SongsPlugin.SongMaintenanceForm', '&Edit')) self.BookDeleteButton.setText( - translate('SongsPlugin.SongMaintenanceForm', '&Delete')) + translate('SongsPlugin.SongMaintenanceForm', '&Delete')) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index f004ef026..0fcdc6ab1 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -498,4 +498,4 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): translate('SongsPlugin.SongMaintenanceForm', 'This book cannot be deleted, it is currently ' 'assigned to at least one song.'), - translate('SongsPlugin.SongMaintenanceForm', 'No book selected!')) + translate('SongsPlugin.SongMaintenanceForm', 'No book selected!')) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/topicsdialog.py b/openlp/plugins/songs/forms/topicsdialog.py index fbb149aa8..2c1144631 100644 --- a/openlp/plugins/songs/forms/topicsdialog.py +++ b/openlp/plugins/songs/forms/topicsdialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -65,4 +65,4 @@ class Ui_TopicsDialog(object): TopicsDialog.setWindowTitle( translate('SongsPlugin.TopicsForm', 'Topic Maintenance')) self.NameLabel.setText( - translate('SongsPlugin.TopicsForm', 'Topic name:')) + translate('SongsPlugin.TopicsForm', 'Topic name:')) \ No newline at end of file diff --git a/openlp/plugins/songs/forms/topicsform.py b/openlp/plugins/songs/forms/topicsform.py index c45228527..f15f0bba5 100644 --- a/openlp/plugins/songs/forms/topicsform.py +++ b/openlp/plugins/songs/forms/topicsform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -55,4 +55,4 @@ class TopicsForm(QtGui.QDialog, Ui_TopicsDialog): self.NameEdit.setFocus() return False else: - return QtGui.QDialog.accept(self) + return QtGui.QDialog.accept(self) \ No newline at end of file diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 5ca5d5a0f..5093d6180 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -125,4 +125,4 @@ class VerseType(object): from xml import LyricsXML, SongXMLBuilder, SongXMLParser, OpenLyricsParser from songstab import SongsTab -from mediaitem import SongMediaItem +from mediaitem import SongMediaItem \ No newline at end of file diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index 88b9a8569..79a7260bb 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund, Derek Scotney # @@ -337,4 +337,4 @@ class CCLIFileImport(SongImport): self.copyright = song_copyright self.ccli_number = song_ccli self.comments = song_comments - self.finish() + self.finish() \ No newline at end of file diff --git a/openlp/plugins/songs/lib/db.py b/openlp/plugins/songs/lib/db.py index 987d1dd79..fc3aa06d1 100644 --- a/openlp/plugins/songs/lib/db.py +++ b/openlp/plugins/songs/lib/db.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -181,4 +181,4 @@ def init_schema(url): mapper(Topic, topics_table) metadata.create_all(checkfirst=True) - return session + return session \ No newline at end of file diff --git a/openlp/plugins/songs/lib/ewimport.py b/openlp/plugins/songs/lib/ewimport.py index 6b9b675c5..cb46eb798 100644 --- a/openlp/plugins/songs/lib/ewimport.py +++ b/openlp/plugins/songs/lib/ewimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund, Jeffrey Smith # @@ -347,4 +347,4 @@ class EasyWorshipSongImport(SongImport): return u'' return self.memo_file.read(blob_size) else: - return 0 + return 0 \ No newline at end of file diff --git a/openlp/plugins/songs/lib/importer.py b/openlp/plugins/songs/lib/importer.py index 63d19b95c..b82e14c12 100644 --- a/openlp/plugins/songs/lib/importer.py +++ b/openlp/plugins/songs/lib/importer.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -126,4 +126,4 @@ SongFormat.set_availability(SongFormat.OpenLP1, has_openlp1) SongFormat.set_availability(SongFormat.SongsOfFellowship, has_sof) SongFormat.set_availability(SongFormat.Generic, has_ooo) -__all__ = [u'SongFormat'] +__all__ = [u'SongFormat'] \ No newline at end of file diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index e42cb7fa3..3be60dec4 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -457,4 +457,4 @@ class SongMediaItem(MediaManagerItem): """ Locale aware collation of song titles """ - return locale.strcoll(unicode(song_1.title), unicode(song_2.title)) + return locale.strcoll(unicode(song_1.title), unicode(song_2.title)) \ No newline at end of file diff --git a/openlp/plugins/songs/lib/olp1import.py b/openlp/plugins/songs/lib/olp1import.py index 7c01a4c19..69714e773 100644 --- a/openlp/plugins/songs/lib/olp1import.py +++ b/openlp/plugins/songs/lib/olp1import.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -245,4 +245,4 @@ class OpenLP1SongImport(SongImport): if not chosen_encoding[1]: return None return filter(lambda item: item[1] == chosen_encoding[0], - encodings)[0][0] + encodings)[0][0] \ No newline at end of file diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index 662a94f5b..b0175d45f 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -220,4 +220,4 @@ class OpenLPSongImport(SongImport): if self.stop_import_flag: return False engine.dispose() - return True + return True \ No newline at end of file diff --git a/openlp/plugins/songs/lib/oooimport.py b/openlp/plugins/songs/lib/oooimport.py index 727af2c7b..b467eab65 100644 --- a/openlp/plugins/songs/lib/oooimport.py +++ b/openlp/plugins/songs/lib/oooimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -232,4 +232,4 @@ class OooImport(SongImport): text += paratext + u'\n' songs = SongImport.process_songs_text(self.manager, text) for song in songs: - song.finish() + song.finish() \ No newline at end of file diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 767fc012a..3341754c2 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -306,4 +306,4 @@ class OpenSongImport(SongImport): log.info(u'Got order %s but not in versetags, dropping this' u'item from presentation order', tag) else: - self.verse_order_list.append(tag) + self.verse_order_list.append(tag) \ No newline at end of file diff --git a/openlp/plugins/songs/lib/sofimport.py b/openlp/plugins/songs/lib/sofimport.py index 320e5c88a..3e6ee8c3a 100644 --- a/openlp/plugins/songs/lib/sofimport.py +++ b/openlp/plugins/songs/lib/sofimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -550,4 +550,4 @@ class SofImport(OooImport): return 6 if song_number == 1119: return 7 - return None + return None \ No newline at end of file diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index f45fcc268..6277fc5b8 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -288,4 +288,4 @@ class SongBeamerImport(SongImport): self.current_verse_type += marks[1] return True else: - return False + return False \ No newline at end of file diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index f305b90c7..3a21a5b50 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -364,4 +364,4 @@ class SongImport(QtCore.QObject): if self.theme_name: print u'THEME: ' + self.theme_name if self.ccli_number: - print u'CCLI: ' + self.ccli_number + print u'CCLI: ' + self.ccli_number \ No newline at end of file diff --git a/openlp/plugins/songs/lib/songstab.py b/openlp/plugins/songs/lib/songstab.py index 1ffb5bba6..fe48f0be3 100644 --- a/openlp/plugins/songs/lib/songstab.py +++ b/openlp/plugins/songs/lib/songstab.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -139,4 +139,4 @@ class SongsTab(SettingsTab): QtCore.QVariant(self.update_edit)) settings.setValue(u'add song from service', QtCore.QVariant(self.update_load)) - settings.endGroup() + settings.endGroup() \ No newline at end of file diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index 2f20cf20d..42b66ccb7 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -169,4 +169,3 @@ class WowImport(SongImport): self.import_wizard.incrementProgressBar( "Importing %s" % (self.file_name)) return True - diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index 9d98737dc..f00711bb6 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -396,4 +396,4 @@ class OpenLyricsParser(object): new_author = Author.populate(first_name=name.rsplit(u' ', 1)[0], last_name=name.rsplit(u' ', 1)[1], display_name=name) self.manager.save_object(new_author) - song.authors.append(new_author) + song.authors.append(new_author) \ No newline at end of file diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index b55b05988..a44188c87 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -51,7 +51,7 @@ class SongsPlugin(Plugin): """ Create and set up the Songs plugin. """ - Plugin.__init__(self, u'Songs', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'Songs', u'1.9.4', plugin_helpers) self.weight = -10 self.manager = Manager(u'songs', init_schema) self.icon_path = u':/plugins/plugin_songs.png' @@ -265,5 +265,4 @@ class SongsPlugin(Plugin): log.info(u'Songs Finalising') self.manager.finalise() self.toolsReindexItem.setVisible(False) - Plugin.finalise(self) - + Plugin.finalise(self) \ No newline at end of file diff --git a/openlp/plugins/songusage/__init__.py b/openlp/plugins/songusage/__init__.py index 68caa18e6..7f532aada 100644 --- a/openlp/plugins/songusage/__init__.py +++ b/openlp/plugins/songusage/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -27,4 +27,4 @@ The :mod:`songusage` module contains the Song Usage plugin. The Song Usage plugin provides auditing capabilities for reporting the songs you are using to copyright license organisations. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/songusage/forms/__init__.py b/openlp/plugins/songusage/forms/__init__.py index b551d7168..ef99bce89 100644 --- a/openlp/plugins/songusage/forms/__init__.py +++ b/openlp/plugins/songusage/forms/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -25,4 +25,4 @@ ############################################################################### from songusagedeleteform import SongUsageDeleteForm -from songusagedetailform import SongUsageDetailForm +from songusagedetailform import SongUsageDetailForm \ No newline at end of file diff --git a/openlp/plugins/songusage/forms/songusagedeletedialog.py b/openlp/plugins/songusage/forms/songusagedeletedialog.py index c29142ab8..af85ad5a9 100644 --- a/openlp/plugins/songusage/forms/songusagedeletedialog.py +++ b/openlp/plugins/songusage/forms/songusagedeletedialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -61,4 +61,4 @@ class Ui_SongUsageDeleteDialog(object): def retranslateUi(self, songUsageDeleteDialog): songUsageDeleteDialog.setWindowTitle( translate('SongUsagePlugin.SongUsageDeleteForm', - 'Delete Song Usage Data')) + 'Delete Song Usage Data')) \ No newline at end of file diff --git a/openlp/plugins/songusage/forms/songusagedeleteform.py b/openlp/plugins/songusage/forms/songusagedeleteform.py index 45e4e91a9..f83ec8c82 100644 --- a/openlp/plugins/songusage/forms/songusagedeleteform.py +++ b/openlp/plugins/songusage/forms/songusagedeleteform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -55,4 +55,4 @@ class SongUsageDeleteForm(QtGui.QDialog, Ui_SongUsageDeleteDialog): deleteDate = self.deleteCalendar.selectedDate().toPyDate() self.manager.delete_all_objects(SongUsageItem, SongUsageItem.usagedate <= deleteDate) - self.close() + self.close() \ No newline at end of file diff --git a/openlp/plugins/songusage/forms/songusagedetaildialog.py b/openlp/plugins/songusage/forms/songusagedetaildialog.py index 0eff17783..9383e147d 100644 --- a/openlp/plugins/songusage/forms/songusagedetaildialog.py +++ b/openlp/plugins/songusage/forms/songusagedetaildialog.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -96,4 +96,4 @@ class Ui_SongUsageDetailDialog(object): translate('SongUsagePlugin.SongUsageDetailForm', 'to')) self.fileGroupBox.setTitle( translate('SongUsagePlugin.SongUsageDetailForm', - 'Report Location')) + 'Report Location')) \ No newline at end of file diff --git a/openlp/plugins/songusage/forms/songusagedetailform.py b/openlp/plugins/songusage/forms/songusagedetailform.py index 18aa1797f..c9c357a84 100644 --- a/openlp/plugins/songusage/forms/songusagedetailform.py +++ b/openlp/plugins/songusage/forms/songusagedetailform.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -95,4 +95,4 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog): finally: if file: file.close() - self.close() + self.close() \ No newline at end of file diff --git a/openlp/plugins/songusage/lib/__init__.py b/openlp/plugins/songusage/lib/__init__.py index d23d36e5f..c981e023b 100644 --- a/openlp/plugins/songusage/lib/__init__.py +++ b/openlp/plugins/songusage/lib/__init__.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -25,4 +25,4 @@ ############################################################################### """ The :mod:`lib` module contains the library functions for the songusage plugin. -""" +""" \ No newline at end of file diff --git a/openlp/plugins/songusage/lib/db.py b/openlp/plugins/songusage/lib/db.py index 0865d8682..80079bf85 100644 --- a/openlp/plugins/songusage/lib/db.py +++ b/openlp/plugins/songusage/lib/db.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -61,4 +61,4 @@ def init_schema(url): mapper(SongUsageItem, songusage_table) metadata.create_all(checkfirst=True) - return session + return session \ No newline at end of file diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index a4081a10c..4a95b00f7 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -4,8 +4,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -42,7 +42,7 @@ class SongUsagePlugin(Plugin): log.info(u'SongUsage Plugin loaded') def __init__(self, plugin_helpers): - Plugin.__init__(self, u'SongUsage', u'1.9.3', plugin_helpers) + Plugin.__init__(self, u'SongUsage', u'1.9.4', plugin_helpers) self.weight = -4 self.icon = build_icon(u':/plugins/plugin_songusage.png') self.manager = None @@ -181,4 +181,4 @@ class SongUsagePlugin(Plugin): ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { u'title': translate('SongUsagePlugin', 'SongUsage') - } + } \ No newline at end of file diff --git a/setup.py b/setup.py index c216a17c1..a435c5496 100755 --- a/setup.py +++ b/setup.py @@ -5,8 +5,8 @@ ############################################################################### # OpenLP - Open Source Lyrics Projection # # --------------------------------------------------------------------------- # -# Copyright (c) 2008-2010 Raoul Snyman # -# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # # Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # # Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # # Carsten Tinggaard, Frode Woldsund # @@ -79,4 +79,4 @@ OpenLP (previously openlp.org) is free church presentation software, or lyrics p entry_points=""" # -*- Entry points: -*- """ -) +) \ No newline at end of file From 5de1e405000c5a1f372957e8a97c258236b77ab9 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 26 Dec 2010 14:31:01 +0100 Subject: [PATCH 05/49] updated language files --- resources/i18n/af.ts | 325 ++++++++++---------- resources/i18n/de.ts | 327 ++++++++++---------- resources/i18n/en.ts | 325 ++++++++++---------- resources/i18n/en_GB.ts | 325 ++++++++++---------- resources/i18n/en_ZA.ts | 329 ++++++++++---------- resources/i18n/es.ts | 325 ++++++++++---------- resources/i18n/et.ts | 646 +++++++++++++++++++++++----------------- resources/i18n/hu.ts | 327 ++++++++++---------- resources/i18n/ja.ts | 325 ++++++++++---------- resources/i18n/ko.ts | 325 ++++++++++---------- resources/i18n/nb.ts | 325 ++++++++++---------- resources/i18n/pt_BR.ts | 325 ++++++++++---------- resources/i18n/sv.ts | 325 ++++++++++---------- 13 files changed, 2415 insertions(+), 2139 deletions(-) diff --git a/resources/i18n/af.ts b/resources/i18n/af.ts index 72fbe938b..fdbacc00c 100644 --- a/resources/i18n/af.ts +++ b/resources/i18n/af.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1809,13 +1809,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1829,17 +1829,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1859,15 +1859,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1877,122 +1882,122 @@ Version: %s Algemeen - + Monitors Monitors - + Select monitor for output display: Selekteer monitor vir uitgaande vertoning: - + Display if a single screen Vertoon as dit 'n enkel skerm is - + Application Startup Applikasie Aanskakel - + Show blank screen warning Vertoon leë skerm waarskuwing - + Automatically open the last service Maak vanself die laaste diens oop - + Show the splash screen Wys die spatsel skerm - + Application Settings Program Verstellings - + Prompt to save before starting a new service Vra om te stoor voordat 'n nuwe diens begin word - + Automatically preview next item in service Wys voorskou van volgende item in diens automaties - + Slide loop delay: Skyfie herhaal vertraging: - + sec sek - + CCLI Details CCLI Inligting - + CCLI number: CCLI nommer: - + SongSelect username: SongSelect gebruikersnaam: - + SongSelect password: SongSelect wagwoord: - + Display Position Vertoon Posisie - + X X - + Y Y - + Height Hoogte - + Width Wydte - + Override display position Oorskryf vertoon posisie - + Screen Skerm - + primary primêre @@ -3043,104 +3048,94 @@ Die inhoud enkodering is nie UTF-8 nie. Stel in As &Globale Standaard - + %s (default) %s (standaard) - + You must select a theme to edit. Kies 'n tema om te redigeer. - - You must select a theme to delete. - Kies 'n tema om uit te wis. - - - - Delete Confirmation - Uitwis Bevestiging - - - + Error Fout - + You are unable to delete the default theme. Die standaard tema kan nie uitgewis word nie. - + You have not selected a theme. Geen tema is geselekteer nie. - + Save Theme - (%s) Stoor Tema - (%s) - + Theme Exported Tema Uitvoer - + Your theme has been successfully exported. Die tema was suksesvol uitgevoer. - + Theme Export Failed Tema Uitvoer het Misluk - + Your theme could not be exported due to an error. Die tema kon nie uitgevoer word nie weens 'n fout. - + Select Theme Import File Kies Tema Invoer Lêer - + Theme (*.*) Tema (*.*) - + File is not a valid theme. The content encoding is not UTF-8. Lêer is nie 'n geldige tema nie. Die inhoud enkodering is nie UTF-8 nie. - + File is not a valid theme. Lêer is nie 'n geldige tema nie. - + Theme Exists Tema Bestaan Reeds - + A theme with this name already exists. Would you like to overwrite it? 'n Tema met hierdie naam bestaan alreeds. Kan dit oorskryf word? - + Theme %s is used in the %s plugin. Tema %s is in gebruik deur die %s mini-program. - + Theme %s is used by the service manager. Tema %s is in gebruik deur die diens bestuurder. @@ -3160,285 +3155,305 @@ Die inhoud enkodering is nie UTF-8 nie. - - Delete %s theme? + + Rename + + + + + Delete + Wis uit + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color Soliede Kleur - + Gradient Gradiënt - + Image Beeld - + Color: Kleur: - + Gradient: Gradiënt: - + Horizontal Horisontaal - + Vertical Vertikaal - + Circular Sirkelvormig - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: Beeld: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: Skrif: - + Size: Grootte: - + pt pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold Vetgedruk - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left Links - + Right Regs - + Center Middel - + Vertical Align: - + Top Bo - + Middle Middel - + Bottom Onder - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: X posisie: - + px px - + Y position: Y posisie: - + Width: Wydte: - + Height: Hoogte: - + Footer Area - + Use default location Gebruik verstek ligging - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3628,12 +3643,12 @@ Die inhoud enkodering is nie UTF-8 nie. <strong>Afgeleë Mini-program</strong><br/>Die afgeleë mini-program verskaf die vermoë om boodskappe na 'n lopende weergawe van OpenLP op 'n ander rekenaar te stuur deur 'n web-blaaier of deur die afgeleë PPK (API). - + Remote - + Remotes Afstandbehere @@ -3904,142 +3919,142 @@ Die inhoud enkodering is nie UTF-8 nie. SongsPlugin.EditSongForm - + Song Editor Lied Redigeerder - + &Title: &Titel: - + Alt&ernate title: Alt&ernatiewe titel: - + &Lyrics: &Lirieke: - + &Verse order: &Vers orde: - + &Add &Voeg by - + &Edit R&edigeer - + Ed&it All Red&igeer Alles - + &Delete &Wis Uit - + Title && Lyrics Titel && Lirieke - + Authors Skrywers - + &Add to Song &Voeg by Lied - + &Remove Ve&rwyder - + &Manage Authors, Topics, Song Books &Bestuur Skrywers, Onderwerpe en Lied Boeke - + Topic Onderwerp - + A&dd to Song Voeg by Lie&d - + R&emove V&erwyder - + Song Book Lied Boek - + Book: Boek: - + Number: Nommer: - + Authors, Topics && Song Book Skrywers, Onderwerpe && Lied Boek - + Theme Tema - + New &Theme Nuwe &Tema - + Copyright Information Kopiereg Informasie - + © © - + CCLI number: CCLI nommer: - + Comments Kommentaar - + Theme, Copyright Info && Comments Tema, Kopiereg Informasie && Kommentaar @@ -4927,17 +4942,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Vers - + Chorus Koor - + Bridge Brug @@ -4947,22 +4962,22 @@ Usually you are fine with the preselected choise. Voor-Refrein - + Intro Inleiding - + Ending Slot - + Other Ander - + PreChorus diff --git a/resources/i18n/de.ts b/resources/i18n/de.ts index 29c1344ae..4b544af0f 100644 --- a/resources/i18n/de.ts +++ b/resources/i18n/de.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1820,13 +1820,13 @@ Bitte senden Sie eine E-Mail an: bugs@openlp.org mit einer auführlichen Beschre OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1840,17 +1840,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1870,15 +1870,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1888,122 +1893,122 @@ Version: %s Allgemein - + Monitors Monitore - + Select monitor for output display: Projektionsbildschirm: - + Display if a single screen Anzeige, bei nur einem Bildschirm - + Application Startup Programmstart - + Show blank screen warning Warnung anzeigen, wenn die Projektion deaktiviert wurde - + Automatically open the last service Zuletzt benutzten Ablauf beim Start laden - + Show the splash screen Zeige den Startbildschirm - + Application Settings Anwendungseinstellungen - + Prompt to save before starting a new service Aufforderung zum Speichern, bevor ein ein neuer Ablauf gestartet wird - + Automatically preview next item in service Automatische Vorschau des nächsten Elementes im Ablauf - + Slide loop delay: Pause während Schleifen: - + sec sek - + CCLI Details CCLI-Details - + CCLI number: CCLI Nummer: - + SongSelect username: SongSelect Benutzername: - + SongSelect password: SongSelect Passwort: - + Display Position Position der Anzeige - + X X - + Y Y - + Height Höhe - + Width Breite - + Override display position Position der Anzeige überschreiben - + Screen Bildschirm - + primary Hauptbildschirm @@ -3054,104 +3059,94 @@ Der Inhalt wurde nicht in UTF-8 kodiert. Setze als &globalen Standard - + %s (default) %s (Standard) - + You must select a theme to edit. Bitte wählen Sie ein Design zum Bearbeiten aus. - - You must select a theme to delete. - Bitte wählen Sie ein Design zum Löschen aus. - - - - Delete Confirmation - Löschen Bestätigen - - - + Error Fehler - + You are unable to delete the default theme. Es ist nicht möglich das Standard Design zu entfernen. - + You have not selected a theme. Sie haben kein Design ausgewählt. - + Save Theme - (%s) Speichere Design - (%s) - + Theme Exported Design exportiert - + Your theme has been successfully exported. Das Design wurde erfolgreich exportiert. - + Theme Export Failed Design Export fehlgeschlagen - + Your theme could not be exported due to an error. Dieses Design konnte aufgrund eines Fehlers nicht exportiert werden. - + Select Theme Import File Wähle Datei für Design Import - + Theme (*.*) Design (*.*) - + File is not a valid theme. The content encoding is not UTF-8. Dies ist kein gültiges Design. Die Datei ist nicht in UTF-8 kodiert. - + File is not a valid theme. Diese Datei beinhaltet kein gültiges Design. - + Theme Exists Design existiert - + A theme with this name already exists. Would you like to overwrite it? Ein Design mit diesem Namen existiert bereits. Soll es überschrieben werden? - + Theme %s is used in the %s plugin. Design %s wird in der %s Erweiterung benutzt. - + Theme %s is used by the service manager. Design %s wird in der Ablaufverwaltung benutzt. @@ -3171,285 +3166,305 @@ Die Datei ist nicht in UTF-8 kodiert. - - Delete %s theme? + + Rename + + + + + Delete + Löschen + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color Füllfarbe - + Gradient Farbverlauf - + Image Bild - + Color: Farbe: - + Gradient: Übergang: - + Horizontal Horizontal - + Vertical Vertikal - + Circular Radial - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: Bild: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: Schriftart: - + Size: Größe: - + pt pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold Fett - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left Links - + Right Rechts - + Center Mitte - + Vertical Align: - + Top Oben - + Middle Mittig - + Bottom Unten - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: X position: - + px px - + Y position: Y position: - + Width: Breite: - + Height: Höhe: - + Footer Area - + Use default location Benutze Standard Pfad - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3639,12 +3654,12 @@ Die Datei ist nicht in UTF-8 kodiert. <strong>Erweiterung Fernprojektion</strong><br/>Die Erweiterung Fernprojektion ermöglicht es eine laufende Version von OpenLP von einem anderen Computer über einen Web-Browser oder über die Fernprojektions Oberfläche zu steuern. - + Remote - + Remotes Fernprojektion @@ -3915,109 +3930,109 @@ Die Datei ist nicht in UTF-8 kodiert. SongsPlugin.EditSongForm - + Song Editor Lied bearbeiten - + &Title: &Titel: - + &Lyrics: Noten: - + &Add Hinzufügen - + &Edit &Bearbeiten - + Ed&it All Alles Bearbeiten - + &Delete Löschen - + Title && Lyrics Titel && Liedtext - + Authors Autoren - + &Add to Song Zum Lied &hinzufügen - + &Remove Entfe&rnen - + Topic Thema - + A&dd to Song Zum Lied &hinzufügen - + R&emove &Entfernen - + Song Book Liederbuch - + Theme Design - + New &Theme Neues Design - + Copyright Information Kopierrecht Informationen - + © © - + Comments Kommentare - + Theme, Copyright Info && Comments - Design, Copyrightinformationen && Kommentare + Design, Copyright && Kommentare @@ -4105,27 +4120,27 @@ Die Datei ist nicht in UTF-8 kodiert. %s wurde nirgends in der Versfolge verwendet. Wollen Sie das Lied trotzdem so abspeichern? - + Alt&ernate title: Alt&ernativer Titel: - + &Verse order: &Versfolge: - + &Manage Authors, Topics, Song Books Verwalte Autoren, Themen, Liederbücher - + Authors, Topics && Song Book Autoren, Themen && Liederbücher - + CCLI number: CCLI-Nummer: @@ -4140,12 +4155,12 @@ Die Datei ist nicht in UTF-8 kodiert. Dieses Thema ist bereits vorhanden. - + Book: Buch: - + Number: Nummer: @@ -4938,17 +4953,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Vers - + Chorus Refrain - + Bridge Bridge @@ -4958,22 +4973,22 @@ Usually you are fine with the preselected choise. Vor-Refrain - + Intro Intro - + Ending Schluss - + Other Weitere - + PreChorus diff --git a/resources/i18n/en.ts b/resources/i18n/en.ts index e7f1f6f57..72da457d4 100644 --- a/resources/i18n/en.ts +++ b/resources/i18n/en.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1674,13 +1674,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1694,17 +1694,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1724,15 +1724,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1742,122 +1747,122 @@ Version: %s - + Monitors - + Select monitor for output display: - + Display if a single screen - + Application Startup - + Show blank screen warning - + Automatically open the last service - + Show the splash screen - + Application Settings - + Prompt to save before starting a new service - + Automatically preview next item in service - + Slide loop delay: - + sec - + CCLI Details - + CCLI number: - + SongSelect username: - + SongSelect password: - + Display Position - + X - + Y - + Height - + Width - + Override display position - + Screen - + primary @@ -2905,103 +2910,93 @@ The content encoding is not UTF-8. - + %s (default) - + You must select a theme to edit. - - You must select a theme to delete. - - - - - Delete Confirmation - - - - + Error - + You are unable to delete the default theme. - + Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. - + You have not selected a theme. - + Save Theme - (%s) - + Theme Exported - + Your theme has been successfully exported. - + Theme Export Failed - + Your theme could not be exported due to an error. - + Select Theme Import File - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists - + A theme with this name already exists. Would you like to overwrite it? @@ -3021,285 +3016,305 @@ The content encoding is not UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color - + Gradient - + Image - + Color: - + Gradient: - + Horizontal - + Vertical - + Circular - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: - + Size: - + pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left - + Right - + Center - + Vertical Align: - + Top - + Middle - + Bottom - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: - + px - + Y position: - + Width: - + Height: - + Footer Area - + Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3489,12 +3504,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3765,142 +3780,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit - + Ed&it All - + &Delete - + Title && Lyrics - + Authors - + &Add to Song - + &Remove - + &Manage Authors, Topics, Song Books - + Topic - + A&dd to Song - + R&emove - + Song Book - + Book: - + Number: - + Authors, Topics && Song Book - + Theme - + New &Theme - + Copyright Information - + © - + CCLI number: - + Comments - + Theme, Copyright Info && Comments @@ -4788,17 +4803,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse - + Chorus - + Bridge @@ -4808,22 +4823,22 @@ Usually you are fine with the preselected choise. - + Intro - + Ending - + Other - + PreChorus diff --git a/resources/i18n/en_GB.ts b/resources/i18n/en_GB.ts index 7bf01decf..473d192d0 100644 --- a/resources/i18n/en_GB.ts +++ b/resources/i18n/en_GB.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1811,13 +1811,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1831,17 +1831,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1861,15 +1861,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1879,122 +1884,122 @@ Version: %s General - + Monitors Monitors - + Select monitor for output display: Select monitor for output display: - + Display if a single screen Display if a single screen - + Application Startup Application Startup - + Show blank screen warning Show blank screen warning - + Automatically open the last service Automatically open the last service - + Show the splash screen Show the splash screen - + Application Settings Application Settings - + Prompt to save before starting a new service Prompt to save before starting a new service - + Automatically preview next item in service Automatically preview next item in service - + Slide loop delay: Slide loop delay: - + sec sec - + CCLI Details CCLI Details - + CCLI number: CCLI number: - + SongSelect username: SongSelect username: - + SongSelect password: SongSelect password: - + Display Position Display Position - + X X - + Y Y - + Height Height - + Width Width - + Override display position Override display position - + Screen Screen - + primary primary @@ -3044,104 +3049,94 @@ The content encoding is not UTF-8. Set As &Global Default - + %s (default) %s (default) - + You must select a theme to edit. You must select a theme to edit. - - You must select a theme to delete. - You must select a theme to delete. - - - - Delete Confirmation - Delete Confirmation - - - + Error Error - + You are unable to delete the default theme. You are unable to delete the default theme. - + You have not selected a theme. You have not selected a theme. - + Save Theme - (%s) Save Theme - (%s) - + Theme Exported Theme Exported - + Your theme has been successfully exported. Your theme has been successfully exported. - + Theme Export Failed Theme Export Failed - + Your theme could not be exported due to an error. Your theme could not be exported due to an error. - + Select Theme Import File Select Theme Import File - + Theme (*.*) Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. File is not a valid theme. - + Theme Exists Theme Exists - + A theme with this name already exists. Would you like to overwrite it? A theme with this name already exists. Would you like to overwrite it? - + Theme %s is used in the %s plugin. Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. Theme %s is used by the service manager. @@ -3161,285 +3156,305 @@ The content encoding is not UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + Delete + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color Solid Colour - + Gradient Gradient - + Image Image - + Color: Colour: - + Gradient: Gradient: - + Horizontal Horizontal - + Vertical Vertical - + Circular Circular - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: Image: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: Font: - + Size: Size: - + pt pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold Bold - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left Left - + Right Right - + Center Centre - + Vertical Align: - + Top Top - + Middle Middle - + Bottom Bottom - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: X position: - + px px - + Y position: Y position: - + Width: Width: - + Height: Height: - + Footer Area - + Use default location Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3629,12 +3644,12 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Remotes @@ -3905,142 +3920,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Song Editor - + &Title: &Title: - + Alt&ernate title: Alt&ernate title: - + &Lyrics: &Lyrics: - + &Verse order: &Verse order: - + &Add &Add - + &Edit &Edit - + Ed&it All Ed&it All - + &Delete &Delete - + Title && Lyrics Title && Lyrics - + Authors Authors - + &Add to Song &Add to Song - + &Remove &Remove - + &Manage Authors, Topics, Song Books &Manage Authors, Topics, Song Books - + Topic Topic - + A&dd to Song A&dd to Song - + R&emove R&emove - + Song Book Song Book - + Book: Book: - + Number: Number: - + Authors, Topics && Song Book Authors, Topics && Song Book - + Theme Theme - + New &Theme New &Theme - + Copyright Information Copyright Information - + © © - + CCLI number: CCLI number: - + Comments Comments - + Theme, Copyright Info && Comments Theme, Copyright Info && Comments @@ -4928,17 +4943,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Verse - + Chorus Chorus - + Bridge Bridge @@ -4948,22 +4963,22 @@ Usually you are fine with the preselected choise. Pre-Chorus - + Intro Intro - + Ending Ending - + Other Other - + PreChorus diff --git a/resources/i18n/en_ZA.ts b/resources/i18n/en_ZA.ts index 24aab6f39..fe24a3670 100644 --- a/resources/i18n/en_ZA.ts +++ b/resources/i18n/en_ZA.ts @@ -5,7 +5,7 @@ No Parameter found - + No Parameter found @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1820,13 +1820,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1840,17 +1840,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1870,15 +1870,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename File Rename - + New File Name: New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1888,122 +1893,122 @@ Version: %s General - + Monitors Monitors - + Select monitor for output display: Select monitor for output display: - + Display if a single screen Display if a single screen - + Application Startup Application Startup - + Show blank screen warning Show blank screen warning - + Automatically open the last service Automatically open the last service - + Show the splash screen Show the splash screen - + Application Settings Application Settings - + CCLI Details CCLI Details - + CCLI number: CCLI number: - + SongSelect username: SongSelect username: - + SongSelect password: SongSelect password: - + Display Position Display Position - + X X - + Y Y - + Height Height - + Width Width - + Override display position Override display position - + Screen Screen - + primary primary - + Prompt to save before starting a new service Prompt to save before starting a new service - + Automatically preview next item in service Automatically preview next item in service - + Slide loop delay: Slide loop delay: - + sec sec @@ -3054,104 +3059,94 @@ The content encoding is not UTF-8. Set As &Global Default - + %s (default) %s (default) - + You must select a theme to edit. You must select a theme to edit. - - You must select a theme to delete. - You must select a theme to delete. - - - - Delete Confirmation - Delete Confirmation - - - + Error Error - + You are unable to delete the default theme. You are unable to delete the default theme. - + You have not selected a theme. You have not selected a theme. - + Save Theme - (%s) Save Theme - (%s) - + Theme Exported Theme Exported - + Your theme has been successfully exported. Your theme has been successfully exported. - + Theme Export Failed Theme Export Failed - + Your theme could not be exported due to an error. Your theme could not be exported due to an error. - + Select Theme Import File Select Theme Import File - + Theme (*.*) Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. File is not a valid theme. - + Theme Exists Theme Exists - + A theme with this name already exists. Would you like to overwrite it? A theme with this name already exists. Would you like to overwrite it? - + Theme %s is used in the %s plugin. Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. Theme %s is used by the service manager. @@ -3171,285 +3166,305 @@ The content encoding is not UTF-8. &Export Theme - - Delete %s theme? - Delete %s theme? + + Rename + + + + + Delete + Delete + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? + OpenLP.ThemeWizard - + Theme Wizard Theme Wizard - + Welcome to the Theme Wizard Welcome to the Theme Wizard - + 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. 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. - + Set Up Background Set Up Background - + Set up your theme's background according to the parameters below. Set up your theme's background according to the parameters below. - + Background type: Background type: - + Solid Color Solid Colour - + Gradient Gradient - + Image Image - + Color: Color: - + Gradient: Gradient: - + Horizontal Horizontal - + Vertical Vertical - + Circular Circular - + Top Left - Bottom Right Top Left - Bottom Right - + Bottom Left - Top Right Bottom Left - Top Right - + Image: Image: - + Main Area Font Details Main Area Font Details - + Define the font and display characteristics for the Display text Define the font and display characteristics for the Display text - + Font: Font: - + Size: Size: - + pt pt - + (%d lines per slide) (%d lines per slide) - + Line Spacing: Line Spacing: - + &Outline: &Outline: - + &Shadow: &Shadow: - + Bold Bold - + Italic Italic - + Footer Area Font Details Footer Area Font Details - + Define the font and display characteristics for the Footer text Define the font and display characteristics for the Footer text - + Text Formatting Details Text Formatting Details - + Allows additional display formatting information to be defined Allows additional display formatting information to be defined - + Horizontal Align: Horizontal Align: - + Left Left - + Right Right - + Center Centre - + Top Top - + Middle Middle - + Bottom Bottom - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: X position: - + px px - + Y position: Y position: - + Width: Width: - + Height: Height: - + Footer Area - + Use default location Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: - + Vertical Align: @@ -3639,12 +3654,12 @@ The content encoding is not UTF-8. <strong>Remote Plugin</strong><br />The remote plugin provides the ability to send messages to a running version of OpenLP on a different computer via a web browser or through the remote API. - + Remote - + Remotes Remotes @@ -3915,117 +3930,117 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Song Editor - + &Title: &Title: - + &Lyrics: &Lyrics: - + &Add &Add - + &Edit &Edit - + Ed&it All Ed&it All - + &Delete &Delete - + Title && Lyrics Title && Lyrics - + Authors Authors - + &Add to Song &Add to Song - + &Remove &Remove - + &Manage Authors, Topics, Song Books &Manage Authors, Topics, Song Books - + Topic Topic - + A&dd to Song A&dd to Song - + R&emove R&emove - + Song Book Song Book - + Authors, Topics && Song Book Authors, Topics && Song Book - + Theme Theme - + New &Theme New &Theme - + Copyright Information Copyright Information - + © © - + Comments Comments - + Theme, Copyright Info && Comments Theme, Copyright Info && Comments @@ -4125,27 +4140,27 @@ The content encoding is not UTF-8. This song book does not exist, do you want to add it? - + Alt&ernate title: Alt&ernate title: - + &Verse order: &Verse order: - + CCLI number: CCLI number: - + Book: Book: - + Number: Number: @@ -4938,17 +4953,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Verse - + Chorus Chorus - + Bridge Bridge @@ -4958,22 +4973,22 @@ Usually you are fine with the preselected choise. Pre-Chorus - + Intro Intro - + Ending Ending - + Other Other - + PreChorus diff --git a/resources/i18n/es.ts b/resources/i18n/es.ts index a14dc033c..07fc5678b 100644 --- a/resources/i18n/es.ts +++ b/resources/i18n/es.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1674,13 +1674,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1694,17 +1694,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1724,15 +1724,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1742,122 +1747,122 @@ Version: %s General - + Monitors Monitores - + Select monitor for output display: Seleccionar monitor para visualizar la salida: - + Display if a single screen - + Application Startup Inicio de la Aplicación - + Show blank screen warning Mostrar advertencia de pantalla en blanco - + Automatically open the last service Abrir automáticamente el último servicio - + Show the splash screen Mostrar pantalla de bienvenida - + Application Settings Configuración del Programa - + Prompt to save before starting a new service - + Automatically preview next item in service - + Slide loop delay: - + sec - + CCLI Details Detalles de CCLI - + CCLI number: - + SongSelect username: - + SongSelect password: - + Display Position - + X - + Y - + Height - + Width - + Override display position - + Screen Pantalla - + primary primario @@ -2905,103 +2910,93 @@ The content encoding is not UTF-8. - + %s (default) - + You must select a theme to edit. - - You must select a theme to delete. - - - - - Delete Confirmation - - - - + Error Error - + You are unable to delete the default theme. - + You have not selected a theme. - + Save Theme - (%s) Guardar Tema - (%s) - + Theme Exported - + Your theme has been successfully exported. - + Theme Export Failed - + Your theme could not be exported due to an error. - + Select Theme Import File Seleccione el Archivo de Tema a Importar - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists Ya existe el Tema - + A theme with this name already exists. Would you like to overwrite it? - + Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. @@ -3021,285 +3016,305 @@ The content encoding is not UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color Color Sólido - + Gradient Gradiente - + Image Imagen - + Color: - + Gradient: - + Horizontal Horizontal - + Vertical Vertical - + Circular Circular - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: Imagen: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: Fuente: - + Size: Tamaño: - + pt pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold Negrita - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left Izquierda - + Right Derecha - + Center Centro - + Vertical Align: - + Top Superior - + Middle Medio - + Bottom Inferior - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: - + px px - + Y position: - + Width: Ancho: - + Height: Altura: - + Footer Area - + Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3489,12 +3504,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Remotas @@ -3765,142 +3780,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Editor de Canción - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Editar - + Ed&it All - + &Delete &Eliminar - + Title && Lyrics Título && Letra - + Authors Autores - + &Add to Song &Agregar a Canción - + &Remove &Quitar - + &Manage Authors, Topics, Song Books - + Topic Categoría - + A&dd to Song A&gregar a Canción - + R&emove &Quitar - + Song Book Himnario - + Book: Libro: - + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Información de Derechos de Autor - + © - + CCLI number: - + Comments Comentarios - + Theme, Copyright Info && Comments Tema, Derechos de Autor && Comentarios @@ -4788,17 +4803,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Verso - + Chorus Coro - + Bridge Puente @@ -4808,22 +4823,22 @@ Usually you are fine with the preselected choise. Pre-Coro - + Intro Intro - + Ending Final - + Other Otro - + PreChorus diff --git a/resources/i18n/et.ts b/resources/i18n/et.ts index cc05aefdf..f9948ec1a 100644 --- a/resources/i18n/et.ts +++ b/resources/i18n/et.ts @@ -5,24 +5,26 @@ No Parameter found - + Ühtegi parameetrit ei leitud You have not entered a parameter to be replaced. Do you want to continue anyway? - + Sa ei ole sisestanud parameetrit, mida asendada. +Kas tahad sellegipoolest jätkata? - + No Placeholder found - + Ühtegi kohahoidjat ei leitud - + The alert text does not contain '<>'. Do want to continue anyway? - + Teate tekst ei sisalda '<>' märke. +Kas tahad sellegipoolest jätkata? @@ -45,7 +47,7 @@ Do want to continue anyway? Alert - + Teade @@ -108,7 +110,7 @@ Do want to continue anyway? &Parameter: - + &Parameeter: @@ -202,7 +204,7 @@ Do want to continue anyway? You cannot combine single and second bible verses. Do you want to delete your search results and start a new search? - + Ühe- ja kahekeelseid piiblisalme pole võimalik kombineerida. Kas sa tahad kustutada otsingutulemused ja alustada uut otsingut? @@ -230,22 +232,22 @@ Do want to continue anyway? Import - + Impordi Import a Bible - + Piibli importimine Add - + Lisa Add a new Bible - + Uue Piibli lisamine @@ -255,7 +257,7 @@ Do want to continue anyway? Edit the selected Bible - + Valitud Piibli muutmine @@ -265,7 +267,7 @@ Do want to continue anyway? Delete the selected Bible - + Valitud Piibli kustutamine @@ -275,7 +277,7 @@ Do want to continue anyway? Preview the selected Bible - + Valitud Piibli eelvaade @@ -285,17 +287,17 @@ Do want to continue anyway? Send the selected Bible live - + Valitud Piibli saatmine ekraanile Service - + Teenistus Add the selected Bible to the service - + Valitud Piibli lisamine teenistusse @@ -308,7 +310,7 @@ Do want to continue anyway? The book you requested could not be found in this Bible. Please check your spelling and that this is a complete Bible not just one testament. - + Nõutud raamatud ei leitud sellest Piiblist. Kontrolli õigekirja ning kas tegemist on terve Piibli või ühe testamendiga. @@ -328,23 +330,32 @@ Book Chapter:Verse-Verse Book Chapter:Verse-Verse,Verse-Verse Book Chapter:Verse-Verse,Chapter:Verse-Verse Book Chapter:Verse-Chapter:Verse - + Sinu kirjakohaviide on vigane või pole OpenLP poolt toetatud vormingus. Veendu, et viide vastab ühele järgnevatest mustritest: + +Raamat peatükk +Raamat peatükk-peatükk +Raamat peatükk:salm-salm +Raamat peatükk:salm-salm,salm-salm +Raamat peatükk:salm-salm,peatükk:salm-salm +Raamat peatükk:salm-peatükk:salm + Web Bible cannot be used - + Veebipiiblit pole võimalik kasutada Text Search is not available with Web Bibles. - + Tekstiotsing veebipiiblist pole võimalik. You did not enter a search keyword. You can separate different keywords by a space to search for all of your keywords and you can separate them by a comma to search for one of them. - + Sa ei sisestanud otsingusõna. +Sa võid eraldada võtmesõnad tühikuga, et otsida neid kõiki, või eraldada need komaga, et otsitaks ühte neist. @@ -419,7 +430,7 @@ Muudatused ei rakendu juba teenistusesse lisatud salmidele. Display second Bible verses - + Piiblit kuvatakse kahes keeles @@ -690,18 +701,19 @@ Muudatused ei rakendu juba teenistusesse lisatud salmidele. Open openlp.org 1.x Bible - + Ava openlp.org 1.x Piibel Starting Registering bible... - + Piibli registreerimise alustamine... Registered bible. Please note, that verses will be downloaded on demand and thus an internet connection is required. - + Piibel on registreeritud. Pane tähele, et salmid laaditakse alla +vajadusel, seetõttu on vajalik internetiühendus. @@ -711,17 +723,17 @@ demand and thus an internet connection is required. Permissions: - + Õigused: CSV File - + CSV fail openlp.org 1.x bible - + openlp.org 1.x Piibel @@ -731,7 +743,7 @@ demand and thus an internet connection is required. Bibleserver - + Piibliserver @@ -844,7 +856,7 @@ demand and thus an internet connection is required. Second: - + Teine: @@ -868,7 +880,7 @@ demand and thus an internet connection is required. Detecting encoding (this may take a few minutes)... - + Kooditabeli tuvastamine (see võib võtta mõne minuti)... @@ -1023,37 +1035,37 @@ demand and thus an internet connection is required. Customs - + Kohandatud Import - + Impordi Import a Custom - + Impordi kohandatud Load - + Laadi Load a new Custom - + Laadi uus kohandatud Add - + Lisa Add a new Custom - + Lisa uus kohandatud @@ -1063,7 +1075,7 @@ demand and thus an internet connection is required. Edit the selected Custom - + Muuda valitud kohandatut @@ -1073,7 +1085,7 @@ demand and thus an internet connection is required. Delete the selected Custom - + Kustuta valitud kohandatud @@ -1083,7 +1095,7 @@ demand and thus an internet connection is required. Preview the selected Custom - + Valitud kohandatu eelvaade @@ -1093,17 +1105,17 @@ demand and thus an internet connection is required. Send the selected Custom live - + Valitud kohandatu saatmine ekraanile Service - + Teenistus Add the selected Custom to the service - + Valitud kohandatud slaidi lisamine teenistusse @@ -1121,27 +1133,27 @@ demand and thus an internet connection is required. Images - + Pildid Load - + Laadi Load a new Image - + Uue pildi laadimine Add - + Lisa Add a new Image - + Uue pildi lisamine @@ -1151,7 +1163,7 @@ demand and thus an internet connection is required. Edit the selected Image - + Valitud pildi muutmine @@ -1161,7 +1173,7 @@ demand and thus an internet connection is required. Delete the selected Image - + Valitud pildi kustutamine @@ -1171,7 +1183,7 @@ demand and thus an internet connection is required. Preview the selected Image - + Valitud pildi eelvaatlemine @@ -1181,17 +1193,17 @@ demand and thus an internet connection is required. Send the selected Image live - + Valitud pildi saatmine ekraanile Service - + Teenistus Add the selected Image to the service - + Valitud pildi lisamine teenistusele @@ -1257,22 +1269,22 @@ demand and thus an internet connection is required. Load - + Laadi Load a new Media - + Uue meedia laadimine Add - + Lisa Add a new Media - + Uue meedia lisamine @@ -1282,7 +1294,7 @@ demand and thus an internet connection is required. Edit the selected Media - + Valitud meedia muutmine @@ -1292,7 +1304,7 @@ demand and thus an internet connection is required. Delete the selected Media - + Valitud meedia kustutamine @@ -1302,7 +1314,7 @@ demand and thus an internet connection is required. Preview the selected Media - + Valitud meedia eelvaatlus @@ -1312,17 +1324,17 @@ demand and thus an internet connection is required. Send the selected Media live - + Valitud meedia saatmine ekraanile Service - + Teenistus Add the selected Media to the service - + Valitud meedia lisamine teenistusse. @@ -1363,12 +1375,12 @@ demand and thus an internet connection is required. Media Display - + Meediakuva Use Phonon for video playback - + Phononi kasutamine video esitamiseks @@ -1749,7 +1761,54 @@ Final Credit on the cross, setting us free from sin. We bring this software to you for free because He has set us free. - + Projekti juht +Raoul "superfly" Snyman + +Arendajad +Tim "TRB143" Bentley +Jonathan "gushie" Corwin +Michael "cocooncrash" Gorven +Scott "sguerrieri" Guerrieri +Raoul "superfly" Snyman +Martin "mijiti" Thompson +Jon "Meths" Tibble + +Abilised +Meinert "m2j" Jordan +Andreas "googol" Preikschat +Christian "crichter" Richter +Philip "Phill" Ridout +Maikel Stuivenberg +Carsten "catini" Tingaard +Frode "frodus" Woldsund + +Testijad +Philip "Phill" Ridout +Wesley "wrst" Stout (lead) + +Pakendajad +Thomas "tabthorpe" Abthorpe (FreeBSD) +Tim "TRB143" Bentley (Fedora) +Michael "cocooncrash" Gorven (Ubuntu) +Matthias "matthub" Hub (Mac OS X) +Raoul "superfly" Snyman (Windows, Ubuntu) + +Kasutatud tehnoloogiad +Python: http://www.python.org/ +Qt4: http://qt.nokia.com/ +PyQt4: http://www.riverbankcomputing.co.uk/software/pyqt/intro +Oxygeni ikoonid: http://oxygen-icons.org/ + +Lõpptänu +"Sest nõnda on Jumal maailma armastanud, +et ta oma ainusündinud Poja on andnud, +et ükski, kes temasse usub, ei hukkuks, +vaid et tal oleks igavene elu. -- Johannese 3:16 + +Lõpuks suurim tänu kuulub Jumalale meie Isale, +kes saatis oma Poja ristile surema, et vabastada +meid patust. Me anname selle tarkvara sulle +tasuta, sest Tema on teinud meid vabaks. @@ -1777,12 +1836,12 @@ Final Credit Double-click to send items straight to live - + Topeltklõps otse ekraanile saatmiseks Expand new service items on creation - + Uued teenistuse kirjed on loomisel laiendatud @@ -1800,24 +1859,25 @@ Final Credit Send E-Mail - + Saada e-kiri Save to File - + Salvesta faili OpenLP.ExceptionForm - + Platform: %s - + Platvorm: %s + - + **OpenLP Bug Report** Version: %s @@ -1828,20 +1888,29 @@ Version: %s --- Library Versions --- %s - + **OpenLP vearaport** +versioon: %s + +--- Exception Traceback --- +%s +--- System information --- +%s +--- Library Versions --- +%s + - + Save Crash Report - + Vearaporti salvestamine - + Text files (*.txt *.log *.text) - + Tekstifailid (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1855,19 +1924,36 @@ Version: %s --- Library Versions --- %s - + *OpenLP vearaport* +versioon: %s + +--- Palun sisesta vea kirjeldus järgmistele ridadele. --- + + +--- Exception Traceback --- +%s +--- System information --- +%s +--- Library Versions --- +%s + OpenLP.FileRenameForm - + File Rename - + Faili ümbernimetamine - + New File Name: + Uue faili nimi: + + + + File Copy @@ -1879,122 +1965,122 @@ Version: %s Üldine - + Monitors Monitorid - + Select monitor for output display: Vali väljundkuva ekraan: - + Display if a single screen Kuvatakse, kui on ainult üks ekraan - + Application Startup Rakenduse käivitumine - + Show blank screen warning Kuvatakse tühja ekraani hoiatust - + Automatically open the last service Automaatselt avatakse viimane teenistus - + Show the splash screen Käivitumisel kuvatakse logo - + Application Settings Rakenduse sätted - + Prompt to save before starting a new service Enne uue teenistuse alustamist küsitakse, kas salvestada avatud teenistus - + Automatically preview next item in service Järgmise teenistuse elemendi automaatne eelvaade - + Slide loop delay: Slaidi näitamise pikkus korduses: - + sec sek - + CCLI Details CCLI andmed - + CCLI number: CCLI number: - + SongSelect username: SongSelecti kasutajanimi: - + SongSelect password: SongSelecti parool: - + Display Position Kuva asukoht - + X X - + Y Y - + Height Kõrgus - + Width Laius - + Override display position Kuva asukoht määratakse jõuga - + Screen Ekraan - + primary peamine @@ -2432,7 +2518,7 @@ Sa võid viimase versiooni alla laadida aadressilt http://openlp.org/. Configure &Shortcuts... - + &Kiirklahvide seadistamine... @@ -2771,22 +2857,22 @@ Sisu ei ole UTF-8 kodeeringus. &Expand all - + &Laienda kõik Expand all the service items. - + Kõigi teenistuse kirjete laiendamine. &Collapse all - + &Ahenda kõik Collapse all the service items. - + Kõigi teenistuse kirjete ahendamine. @@ -2810,42 +2896,42 @@ Sisu ei ole UTF-8 kodeeringus. Customize Shortcuts - + Kiirklahvide kohandamine Action - + Tegevus Shortcut - + Kiirklahv Default: %s - + Vaikimisi: %s Custom: - + Kohandatud: None - + Pole Duplicate Shortcut - + Dubleeriv kiirklahv The shortcut "%s" is already assigned to another action, please use a different shortcut. - + Kiirklahv "%s" on juba seotud teise tegevusega, kasuta mingit muud kiirklahvi. @@ -2918,17 +3004,17 @@ Sisu ei ole UTF-8 kodeeringus. Blank Screen - + Ekraani tühjendamine Blank to Theme - + Teematausta näitamine Show Desktop - + Töölaua näitamine @@ -2959,22 +3045,22 @@ Sisu ei ole UTF-8 kodeeringus. Theme Name Missing - + Puudub teema nimi There is no name for this theme. Please enter one. - + Teemal ei ole nime. Palun sisesta nimi. Theme Name Invalid - + Sobimatu teema nimi Invalid theme name. Please enter one. - + Teema nimi pole sobiv. Palun sisesta sobiv nimi. @@ -3045,402 +3131,412 @@ Sisu ei ole UTF-8 kodeeringus. Määra &globaalseks vaikeväärtuseks - + %s (default) %s (vaikimisi) - + You must select a theme to edit. Pead valima kujunduse, mida muuta. - - You must select a theme to delete. - Pead valima kujunduse, mida tahad kustutada. - - - - Delete Confirmation - Kustutamise kinnitus - - - + Error Viga - + You are unable to delete the default theme. Vaikimisi kujundust pole võimalik kustutada. - + Theme %s is used in the %s plugin. Kujundust %s kasutatakse pluginas %s. - + Theme %s is used by the service manager. Teenistuse halduri nähtavuse ümberlülitamine. - + You have not selected a theme. Sa ei ole kujundust valinud. - + Save Theme - (%s) Salvesta kujundus - (%s) - + Theme Exported Kujundus eksporditud - + Your theme has been successfully exported. Sinu kujunduse on edukalt eksporditud. - + Theme Export Failed Kujunduse eksportimine nurjus - + Your theme could not be exported due to an error. Sinu kujundust polnud võimalik eksportida, kuna esines viga. - + Select Theme Import File Importimiseks kujunduse faili valimine - + Theme (*.*) Kujundus (*.*) - + File is not a valid theme. The content encoding is not UTF-8. See fail ei ole korrektne kujundus. Sisu kodeering ei ole UTF-8. - + File is not a valid theme. See fail ei ole sobilik kujundus. - + Theme Exists Kujundus on juba olemas - + A theme with this name already exists. Would you like to overwrite it? Sellenimeline kujundus on juba olemas. Kas tahad selle üle kirjutada? &Copy Theme - + &Kopeeri teemat &Rename Theme - + &Nimeta teema ümber &Export Theme + &Ekspordi teema + + + + Rename - - Delete %s theme? + + Delete + Kustuta + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Teemanõustaja - + Welcome to the Theme Wizard - + Tere tulemast teemanõustajasse - + 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. - + See nõustaja aitab luua ja muuda kujundusi. Klõpsa edasi nupul, et seda alustada tausta määramisest. - + Set Up Background - + Tausta määramine - + Set up your theme's background according to the parameters below. - + Määra kujunduse taust, kasutades järgnevaid parameetreid. - + Background type: - + Tausta liik: - + Solid Color Ühtlane värv - + Gradient Üleminek - + Image Pilt - + Color: Värvus: - + Gradient: Üleminek: - + Horizontal Horisontaalne - + Vertical Vertikaalne - + Circular - Ümmargune + Radiaalne - + Top Left - Bottom Right - + Loodest kagusse - + Bottom Left - Top Right - + Edelast kirdesse - + Image: Pilt: - + Main Area Font Details - + Peamise kirja üksikasjad - + Define the font and display characteristics for the Display text - + Määra font ja teised kuvatava teksti omadused - + Font: Kirjastiil: - + Size: Suurus: - + pt pt - + (%d lines per slide) - + (%d rida slaidil) - + Line Spacing: - + Reavahe: - + &Outline: - + &Kontuurjoon: - + &Shadow: - + Bold Rasvane - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left Vasakul - + Right Paremal - + Center Keskel - + Vertical Align: - + Top Üleval - + Middle Keskel - + Bottom All - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: X-asukoht: - + px px - + Y position: Y-asukoht: - + Width: Laius: - + Height: Kõrgus: - + Footer Area - + Use default location Vaikimisi asukoht - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3513,7 +3609,7 @@ Sisu kodeering ei ole UTF-8. Load - + Laadi @@ -3553,7 +3649,7 @@ Sisu kodeering ei ole UTF-8. Service - + Teenistus @@ -3630,12 +3726,12 @@ Sisu kodeering ei ole UTF-8. <b>Kaugjuhtimisplugin</b><br>See plugin võimaldab töötavale openlp programmile teadete saatmise teisest arvutist veebilehitseja või mõne muu rakenduse kaudu.<br>Selle peamine rakendus on teadete saatmine lastehoiust. - + Remote - + Remotes Kaugjuhtimine @@ -3802,7 +3898,7 @@ Sisu kodeering ei ole UTF-8. Add - + Lisa @@ -3852,7 +3948,7 @@ Sisu kodeering ei ole UTF-8. Service - + Teenistus @@ -3906,142 +4002,142 @@ Sisu kodeering ei ole UTF-8. SongsPlugin.EditSongForm - + Song Editor Lauluredaktor - + &Title: &Pealkiri: - + Alt&ernate title: &Alternatiivne pealkiri: - + &Lyrics: &Sõnad: - + &Verse order: &Salmide järjekord: - + &Add &Lisa - + &Edit &Muuda - + Ed&it All Muuda &kõiki - + &Delete &Kustuta - + Title && Lyrics Pealkiri && laulusõnad - + Authors Autorid - + &Add to Song &Lisa laulule - + &Remove &Eemalda - + &Manage Authors, Topics, Song Books &Autorite, teemade ja laulikute haldamine - + Topic Teema - + A&dd to Song L&isa laulule - + R&emove &Eemalda - + Song Book Laulik - + Book: Book: - + Number: Number: - + Authors, Topics && Song Book Autorid, teemad && laulik - + Theme Kujundus - + New &Theme Uus &kujundus - + Copyright Information Autoriõiguse andmed - + © © - + CCLI number: CCLI number: - + Comments Kommentaarid - + Theme, Copyright Info && Comments Kujundus, autoriõigus && kommentaarid @@ -4929,17 +5025,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Salm - + Chorus Refrään - + Bridge Vahemäng @@ -4949,24 +5045,24 @@ Usually you are fine with the preselected choise. Eelrefrään - + Intro Sissejuhatus - + Ending Lõpetus - + Other Muu - + PreChorus - + Eelrefrään diff --git a/resources/i18n/hu.ts b/resources/i18n/hu.ts index 857f1f912..ff559b636 100644 --- a/resources/i18n/hu.ts +++ b/resources/i18n/hu.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? Nincs megadva a cserélendő paraméter. Folytatható? - + No Placeholder found Nem található a helyjelölő - + The alert text does not contain '<>'. Do want to continue anyway? A figyelmeztető szöveg nem tartalmaz „<>” karaktereket. @@ -1689,13 +1689,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1709,17 +1709,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1739,15 +1739,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename Fájl átnevezése - + New File Name: Új fájl neve: + + + File Copy + + OpenLP.GeneralTab @@ -1757,122 +1762,122 @@ Version: %s Általános - + Monitors Monitorok - + Select monitor for output display: Válaszd ki a vetítési képernyőt: - + Display if a single screen Megjelenítés egy képernyő esetén - + Application Startup Alkalmazás indítása - + Show blank screen warning Figyelmeztetés megjelenítése a fekete képernyőről - + Automatically open the last service Utolsó szolgálat automatikus megnyitása - + Show the splash screen Indító képernyő megjelenítése - + Application Settings Alkalmazás beállítások - + Prompt to save before starting a new service Rákérdezés mentésre új szolgálat kezdése előtt - + Automatically preview next item in service Következő elem automatikus előnézete a szolgálatban - + Slide loop delay: Időzített diák késleltetése: - + sec mp - + CCLI Details CCLI részletek - + CCLI number: CCLI szám: - + SongSelect username: SongSelect felhasználói név: - + SongSelect password: SongSelect jelszó: - + Display Position Megjelenítés pozíciója - + X - + Y - + Height Magasság - + Width Szélesség - + Override display position Megjelenítési pozíció felülírása - + Screen Képernyő - + primary elsődleges @@ -2923,104 +2928,94 @@ A tartalom kódolása nem UTF-8. Beállítás &globális alapértelmezetté - + %s (default) %s (alapértelmezett) - + You must select a theme to edit. Ki kell választani témát a szerkesztéshez. - - You must select a theme to delete. - Ki kell választani témát a törléshez. - - - - Delete Confirmation - Törlés megerősítése - - - + Error Hiba - + You are unable to delete the default theme. Az alapértelmezett témát nem lehet törölni. - + You have not selected a theme. Nincs kiválasztva egy téma sem. - + Save Theme - (%s) Téma mentése – (%s) - + Theme Exported Téma exportálva - + Your theme has been successfully exported. A téma sikeresen exportálásra került. - + Theme Export Failed A téma exportálása nem sikerült - + Your theme could not be exported due to an error. A témát nem sikerült exportálni egy hiba miatt. - + Select Theme Import File Importálandó téma fájl kiválasztása - + Theme (*.*) Témák (*.*) - + File is not a valid theme. The content encoding is not UTF-8. Nem érvényes témafájl. A tartalom kódolása nem UTF-8. - + File is not a valid theme. Nem érvényes témafájl. - + Theme Exists A téma már létezik - + A theme with this name already exists. Would you like to overwrite it? Egy ilyen nevű téma már létezik. Szeretnéd felülírni? - + Theme %s is used in the %s plugin. A(z) %s témát a(z) %s bővítmény használja. - + Theme %s is used by the service manager. A(z) %s témát a szolgálatkezelő használja. @@ -3040,285 +3035,305 @@ A tartalom kódolása nem UTF-8. Téma e&xportálása - - Delete %s theme? - Törölhető ez a téma: %s? + + Rename + + + + + Delete + Törlés + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? + OpenLP.ThemeWizard - + Theme Wizard Téma tündér - + Welcome to the Theme Wizard Üdvözlet a téma tündérben - + 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. A tündérrel témákat lehet létrehozni és módosítani. Az alább található Tovább gombra való kattintással indítható a folyamat első lépése a háttér beállításával. - + Set Up Background Háttér beállítása - + Set up your theme's background according to the parameters below. A téma háttere az alábbi paraméterekkel állítható be. - + Background type: Háttér típusa: - + Solid Color Homogén szín - + Gradient Színátmenet - + Image Kép - + Color: Szín: - + Gradient: Színátmenet: - + Horizontal Vízszintes - + Vertical Függőleges - + Circular Körkörös - + Top Left - Bottom Right Bal felső sarokból jobb alsó sarokba - + Bottom Left - Top Right Bal alső sarokbó jobb felső sarokba - + Image: Kép: - + Main Area Font Details Fő tartalom betűkészlet jellemzői - + Define the font and display characteristics for the Display text A fő szöveg betűkészlete és a megjelenési tulajdonságai - + Font: Betűkészlet: - + Size: Méret: - + pt - + (%d lines per slide) (%d sor diánként) - + Line Spacing: Sorköz: - + &Outline: &Körvonal: - + &Shadow: &Árnyék: - + Bold Félkövér - + Italic Dőlt - + Footer Area Font Details Lábléc betűkészlet jellemzői - + Define the font and display characteristics for the Footer text A lábléc szöveg betűkészlete és a megjelenési tulajdonságai - + Text Formatting Details Szövegformázás jellemzői - + Allows additional display formatting information to be defined További megjelenési formázások - + Horizontal Align: Vízszintes igazítás: - + Left Balra zárt - + Right Jobbra zárt - + Center Középre igazított - + Vertical Align: Függőleges igazítás: - + Top Felülre - + Middle Középre - + Bottom Alulra - + Transitions Átmenetek - + Output Area Locations Pozíciók - + Allows you to change and move the main and footer areas. A fő szöveg és a lábléc helyzetének mozgatása. - + &Main Area &Fő szöveg - + &Use default location &Alapértelmezett helyen - + X position: X pozíció: - + px - + Y position: Y pozíció: - + Width: Szélesség: - + Height: Magasság: - + Footer Area Lábléc - + Use default location Alapértelmezett helyen - + Save and Preview Mentés és előnézet - + View the theme and save it replacing the current one or change the name to create a new theme A téma előnézete és mentése. Felülírható már egy meglévő vagy egy új név megadásával új téma hozható létre - + Theme name: Téma neve: @@ -3508,12 +3523,12 @@ A tartalom kódolása nem UTF-8. <strong>Távvezérlő bővítmény</strong><br />A távvezérlő bővítmény egy böngésző vagy egy távoli API segítségével lehetővé teszi egy másik számítógépen futó OpenLP számára való üzenetküldést. - + Remote Távvezérlő - + Remotes Távvezérlők @@ -3784,142 +3799,142 @@ A tartalom kódolása nem UTF-8. SongsPlugin.EditSongForm - + Song Editor Dalszerkesztő - + &Title: &Cím: - + Alt&ernate title: &Alternatív cím: - + &Lyrics: &Dalszöveg: - + &Verse order: Versszak &sorrend: - + &Add &Hozzáadás - + &Edit &Szerkesztés - + Ed&it All &Összes szerkesztése - + &Delete &Törlés - + Title && Lyrics Cím és dalszöveg - + Authors Szerzők - + &Add to Song &Hozzáadás dalhoz - + &Remove &Eltávolítás - + &Manage Authors, Topics, Song Books Szerzők, témakörök, énekeskönyvek &kezelése - + Topic Témakör - + A&dd to Song &Hozzáadás dalhoz - + R&emove &Eltávolítás - + Song Book Énekeskönyv - + Book: Könyv: - + Number: Szám: - + Authors, Topics && Song Book Szerzők, témakörök és énekeskönyvek - + Theme Téma - + New &Theme Új &téma - + Copyright Information Szerzői jogi információ - + © - + CCLI number: CCLI szám: - + Comments Megjegyzések - + Theme, Copyright Info && Comments Téma, szerzői jogi infók és megjegyzések @@ -4808,17 +4823,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Versszak - + Chorus Refrén - + Bridge Mellékdal @@ -4828,22 +4843,22 @@ Usually you are fine with the preselected choise. Elő-refrén - + Intro Bevezetés - + Ending Befejezés - + Other Egyéb - + PreChorus Elő-refrén diff --git a/resources/i18n/ja.ts b/resources/i18n/ja.ts index c010b05e7..3d08ea94f 100644 --- a/resources/i18n/ja.ts +++ b/resources/i18n/ja.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1674,13 +1674,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1694,17 +1694,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1724,15 +1724,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1742,122 +1747,122 @@ Version: %s - + Monitors - + Select monitor for output display: - + Display if a single screen - + Application Startup - + Show blank screen warning - + Automatically open the last service - + Show the splash screen - + Application Settings - + Prompt to save before starting a new service - + Automatically preview next item in service - + Slide loop delay: - + sec - + CCLI Details - + CCLI number: - + SongSelect username: - + SongSelect password: - + Display Position - + X - + Y - + Height - + Width - + Override display position - + Screen - + primary @@ -2905,103 +2910,93 @@ The content encoding is not UTF-8. - + %s (default) - + You must select a theme to edit. - - You must select a theme to delete. - - - - - Delete Confirmation - - - - + Error - + You are unable to delete the default theme. - + Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. - + You have not selected a theme. - + Save Theme - (%s) - + Theme Exported - + Your theme has been successfully exported. - + Theme Export Failed - + Your theme could not be exported due to an error. - + Select Theme Import File - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists - + A theme with this name already exists. Would you like to overwrite it? @@ -3021,285 +3016,305 @@ The content encoding is not UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color - + Gradient - + Image - + Color: - + Gradient: - + Horizontal - + Vertical - + Circular - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: - + Size: - + pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left - + Right - + Center - + Vertical Align: - + Top - + Middle - + Bottom - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: - + px - + Y position: - + Width: - + Height: - + Footer Area - + Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3489,12 +3504,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3765,142 +3780,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit - + Ed&it All - + &Delete 削除(&D) - + Title && Lyrics - + Authors - + &Add to Song - + &Remove - + &Manage Authors, Topics, Song Books - + Topic - + A&dd to Song - + R&emove - + Song Book - + Book: - + Number: - + Authors, Topics && Song Book - + Theme - + New &Theme - + Copyright Information - + © - + CCLI number: - + Comments - + Theme, Copyright Info && Comments @@ -4788,17 +4803,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse - + Chorus - + Bridge @@ -4808,22 +4823,22 @@ Usually you are fine with the preselected choise. - + Intro - + Ending - + Other その他 - + PreChorus diff --git a/resources/i18n/ko.ts b/resources/i18n/ko.ts index 358235d10..d2a1e9af4 100644 --- a/resources/i18n/ko.ts +++ b/resources/i18n/ko.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1675,13 +1675,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1695,17 +1695,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1725,15 +1725,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1743,122 +1748,122 @@ Version: %s - + Monitors - + Select monitor for output display: - + Display if a single screen - + Application Startup - + Show blank screen warning - + Automatically open the last service - + Show the splash screen - + Application Settings - + Prompt to save before starting a new service - + Automatically preview next item in service - + Slide loop delay: - + sec - + CCLI Details - + CCLI number: - + SongSelect username: - + SongSelect password: - + Display Position - + X - + Y - + Height - + Width - + Override display position - + Screen - + primary @@ -2906,103 +2911,93 @@ The content encoding is not UTF-8. - + %s (default) - + You must select a theme to edit. - - You must select a theme to delete. - - - - - Delete Confirmation - - - - + Error 에러 - + You are unable to delete the default theme. - + You have not selected a theme. - + Save Theme - (%s) - + Theme Exported - + Your theme has been successfully exported. - + Theme Export Failed - + Your theme could not be exported due to an error. - + Select Theme Import File - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. - + Theme Exists - + A theme with this name already exists. Would you like to overwrite it? - + Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. @@ -3022,285 +3017,305 @@ The content encoding is not UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color - + Gradient - + Image - + Color: - + Gradient: - + Horizontal - + Vertical - + Circular - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: - + Size: - + pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left - + Right - + Center - + Vertical Align: - + Top - + Middle 가운데 - + Bottom 아래 - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: - + px - + Y position: - + Width: - + Height: - + Footer Area - + Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3490,12 +3505,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes @@ -3766,142 +3781,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor - + &Title: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit - + Ed&it All - + &Delete 삭제(&D) - + Title && Lyrics - + Authors - + &Add to Song - + &Remove - + &Manage Authors, Topics, Song Books - + Topic - + A&dd to Song - + R&emove - + Song Book - + Book: - + Number: - + Authors, Topics && Song Book - + Theme - + New &Theme - + Copyright Information - + © - + CCLI number: - + Comments - + Theme, Copyright Info && Comments @@ -4789,17 +4804,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse - + Chorus - + Bridge @@ -4809,22 +4824,22 @@ Usually you are fine with the preselected choise. - + Intro - + Ending - + Other - + PreChorus diff --git a/resources/i18n/nb.ts b/resources/i18n/nb.ts index fc8b35776..374307ba7 100644 --- a/resources/i18n/nb.ts +++ b/resources/i18n/nb.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1674,13 +1674,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1694,17 +1694,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1724,15 +1724,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1742,122 +1747,122 @@ Version: %s - + Monitors - + Select monitor for output display: Velg hvilken skjerm som skal brukes til fremvisning: - + Display if a single screen - + Application Startup Programoppstart - + Show blank screen warning - + Automatically open the last service Åpne forrige møteplan automatisk - + Show the splash screen - + Application Settings Programinnstillinger - + Prompt to save before starting a new service - + Automatically preview next item in service - + Slide loop delay: - + sec - + CCLI Details CCLI-detaljer - + CCLI number: - + SongSelect username: - + SongSelect password: - + Display Position - + X - + Y - + Height - + Width - + Override display position - + Screen - + primary primær @@ -2905,103 +2910,93 @@ The content encoding is not UTF-8. - + %s (default) - + You must select a theme to edit. - - You must select a theme to delete. - - - - - Delete Confirmation - - - - + Error Feil - + You are unable to delete the default theme. Du kan ikke slette det globale temaet - + You have not selected a theme. - + Save Theme - (%s) - + Theme Exported - + Your theme has been successfully exported. - + Theme Export Failed - + Your theme could not be exported due to an error. - + Select Theme Import File - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. Filen er ikke et gyldig tema. - + Theme Exists Temaet eksisterer - + A theme with this name already exists. Would you like to overwrite it? - + Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. @@ -3021,285 +3016,305 @@ The content encoding is not UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color Ensfarget - + Gradient - + Image - + Color: - + Gradient: - + Horizontal - + Vertical Vertikal - + Circular - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: - + Size: Størrelse: - + pt pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold Fet - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left - + Right - + Center Sentrert - + Vertical Align: - + Top Topp - + Middle Midtstilt - + Bottom Bunn - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: - + px - + Y position: - + Width: Bredde: - + Height: Høyde: - + Footer Area - + Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3489,12 +3504,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Fjernmeldinger @@ -3765,142 +3780,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Sangredigeringsverktøy - + &Title: &Tittel: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add - + &Edit &Rediger - + Ed&it All - + &Delete &Slett - + Title && Lyrics Tittel && Sangtekst - + Authors - + &Add to Song - + &Remove &Fjern - + &Manage Authors, Topics, Song Books - + Topic Emne - + A&dd to Song - + R&emove &Fjern - + Song Book - + Book: Bok: - + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Copyright-informasjon - + © - + CCLI number: - + Comments - + Theme, Copyright Info && Comments @@ -4788,17 +4803,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Vers - + Chorus - + Bridge @@ -4808,22 +4823,22 @@ Usually you are fine with the preselected choise. Pre-Chorus - + Intro - + Ending - + Other Annet - + PreChorus diff --git a/resources/i18n/pt_BR.ts b/resources/i18n/pt_BR.ts index 526cb676c..36c15980e 100644 --- a/resources/i18n/pt_BR.ts +++ b/resources/i18n/pt_BR.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1675,13 +1675,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1695,17 +1695,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1725,15 +1725,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1743,122 +1748,122 @@ Version: %s Geral - + Monitors Monitores - + Select monitor for output display: Selecione um monitor para exibição: - + Display if a single screen - + Application Startup Inicialização da Aplicação - + Show blank screen warning Exibir alerta de tela em branco - + Automatically open the last service Abrir a última Lista de Exibição automaticamente - + Show the splash screen Exibir a tela inicial - + Application Settings Configurações da Aplicação - + Prompt to save before starting a new service Perguntar sobre salvamento antes de iniciar uma nova lista - + Automatically preview next item in service Pré-visualizar automaticamente o próximo item na Lista de Exibição - + Slide loop delay: Atraso no loop de slide: - + sec seg - + CCLI Details Detalhes de CCLI - + CCLI number: Número CCLI: - + SongSelect username: Usuário SongSelect: - + SongSelect password: Senha do SongSelect: - + Display Position Posição do Display - + X X - + Y Y - + Height Altura - + Width Largura - + Override display position Modificar posição do display - + Screen Tela - + primary principal @@ -2906,104 +2911,94 @@ The content encoding is not UTF-8. - + %s (default) - + You must select a theme to edit. - - You must select a theme to delete. - - - - - Delete Confirmation - - - - + Error Erro - + You are unable to delete the default theme. - + You have not selected a theme. Você não selecionou um tema. - + Save Theme - (%s) Salvar Tema - (%s) - + Theme Exported - + Your theme has been successfully exported. - + Theme Export Failed - + Your theme could not be exported due to an error. O tema não pôde ser exportado devido a um erro. - + Select Theme Import File Selecionar Arquivo de Importação de Tema - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. O arquivo não é um tema válido. A codificação do conteúdo não é UTF-8. - + File is not a valid theme. O arquivo não é um tema válido. - + Theme Exists Tema Existe - + A theme with this name already exists. Would you like to overwrite it? - + Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. @@ -3023,285 +3018,305 @@ A codificação do conteúdo não é UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + Deletar + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color Cor Sólida - + Gradient Gradiente - + Image Imagem - + Color: Cor: - + Gradient: Gradiente: - + Horizontal Horizontal - + Vertical Vertical - + Circular Circular - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: Imagem: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: Fonte: - + Size: Tamanho: - + pt pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold Negrito - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left Esquerda - + Right Direita - + Center Centralizar - + Vertical Align: - + Top Topo - + Middle Meio - + Bottom Rodapé - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: Posição X: - + px px - + Y position: Posição Y: - + Width: Largura: - + Height: Altura: - + Footer Area - + Use default location Usar local padrão - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3491,12 +3506,12 @@ A codificação do conteúdo não é UTF-8. - + Remote - + Remotes Remoto @@ -3767,142 +3782,142 @@ A codificação do conteúdo não é UTF-8. SongsPlugin.EditSongForm - + Song Editor Editor de Músicas - + &Title: &Título: - + Alt&ernate title: Título &Alternativo: - + &Lyrics: - + &Verse order: Ordem das &estrofes: - + &Add %Adicionar - + &Edit &Editar - + Ed&it All - + &Delete &Deletar - + Title && Lyrics Título && Letras - + Authors Autores - + &Add to Song &Adicionar à Música - + &Remove &Remover - + &Manage Authors, Topics, Song Books - + Topic Tópico - + A&dd to Song A&dicionar uma Música - + R&emove R&emover - + Song Book Livro de Músicas - + Book: Livro: - + Number: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme - + Copyright Information Informação de Direitos Autorais - + © - + CCLI number: Número CCLI: - + Comments Comentários - + Theme, Copyright Info && Comments Tema, Direitos Autorais && Comentários @@ -4790,17 +4805,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse - + Chorus - + Bridge @@ -4810,22 +4825,22 @@ Usually you are fine with the preselected choise. - + Intro - + Ending - + Other - + PreChorus diff --git a/resources/i18n/sv.ts b/resources/i18n/sv.ts index df7cbff79..0cf1e4abc 100644 --- a/resources/i18n/sv.ts +++ b/resources/i18n/sv.ts @@ -14,12 +14,12 @@ Do you want to continue anyway? - + No Placeholder found - + The alert text does not contain '<>'. Do want to continue anyway? @@ -1675,13 +1675,13 @@ Final Credit OpenLP.ExceptionForm - + Platform: %s - + **OpenLP Bug Report** Version: %s @@ -1695,17 +1695,17 @@ Version: %s - + Save Crash Report - + Text files (*.txt *.log *.text) - + *OpenLP Bug Report* Version: %s @@ -1725,15 +1725,20 @@ Version: %s OpenLP.FileRenameForm - + File Rename - + New File Name: + + + File Copy + + OpenLP.GeneralTab @@ -1743,122 +1748,122 @@ Version: %s Allmänt - + Monitors Skärmar - + Select monitor for output display: Välj skärm för utsignal: - + Display if a single screen - + Application Startup Programstart - + Show blank screen warning Visa varning vid tom skärm - + Automatically open the last service Öppna automatiskt den senaste planeringen - + Show the splash screen Visa startbilden - + Application Settings Programinställningar - + Prompt to save before starting a new service - + Automatically preview next item in service Automatiskt förhandsgranska nästa post i planeringen - + Slide loop delay: - + sec sekunder - + CCLI Details CCLI-detaljer - + CCLI number: CCLI-nummer - + SongSelect username: SongSelect användarnamn: - + SongSelect password: SongSelect lösenord: - + Display Position - + X X - + Y Y - + Height Höjd - + Width Bredd - + Override display position - + Screen Skärm - + primary primär @@ -2906,103 +2911,93 @@ The content encoding is not UTF-8. - + %s (default) - + You must select a theme to edit. - - You must select a theme to delete. - - - - - Delete Confirmation - - - - + Error Fel - + You are unable to delete the default theme. Du kan inte ta bort standardtemat. - + You have not selected a theme. Du har inte valt ett tema. - + Save Theme - (%s) Spara tema - (%s) - + Theme Exported - + Your theme has been successfully exported. - + Theme Export Failed - + Your theme could not be exported due to an error. - + Select Theme Import File Välj tema importfil - + Theme (*.*) - + File is not a valid theme. The content encoding is not UTF-8. - + File is not a valid theme. Filen är inte ett giltigt tema. - + Theme Exists Temat finns - + A theme with this name already exists. Would you like to overwrite it? - + Theme %s is used in the %s plugin. - + Theme %s is used by the service manager. @@ -3022,285 +3017,305 @@ The content encoding is not UTF-8. - - Delete %s theme? + + Rename + + + + + Delete + + + + + You must select a theme to %s. + + + + + %s Confirmation + + + + + %s %s theme? OpenLP.ThemeWizard - + Theme Wizard - + Welcome to the Theme Wizard - + 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. - + Set Up Background - + Set up your theme's background according to the parameters below. - + Background type: - + Solid Color Solid färg - + Gradient Stegvis - + Image Bild - + Color: Färg: - + Gradient: Stegvis: - + Horizontal Horisontal - + Vertical Vertikal - + Circular Cirkulär - + Top Left - Bottom Right - + Bottom Left - Top Right - + Image: Bild: - + Main Area Font Details - + Define the font and display characteristics for the Display text - + Font: Typsnitt: - + Size: Storlek: - + pt pt - + (%d lines per slide) - + Line Spacing: - + &Outline: - + &Shadow: - + Bold Fetstil - + Italic - + Footer Area Font Details - + Define the font and display characteristics for the Footer text - + Text Formatting Details - + Allows additional display formatting information to be defined - + Horizontal Align: - + Left Vänster - + Right Höger - + Center Centrera - + Vertical Align: - + Top Toppen - + Middle Mitten - + Bottom Botten - + Transitions - + Output Area Locations - + Allows you to change and move the main and footer areas. - + &Main Area - + &Use default location - + X position: X-position: - + px px - + Y position: Y-position: - + Width: Bredd: - + Height: Höjd: - + Footer Area - + Use default location - + Save and Preview - + View the theme and save it replacing the current one or change the name to create a new theme - + Theme name: @@ -3490,12 +3505,12 @@ The content encoding is not UTF-8. - + Remote - + Remotes Fjärrstyrningar @@ -3766,142 +3781,142 @@ The content encoding is not UTF-8. SongsPlugin.EditSongForm - + Song Editor Sångredigerare - + &Title: &Titel: - + Alt&ernate title: - + &Lyrics: - + &Verse order: - + &Add &Lägg till - + &Edit &Redigera - + Ed&it All - + &Delete &Ta bort - + Title && Lyrics Titel && Sångtexter - + Authors Författare - + &Add to Song &Lägg till i sång - + &Remove &Ta bort - + &Manage Authors, Topics, Song Books - + Topic Ämne - + A&dd to Song Lä&gg till i sång - + R&emove Ta &bort - + Song Book Sångbok - + Book: Bok: - + Number: Nummer: - + Authors, Topics && Song Book - + Theme Tema - + New &Theme Nytt &tema - + Copyright Information Copyrightinformation - + © © - + CCLI number: CCLI nummer: - + Comments Kommentarer - + Theme, Copyright Info && Comments Tema, copyrightinfo && kommentarer @@ -4789,17 +4804,17 @@ Usually you are fine with the preselected choise. SongsPlugin.VerseType - + Verse Vers - + Chorus Refräng - + Bridge Brygga @@ -4809,22 +4824,22 @@ Usually you are fine with the preselected choise. Brygga - + Intro Intro - + Ending Ending - + Other Övrigt - + PreChorus From 304f7b406d0d7dfa3e6701dbe831ab8786dbda19 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 26 Dec 2010 15:44:07 +0100 Subject: [PATCH 06/49] started work on slidecontroller resize --- openlp/core/lib/settingsmanager.py | 2 +- openlp/core/ui/mainwindow.py | 19 +++------- openlp/core/ui/slidecontroller.py | 58 ++++++++++++++++-------------- 3 files changed, 38 insertions(+), 41 deletions(-) diff --git a/openlp/core/lib/settingsmanager.py b/openlp/core/lib/settingsmanager.py index 8d249d2cd..b8736d049 100644 --- a/openlp/core/lib/settingsmanager.py +++ b/openlp/core/lib/settingsmanager.py @@ -55,7 +55,7 @@ class SettingsManager(object): self.mainwindow_left = mainwindow_docbars self.mainwindow_right = mainwindow_docbars self.slidecontroller = (self.width - ( - self.mainwindow_left + self.mainwindow_right) - 100 ) / 2 + self.mainwindow_left + self.mainwindow_right) - 100) / 2 self.slidecontroller_image = self.slidecontroller - 50 @staticmethod diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index ed06877e5..4c54b6d26 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -76,7 +76,7 @@ class Ui_MainWindow(object): MainIcon = build_icon(u':/icon/openlp-logo-16x16.png') MainWindow.setWindowIcon(MainIcon) self.setDockNestingEnabled(True) - # Set up the main container, which contains all the other form widgets + # Set up the main container, which contains all the other form widgets. self.MainContent = QtGui.QWidget(MainWindow) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) @@ -272,7 +272,7 @@ class Ui_MainWindow(object): self.SettingsPluginListItem.setObjectName(u'SettingsPluginListItem') MainWindow.actionList.add_action(self.SettingsPluginListItem, u'Settings') - #i18n Language Items + # i18n Language Items self.AutoLanguageItem = QtGui.QAction(MainWindow) self.AutoLanguageItem.setObjectName(u'AutoLanguageItem') self.AutoLanguageItem.setCheckable(True) @@ -331,7 +331,7 @@ class Ui_MainWindow(object): None, self.ViewMediaManagerItem, self.ViewServiceManagerItem, self.ViewThemeManagerItem, None, self.ViewPreviewPanel, self.ViewLivePanel)) - #i18n add Language Actions + # i18n add Language Actions add_actions(self.SettingsLanguageMenu, (self.AutoLanguageItem, None)) add_actions(self.SettingsLanguageMenu, self.LanguageGroup.actions()) add_actions(self.SettingsMenu, (self.SettingsPluginListItem, @@ -354,17 +354,8 @@ class Ui_MainWindow(object): QtCore.SIGNAL(u'aboutToShow()'), self.updateFileMenu) QtCore.QObject.connect(self.FileExitItem, QtCore.SIGNAL(u'triggered()'), MainWindow.close) - QtCore.QObject.connect(self.ControlSplitter, - QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter) QtCore.QMetaObject.connectSlotsByName(MainWindow) - def trackSplitter(self, tab, pos): - """ - Splitter between the Preview and Live Controllers. - """ - self.liveController.widthChanged() - self.previewController.widthChanged() - def retranslateUi(self, MainWindow): """ Set up the translation system @@ -998,8 +989,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): The service filename to add """ # The maxRecentFiles value does not have an interface and so never gets - # actually stored in the settings therefore the default value of 20 - # will always be used. + # actually stored in the settings therefore the default value of 20 will + # always be used. maxRecentFiles = QtCore.QSettings().value(u'advanced/max recent files', QtCore.QVariant(20)).toInt()[0] if filename: diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 8cf0752e2..66344ec20 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -73,6 +73,7 @@ class SlideList(QtGui.QTableWidget): else: event.ignore() + class SlideController(QtGui.QWidget): """ SlideController is the slide controller widget. This widget is what the @@ -217,7 +218,7 @@ class SlideController(QtGui.QWidget): translate('OpenLP.SlideController', 'Edit and reload song preview'), self.onEditSong) - if isLive: + if self.isLive: self.Toolbar.addToolbarSeparator(u'Loop Separator') self.Toolbar.addToolbarButton( u'Start Loop', u':/media/media_time.png', @@ -272,7 +273,7 @@ class SlideController(QtGui.QWidget): self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) self.ControllerLayout.addWidget(self.Mediabar) # Build the Song Toolbar - if isLive: + if self.isLive: self.SongMenu = QtGui.QToolButton(self.Toolbar) self.SongMenu.setText(translate('OpenLP.SlideController', 'Go To')) @@ -284,9 +285,10 @@ class SlideController(QtGui.QWidget): self.Toolbar.makeWidgetsInvisible([u'Song Menu']) # Screen preview area self.PreviewFrame = QtGui.QFrame(self.Splitter) - self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 225)) + self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 300 * self.ratio)) + self.PreviewFrame.setMinimumHeight(100) self.PreviewFrame.setSizePolicy(QtGui.QSizePolicy( - QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Minimum, + QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Label)) self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel) self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken) @@ -334,11 +336,10 @@ class SlideController(QtGui.QWidget): QtCore.QObject.connect(self.PreviewListWidget, QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLiveClick) - if isLive: + if self.isLive: QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_live_spin_delay'), self.receiveSpinDelay) - if isLive: self.Toolbar.makeWidgetsInvisible(self.loopList) self.Toolbar.actions[u'Stop Loop'].setVisible(False) else: @@ -381,8 +382,10 @@ class SlideController(QtGui.QWidget): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.typePrefix), self.onTextRequest) + QtCore.QObject.connect(self.parent.ControlSplitter, + QtCore.SIGNAL(u'splitterMoved(int, int)'), self.previewSizeChanged) QtCore.QObject.connect(self.Splitter, - QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter) + QtCore.SIGNAL(u'splitterMoved(int, int)'), self.previewSizeChanged) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) QtCore.QObject.connect(Receiver.get_receiver(), @@ -403,32 +406,35 @@ class SlideController(QtGui.QWidget): self.display = MainDisplay(self, self.screens, self.isLive) self.display.imageManager = self.parent.renderManager.image_manager self.display.alertTab = self.alertTab + self.display.setup() + self.previewSizeChanged() + + def previewSizeChanged(self): + """ + Takes care of the SlidePreview's size. Is called when one of the the + splitters is moved or when the screen size is changed. + """ + log.debug(u'previewSizeChanged live = %s' % self.isLive) + # The SlidePreview's ratio. self.ratio = float(self.screens.current[u'size'].width()) / \ float(self.screens.current[u'size'].height()) - self.display.setup() - self.SlidePreview.setFixedSize( - QtCore.QSize(self.settingsmanager.slidecontroller_image, - self.settingsmanager.slidecontroller_image / self.ratio)) - - def widthChanged(self): - """ - Handle changes of width from the splitter between the live and preview - controller. Event only issues when changes have finished - """ - log.debug(u'widthChanged live = %s' % self.isLive) + if self.ratio < float(self.PreviewFrame.width()) / float( + self.PreviewFrame.height()): + # We have to take the height as limit. + max_height = self.PreviewFrame.height() - self.grid.margin() * 2 + self.SlidePreview.setFixedSize(QtCore.QSize(max_height * self.ratio, + max_height)) + else: + # We have to take the width as limit. + max_width = self.PreviewFrame.width() - self.grid.margin() * 2 + self.SlidePreview.setFixedSize(QtCore.QSize(max_width, + max_width / self.ratio)) width = self.parent.ControlSplitter.sizes()[self.split] - height = width * self.parent.renderManager.screen_ratio self.PreviewListWidget.setColumnWidth(0, width) # Sort out image heights (Songs, bibles excluded) if self.serviceItem and not self.serviceItem.is_text(): for framenumber in range(len(self.serviceItem.get_frames())): - self.PreviewListWidget.setRowHeight(framenumber, height) - - def trackSplitter(self, tab, pos): - """ - Splitter between the slide list and the preview panel - """ - pass + self.PreviewListWidget.setRowHeight(framenumber, width / self.ratio) def onSongBarHandler(self): request = unicode(self.sender().text()) From a0b15e5324c753ee1bcfb748f862e712d406ed9e Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 27 Dec 2010 11:14:46 +0100 Subject: [PATCH 07/49] cleaned up the slidecontroller --- openlp/core/lib/dockwidget.py | 5 +- openlp/core/ui/slidecontroller.py | 105 ++++++++++++++---------------- 2 files changed, 51 insertions(+), 59 deletions(-) diff --git a/openlp/core/lib/dockwidget.py b/openlp/core/lib/dockwidget.py index 15fd74ebc..84f2495ee 100644 --- a/openlp/core/lib/dockwidget.py +++ b/openlp/core/lib/dockwidget.py @@ -29,7 +29,7 @@ QDockWidget. """ import logging -from PyQt4 import QtGui +from PyQt4 import QtCore, QtGui log = logging.getLogger(__name__) @@ -41,9 +41,10 @@ class OpenLPDockWidget(QtGui.QDockWidget): """ Initialise the DockWidget """ + log.debug(u'Initialise the DockWidget %s' % name) QtGui.QDockWidget.__init__(self, parent) self.parent = parent if name: self.setObjectName(name) self.setFloating(False) - log.debug(u'Init done') + diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 66344ec20..6feb8d0a4 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -184,41 +184,23 @@ class SlideController(QtGui.QWidget): translate('OpenLP.SlideController', 'Blank Screen'), self.HideMenu) self.BlankScreen.setCheckable(True) - QtCore.QObject.connect(self.BlankScreen, - QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) self.ThemeScreen = QtGui.QAction(QtGui.QIcon( u':/slides/slide_theme.png'), translate('OpenLP.SlideController', 'Blank to Theme'), self.HideMenu) self.ThemeScreen.setCheckable(True) - QtCore.QObject.connect(self.ThemeScreen, - QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) + self.HideMenu.setDefaultAction(self.BlankScreen) + self.HideMenu.menu().addAction(self.BlankScreen) + self.HideMenu.menu().addAction(self.ThemeScreen) if self.screens.display_count > 1: + self.HideMenu.menu().addAction(self.DesktopScreen) self.DesktopScreen = QtGui.QAction(QtGui.QIcon( u':/slides/slide_desktop.png'), translate('OpenLP.SlideController', 'Show Desktop'), self.HideMenu) self.DesktopScreen.setCheckable(True) QtCore.QObject.connect(self.DesktopScreen, - QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) - self.HideMenu.setDefaultAction(self.BlankScreen) - self.HideMenu.menu().addAction(self.BlankScreen) - self.HideMenu.menu().addAction(self.ThemeScreen) - if self.screens.display_count > 1: - self.HideMenu.menu().addAction(self.DesktopScreen) - if not self.isLive: - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.Toolbar.addToolbarButton( - u'Go Live', u':/general/general_live.png', - translate('OpenLP.SlideController', 'Move to live'), - self.onGoLive) - self.Toolbar.addToolbarSeparator(u'Close Separator') - self.Toolbar.addToolbarButton( - u'Edit Song', u':/general/general_edit.png', - translate('OpenLP.SlideController', - 'Edit and reload song preview'), - self.onEditSong) - if self.isLive: + QtCore.SIGNAL(u'triggered(bool)'), self.onHideDisplay) self.Toolbar.addToolbarSeparator(u'Loop Separator') self.Toolbar.addToolbarButton( u'Start Loop', u':/media/media_time.png', @@ -231,12 +213,23 @@ class SlideController(QtGui.QWidget): self.DelaySpinBox = QtGui.QSpinBox() self.DelaySpinBox.setMinimum(1) self.DelaySpinBox.setMaximum(180) - self.Toolbar.addToolbarWidget( - u'Image SpinBox', self.DelaySpinBox) + self.Toolbar.addToolbarWidget(u'Image SpinBox', self.DelaySpinBox) self.DelaySpinBox.setSuffix(translate('OpenLP.SlideController', 's')) self.DelaySpinBox.setToolTip(translate('OpenLP.SlideController', 'Delay between slides in seconds')) + else: + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.Toolbar.addToolbarButton( + u'Go Live', u':/general/general_live.png', + translate('OpenLP.SlideController', 'Move to live'), + self.onGoLive) + self.Toolbar.addToolbarSeparator(u'Close Separator') + self.Toolbar.addToolbarButton( + u'Edit Song', u':/general/general_edit.png', + translate('OpenLP.SlideController', + 'Edit and reload song preview'), + self.onEditSong) self.ControllerLayout.addWidget(self.Toolbar) # Build a Media ToolBar self.Mediabar = OpenLPToolbar(self) @@ -252,37 +245,33 @@ class SlideController(QtGui.QWidget): u'Media Stop', u':/slides/media_playback_stop.png', translate('OpenLP.SlideController', 'Start playing media'), self.onMediaStop) - if not self.isLive: - self.seekSlider = Phonon.SeekSlider() - self.seekSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.seekSlider.setObjectName(u'seekSlider') - self.Mediabar.addToolbarWidget( - u'Seek Slider', self.seekSlider) - self.volumeSlider = Phonon.VolumeSlider() - self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.volumeSlider.setObjectName(u'volumeSlider') - self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) - else: - self.volumeSlider = QtGui.QSlider(QtCore.Qt.Horizontal) - self.volumeSlider.setTickInterval(1) - self.volumeSlider.setTickPosition(QtGui.QSlider.TicksAbove) - self.volumeSlider.setMinimum(0) - self.volumeSlider.setMaximum(10) - self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) - self.volumeSlider.setObjectName(u'volumeSlider') - self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) - self.ControllerLayout.addWidget(self.Mediabar) - # Build the Song Toolbar if self.isLive: + # Build the Song Toolbar self.SongMenu = QtGui.QToolButton(self.Toolbar) self.SongMenu.setText(translate('OpenLP.SlideController', 'Go To')) self.SongMenu.setPopupMode(QtGui.QToolButton.InstantPopup) self.Toolbar.addToolbarWidget(u'Song Menu', self.SongMenu) self.SongMenu.setMenu(QtGui.QMenu( - translate('OpenLP.SlideController', 'Go To'), - self.Toolbar)) + translate('OpenLP.SlideController', 'Go To'), self.Toolbar)) self.Toolbar.makeWidgetsInvisible([u'Song Menu']) + # Build the volumeSlider. + self.volumeSlider = QtGui.QSlider(QtCore.Qt.Horizontal) + self.volumeSlider.setTickInterval(1) + self.volumeSlider.setTickPosition(QtGui.QSlider.TicksAbove) + self.volumeSlider.setMinimum(0) + self.volumeSlider.setMaximum(10) + else: + # Build the seekSlider. + self.seekSlider = Phonon.SeekSlider() + self.seekSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.seekSlider.setObjectName(u'seekSlider') + self.Mediabar.addToolbarWidget(u'Seek Slider', self.seekSlider) + self.volumeSlider = Phonon.VolumeSlider() + self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24)) + self.volumeSlider.setObjectName(u'volumeSlider') + self.Mediabar.addToolbarWidget(u'Audio Volume', self.volumeSlider) + self.ControllerLayout.addWidget(self.Mediabar) # Screen preview area self.PreviewFrame = QtGui.QFrame(self.Splitter) self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 300, 300 * self.ratio)) @@ -332,17 +321,24 @@ class SlideController(QtGui.QWidget): # Signals QtCore.QObject.connect(self.PreviewListWidget, QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected) - if not self.isLive: - QtCore.QObject.connect(self.PreviewListWidget, - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), - self.onGoLiveClick) if self.isLive: + QtCore.QObject.connect(self.BlankScreen, + QtCore.SIGNAL(u'triggered(bool)'), self.onBlankDisplay) + QtCore.QObject.connect(self.ThemeScreen, + QtCore.SIGNAL(u'triggered(bool)'), self.onThemeDisplay) + QtCore.QObject.connect(self.volumeSlider, + QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'maindisplay_active'), self.updatePreview) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_live_spin_delay'), self.receiveSpinDelay) self.Toolbar.makeWidgetsInvisible(self.loopList) self.Toolbar.actions[u'Stop Loop'].setVisible(False) else: + QtCore.QObject.connect(self.PreviewListWidget, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), + self.onGoLiveClick) self.Toolbar.makeWidgetsInvisible(self.songEditList) self.Mediabar.setVisible(False) QtCore.QObject.connect(Receiver.get_receiver(), @@ -390,11 +386,6 @@ class SlideController(QtGui.QWidget): QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) - if self.isLive: - QtCore.QObject.connect(self.volumeSlider, - QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'maindisplay_active'), self.updatePreview) def screenSizeChanged(self): """ From 71af1b3bf07b3ea9e707ebaa82150b6d7cf8c66b Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 27 Dec 2010 15:55:53 +0100 Subject: [PATCH 08/49] resize controllers when resizing or moving the docks --- openlp/core/lib/dockwidget.py | 15 ++++++++++++++- openlp/core/ui/slidecontroller.py | 1 - 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/dockwidget.py b/openlp/core/lib/dockwidget.py index 84f2495ee..b0fa720ec 100644 --- a/openlp/core/lib/dockwidget.py +++ b/openlp/core/lib/dockwidget.py @@ -29,7 +29,7 @@ QDockWidget. """ import logging -from PyQt4 import QtCore, QtGui +from PyQt4 import QtGui log = logging.getLogger(__name__) @@ -48,3 +48,16 @@ class OpenLPDockWidget(QtGui.QDockWidget): self.setObjectName(name) self.setFloating(False) + def moveEvent(self, event): + """ + Called, when the DockWidget is moved. + """ + self.parent.liveController.previewSizeChanged() + self.parent.previewController.previewSizeChanged() + + def resizeEvent(self, event): + """ + Called, when the DockWidget is resized. + """ + self.parent.liveController.previewSizeChanged() + self.parent.previewController.previewSizeChanged() diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 6feb8d0a4..41ed2b73a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -297,7 +297,6 @@ class SlideController(QtGui.QWidget): Phonon.createPath(self.mediaObject, self.audio) if not self.isLive: self.video.setGeometry(QtCore.QRect(0, 0, 300, 225)) - self.video.setVisible(False) self.SlideLayout.insertWidget(0, self.video) # Actual preview screen self.SlidePreview = QtGui.QLabel(self) From 6815ac31465dd7e768b20e2553189768321f8246 Mon Sep 17 00:00:00 2001 From: M2j Date: Mon, 27 Dec 2010 16:31:53 +0100 Subject: [PATCH 09/49] - Finishes and tested rewrite of themewizard and bibleimportwizard - Added exceptions to OpenSong and CSV bible import wich occur for invalid files --- openlp/core/ui/themeform.py | 200 ++---- openlp/core/ui/themewizard.py | 613 +++++++++--------- .../plugins/bibles/forms/bibleimportform.py | 85 +-- .../plugins/bibles/forms/bibleimportwizard.py | 231 +++---- openlp/plugins/bibles/lib/csvbible.py | 2 +- openlp/plugins/bibles/lib/opensong.py | 2 +- 6 files changed, 515 insertions(+), 618 deletions(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 94a4e858a..95d4527c1 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -56,7 +56,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.registerFields() self.accepted = False self.updateThemeAllowed = True - QtCore.QObject.connect(self.backgroundTypeComboBox, + QtCore.QObject.connect(self.backgroundComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.onBackgroundComboBox) QtCore.QObject.connect(self.gradientComboBox, @@ -74,30 +74,30 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtCore.QObject.connect(self.imageBrowseButton, QtCore.SIGNAL(u'pressed()'), self.onImageBrowseButtonClicked) - QtCore.QObject.connect(self.mainColorPushButton, + QtCore.QObject.connect(self.mainColorButton, QtCore.SIGNAL(u'pressed()'), - self.onMainColourPushButtonClicked) - QtCore.QObject.connect(self.outlineColorPushButton, + self.onMainColourButtonClicked) + QtCore.QObject.connect(self.outlineColorButton, QtCore.SIGNAL(u'pressed()'), - self.onOutlineColourPushButtonClicked) - QtCore.QObject.connect(self.shadowColorPushButton, + self.onOutlineColourButtonClicked) + QtCore.QObject.connect(self.shadowColorButton, QtCore.SIGNAL(u'pressed()'), - self.onShadowColourPushButtonClicked) + self.onShadowColourButtonClicked) QtCore.QObject.connect(self.outlineCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onOutlineCheckCheckBoxChanged) QtCore.QObject.connect(self.shadowCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onShadowCheckCheckBoxChanged) - QtCore.QObject.connect(self.footerColorPushButton, + QtCore.QObject.connect(self.footerColorButton, QtCore.SIGNAL(u'pressed()'), - self.onFooterColourPushButtonClicked) - QtCore.QObject.connect(self.mainDefaultPositionCheckBox, + self.onFooterColourButtonClicked) + QtCore.QObject.connect(self.mainPositionCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onMainDefaultPositionCheckBox) - QtCore.QObject.connect(self.footerDefaultPositionCheckBox, + self.onMainPositionCheckBox) + QtCore.QObject.connect(self.footerPositionCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onFooterDefaultPositionCheckBox) + self.onFooterPositionCheckBox) QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), self.pageChanged) @@ -107,36 +107,25 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtCore.QObject.connect(self.mainSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines) - QtCore.QObject.connect(self.mainSizeSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.calculateLines) QtCore.QObject.connect(self.lineSpacingSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines) - QtCore.QObject.connect(self.lineSpacingSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.calculateLines) QtCore.QObject.connect(self.outlineSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines) - QtCore.QObject.connect(self.outlineSizeSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.calculateLines) QtCore.QObject.connect(self.shadowSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.calculateLines) - QtCore.QObject.connect(self.shadowSizeSpinBox, - QtCore.SIGNAL(u'editingFinished()'), - self.calculateLines) QtCore.QObject.connect(self.mainFontComboBox, QtCore.SIGNAL(u'activated(int)'), self.calculateLines) + QtCore.QObject.connect(self, QtCore.SIGNAL(u'accepted()'), self.accept) def pageChanged(self, pageId): """ Detects Page changes and updates as approprate. """ - if pageId == 6: + if self.page(pageId) == self.previewPage: self.updateTheme() frame = self.thememanager.generateImage(self.theme) self.previewBoxLabel.setPixmap(QtGui.QPixmap.fromImage(frame)) @@ -159,7 +148,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Map field names to screen names, """ self.backgroundPage.registerField( - u'background_type', self.backgroundTypeComboBox) + u'background_type', self.backgroundComboBox) self.backgroundPage.registerField( u'color', self.colorButton) self.backgroundPage.registerField( @@ -167,11 +156,11 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.backgroundPage.registerField( u'grandient_end', self.gradientEndButton) self.backgroundPage.registerField( - u'background_image', self.imageLineEdit) + u'background_image', self.imageFileEdit) self.backgroundPage.registerField( u'gradient', self.gradientComboBox) self.mainAreaPage.registerField( - u'mainColorPushButton', self.mainColorPushButton) + u'mainColorButton', self.mainColorButton) self.mainAreaPage.registerField( u'mainSizeSpinBox', self.mainSizeSpinBox) self.mainAreaPage.registerField( @@ -179,17 +168,17 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.mainAreaPage.registerField( u'outlineCheckBox', self.outlineCheckBox) self.mainAreaPage.registerField( - u'outlineColorPushButton', self.outlineColorPushButton) + u'outlineColorPushButton', self.outlineColorButton) self.mainAreaPage.registerField( u'outlineSizeSpinBox', self.outlineSizeSpinBox) self.mainAreaPage.registerField( u'shadowCheckBox', self.shadowCheckBox) self.mainAreaPage.registerField( - u'boldCheckBox', self.boldCheckBox) + u'mainBoldCheckBox', self.mainBoldCheckBox) self.mainAreaPage.registerField( - u'italicsCheckBox', self.italicsCheckBox) + u'mainItalicsCheckBox', self.mainItalicsCheckBox) self.mainAreaPage.registerField( - u'shadowColorPushButton', self.shadowColorPushButton) + u'shadowColorButton', self.shadowColorButton) self.mainAreaPage.registerField( u'shadowSizeSpinBox', self.shadowSizeSpinBox) self.mainAreaPage.registerField( @@ -224,7 +213,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Calculate the number of lines on a page by rendering text """ # Do not trigger on start up - if self.page != 0: + if self.currentPage != self.welcomePage: self.updateTheme() frame = self.thememanager.generateImage(self.theme, True) @@ -243,7 +232,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.font_main_outline = True else: self.theme.font_main_outline = False - self.outlineColorPushButton.setEnabled(self.theme.font_main_outline) + self.outlineColorButton.setEnabled(self.theme.font_main_outline) self.outlineSizeSpinBox.setEnabled(self.theme.font_main_outline) self.calculateLines() @@ -255,35 +244,21 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.font_main_shadow = True else: self.theme.font_main_shadow = False - self.shadowColorPushButton.setEnabled(self.theme.font_main_shadow) + self.shadowColorButton.setEnabled(self.theme.font_main_shadow) self.shadowSizeSpinBox.setEnabled(self.theme.font_main_shadow) self.calculateLines() - def onMainDefaultPositionCheckBox(self, value): + def onMainPositionCheckBox(self, value): """ Change state as Main Area Position check box changed """ - if value == QtCore.Qt.Checked: - self.theme.font_main_override = False - else: - self.theme.font_main_override = True - self.mainXSpinBox.setEnabled(self.theme.font_main_override) - self.mainYSpinBox.setEnabled(self.theme.font_main_override) - self.mainHeightSpinBox.setEnabled(self.theme.font_main_override) - self.mainWidthSpinBox.setEnabled(self.theme.font_main_override) + self.theme.font_main_override = (value == QtCore.Qt.Checked) - def onFooterDefaultPositionCheckBox(self, value): + def onFooterPositionCheckBox(self, value): """ Change state as Footer Area Position check box changed """ - if value == QtCore.Qt.Checked: - self.theme.font_footer_override = False - else: - self.theme.font_footer_override = True - self.footerXSpinBox.setEnabled(self.theme.font_footer_override) - self.footerYSpinBox.setEnabled(self.theme.font_footer_override) - self.footerHeightSpinBox.setEnabled(self.theme.font_footer_override) - self.footerWidthSpinBox.setEnabled(self.theme.font_footer_override) + self.theme.font_footer_override = (value == QtCore.Qt.Checked) def exec_(self, edit=False): """ @@ -302,16 +277,16 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Set up the pages for Initial run through dialog """ log.debug(u'initializePage %s' % id) - self.page = id - if id == 1: + wizardPage = self.page(id) + if wizardPage == self.backgroundPage: self.setBackgroundTabValues() - elif id == 2: + elif wizardPage == self.mainAreaPage: self.setMainAreaTabValues() - elif id == 3: + elif wizardPage == self.footerAreaPage: self.setFooterAreaTabValues() - elif id == 4: + elif wizardPage == self.alignmentPage: self.setAlignmentTabValues() - elif id == 5: + elif wizardPage == self.areaPositionPage: self.setPositionTabValues() def setBackgroundTabValues(self): @@ -331,7 +306,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.background_end_color) self.setField(u'background_type', QtCore.QVariant(1)) else: - self.imageLineEdit.setText(self.theme.background_filename) + self.imageFileEdit.setText(self.theme.background_filename) self.setField(u'background_type', QtCore.QVariant(2)) if self.theme.background_direction == \ BackgroundGradientType.to_string(BackgroundGradientType.Horizontal): @@ -354,41 +329,28 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.mainFontComboBox.setCurrentFont( QtGui.QFont(self.theme.font_main_name)) - self.mainColorPushButton.setStyleSheet(u'background-color: %s' % + self.mainColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_color) - self.setField(u'mainSizeSpinBox', \ + self.setField(u'mainSizeSpinBox', QtCore.QVariant(self.theme.font_main_size)) - self.setField(u'lineSpacingSpinBox', \ + self.setField(u'lineSpacingSpinBox', QtCore.QVariant(self.theme.font_main_line_adjustment)) - self.setField(u'outlineCheckBox', \ + self.setField(u'outlineCheckBox', QtCore.QVariant(self.theme.font_main_outline)) - self.outlineColorPushButton.setStyleSheet(u'background-color: %s' % + self.outlineColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_outline_color) - self.setField(u'outlineSizeSpinBox', \ + self.setField(u'outlineSizeSpinBox', QtCore.QVariant(self.theme.font_main_outline_size)) - self.setField(u'shadowCheckBox', \ + self.setField(u'shadowCheckBox', QtCore.QVariant(self.theme.font_main_shadow)) - self.shadowColorPushButton.setStyleSheet(u'background-color: %s' % + self.shadowColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_shadow_color) - self.setField(u'shadowSizeSpinBox', \ + self.setField(u'shadowSizeSpinBox', QtCore.QVariant(self.theme.font_main_shadow_size)) - self.setField(u'boldCheckBox', \ + self.setField(u'mainBoldCheckBox', QtCore.QVariant(self.theme.font_main_bold)) - self.setField(u'italicsCheckBox', \ + self.setField(u'mainItalicsCheckBox', QtCore.QVariant(self.theme.font_main_italics)) - # Set up field states - if self.theme.font_main_outline: - self.setField(u'outlineCheckBox', QtCore.QVariant(False)) - else: - self.setField(u'outlineCheckBox', QtCore.QVariant(True)) - self.outlineColorPushButton.setEnabled(self.theme.font_main_outline) - self.outlineSizeSpinBox.setEnabled(self.theme.font_main_outline) - if self.theme.font_main_shadow: - self.setField(u'shadowCheckBox', QtCore.QVariant(False)) - else: - self.setField(u'shadowCheckBox', QtCore.QVariant(True)) - self.shadowColorPushButton.setEnabled(self.theme.font_main_shadow) - self.shadowSizeSpinBox.setEnabled(self.theme.font_main_shadow) def setFooterAreaTabValues(self): """ @@ -396,9 +358,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.footerFontComboBox.setCurrentFont( QtGui.QFont(self.theme.font_main_name)) - self.footerColorPushButton.setStyleSheet(u'background-color: %s' % + self.footerColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_footer_color) - self.setField(u'footerSizeSpinBox', \ + self.setField(u'footerSizeSpinBox', QtCore.QVariant(self.theme.font_footer_size)) def setPositionTabValues(self): @@ -406,49 +368,40 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): Handle the display and State of the Position tab. """ # Main Area - if self.theme.font_main_override: - self.mainDefaultPositionCheckBox.setChecked(False) - else: - self.mainDefaultPositionCheckBox.setChecked(True) - self.setField(u'mainPositionX', \ - QtCore.QVariant(self.theme.font_main_x)) - self.setField(u'mainPositionY', \ - QtCore.QVariant(self.theme.font_main_y)) - self.setField(u'mainPositionHeight', \ + self.mainPositionCheckBox.setChecked(not self.theme.font_main_override) + self.setField(u'mainPositionX', QtCore.QVariant(self.theme.font_main_x)) + self.setField(u'mainPositionY', QtCore.QVariant(self.theme.font_main_y)) + self.setField(u'mainPositionHeight', QtCore.QVariant(self.theme.font_main_height)) - self.setField(u'mainPositionWidth', \ + self.setField(u'mainPositionWidth', QtCore.QVariant(self.theme.font_main_width)) # Footer - if self.theme.font_footer_override: - self.footerDefaultPositionCheckBox.setChecked(False) - else: - self.footerDefaultPositionCheckBox.setChecked(True) - self.setField(u'footerPositionX', \ + self.footerPositionCheckBox.setChecked( + not self.theme.font_footer_override) + self.setField(u'footerPositionX', QtCore.QVariant(self.theme.font_footer_x)) - self.setField(u'footerPositionY', \ + self.setField(u'footerPositionY', QtCore.QVariant(self.theme.font_footer_y)) - self.setField(u'footerPositionHeight', \ + self.setField(u'footerPositionHeight', QtCore.QVariant(self.theme.font_footer_height)) - self.setField(u'footerPositionWidth', \ + self.setField(u'footerPositionWidth', QtCore.QVariant(self.theme.font_footer_width)) def setAlignmentTabValues(self): """ Define the Tab Alignments Page """ - self.setField(u'horizontal', \ + self.setField(u'horizontal', QtCore.QVariant(self.theme.display_horizontal_align)) - self.setField(u'vertical', \ + self.setField(u'vertical', QtCore.QVariant(self.theme.display_vertical_align)) - self.setField(u'slideTransition', \ + self.setField(u'slideTransition', QtCore.QVariant(self.theme.display_slide_transition)) def setPreviewTabValues(self): self.setField(u'name', QtCore.QVariant(self.theme.theme_name)) - if len(self.theme.theme_name) > 0: - self.themeNameEdit.setEnabled(False) - else: - self.themeNameEdit.setEnabled(True) + self.themeNameEdit.setReadOnly(len(self.theme.theme_name) != 0) + self.themeNameEdit.setFrame(len(self.theme.theme_name) == 0) def onBackgroundComboBox(self, index): """ @@ -456,17 +409,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.theme.background_type = BackgroundType.to_string(index) self.setBackgroundTabValues() - self.colorLabel.setVisible(index == 0) - self.colorButton.setVisible(index == 0) - self.gradientStartLabel.setVisible(index == 1) - self.gradientStartButton.setVisible(index == 1) - self.gradientEndLabel.setVisible(index == 1) - self.gradientEndButton.setVisible(index == 1) - self.gradientTypeLabel.setVisible(index == 1) - self.gradientComboBox.setVisible(index == 1) - self.imageLabel.setVisible(index == 2) - self.imageLineEdit.setVisible(index == 2) - self.imageBrowseButton.setVisible(index == 2) def onGradientComboBox(self, index): """ @@ -514,22 +456,22 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.background_filename = unicode(filename) self.setBackgroundTabValues() - def onMainColourPushButtonClicked(self): + def onMainColourButtonClicked(self): self.theme.font_main_color = \ self._colorButton(self.theme.font_main_color) self.setMainAreaTabValues() - def onOutlineColourPushButtonClicked(self): + def onOutlineColourButtonClicked(self): self.theme.font_main_outline_color = \ self._colorButton(self.theme.font_main_outline_color) self.setMainAreaTabValues() - def onShadowColourPushButtonClicked(self): + def onShadowColourButtonClicked(self): self.theme.font_main_shadow_color = \ self._colorButton(self.theme.font_main_shadow_color) self.setMainAreaTabValues() - def onFooterColourPushButtonClicked(self): + def onFooterColourButtonClicked(self): self.theme.font_footer_color = \ self._colorButton(self.theme.font_footer_color) self.setFooterAreaTabValues() @@ -554,9 +496,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.font_main_shadow_size = \ self.field(u'shadowSizeSpinBox').toInt()[0] self.theme.font_main_bold = \ - self.field(u'boldCheckBox').toBool() + self.field(u'mainBoldCheckBox').toBool() self.theme.font_main_italics = \ - self.field(u'italicsCheckBox').toBool() + self.field(u'mainItalicsCheckBox').toBool() # footer page self.theme.font_footer_name = \ unicode(self.footerFontComboBox.currentFont().family()) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index ce17e233a..e7561cccf 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -36,433 +36,389 @@ class Ui_ThemeWizard(object): ThemeWizard.setOptions( QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage) + # welcome page self.welcomePage = QtGui.QWizardPage() self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(u':/wizards/wizard_createtheme.bmp')) - self.welcomePage.setObjectName(u'welcomePage') + self.welcomePage.setObjectName(u'WelcomePage') self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage) - self.welcomeLayout.setMargin(12) - self.welcomeLayout.setSpacing(6) - self.welcomeLayout.setObjectName(u'welcomeLayout') + self.welcomeLayout.setObjectName(u'WelcomeLayout') self.titleLabel = QtGui.QLabel(self.welcomePage) - self.titleLabel.setObjectName(u'titleLabel') + self.titleLabel.setObjectName(u'TitleLabel') self.welcomeLayout.addWidget(self.titleLabel) - self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40, - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - self.welcomeLayout.addItem(self.welcomeTopSpacer) + self.welcomeLayout.addSpacing(40) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) - self.informationLabel.setObjectName(u'informationLabel') + self.informationLabel.setObjectName(u'InformationLabel') self.welcomeLayout.addWidget(self.informationLabel) - self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40, - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.welcomeLayout.addItem(self.welcomeBottomSpacer) + self.welcomeLayout.addStretch() ThemeWizard.addPage(self.welcomePage) + # background page self.backgroundPage = QtGui.QWizardPage() - self.backgroundPage.setObjectName(u'backgroundPage') - self.backgroundLayout = QtGui.QFormLayout(self.backgroundPage) - self.backgroundLayout.setMargin(12) - self.backgroundLayout.setVerticalSpacing(6) - self.backgroundLayout.setObjectName(u'backgroundLayout') - self.backgroundTypeLabel = QtGui.QLabel(self.backgroundPage) - self.backgroundTypeLabel.setObjectName(u'backgroundTypeLabel') - self.backgroundLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.backgroundTypeLabel) - self.backgroundTypeComboBox = QtGui.QComboBox(self.backgroundPage) - self.backgroundTypeComboBox.addItem(u'') - self.backgroundTypeComboBox.addItem(u'') - self.backgroundTypeComboBox.addItem(u'') - self.backgroundTypeComboBox.setObjectName(u'backgroundTypeComboBox') - self.backgroundLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.backgroundTypeComboBox) - self.colorLabel = QtGui.QLabel(self.backgroundPage) - self.colorLabel.setObjectName(u'colorLabel') - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.colorLabel) - self.colorButton = QtGui.QPushButton(self.backgroundPage) - self.colorButton.setObjectName(u'colorButton') - self.backgroundLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.colorButton) - self.gradientStartLabel = QtGui.QLabel(self.backgroundPage) - self.gradientStartLabel.setVisible(False) - self.gradientStartLabel.setObjectName(u'gradientStartLabel') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.gradientStartLabel) - self.gradientStartButton = QtGui.QPushButton(self.backgroundPage) - self.gradientStartButton.setVisible(False) - self.gradientStartButton.setObjectName(u'gradientStartButton') - self.backgroundLayout.setWidget(2, QtGui.QFormLayout.FieldRole, + self.backgroundPage.setObjectName(u'BackgroundPage') + self.backgroundLayout = QtGui.QVBoxLayout(self.backgroundPage) + self.backgroundLayout.setObjectName(u'BackgroundLayout') + self.backgroundTypeLayout = QtGui.QFormLayout() + self.backgroundTypeLayout.setObjectName(u'BackgroundTypeLayout') + self.backgroundLabel = QtGui.QLabel(self.backgroundPage) + self.backgroundLabel.setObjectName(u'BackgroundLabel') + self.backgroundComboBox = QtGui.QComboBox(self.backgroundPage) + self.backgroundComboBox.addItems([u'', u'', u'']) + self.backgroundComboBox.setObjectName(u'BackgroundComboBox') + self.backgroundTypeLayout.addRow(self.backgroundLabel, + self.backgroundComboBox) + self.backgroundTypeSpacer = QtGui.QSpacerItem(10, 0, + QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) + self.backgroundTypeLayout.setItem(1,QtGui.QFormLayout.LabelRole, + self.backgroundTypeSpacer) + self.backgroundLayout.addLayout(self.backgroundTypeLayout) + self.backgroundStack = QtGui.QStackedLayout() + self.backgroundStack.setObjectName(u'BackgroundStack') + self.colorWidget = QtGui.QWidget(self.backgroundPage) + self.colorWidget.setObjectName(u'ColorWidget') + self.colorLayout = QtGui.QFormLayout(self.colorWidget) + self.colorLayout.setMargin(0) + self.colorLayout.setObjectName(u'ColorLayout') + self.colorLabel = QtGui.QLabel(self.colorWidget) + self.colorLabel.setObjectName(u'ColorLabel') + self.colorButton = QtGui.QPushButton(self.colorWidget) + self.colorButton.setObjectName(u'ColorButton') + self.colorLayout.addRow(self.colorLabel, self.colorButton) + self.colorSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.colorLayout.setItem(1, QtGui.QFormLayout.LabelRole, + self.colorSpacer) + self.backgroundStack.addWidget(self.colorWidget) + self.gradientWidget = QtGui.QWidget(self.backgroundPage) + self.gradientWidget.setObjectName(u'GradientWidget') + self.gradientLayout = QtGui.QFormLayout(self.gradientWidget) + self.gradientLayout.setMargin(0) + self.gradientLayout.setObjectName(u'GradientLayout') + self.gradientStartLabel = QtGui.QLabel(self.gradientWidget) + self.gradientStartLabel.setObjectName(u'GradientStartLabel') + self.gradientStartButton = QtGui.QPushButton(self.gradientWidget) + self.gradientStartButton.setObjectName(u'GradientStartButton') + self.gradientLayout.addRow(self.gradientStartLabel, self.gradientStartButton) - self.gradientEndLabel = QtGui.QLabel(self.backgroundPage) - self.gradientEndLabel.setVisible(False) - self.gradientEndLabel.setObjectName(u'gradientEndLabel') - self.backgroundLayout.setWidget(3, QtGui.QFormLayout.LabelRole, - self.gradientEndLabel) - self.gradientEndButton = QtGui.QPushButton(self.backgroundPage) - self.gradientEndButton.setVisible(False) - self.gradientEndButton.setObjectName(u'gradientEndButton') - self.backgroundLayout.setWidget(3, QtGui.QFormLayout.FieldRole, + 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.gradientTypeLabel = QtGui.QLabel(self.backgroundPage) - self.gradientTypeLabel.setVisible(False) - self.gradientTypeLabel.setObjectName(u'gradientTypeLabel') - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.LabelRole, - self.gradientTypeLabel) - self.gradientComboBox = QtGui.QComboBox(self.backgroundPage) - self.gradientComboBox.setVisible(False) - self.gradientComboBox.setObjectName(u'gradientComboBox') - self.gradientComboBox.addItem(u'') - self.gradientComboBox.addItem(u'') - self.gradientComboBox.addItem(u'') - self.gradientComboBox.addItem(u'') - self.gradientComboBox.addItem(u'') - self.backgroundLayout.setWidget(4, QtGui.QFormLayout.FieldRole, + 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.imageLabel = QtGui.QLabel(self.backgroundPage) - self.imageLabel.setVisible(False) - self.imageLabel.setObjectName(u'imageLabel') - self.backgroundLayout.setWidget(5, QtGui.QFormLayout.LabelRole, - self.imageLabel) + self.gradientSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.gradientLayout.setItem(3, QtGui.QFormLayout.LabelRole, + self.gradientSpacer) + self.backgroundStack.addWidget(self.gradientWidget) + self.imageWidget = QtGui.QWidget(self.backgroundPage) + self.imageWidget.setObjectName(u'ImageWidget') + self.imageLayout = QtGui.QFormLayout(self.imageWidget) + self.imageLayout.setMargin(0) + self.imageLayout.setObjectName(u'ImageLayout') + self.imageLabel = QtGui.QLabel(self.imageWidget) + self.imageLabel.setObjectName(u'ImageLabel') self.imageFileLayout = QtGui.QHBoxLayout() - self.imageFileLayout.setObjectName(u'imageFileLayout') - self.imageLineEdit = QtGui.QLineEdit(self.backgroundPage) - self.imageLineEdit.setVisible(False) - self.imageLineEdit.setObjectName(u'imageLineEdit') - self.imageFileLayout.addWidget(self.imageLineEdit) - self.imageBrowseButton = QtGui.QToolButton(self.backgroundPage) - self.imageBrowseButton.setVisible(False) - self.imageBrowseButton.setObjectName(u'imageBrowseButton') + self.imageFileLayout.setObjectName(u'ImageFileLayout') + self.imageFileEdit = QtGui.QLineEdit(self.imageWidget) + self.imageFileEdit.setObjectName(u'ImageFileEdit') + 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.imageFileLayout.addWidget(self.imageBrowseButton) - self.backgroundLayout.setLayout(5, QtGui.QFormLayout.FieldRole, - self.imageFileLayout) + self.imageLayout.addRow(self.imageLabel, self.imageFileLayout) + self.imageSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.imageLayout.setItem(1, QtGui.QFormLayout.LabelRole, + self.imageSpacer) + self.backgroundStack.addWidget(self.imageWidget) + self.backgroundLayout.addLayout(self.backgroundStack) ThemeWizard.addPage(self.backgroundPage) + # main area page self.mainAreaPage = QtGui.QWizardPage() - self.mainAreaPage.setObjectName(u'mainAreaPage') + self.mainAreaPage.setObjectName(u'MainAreaPage') self.mainAreaLayout = QtGui.QFormLayout(self.mainAreaPage) - self.mainAreaLayout.setMargin(12) - self.mainAreaLayout.setVerticalSpacing(6) - self.mainAreaLayout.setObjectName(u'mainAreaLayout') + self.mainAreaLayout.setObjectName(u'MainAreaLayout') self.mainFontLabel = QtGui.QLabel(self.mainAreaPage) - self.mainFontLabel.setObjectName(u'mainFontLabel') - self.mainAreaLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.mainFontLabel) + self.mainFontLabel.setObjectName(u'MainFontLabel') self.mainFontComboBox = QtGui.QFontComboBox(self.mainAreaPage) - self.mainFontComboBox.setObjectName(u'mainFontComboBox') - self.mainAreaLayout.setWidget(0, - QtGui.QFormLayout.FieldRole, self.mainFontComboBox) + self.mainFontComboBox.setObjectName(u'MainFontComboBox') + self.mainAreaLayout.addRow(self.mainFontLabel, self.mainFontComboBox) self.mainColorLabel = QtGui.QLabel(self.mainAreaPage) - self.mainColorLabel.setObjectName(u'mainColorLabel') - self.mainAreaLayout.setWidget(1, - QtGui.QFormLayout.LabelRole, self.mainColorLabel) - self.fontPropertiesLayout = QtGui.QHBoxLayout() - self.fontPropertiesLayout.setSpacing(12) - self.fontPropertiesLayout.setObjectName(u'fontPropertiesLayout') - self.mainColorPushButton = QtGui.QPushButton(self.mainAreaPage) - self.mainColorPushButton.setObjectName(u'mainColorPushButton') - self.fontPropertiesLayout.addWidget(self.mainColorPushButton) - self.boldCheckBox = QtGui.QCheckBox(self.mainAreaPage) - self.boldCheckBox.setObjectName(u'boldCheckBox') - self.fontPropertiesLayout.addWidget(self.boldCheckBox) - self.italicsCheckBox = QtGui.QCheckBox(self.mainAreaPage) - self.italicsCheckBox.setObjectName(u'italicsCheckBox') - self.fontPropertiesLayout.addWidget(self.italicsCheckBox) - self.mainAreaLayout.setLayout(1, - QtGui.QFormLayout.FieldRole, self.fontPropertiesLayout) + self.mainColorLabel.setObjectName(u'MainColorLabel') + self.mainPropertiesLayout = QtGui.QHBoxLayout() + self.mainPropertiesLayout.setObjectName(u'MainPropertiesLayout') + self.mainColorButton = QtGui.QPushButton(self.mainAreaPage) + self.mainColorButton.setObjectName(u'MainColorButton') + self.mainPropertiesLayout.addWidget(self.mainColorButton) + self.mainPropertiesLayout.addSpacing(20) + self.mainBoldCheckBox = QtGui.QCheckBox(self.mainAreaPage) + self.mainBoldCheckBox.setObjectName(u'MainBoldCheckBox') + self.mainPropertiesLayout.addWidget(self.mainBoldCheckBox) + self.mainPropertiesLayout.addSpacing(20) + self.mainItalicsCheckBox = QtGui.QCheckBox(self.mainAreaPage) + self.mainItalicsCheckBox.setObjectName(u'MainItalicsCheckBox') + self.mainPropertiesLayout.addWidget(self.mainItalicsCheckBox) + self.mainAreaLayout.addRow(self.mainColorLabel, + self.mainPropertiesLayout) self.mainSizeLabel = QtGui.QLabel(self.mainAreaPage) - self.mainSizeLabel.setObjectName(u'mainSizeLabel') - self.mainAreaLayout.setWidget(2, - QtGui.QFormLayout.LabelRole, self.mainSizeLabel) + self.mainSizeLabel.setObjectName(u'MainSizeLabel') self.mainSizeLayout = QtGui.QHBoxLayout() - self.mainSizeLayout.setObjectName(u'mainSizeLayout') + self.mainSizeLayout.setObjectName(u'MainSizeLayout') self.mainSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.mainSizeSpinBox.setMaximum(999) - self.mainSizeSpinBox.setProperty(u'value', 16) - self.mainSizeSpinBox.setObjectName(u'mainSizeSpinBox') + self.mainSizeSpinBox.setValue(16) + self.mainSizeSpinBox.setObjectName(u'MainSizeSpinBox') self.mainSizeLayout.addWidget(self.mainSizeSpinBox) self.mainLineCountLabel = QtGui.QLabel(self.mainAreaPage) - self.mainLineCountLabel.setObjectName(u'mainLineCountLabel') + self.mainLineCountLabel.setObjectName(u'MainLineCountLabel') self.mainSizeLayout.addWidget(self.mainLineCountLabel) - self.mainAreaLayout.setLayout(2, - QtGui.QFormLayout.FieldRole, self.mainSizeLayout) + self.mainAreaLayout.addRow(self.mainSizeLabel, self.mainSizeLayout) self.lineSpacingLabel = QtGui.QLabel(self.mainAreaPage) - self.lineSpacingLabel.setObjectName(u'lineSpacingLabel') - self.mainAreaLayout.setWidget(3, - QtGui.QFormLayout.LabelRole, self.lineSpacingLabel) + self.lineSpacingLabel.setObjectName(u'LineSpacingLabel') self.lineSpacingSpinBox = QtGui.QSpinBox(self.mainAreaPage) self.lineSpacingSpinBox.setMinimum(-50) self.lineSpacingSpinBox.setMaximum(50) - self.lineSpacingSpinBox.setObjectName(u'lineSpacingSpinBox') - self.mainAreaLayout.setWidget(3, - QtGui.QFormLayout.FieldRole, self.lineSpacingSpinBox) + self.lineSpacingSpinBox.setObjectName(u'LineSpacingSpinBox') + self.mainAreaLayout.addRow(self.lineSpacingLabel, + self.lineSpacingSpinBox) self.outlineCheckBox = QtGui.QCheckBox(self.mainAreaPage) - self.outlineCheckBox.setObjectName(u'outlineCheckBox') - self.mainAreaLayout.setWidget(4, - QtGui.QFormLayout.LabelRole, self.outlineCheckBox) + self.outlineCheckBox.setObjectName(u'OutlineCheckBox') self.outlineLayout = QtGui.QHBoxLayout() - self.outlineLayout.setObjectName(u'outlineLayout') - self.outlineColorPushButton = QtGui.QPushButton(self.mainAreaPage) - self.outlineColorPushButton.setObjectName(u'outlineColorPushButton') - self.outlineLayout.addWidget(self.outlineColorPushButton) + self.outlineLayout.setObjectName(u'OutlineLayout') + self.outlineColorButton = QtGui.QPushButton(self.mainAreaPage) + self.outlineColorButton.setEnabled(False) + self.outlineColorButton.setObjectName(u'OutlineColorButton') + self.outlineLayout.addWidget(self.outlineColorButton) + self.outlineLayout.addSpacing(20) self.outlineSizeLabel = QtGui.QLabel(self.mainAreaPage) - self.outlineSizeLabel.setObjectName(u'outlineSizeLabel') + self.outlineSizeLabel.setObjectName(u'OutlineSizeLabel') self.outlineLayout.addWidget(self.outlineSizeLabel) self.outlineSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) - self.outlineSizeSpinBox.setObjectName(u'outlineSizeSpinBox') + self.outlineSizeSpinBox.setEnabled(False) + self.outlineSizeSpinBox.setObjectName(u'OutlineSizeSpinBox') self.outlineLayout.addWidget(self.outlineSizeSpinBox) - self.mainAreaLayout.setLayout(4, - QtGui.QFormLayout.FieldRole, self.outlineLayout) + self.mainAreaLayout.addRow(self.outlineCheckBox, self.outlineLayout) self.shadowCheckBox = QtGui.QCheckBox(self.mainAreaPage) - self.shadowCheckBox.setObjectName(u'shadowCheckBox') - self.mainAreaLayout.setWidget(5, - QtGui.QFormLayout.LabelRole, self.shadowCheckBox) + self.shadowCheckBox.setObjectName(u'ShadowCheckBox') self.shadowLayout = QtGui.QHBoxLayout() - self.shadowLayout.setObjectName(u'shadowLayout') - self.shadowColorPushButton = QtGui.QPushButton(self.mainAreaPage) - self.shadowColorPushButton.setObjectName(u'shadowColorPushButton') - self.shadowLayout.addWidget(self.shadowColorPushButton) + self.shadowLayout.setObjectName(u'ShadowLayout') + self.shadowColorButton = QtGui.QPushButton(self.mainAreaPage) + self.shadowColorButton.setEnabled(False) + self.shadowColorButton.setObjectName(u'shadowColorButton') + self.shadowLayout.addWidget(self.shadowColorButton) + self.shadowLayout.addSpacing(20) self.shadowSizeLabel = QtGui.QLabel(self.mainAreaPage) - self.shadowSizeLabel.setObjectName(u'shadowSizeLabel') + self.shadowSizeLabel.setObjectName(u'ShadowSizeLabel') self.shadowLayout.addWidget(self.shadowSizeLabel) self.shadowSizeSpinBox = QtGui.QSpinBox(self.mainAreaPage) - self.shadowSizeSpinBox.setObjectName(u'shadowSizeSpinBox') + self.shadowSizeSpinBox.setEnabled(False) + self.shadowSizeSpinBox.setObjectName(u'ShadowSizeSpinBox') self.shadowLayout.addWidget(self.shadowSizeSpinBox) - self.mainAreaLayout.setLayout(5, - QtGui.QFormLayout.FieldRole, self.shadowLayout) + self.mainAreaLayout.addRow(self.shadowCheckBox, self.shadowLayout) ThemeWizard.addPage(self.mainAreaPage) + # footer area page self.footerAreaPage = QtGui.QWizardPage() - self.footerAreaPage.setObjectName(u'footerAreaPage') - self.footerLayout = QtGui.QFormLayout(self.footerAreaPage) - self.footerLayout.setMargin(12) - self.footerLayout.setVerticalSpacing(6) - self.footerLayout.setObjectName(u'footerLayout') + self.footerAreaPage.setObjectName(u'FooterAreaPage') + self.footerAreaLayout = QtGui.QFormLayout(self.footerAreaPage) + self.footerAreaLayout.setObjectName(u'FooterAreaLayout') self.footerFontLabel = QtGui.QLabel(self.footerAreaPage) - self.footerFontLabel.setObjectName(u'footerFontLabel') - self.footerLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.footerFontLabel) + self.footerFontLabel.setObjectName(u'FooterFontLabel') self.footerFontComboBox = QtGui.QFontComboBox(self.footerAreaPage) self.footerFontComboBox.setObjectName(u'footerFontComboBox') - self.footerLayout.setWidget(0, - QtGui.QFormLayout.FieldRole, self.footerFontComboBox) + self.footerAreaLayout.addRow(self.footerFontLabel, + self.footerFontComboBox) self.footerColorLabel = QtGui.QLabel(self.footerAreaPage) - self.footerColorLabel.setObjectName(u'footerColorLabel') - self.footerLayout.setWidget(1, - QtGui.QFormLayout.LabelRole, self.footerColorLabel) - self.footerColorPushButton = QtGui.QPushButton(self.footerAreaPage) - self.footerColorPushButton.setObjectName(u'footerColorPushButton') - self.footerLayout.setWidget(1, - QtGui.QFormLayout.FieldRole, self.footerColorPushButton) + self.footerColorLabel.setObjectName(u'FooterColorLabel') + self.footerColorButton = QtGui.QPushButton(self.footerAreaPage) + self.footerColorButton.setObjectName(u'footerColorButton') + self.footerAreaLayout.addRow(self.footerColorLabel, + self.footerColorButton) self.footerSizeLabel = QtGui.QLabel(self.footerAreaPage) - self.footerSizeLabel.setObjectName(u'footerSizeLabel') - self.footerLayout.setWidget(2, - QtGui.QFormLayout.LabelRole, self.footerSizeLabel) + self.footerSizeLabel.setObjectName(u'FooterSizeLabel') self.footerSizeSpinBox = QtGui.QSpinBox(self.footerAreaPage) self.footerSizeSpinBox.setMaximum(999) - self.footerSizeSpinBox.setProperty(u'value', 10) - self.footerSizeSpinBox.setObjectName(u'footerSizeSpinBox') - self.footerLayout.setWidget(2, - QtGui.QFormLayout.FieldRole, self.footerSizeSpinBox) + self.footerSizeSpinBox.setValue(10) + self.footerSizeSpinBox.setObjectName(u'FooterSizeSpinBox') + self.footerAreaLayout.addRow(self.footerSizeLabel, self.footerSizeSpinBox) ThemeWizard.addPage(self.footerAreaPage) + # alignment page self.alignmentPage = QtGui.QWizardPage() - self.alignmentPage.setObjectName(u'alignmentPage') + self.alignmentPage.setObjectName(u'AlignmentPage') self.alignmentLayout = QtGui.QFormLayout(self.alignmentPage) - self.alignmentLayout.setMargin(12) - self.alignmentLayout.setVerticalSpacing(6) - self.alignmentLayout.setObjectName(u'alignmentLayout') + self.alignmentLayout.setObjectName(u'AlignmentLayout') self.horizontalLabel = QtGui.QLabel(self.alignmentPage) - self.horizontalLabel.setObjectName(u'horizontalLabel') - self.alignmentLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.horizontalLabel) + self.horizontalLabel.setObjectName(u'HorizontalLabel') self.horizontalComboBox = QtGui.QComboBox(self.alignmentPage) - self.horizontalComboBox.setObjectName(u'horizontalComboBox') - self.horizontalComboBox.addItem(u'') - self.horizontalComboBox.addItem(u'') - self.horizontalComboBox.addItem(u'') - self.alignmentLayout.setWidget(0, - QtGui.QFormLayout.FieldRole, self.horizontalComboBox) + self.horizontalComboBox.addItems([u'', u'', u'']) + self.horizontalComboBox.setObjectName(u'HorizontalComboBox') + self.alignmentLayout.addRow(self.horizontalLabel, + self.horizontalComboBox) self.verticalLabel = QtGui.QLabel(self.alignmentPage) - self.verticalLabel.setObjectName(u'verticalLabel') - self.alignmentLayout.setWidget(1, - QtGui.QFormLayout.LabelRole, self.verticalLabel) + self.verticalLabel.setObjectName(u'VerticalLabel') self.verticalComboBox = QtGui.QComboBox(self.alignmentPage) - self.verticalComboBox.setObjectName(u'verticalComboBox') - self.verticalComboBox.addItem(u'') - self.verticalComboBox.addItem(u'') - self.verticalComboBox.addItem(u'') - self.alignmentLayout.setWidget(1, - QtGui.QFormLayout.FieldRole, self.verticalComboBox) + self.verticalComboBox.addItems([u'', u'', u'']) + self.verticalComboBox.setObjectName(u'VerticalComboBox') + self.alignmentLayout.addRow(self.verticalLabel, self.verticalComboBox) self.transitionsCheckBox = QtGui.QCheckBox(self.alignmentPage) - self.transitionsCheckBox.setObjectName(u'transitionsCheckBox') - self.alignmentLayout.setWidget(2, - QtGui.QFormLayout.FieldRole, self.transitionsCheckBox) + self.transitionsCheckBox.setObjectName(u'TransitionsCheckBox') + self.alignmentLayout.addRow(self.transitionsCheckBox) ThemeWizard.addPage(self.alignmentPage) + # area position page self.areaPositionPage = QtGui.QWizardPage() - self.areaPositionPage.setObjectName(u'areaPositionPage') - self.areaPositionLayout = QtGui.QGridLayout(self.areaPositionPage) - self.areaPositionLayout.setObjectName(u'areaPositionLayout') + self.areaPositionPage.setObjectName(u'AreaPositionPage') + self.areaPositionLayout = QtGui.QHBoxLayout(self.areaPositionPage) + self.areaPositionLayout.setObjectName(u'AreaPositionLayout') self.mainPositionGroupBox = QtGui.QGroupBox(self.areaPositionPage) - self.mainPositionGroupBox.setObjectName(u'mainPositionGroupBox') + self.mainPositionGroupBox.setObjectName(u'MainPositionGroupBox') self.mainPositionLayout = QtGui.QFormLayout(self.mainPositionGroupBox) - self.mainPositionLayout.setSpacing(6) - self.mainPositionLayout.setObjectName(u'mainPositionLayout') - self.mainDefaultPositionCheckBox = QtGui.QCheckBox( - self.mainPositionGroupBox) - self.mainDefaultPositionCheckBox.setChecked(True) - self.mainDefaultPositionCheckBox.setObjectName( - u'mainDefaultPositionCheckBox') - self.mainPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.mainDefaultPositionCheckBox) + self.mainPositionLayout.setObjectName(u'MainPositionLayout') + self.mainPositionCheckBox = QtGui.QCheckBox(self.mainPositionGroupBox) + self.mainPositionCheckBox.setObjectName(u'MainPositionCheckBox') + self.mainPositionLayout.addRow(self.mainPositionCheckBox) self.mainXLabel = QtGui.QLabel(self.mainPositionGroupBox) - self.mainXLabel.setObjectName(u'mainXLabel') - self.mainPositionLayout.setWidget(1, - QtGui.QFormLayout.LabelRole, self.mainXLabel) + self.mainXLabel.setObjectName(u'MainXLabel') self.mainXSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) - self.mainXSpinBox.setEnabled(False) self.mainXSpinBox.setMaximum(9999) - self.mainXSpinBox.setProperty(u'value', 0) - self.mainXSpinBox.setObjectName(u'mainXSpinBox') - self.mainPositionLayout.setWidget(1, - QtGui.QFormLayout.FieldRole, self.mainXSpinBox) + self.mainXSpinBox.setObjectName(u'MainXSpinBox') + self.mainPositionLayout.addRow(self.mainXLabel, self.mainXSpinBox) self.mainYLabel = QtGui.QLabel(self.mainPositionGroupBox) - self.mainYLabel.setObjectName(u'mainYLabel') - self.mainPositionLayout.setWidget(2, - QtGui.QFormLayout.LabelRole, self.mainYLabel) + self.mainYLabel.setObjectName(u'MainYLabel') self.mainYSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) - self.mainYSpinBox.setEnabled(False) self.mainYSpinBox.setMaximum(9999) - self.mainYSpinBox.setObjectName(u'mainYSpinBox') - self.mainPositionLayout.setWidget(2, - QtGui.QFormLayout.FieldRole, self.mainYSpinBox) + self.mainYSpinBox.setObjectName(u'MainYSpinBox') + self.mainPositionLayout.addRow(self.mainYLabel, self.mainYSpinBox) self.mainWidthLabel = QtGui.QLabel(self.mainPositionGroupBox) - self.mainWidthLabel.setObjectName(u'mainWidthLabel') - self.mainPositionLayout.setWidget(3, - QtGui.QFormLayout.LabelRole, self.mainWidthLabel) + self.mainWidthLabel.setObjectName(u'MainWidthLabel') self.mainWidthSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) - self.mainWidthSpinBox.setEnabled(False) self.mainWidthSpinBox.setMaximum(9999) - self.mainWidthSpinBox.setObjectName(u'mainWidthSpinBox') - self.mainPositionLayout.setWidget(3, - QtGui.QFormLayout.FieldRole, self.mainWidthSpinBox) + self.mainWidthSpinBox.setObjectName(u'MainWidthSpinBox') + self.mainPositionLayout.addRow(self.mainWidthLabel, + self.mainWidthSpinBox) self.mainHeightLabel = QtGui.QLabel(self.mainPositionGroupBox) - self.mainHeightLabel.setObjectName(u'mainHeightLabel') - self.mainPositionLayout.setWidget(4, - QtGui.QFormLayout.LabelRole, self.mainHeightLabel) + self.mainHeightLabel.setObjectName(u'MainHeightLabel') self.mainHeightSpinBox = QtGui.QSpinBox(self.mainPositionGroupBox) - self.mainHeightSpinBox.setEnabled(False) self.mainHeightSpinBox.setMaximum(9999) - self.mainHeightSpinBox.setObjectName(u'mainHeightSpinBox') - self.mainPositionLayout.setWidget(4, - QtGui.QFormLayout.FieldRole, self.mainHeightSpinBox) - self.areaPositionLayout.addWidget( - self.mainPositionGroupBox, 1, 0, 1, 1) + self.mainHeightSpinBox.setObjectName(u'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.setVerticalSpacing(6) - self.footerPositionLayout.setObjectName(u'footerPositionLayout') + self.footerPositionGroupBox.setObjectName(u'FooterPositionGroupBox') + self.footerPositionLayout = QtGui.QFormLayout(self.footerPositionGroupBox) + self.footerPositionLayout.setObjectName(u'FooterPositionLayout') + self.footerPositionCheckBox = QtGui.QCheckBox(self.footerPositionGroupBox) + self.footerPositionCheckBox.setObjectName(u'FooterPositionCheckBox') + self.footerPositionLayout.addRow(self.footerPositionCheckBox) self.footerXLabel = QtGui.QLabel(self.footerPositionGroupBox) - self.footerXLabel.setObjectName(u'footerXLabel') - self.footerPositionLayout.setWidget(1, - QtGui.QFormLayout.LabelRole, self.footerXLabel) + self.footerXLabel.setObjectName(u'FooterXLabel') self.footerXSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) - self.footerXSpinBox.setEnabled(False) self.footerXSpinBox.setMaximum(9999) - self.footerXSpinBox.setProperty(u'value', 0) - self.footerXSpinBox.setObjectName(u'footerXSpinBox') - self.footerPositionLayout.setWidget(1, - QtGui.QFormLayout.FieldRole, self.footerXSpinBox) + self.footerXSpinBox.setObjectName(u'FooterXSpinBox') + self.footerPositionLayout.addRow(self.footerXLabel, self.footerXSpinBox) self.footerYLabel = QtGui.QLabel(self.footerPositionGroupBox) - self.footerYLabel.setObjectName(u'footerYLabel') - self.footerPositionLayout.setWidget(2, - QtGui.QFormLayout.LabelRole, self.footerYLabel) + self.footerYLabel.setObjectName(u'FooterYLabel') self.footerYSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) - self.footerYSpinBox.setEnabled(False) self.footerYSpinBox.setMaximum(9999) - self.footerYSpinBox.setProperty(u'value', 0) - self.footerYSpinBox.setObjectName(u'footerYSpinBox') - self.footerPositionLayout.setWidget(2, - QtGui.QFormLayout.FieldRole, self.footerYSpinBox) + self.footerYSpinBox.setObjectName(u'FooterYSpinBox') + self.footerPositionLayout.addRow(self.footerYLabel, self.footerYSpinBox) self.footerWidthLabel = QtGui.QLabel(self.footerPositionGroupBox) - self.footerWidthLabel.setObjectName(u'footerWidthLabel') - self.footerPositionLayout.setWidget(3, - QtGui.QFormLayout.LabelRole, self.footerWidthLabel) + self.footerWidthLabel.setObjectName(u'FooterWidthLabel') self.footerWidthSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) - self.footerWidthSpinBox.setEnabled(False) - self.footerWidthSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerWidthSpinBox.setMaximum(9999) - self.footerWidthSpinBox.setObjectName(u'footerWidthSpinBox') - self.footerPositionLayout.setWidget(3, - QtGui.QFormLayout.FieldRole, self.footerWidthSpinBox) + self.footerWidthSpinBox.setObjectName(u'FooterWidthSpinBox') + self.footerPositionLayout.addRow(self.footerWidthLabel, + self.footerWidthSpinBox) self.footerHeightLabel = QtGui.QLabel(self.footerPositionGroupBox) - self.footerHeightLabel.setObjectName(u'footerHeightLabel') - self.footerPositionLayout.setWidget(4, - QtGui.QFormLayout.LabelRole, self.footerHeightLabel) + self.footerHeightLabel.setObjectName(u'FooterHeightLabel') self.footerHeightSpinBox = QtGui.QSpinBox(self.footerPositionGroupBox) - self.footerHeightSpinBox.setEnabled(False) - self.footerHeightSpinBox.setMinimumSize(QtCore.QSize(78, 0)) self.footerHeightSpinBox.setMaximum(9999) - self.footerHeightSpinBox.setObjectName(u'footerHeightSpinBox') - self.footerPositionLayout.setWidget(4, - QtGui.QFormLayout.FieldRole, self.footerHeightSpinBox) - self.footerDefaultPositionCheckBox = QtGui.QCheckBox( - self.footerPositionGroupBox) - self.footerDefaultPositionCheckBox.setChecked(True) - self.footerDefaultPositionCheckBox.setObjectName( - u'footerDefaultPositionCheckBox') - self.footerPositionLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.footerDefaultPositionCheckBox) - self.areaPositionLayout.addWidget( - self.footerPositionGroupBox, 1, 1, 1, 1) + self.footerHeightSpinBox.setObjectName(u'FooterHeightSpinBox') + self.footerPositionLayout.addRow(self.footerHeightLabel, + self.footerHeightSpinBox) + self.areaPositionLayout.addWidget(self.footerPositionGroupBox) ThemeWizard.addPage(self.areaPositionPage) + # preview page self.previewPage = QtGui.QWizardPage() - self.previewPage.setObjectName(u'previewPage') + self.previewPage.setObjectName(u'PreviewPage') self.previewLayout = QtGui.QVBoxLayout(self.previewPage) - self.previewLayout.setSpacing(6) - self.previewLayout.setMargin(12) - self.previewLayout.setObjectName(u'previewLayout') - self.themeNameLayout = QtGui.QHBoxLayout() - self.themeNameLayout.setObjectName(u'themeNameLayout') + self.previewLayout.setObjectName(u'PreviewLayout') + self.themeNameLayout = QtGui.QFormLayout() + self.themeNameLayout.setObjectName(u'ThemeNameLayout') self.themeNameLabel = QtGui.QLabel(self.previewPage) - self.themeNameLabel.setObjectName(u'themeNameLabel') - self.themeNameLayout.addWidget(self.themeNameLabel) + self.themeNameLabel.setObjectName(u'ThemeNameLabel') self.themeNameEdit = QtGui.QLineEdit(self.previewPage) - self.themeNameEdit.setObjectName(u'themeNameEdit') - self.themeNameLayout.addWidget(self.themeNameEdit) + self.themeNameEdit.setObjectName(u'ThemeNameEdit') + self.themeNameLayout.addRow(self.themeNameLabel, self.themeNameEdit) self.previewLayout.addLayout(self.themeNameLayout) self.previewPaneLayout = QtGui.QHBoxLayout() - self.previewPaneLayout.setObjectName(u'previewPaneLayout') - self.previewLeftSpacer = QtGui.QSpacerItem(40, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.previewPaneLayout.addItem(self.previewLeftSpacer) + self.previewPaneLayout.setObjectName(u'PreviewPaneLayout') + self.previewPaneLayout.addStretch() self.previewBoxLabel = QtGui.QLabel(self.previewPage) sizePolicy = QtGui.QSizePolicy( QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.previewBoxLabel.sizePolicy().hasHeightForWidth()) self.previewBoxLabel.setSizePolicy(sizePolicy) self.previewBoxLabel.setMinimumSize(QtCore.QSize(100, 150)) self.previewBoxLabel.setFrameShape(QtGui.QFrame.WinPanel) self.previewBoxLabel.setFrameShadow(QtGui.QFrame.Sunken) self.previewBoxLabel.setLineWidth(1) self.previewBoxLabel.setScaledContents(True) - self.previewBoxLabel.setObjectName(u'previewBoxLabel') + self.previewBoxLabel.setObjectName(u'PreviewBoxLabel') self.previewPaneLayout.addWidget(self.previewBoxLabel) - self.previewRightSpacer = QtGui.QSpacerItem(40, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.previewPaneLayout.addItem(self.previewRightSpacer) + self.previewPaneLayout.addStretch() self.previewLayout.addLayout(self.previewPaneLayout) ThemeWizard.addPage(self.previewPage) - self.themeNameLabel.setBuddy(self.themeNameEdit) self.retranslateUi(ThemeWizard) - QtCore.QObject.connect( - ThemeWizard, - QtCore.SIGNAL(u'accepted()'), - ThemeWizard.accept) + + 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.SLOT(u'setEnabled(bool)')) + 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.SLOT(u'setEnabled(bool)')) + 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.SLOT(u'setDisabled(bool)')) + 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.SLOT(u'setDisabled(bool)')) + 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.SLOT(u'setDisabled(bool)')) + 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.SLOT(u'setDisabled(bool)')) QtCore.QMetaObject.connectSlotsByName(ThemeWizard) def retranslateUi(self, ThemeWizard): @@ -480,13 +436,13 @@ class Ui_ThemeWizard(object): self.backgroundPage.setSubTitle( translate('OpenLP.ThemeWizard', 'Set up your theme\'s background ' 'according to the parameters below.')) - self.backgroundTypeLabel.setText( + self.backgroundLabel.setText( translate('OpenLP.ThemeWizard', 'Background type:')) - self.backgroundTypeComboBox.setItemText(0, + self.backgroundComboBox.setItemText(0, translate('OpenLP.ThemeWizard', 'Solid Color')) - self.backgroundTypeComboBox.setItemText(1, + self.backgroundComboBox.setItemText(1, translate('OpenLP.ThemeWizard', 'Gradient')) - self.backgroundTypeComboBox.setItemText(2, + self.backgroundComboBox.setItemText(2, translate('OpenLP.ThemeWizard', 'Image')) self.colorLabel.setText(translate('OpenLP.ThemeWizard', 'Color:')) self.gradientStartLabel.setText( @@ -528,9 +484,9 @@ class Ui_ThemeWizard(object): self.shadowCheckBox.setText(translate('OpenLP.ThemeWizard', '&Shadow:')) self.shadowSizeLabel.setText(translate('OpenLP.ThemeWizard', 'Size:')) self.shadowSizeSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'pt')) - self.boldCheckBox.setText( + self.mainBoldCheckBox.setText( translate('OpenLP.ThemeWizard', 'Bold')) - self.italicsCheckBox.setText( + self.mainItalicsCheckBox.setText( translate('OpenLP.ThemeWizard', 'Italic')) self.footerAreaPage.setTitle( translate('OpenLP.ThemeWizard', 'Footer Area Font Details')) @@ -571,7 +527,7 @@ class Ui_ThemeWizard(object): ' main and footer areas.')) self.mainPositionGroupBox.setTitle( translate('OpenLP.ThemeWizard', '&Main Area')) - self.mainDefaultPositionCheckBox.setText( + self.mainPositionCheckBox.setText( translate('OpenLP.ThemeWizard', '&Use default location')) self.mainXLabel.setText(translate('OpenLP.ThemeWizard', 'X position:')) self.mainXSpinBox.setSuffix(translate('OpenLP.ThemeWizard', 'px')) @@ -598,7 +554,7 @@ class Ui_ThemeWizard(object): translate('OpenLP.ThemeWizard', 'Height:')) self.footerHeightSpinBox.setSuffix( translate('OpenLP.ThemeWizard', 'px')) - self.footerDefaultPositionCheckBox.setText( + self.footerPositionCheckBox.setText( translate('OpenLP.ThemeWizard', 'Use default location')) self.previewPage.setTitle( translate('OpenLP.ThemeWizard', 'Save and Preview')) @@ -608,3 +564,18 @@ class Ui_ThemeWizard(object): 'new theme')) self.themeNameLabel.setText( translate('OpenLP.ThemeWizard', 'Theme name:')) + # Align all QFormLayouts towards each other + width = max(self.backgroundLabel.minimumSizeHint().width(), + self.colorLabel.minimumSizeHint().width()) + width = max(width, self.gradientStartLabel.minimumSizeHint().width()) + width = max(width, self.gradientEndLabel.minimumSizeHint().width()) + width = max(width, self.gradientTypeLabel.minimumSizeHint().width()) + width = max(width, self.imageLabel.minimumSizeHint().width()) + self.backgroundTypeSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.colorSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.gradientSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.imageSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 82f549694..9aaf2c312 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -79,8 +79,12 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): QtGui.QWizard.__init__(self, parent) self.setupUi(self) self.registerFields() - self.hasOpenlp1Import = \ - BibleFormat.get_availability(BibleFormat.OpenLP1) + if BibleFormat.get_availability(BibleFormat.OpenLP1): + self.openlp1DisabledLabel.hide() + else: + self.openlp1FileLabel.hide() + self.openlp1FileEdit.hide() + self.openlp1BrowseButton.hide() self.finishButton = self.button(QtGui.QWizard.FinishButton) self.cancelButton = self.button(QtGui.QWizard.CancelButton) self.manager = manager @@ -88,27 +92,26 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.manager.set_process_dialog(self) self.web_bible_list = {} self.loadWebBibles() - QtCore.QObject.connect(self.formatComboBox, - QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onFormatComboBoxChanged) + self.restart() + self.selectStack.setCurrentIndex(0) QtCore.QObject.connect(self.webSourceComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.onWebSourceComboBoxChanged) - QtCore.QObject.connect(self.osisFileButton, + QtCore.QObject.connect(self.osisBrowseButton, QtCore.SIGNAL(u'clicked()'), - self.onOsisFileButtonClicked) + self.onOsisBrowseButtonClicked) QtCore.QObject.connect(self.csvBooksButton, QtCore.SIGNAL(u'clicked()'), - self.onBooksFileButtonClicked) + self.onBooksBrowseButtonClicked) QtCore.QObject.connect(self.csvVersesButton, QtCore.SIGNAL(u'clicked()'), - self.onCsvVersesFileButtonClicked) - QtCore.QObject.connect(self.openSongFileButton, + self.onCsvVersesBrowseButtonClicked) + QtCore.QObject.connect(self.openSongBrowseButton, QtCore.SIGNAL(u'clicked()'), self.onOpenSongBrowseButtonClicked) - QtCore.QObject.connect(self.openlp1FileButton, + QtCore.QObject.connect(self.openlp1BrowseButton, QtCore.SIGNAL(u'clicked()'), - self.onOpenlp1FileButtonClicked) + self.onOpenlp1BrowseButtonClicked) QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), self.onCurrentIdChanged) @@ -125,7 +128,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): Stop the import on cancel button, close button or ESC key. """ log.debug('Import canceled by user.') - if self.currentId() == 3: + if self.currentPage() == self.importPage: Receiver.send_message(u'bibles_stop_import') self.done(QtGui.QDialog.Rejected) @@ -133,11 +136,9 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): """ Validate the current page before moving on to the next page. """ - if self.currentId() == 0: - # Welcome page + if self.currentPage() == self.welcomePage: return True - elif self.currentId() == 1: - # Select page + elif self.currentPage() == self.selectPage: if self.field(u'source_format').toInt()[0] == BibleFormat.OSIS: if not self.field(u'osis_location').toString(): QtGui.QMessageBox.critical(self, @@ -146,7 +147,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file to import your ' 'Bible from.')) - self.OSISLocationEdit.setFocus() + self.osisFileEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: if not self.field(u'csv_booksfile').toString(): @@ -156,7 +157,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file with books of ' 'the Bible to use in the import.')) - self.booksLocationEdit.setFocus() + self.csvBooksEdit.setFocus() return False elif not self.field(u'csv_versefile').toString(): QtGui.QMessageBox.critical(self, @@ -165,7 +166,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file of Bible ' 'verses to import.')) - self.csvVerseLocationEdit.setFocus() + self.csvVersesEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == \ BibleFormat.OpenSong: @@ -186,11 +187,10 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): translate('BiblesPlugin.ImportWizardForm', 'You need to specify a file to import your ' 'Bible from.')) - self.openlp1LocationEdit.setFocus() + self.openlp1FileEdit.setFocus() return False return True - elif self.currentId() == 2: - # License details + elif self.currentPage() == self.licenseDetailsPage: license_version = unicode(self.field(u'license_version').toString()) license_copyright = \ unicode(self.field(u'license_copyright').toString()) @@ -220,31 +220,9 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.versionNameEdit.setFocus() return False return True - if self.currentId() == 3: - # Progress page + if self.currentPage() == self.importPage: return True - def onFormatComboBoxChanged(self, index): - """ - Set Widgets for the selected import format visible. - - ``index`` - The index of the combo box. - """ - self.osisFileLabel.setVisible(index == 0) - self.osisFileWidget.setVisible(index == 0) - self.csvBooksLabel.setVisible(index == 1) - self.csvBooksWidget.setVisible(index == 1) - self.csvVersesLabel.setVisible(index == 1) - self.csvVersesWidget.setVisible(index == 1) - self.openSongFileLabel.setVisible(index == 2) - self.openSongFileWidget.setVisible(index == 2) - self.webTabWidget.setVisible(index == 3) - self.openlp1FileLabel.setVisible(index == 4 and self.hasOpenlp1Import) - self.openlp1FileWidget.setVisible(index == 4 and self.hasOpenlp1Import) - self.openlp1DisabledLabel.setVisible(index == 4 and - not self.hasOpenlp1Import) - def onWebSourceComboBoxChanged(self, index): """ Setup the list of Bibles when you select a different source on the web @@ -256,10 +234,9 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.webTranslationComboBox.clear() bibles = self.web_bible_list[index].keys() bibles.sort() - for bible in bibles: - self.webTranslationComboBox.addItem(bible) + self.webTranslationComboBox.addItems(bibles) - def onOsisFileButtonClicked(self): + def onOsisBrowseButtonClicked(self): """ Show the file open dialog for the OSIS file. """ @@ -267,7 +244,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): translate('BiblesPlugin.ImportWizardForm', 'Open OSIS File'), self.osisFileEdit) - def onBooksFileButtonClicked(self): + def onBooksBrowseButtonClicked(self): """ Show the file open dialog for the books CSV file. """ @@ -276,7 +253,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.csvBooksEdit, u'%s (*.csv)' % translate('BiblesPlugin.ImportWizardForm', 'CSV File')) - def onCsvVersesFileButtonClicked(self): + def onCsvVersesBrowseButtonClicked(self): """ Show the file open dialog for the verses CSV file. """ @@ -292,7 +269,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): translate('BiblesPlugin.ImportWizardForm', 'Open OpenSong Bible'), self.openSongFileEdit) - def onOpenlp1FileButtonClicked(self): + def onOpenlp1BrowseButtonClicked(self): """ Show the file open dialog for the openlp.org 1.x file. """ @@ -303,7 +280,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): 'openlp.org 1.x bible')) def onCurrentIdChanged(self, pageId): - if pageId == 3: + if self.page(pageId) == self.importPage: self.preImport() self.performImport() self.postImport() @@ -510,7 +487,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): # Import a bible from the web. self.importProgressBar.setMaximum(1) download_location = self.field(u'web_location').toInt()[0] - bible_version = unicode(self.bibleComboBox.currentText()) + bible_version = unicode(self.webTranslationComboBox.currentText()) if download_location == WebDownload.Crosswalk: bible = \ self.web_bible_list[WebDownload.Crosswalk][bible_version] diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index 647754674..1cb5109b6 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -43,36 +43,26 @@ class Ui_BibleImportWizard(object): QtGui.QPixmap(u':/wizards/wizard_importbible.bmp')) self.welcomePage.setObjectName(u'WelcomePage') self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage) - self.welcomeLayout.setMargin(12) - self.welcomeLayout.setSpacing(6) self.welcomeLayout.setObjectName(u'WelcomeLayout') self.titleLabel = QtGui.QLabel(self.welcomePage) self.titleLabel.setObjectName(u'TitleLabel') self.welcomeLayout.addWidget(self.titleLabel) - self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40, - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - self.welcomeLayout.addItem(self.welcomeTopSpacer) + self.welcomeLayout.addSpacing(40) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) self.informationLabel.setObjectName(u'InformationLabel') self.welcomeLayout.addWidget(self.informationLabel) - self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40, - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.welcomeLayout.addItem(self.welcomeBottomSpacer) + self.welcomeLayout.addStretch() bibleImportWizard.addPage(self.welcomePage) # Select page self.selectPage = QtGui.QWizardPage() self.selectPage.setObjectName(u'SelectPage') self.selectPageLayout = QtGui.QVBoxLayout(self.selectPage) - self.selectPageLayout.setMargin(12) - self.selectPageLayout.setObjectName(u'SelectPageLayout') - self.selectFormLayout = QtGui.QFormLayout() - self.selectFormLayout.setVerticalSpacing(6) - self.selectFormLayout.setObjectName(u'SelectFormLayout') + self.selectPageLayout.setObjectName(u'SelectFormLayout') + self.formatLayout = QtGui.QFormLayout() + self.formatLayout.setObjectName(u'FormatLayout') self.formatLabel = QtGui.QLabel(self.selectPage) self.formatLabel.setObjectName(u'FormatLabel') - self.selectFormLayout.setWidget(0, QtGui.QFormLayout.LabelRole, - self.formatLabel) self.formatComboBox = QtGui.QComboBox(self.selectPage) self.formatComboBox.addItem(u'') self.formatComboBox.addItem(u'') @@ -80,122 +70,96 @@ class Ui_BibleImportWizard(object): self.formatComboBox.addItem(u'') self.formatComboBox.addItem(u'') self.formatComboBox.setObjectName(u'FormatComboBox') - self.selectFormLayout.setWidget(0, QtGui.QFormLayout.FieldRole, - self.formatComboBox) - self.osisFileLabel = QtGui.QLabel(self.selectPage) + self.formatLayout.addRow(self.formatLabel, self.formatComboBox) + self.formatSpacer = QtGui.QSpacerItem(10, 0, + QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) + self.formatLayout.setItem(1, QtGui.QFormLayout.LabelRole, + self.formatSpacer) + self.selectPageLayout.addLayout(self.formatLayout) + self.selectStack = QtGui.QStackedLayout() + self.osisWidget = QtGui.QWidget(self.selectPage) + self.osisWidget.setObjectName(u'OsisWidget') + self.osisLayout = QtGui.QFormLayout(self.osisWidget) + self.osisLayout.setMargin(0) + self.osisLayout.setObjectName(u'OsisLayout') + self.osisFileLabel = QtGui.QLabel(self.osisWidget) self.osisFileLabel.setObjectName(u'OsisFileLabel') - self.selectFormLayout.setWidget(1, QtGui.QFormLayout.LabelRole, - self.osisFileLabel) - self.osisFileWidget = QtGui.QWidget(self.selectPage) - self.osisFileWidget.setObjectName(u'OsisFileWidget') - self.osisFileLayout = QtGui.QHBoxLayout(self.osisFileWidget) - self.osisFileLayout.setMargin(0) + self.osisFileLayout = QtGui.QHBoxLayout() self.osisFileLayout.setObjectName(u'OsisFileLayout') - self.osisFileEdit = QtGui.QLineEdit(self.osisFileWidget) + self.osisFileEdit = QtGui.QLineEdit(self.osisWidget) self.osisFileEdit.setObjectName(u'OsisFileEdit') self.osisFileLayout.addWidget(self.osisFileEdit) - self.osisFileButton = QtGui.QToolButton(self.osisFileWidget) - self.osisFileButton.setIcon(build_icon(u':/general/general_open.png')) - self.osisFileButton.setObjectName(u'OsisFileButton') - self.osisFileLayout.addWidget(self.osisFileButton) - self.selectFormLayout.setWidget(1, QtGui.QFormLayout.FieldRole, - self.osisFileWidget) - self.csvBooksLabel = QtGui.QLabel(self.selectPage) - self.csvBooksLabel.setVisible(False) + self.osisBrowseButton = QtGui.QToolButton(self.osisWidget) + self.osisBrowseButton.setIcon(build_icon(u':/general/general_open.png')) + self.osisBrowseButton.setObjectName(u'OsisBrowseButton') + self.osisFileLayout.addWidget(self.osisBrowseButton) + self.osisLayout.addRow(self.osisFileLabel, self.osisFileLayout) + self.osisSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.osisLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.osisSpacer) + self.selectStack.addWidget(self.osisWidget) + self.csvWidget = QtGui.QWidget(self.selectPage) + self.csvWidget.setObjectName(u'CsvWidget') + self.csvLayout = QtGui.QFormLayout(self.csvWidget) + self.csvLayout.setMargin(0) + self.csvLayout.setObjectName(u'CsvLayout') + self.csvBooksLabel = QtGui.QLabel(self.csvWidget) self.csvBooksLabel.setObjectName(u'CsvBooksLabel') - self.selectFormLayout.setWidget(2, QtGui.QFormLayout.LabelRole, - self.csvBooksLabel) - self.csvBooksWidget = QtGui.QWidget(self.selectPage) - self.csvBooksWidget.setVisible(False) - self.csvBooksWidget.setObjectName(u'CsvBooksWidget') - self.csvBooksLayout = QtGui.QHBoxLayout(self.csvBooksWidget) - self.csvBooksLayout.setMargin(0) + self.csvBooksLayout = QtGui.QHBoxLayout() self.csvBooksLayout.setObjectName(u'CsvBooksLayout') - self.csvBooksEdit = QtGui.QLineEdit(self.csvBooksWidget) + self.csvBooksEdit = QtGui.QLineEdit(self.csvWidget) self.csvBooksEdit.setObjectName(u'CsvBooksEdit') self.csvBooksLayout.addWidget(self.csvBooksEdit) - self.csvBooksButton = QtGui.QToolButton(self.csvBooksWidget) + self.csvBooksButton = QtGui.QToolButton(self.csvWidget) self.csvBooksButton.setIcon(build_icon(u':/general/general_open.png')) self.csvBooksButton.setObjectName(u'CsvBooksButton') self.csvBooksLayout.addWidget(self.csvBooksButton) - self.selectFormLayout.setWidget(2, QtGui.QFormLayout.FieldRole, - self.csvBooksWidget) - self.csvVersesLabel = QtGui.QLabel(self.selectPage) - self.csvVersesLabel.setVisible(False) + self.csvLayout.addRow(self.csvBooksLabel, self.csvBooksLayout) + self.csvVersesLabel = QtGui.QLabel(self.csvWidget) self.csvVersesLabel.setObjectName(u'CsvVersesLabel') - self.selectFormLayout.setWidget(3, QtGui.QFormLayout.LabelRole, - self.csvVersesLabel) - self.csvVersesWidget = QtGui.QWidget(self.selectPage) - self.csvVersesWidget.setVisible(False) - self.csvVersesWidget.setObjectName(u'CsvVersesWidget') - self.csvVersesLayout = QtGui.QHBoxLayout(self.csvVersesWidget) - self.csvVersesLayout.setMargin(0) + self.csvVersesLayout = QtGui.QHBoxLayout() self.csvVersesLayout.setObjectName(u'CsvVersesLayout') - self.csvVersesEdit = QtGui.QLineEdit(self.csvVersesWidget) + self.csvVersesEdit = QtGui.QLineEdit(self.csvWidget) self.csvVersesEdit.setObjectName(u'CsvVersesEdit') self.csvVersesLayout.addWidget(self.csvVersesEdit) - self.csvVersesButton = QtGui.QToolButton(self.csvVersesWidget) + self.csvVersesButton = QtGui.QToolButton(self.csvWidget) self.csvVersesButton.setIcon(build_icon(u':/general/general_open.png')) self.csvVersesButton.setObjectName(u'CsvVersesButton') self.csvVersesLayout.addWidget(self.csvVersesButton) - self.selectFormLayout.setWidget(3, QtGui.QFormLayout.FieldRole, - self.csvVersesWidget) - self.openSongFileLabel = QtGui.QLabel(self.selectPage) - self.openSongFileLabel.setVisible(False) + self.csvLayout.addRow(self.csvVersesLabel, self.csvVersesLayout) + self.csvSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.csvLayout.setItem(2, QtGui.QFormLayout.LabelRole, self.csvSpacer) + self.selectStack.addWidget(self.csvWidget) + self.openSongWidget = QtGui.QWidget(self.selectPage) + self.openSongWidget.setObjectName(u'OpenSongWidget') + self.openSongLayout = QtGui.QFormLayout(self.openSongWidget) + self.openSongLayout.setMargin(0) + self.openSongLayout.setObjectName(u'OpenSongLayout') + self.openSongFileLabel = QtGui.QLabel(self.openSongWidget) self.openSongFileLabel.setObjectName(u'OpenSongFileLabel') - self.selectFormLayout.setWidget(4, QtGui.QFormLayout.LabelRole, - self.openSongFileLabel) - self.openSongFileWidget = QtGui.QWidget(self.selectPage) - self.openSongFileWidget.setVisible(False) - self.openSongFileWidget.setObjectName(u'OpenSongFileWidget') - self.openSongFileLayout = QtGui.QHBoxLayout(self.openSongFileWidget) - self.openSongFileLayout.setMargin(0) + self.openSongFileLayout = QtGui.QHBoxLayout() self.openSongFileLayout.setObjectName(u'OpenSongFileLayout') - self.openSongFileEdit = QtGui.QLineEdit(self.openSongFileWidget) + self.openSongFileEdit = QtGui.QLineEdit(self.openSongWidget) self.openSongFileEdit.setObjectName(u'OpenSongFileEdit') self.openSongFileLayout.addWidget(self.openSongFileEdit) - self.openSongFileButton = QtGui.QToolButton(self.openSongFileWidget) - self.openSongFileButton.setIcon( + self.openSongBrowseButton = QtGui.QToolButton(self.openSongWidget) + self.openSongBrowseButton.setIcon( build_icon(u':/general/general_open.png')) - self.openSongFileButton.setObjectName(u'OpenSongFileButton') - self.openSongFileLayout.addWidget(self.openSongFileButton) - self.selectFormLayout.setWidget(4, QtGui.QFormLayout.FieldRole, - self.openSongFileWidget) - self.openlp1FileLabel = QtGui.QLabel(self.selectPage) - self.openlp1FileLabel.setVisible(False) - self.openlp1FileLabel.setObjectName(u'Openlp1FileLabel') - self.selectFormLayout.setWidget(5, QtGui.QFormLayout.LabelRole, - self.openlp1FileLabel) - self.openlp1FileWidget = QtGui.QWidget(self.selectPage) - self.openlp1FileWidget.setVisible(False) - self.openlp1FileWidget.setObjectName(u'Openlp1FileWidget') - self.openlp1FileLayout = QtGui.QHBoxLayout(self.openlp1FileWidget) - self.openlp1FileLayout.setMargin(0) - self.openlp1FileLayout.setObjectName(u'Openlp1FileLayout') - self.openlp1FileEdit = QtGui.QLineEdit(self.openlp1FileWidget) - self.openlp1FileEdit.setObjectName(u'Openlp1FileEdit') - self.openlp1FileLayout.addWidget(self.openlp1FileEdit) - self.openlp1FileButton = QtGui.QToolButton(self.openlp1FileWidget) - self.openlp1FileButton.setIcon( - build_icon(u':/general/general_open.png')) - self.openlp1FileButton.setObjectName(u'Openlp1FileButton') - self.openlp1FileLayout.addWidget(self.openlp1FileButton) - self.selectFormLayout.setWidget(5, QtGui.QFormLayout.FieldRole, - self.openlp1FileWidget) - self.selectPageLayout.addItem(self.selectFormLayout) - self.openlp1DisabledLabel = QtGui.QLabel(self.selectPage) - self.openlp1DisabledLabel.setVisible(False) - self.openlp1DisabledLabel.setObjectName(u'Openlp1DisabledLabel') - self.selectPageLayout.addWidget(self.openlp1DisabledLabel) + self.openSongBrowseButton.setObjectName(u'OpenSongBrowseButton') + self.openSongFileLayout.addWidget(self.openSongBrowseButton) + self.openSongLayout.addRow(self.openSongFileLabel, + self.openSongFileLayout) + self.openSongSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.openSongLayout.setItem(1, QtGui.QFormLayout.LabelRole, + self.openSongSpacer) + self.selectStack.addWidget(self.openSongWidget) self.webTabWidget = QtGui.QTabWidget(self.selectPage) - self.webTabWidget.setSizePolicy(QtGui.QSizePolicy.MinimumExpanding, - QtGui.QSizePolicy.MinimumExpanding) - self.webTabWidget.setVisible(False) self.webTabWidget.setObjectName(u'WebTabWidget') self.webBibleTab = QtGui.QWidget() self.webBibleTab.setObjectName(u'WebBibleTab') self.webBibleLayout = QtGui.QFormLayout(self.webBibleTab) - self.webBibleLayout.setVerticalSpacing(6) self.webBibleLayout.setObjectName(u'WebBibleLayout') self.webSourceLabel = QtGui.QLabel(self.webBibleTab) self.webSourceLabel.setObjectName(u'WebSourceLabel') @@ -213,17 +177,15 @@ class Ui_BibleImportWizard(object): self.webBibleLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.webTranslationLabel) self.webTranslationComboBox = QtGui.QComboBox(self.webBibleTab) + self.webTranslationComboBox.setSizeAdjustPolicy( + QtGui.QComboBox.AdjustToContents) self.webTranslationComboBox.setObjectName(u'WebTranslationComboBox') - self.webTranslationComboBox.addItem(u'') - self.webTranslationComboBox.addItem(u'') - self.webTranslationComboBox.addItem(u'') self.webBibleLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.webTranslationComboBox) self.webTabWidget.addTab(self.webBibleTab, u'') self.webProxyTab = QtGui.QWidget() self.webProxyTab.setObjectName(u'WebProxyTab') self.webProxyLayout = QtGui.QFormLayout(self.webProxyTab) - self.webProxyLayout.setVerticalSpacing(6) self.webProxyLayout.setObjectName(u'WebProxyLayout') self.webServerLabel = QtGui.QLabel(self.webProxyTab) self.webServerLabel.setObjectName(u'WebServerLabel') @@ -250,14 +212,40 @@ class Ui_BibleImportWizard(object): self.webProxyLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.webPasswordEdit) self.webTabWidget.addTab(self.webProxyTab, u'') - self.selectPageLayout.addWidget(self.webTabWidget) + self.selectStack.addWidget(self.webTabWidget) + self.openlp1Widget = QtGui.QWidget(self.selectPage) + self.openlp1Widget.setObjectName(u'Openlp1Widget') + self.openlp1Layout = QtGui.QFormLayout(self.openlp1Widget) + self.openlp1Layout.setMargin(0) + self.openlp1Layout.setObjectName(u'Openlp1Layout') + self.openlp1FileLabel = QtGui.QLabel(self.openlp1Widget) + self.openlp1FileLabel.setObjectName(u'Openlp1FileLabel') + self.openlp1FileLayout = QtGui.QHBoxLayout() + self.openlp1FileLayout.setObjectName(u'Openlp1FileLayout') + self.openlp1FileEdit = QtGui.QLineEdit(self.openlp1Widget) + self.openlp1FileEdit.setObjectName(u'Openlp1FileEdit') + self.openlp1FileLayout.addWidget(self.openlp1FileEdit) + self.openlp1BrowseButton = QtGui.QToolButton(self.openlp1Widget) + self.openlp1BrowseButton.setIcon( + build_icon(u':/general/general_open.png')) + self.openlp1BrowseButton.setObjectName(u'Openlp1BrowseButton') + self.openlp1FileLayout.addWidget(self.openlp1BrowseButton) + self.openlp1Layout.addRow(self.openlp1FileLabel, self.openlp1FileLayout) + self.openlp1DisabledLabel = QtGui.QLabel(self.openlp1Widget) + self.openlp1DisabledLabel.setWordWrap(True) + self.openlp1DisabledLabel.setObjectName(u'Openlp1DisabledLabel') + self.openlp1Layout.addRow(self.openlp1DisabledLabel) + self.openlp1Spacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.openlp1Layout.setItem(1, QtGui.QFormLayout.LabelRole, + self.openlp1Spacer) + self.selectStack.addWidget(self.openlp1Widget) + self.selectPageLayout.addLayout(self.selectStack) bibleImportWizard.addPage(self.selectPage) # License page self.licenseDetailsPage = QtGui.QWizardPage() self.licenseDetailsPage.setObjectName(u'LicenseDetailsPage') self.licenseDetailsLayout = QtGui.QFormLayout(self.licenseDetailsPage) - self.licenseDetailsLayout.setMargin(12) - self.licenseDetailsLayout.setVerticalSpacing(6) self.licenseDetailsLayout.setObjectName(u'LicenseDetailsLayout') self.versionNameLabel = QtGui.QLabel(self.licenseDetailsPage) self.versionNameLabel.setObjectName(u'VersionNameLabel') @@ -288,7 +276,6 @@ class Ui_BibleImportWizard(object): self.importPage = QtGui.QWizardPage() self.importPage.setObjectName(u'ImportPage') self.importLayout = QtGui.QVBoxLayout(self.importPage) - self.importLayout.setSpacing(6) self.importLayout.setMargin(48) self.importLayout.setObjectName(u'ImportLayout') self.importProgressLabel = QtGui.QLabel(self.importPage) @@ -299,7 +286,10 @@ class Ui_BibleImportWizard(object): self.importLayout.addWidget(self.importProgressBar) bibleImportWizard.addPage(self.importPage) self.retranslateUi(bibleImportWizard) - self.webTabWidget.setCurrentIndex(0) + QtCore.QMetaObject.connectSlotsByName(bibleImportWizard) + QtCore.QObject.connect(self.formatComboBox, + QtCore.SIGNAL(u'currentIndexChanged(int)'), self.selectStack, + QtCore.SLOT(u'setCurrentIndex(int)')) def retranslateUi(self, bibleImportWizard): bibleImportWizard.setWindowTitle( @@ -387,3 +377,20 @@ class Ui_BibleImportWizard(object): '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.')) + # Align all QFormLayouts towards each other + width = max(self.formatLabel.minimumSizeHint().width(), + self.osisFileLabel.minimumSizeHint().width()) + width = max(width, self.csvBooksLabel.minimumSizeHint().width()) + width = max(width, self.csvVersesLabel.minimumSizeHint().width()) + width = max(width, self.openSongFileLabel.minimumSizeHint().width()) + width = max(width, self.openlp1FileLabel.minimumSizeHint().width()) + self.formatSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.osisSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.csvSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.openSongSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.openlp1Spacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py index d02ff2a70..62571642e 100644 --- a/openlp/plugins/bibles/lib/csvbible.py +++ b/openlp/plugins/bibles/lib/csvbible.py @@ -72,7 +72,7 @@ class CSVBible(BibleDB): self.create_book(unicode(line[1], details['encoding']), line[2], int(line[0])) Receiver.send_message(u'openlp_process_events') - except IOError: + except IOError, IndexError: log.exception(u'Loading books from file failed') success = False finally: diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py index 14454a69f..98b3b6a85 100644 --- a/openlp/plugins/bibles/lib/opensong.py +++ b/openlp/plugins/bibles/lib/opensong.py @@ -88,7 +88,7 @@ class OpenSongBible(BibleDB): translate('BiblesPlugin.Opensong', 'Importing'), db_book.name, chapter.attrib[u'n'])) self.session.commit() - except IOError: + except IOError, AttributeError: log.exception(u'Loading bible from OpenSong file failed') success = False finally: From dcbba9bbf400b272813d763dcecc31cf001157fc Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 27 Dec 2010 17:07:44 +0100 Subject: [PATCH 10/49] fixed long line --- openlp/core/ui/slidecontroller.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index c50794286..b93009d5b 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -424,7 +424,8 @@ class SlideController(QtGui.QWidget): # Sort out image heights (Songs, bibles excluded) if self.serviceItem and not self.serviceItem.is_text(): for framenumber in range(len(self.serviceItem.get_frames())): - self.PreviewListWidget.setRowHeight(framenumber, width / self.ratio) + self.PreviewListWidget.setRowHeight( + framenumber, width / self.ratio) def onSongBarHandler(self): request = unicode(self.sender().text()) @@ -1029,4 +1030,4 @@ class SlideController(QtGui.QWidget): self.mediaObject.clearQueue() self.video.hide() self.SlidePreview.clear() - self.SlidePreview.show() \ No newline at end of file + self.SlidePreview.show() From 914827c023ca4671bca2fca3b8441585b2097c4b Mon Sep 17 00:00:00 2001 From: M2j Date: Mon, 27 Dec 2010 19:23:46 +0100 Subject: [PATCH 11/49] same as before for SongImportWidget (removing unneccesary format instructions and FormLayout alignment) --- openlp/core/ui/themewizard.py | 16 +-- .../plugins/bibles/forms/bibleimportwizard.py | 27 ++--- openlp/plugins/songs/forms/songimportform.py | 15 +-- .../plugins/songs/forms/songimportwizard.py | 112 ++++++++---------- 4 files changed, 74 insertions(+), 96 deletions(-) diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index 8b89f802c..da25b0f37 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -36,7 +36,7 @@ class Ui_ThemeWizard(object): ThemeWizard.setOptions( QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage) - # welcome page + # Welcome Page self.welcomePage = QtGui.QWizardPage() self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(u':/wizards/wizard_createtheme.bmp')) @@ -53,7 +53,7 @@ class Ui_ThemeWizard(object): self.welcomeLayout.addWidget(self.informationLabel) self.welcomeLayout.addStretch() ThemeWizard.addPage(self.welcomePage) - # background page + # Background Page self.backgroundPage = QtGui.QWizardPage() self.backgroundPage.setObjectName(u'BackgroundPage') self.backgroundLayout = QtGui.QVBoxLayout(self.backgroundPage) @@ -143,7 +143,7 @@ class Ui_ThemeWizard(object): self.backgroundStack.addWidget(self.imageWidget) self.backgroundLayout.addLayout(self.backgroundStack) ThemeWizard.addPage(self.backgroundPage) - # main area page + # Main Area Page self.mainAreaPage = QtGui.QWizardPage() self.mainAreaPage.setObjectName(u'MainAreaPage') self.mainAreaLayout = QtGui.QFormLayout(self.mainAreaPage) @@ -226,7 +226,7 @@ class Ui_ThemeWizard(object): self.shadowLayout.addWidget(self.shadowSizeSpinBox) self.mainAreaLayout.addRow(self.shadowCheckBox, self.shadowLayout) ThemeWizard.addPage(self.mainAreaPage) - # footer area page + # Footer Area Page self.footerAreaPage = QtGui.QWizardPage() self.footerAreaPage.setObjectName(u'FooterAreaPage') self.footerAreaLayout = QtGui.QFormLayout(self.footerAreaPage) @@ -251,7 +251,7 @@ class Ui_ThemeWizard(object): self.footerSizeSpinBox.setObjectName(u'FooterSizeSpinBox') self.footerAreaLayout.addRow(self.footerSizeLabel, self.footerSizeSpinBox) ThemeWizard.addPage(self.footerAreaPage) - # alignment page + # Alignment Page self.alignmentPage = QtGui.QWizardPage() self.alignmentPage.setObjectName(u'AlignmentPage') self.alignmentLayout = QtGui.QFormLayout(self.alignmentPage) @@ -273,7 +273,7 @@ class Ui_ThemeWizard(object): self.transitionsCheckBox.setObjectName(u'TransitionsCheckBox') self.alignmentLayout.addRow(self.transitionsCheckBox) ThemeWizard.addPage(self.alignmentPage) - # area position page + # Area Position Page self.areaPositionPage = QtGui.QWizardPage() self.areaPositionPage.setObjectName(u'AreaPositionPage') self.areaPositionLayout = QtGui.QHBoxLayout(self.areaPositionPage) @@ -347,7 +347,7 @@ class Ui_ThemeWizard(object): self.footerHeightSpinBox) self.areaPositionLayout.addWidget(self.footerPositionGroupBox) ThemeWizard.addPage(self.areaPositionPage) - # preview page + # Preview Page self.previewPage = QtGui.QWizardPage() self.previewPage.setObjectName(u'PreviewPage') self.previewLayout = QtGui.QVBoxLayout(self.previewPage) @@ -564,7 +564,7 @@ class Ui_ThemeWizard(object): 'new theme')) self.themeNameLabel.setText( translate('OpenLP.ThemeWizard', 'Theme name:')) - # Align all QFormLayouts towards each other + # Align all QFormLayouts towards each other. width = max(self.backgroundLabel.minimumSizeHint().width(), self.colorLabel.minimumSizeHint().width()) width = max(width, self.gradientStartLabel.minimumSizeHint().width()) diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index af6bae842..a8d324cf1 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -37,7 +37,7 @@ class Ui_BibleImportWizard(object): QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage | QtGui.QWizard.NoBackButtonOnLastPage) - # Welcome page + # Welcome Page self.welcomePage = QtGui.QWizardPage() self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(u':/wizards/wizard_importbible.bmp')) @@ -54,29 +54,26 @@ class Ui_BibleImportWizard(object): self.welcomeLayout.addWidget(self.informationLabel) self.welcomeLayout.addStretch() bibleImportWizard.addPage(self.welcomePage) - # Select page + # Select Page self.selectPage = QtGui.QWizardPage() self.selectPage.setObjectName(u'SelectPage') self.selectPageLayout = QtGui.QVBoxLayout(self.selectPage) - self.selectPageLayout.setObjectName(u'SelectFormLayout') + self.selectPageLayout.setObjectName(u'SelectPageLayout') self.formatLayout = QtGui.QFormLayout() self.formatLayout.setObjectName(u'FormatLayout') self.formatLabel = QtGui.QLabel(self.selectPage) self.formatLabel.setObjectName(u'FormatLabel') self.formatComboBox = QtGui.QComboBox(self.selectPage) - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') - self.formatComboBox.addItem(u'') + self.formatComboBox.addItems([u'', u'', u'', u'', u'']) self.formatComboBox.setObjectName(u'FormatComboBox') self.formatLayout.addRow(self.formatLabel, self.formatComboBox) - self.formatSpacer = QtGui.QSpacerItem(10, 0, - QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) + self.formatSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) self.formatLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.formatSpacer) self.selectPageLayout.addLayout(self.formatLayout) self.selectStack = QtGui.QStackedLayout() + self.selectStack.setObjectName(u'SelectStack') self.osisWidget = QtGui.QWidget(self.selectPage) self.osisWidget.setObjectName(u'OsisWidget') self.osisLayout = QtGui.QFormLayout(self.osisWidget) @@ -167,9 +164,7 @@ class Ui_BibleImportWizard(object): self.webSourceLabel) self.webSourceComboBox = QtGui.QComboBox(self.webBibleTab) self.webSourceComboBox.setObjectName(u'WebSourceComboBox') - self.webSourceComboBox.addItem(u'') - self.webSourceComboBox.addItem(u'') - self.webSourceComboBox.addItem(u'') + self.webSourceComboBox.addItems([u'', u'', u'']) self.webBibleLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.webSourceComboBox) self.webTranslationLabel = QtGui.QLabel(self.webBibleTab) @@ -242,7 +237,7 @@ class Ui_BibleImportWizard(object): self.selectStack.addWidget(self.openlp1Widget) self.selectPageLayout.addLayout(self.selectStack) bibleImportWizard.addPage(self.selectPage) - # License page + # License Page self.licenseDetailsPage = QtGui.QWizardPage() self.licenseDetailsPage.setObjectName(u'LicenseDetailsPage') self.licenseDetailsLayout = QtGui.QFormLayout(self.licenseDetailsPage) @@ -272,7 +267,7 @@ class Ui_BibleImportWizard(object): self.licenseDetailsLayout.setWidget(2, QtGui.QFormLayout.FieldRole, self.permissionsEdit) bibleImportWizard.addPage(self.licenseDetailsPage) - # Progress page + # Progress Page self.importPage = QtGui.QWizardPage() self.importPage.setObjectName(u'ImportPage') self.importLayout = QtGui.QVBoxLayout(self.importPage) @@ -377,7 +372,7 @@ class Ui_BibleImportWizard(object): '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.')) - # Align all QFormLayouts towards each other + # Align all QFormLayouts towards each other. width = max(self.formatLabel.minimumSizeHint().width(), self.osisFileLabel.minimumSizeHint().width()) width = max(width, self.csvBooksLabel.minimumSizeHint().width()) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index e49334b7a..ecb4fd3e1 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -134,7 +134,7 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): Stop the import on cancel button, close button or ESC key. """ log.debug('Import canceled by user.') - if self.currentId() == 2: + if self.currentPage() == self.importPage: Receiver.send_message(u'songs_stop_import') self.done(QtGui.QDialog.Rejected) @@ -142,11 +142,9 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): """ Validate the current page before moving on to the next page. """ - if self.currentId() == 0: - # Welcome page + if self.currentPage() == self.welcomePage: return True - elif self.currentId() == 1: - # Select page + elif self.currentId() == self.sourcePage: source_format = self.formatComboBox.currentIndex() if source_format == SongFormat.OpenLP2: if self.openLP2FilenameEdit.text().isEmpty(): @@ -250,8 +248,7 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): self.songBeamerAddButton.setFocus() return False return True - elif self.currentId() == 2: - # Progress page + elif self.currentPage() == self.importPage: return True def getFileName(self, title, editbox, filters=u''): @@ -423,7 +420,7 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): self.removeSelectedItems(self.songBeamerFileListWidget) def onCurrentIdChanged(self, id): - if id == 2: + if self.page(id) == self.importPage: self.preImport() self.performImport() self.postImport() @@ -540,4 +537,4 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): self.importProgressBar.setValue(self.importProgressBar.maximum()) self.finishButton.setVisible(True) self.cancelButton.setVisible(False) - Receiver.send_message(u'openlp_process_events') \ No newline at end of file + Receiver.send_message(u'openlp_process_events') diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py index 809427037..85fbb07fe 100644 --- a/openlp/plugins/songs/forms/songimportwizard.py +++ b/openlp/plugins/songs/forms/songimportwizard.py @@ -33,68 +33,48 @@ class Ui_SongImportWizard(object): self.openIcon = build_icon(u':/general/general_open.png') self.deleteIcon = build_icon(u':/general/general_delete.png') songImportWizard.setObjectName(u'songImportWizard') - songImportWizard.resize(550, 386) songImportWizard.setModal(True) songImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle) songImportWizard.setOptions( QtGui.QWizard.IndependentPages | QtGui.QWizard.NoBackButtonOnStartPage | QtGui.QWizard.NoBackButtonOnLastPage) + # Welcome Page self.welcomePage = QtGui.QWizardPage() - self.welcomePage.setObjectName(u'welcomePage') self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(u':/wizards/wizard_importsong.bmp')) - self.welcomeLayout = QtGui.QHBoxLayout(self.welcomePage) - self.welcomeLayout.setSpacing(8) - self.welcomeLayout.setMargin(0) - self.welcomeLayout.setObjectName(u'welcomeLayout') - self.welcomeTextLayout = QtGui.QVBoxLayout() - self.welcomeTextLayout.setSpacing(8) - self.welcomeTextLayout.setObjectName(u'welcomeTextLayout') + self.welcomePage.setObjectName(u'WelcomePage') + self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage) + self.welcomeLayout.setObjectName(u'WelcomeLayout') self.titleLabel = QtGui.QLabel(self.welcomePage) self.titleLabel.setObjectName(u'TitleLabel') - self.welcomeTextLayout.addWidget(self.titleLabel) - self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40, - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed) - self.welcomeTextLayout.addItem(self.welcomeTopSpacer) + self.welcomeLayout.addWidget(self.titleLabel) + self.welcomeLayout.addSpacing(40) self.informationLabel = QtGui.QLabel(self.welcomePage) self.informationLabel.setWordWrap(True) - self.informationLabel.setMargin(10) self.informationLabel.setObjectName(u'InformationLabel') - self.welcomeTextLayout.addWidget(self.informationLabel) - self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40, - QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) - self.welcomeTextLayout.addItem(self.welcomeBottomSpacer) - self.welcomeLayout.addLayout(self.welcomeTextLayout) + self.welcomeLayout.addWidget(self.informationLabel) + self.welcomeLayout.addStretch() songImportWizard.addPage(self.welcomePage) + # Source Page self.sourcePage = QtGui.QWizardPage() self.sourcePage.setObjectName(u'SourcePage') self.sourceLayout = QtGui.QVBoxLayout(self.sourcePage) - self.sourceLayout.setSpacing(8) - self.sourceLayout.setMargin(20) self.sourceLayout.setObjectName(u'SourceLayout') - self.formatLayout = QtGui.QHBoxLayout() - self.formatLayout.setSpacing(8) + self.formatLayout = QtGui.QFormLayout() self.formatLayout.setObjectName(u'FormatLayout') self.formatLabel = QtGui.QLabel(self.sourcePage) self.formatLabel.setObjectName(u'FormatLabel') - self.formatLayout.addWidget(self.formatLabel) self.formatComboBox = QtGui.QComboBox(self.sourcePage) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, - QtGui.QSizePolicy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.formatComboBox.sizePolicy().hasHeightForWidth()) - self.formatComboBox.setSizePolicy(sizePolicy) - self.formatComboBox.setObjectName(u'formatComboBox') - self.formatLayout.addWidget(self.formatComboBox) - self.formatSpacer = QtGui.QSpacerItem(40, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.formatLayout.addItem(self.formatSpacer) + self.formatComboBox.setObjectName(u'FormatComboBox') + self.formatLayout.addRow(self.formatLabel, self.formatComboBox) + self.formatSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + self.formatLayout.setItem(1, QtGui.QFormLayout.LabelRole, + self.formatSpacer) self.sourceLayout.addLayout(self.formatLayout) - self.formatStackedWidget = QtGui.QStackedWidget(self.sourcePage) - self.formatStackedWidget.setObjectName(u'FormatStackedWidget') + self.formatStack = QtGui.QStackedLayout() + self.formatStack.setObjectName(u'FormatStack') # OpenLP 2.0 self.addSingleFileSelectItem(u'openLP2') # openlp.org 1.x @@ -120,28 +100,26 @@ class Ui_SongImportWizard(object): self.addMultiFileSelectItem(u'songBeamer') # Commented out for future use. # self.addSingleFileSelectItem(u'csv', u'CSV') - self.sourceLayout.addWidget(self.formatStackedWidget) + self.sourceLayout.addLayout(self.formatStack) songImportWizard.addPage(self.sourcePage) + # Import Page self.importPage = QtGui.QWizardPage() - self.importPage.setObjectName(u'importPage') + self.importPage.setObjectName(u'ImportPage') self.importLayout = QtGui.QVBoxLayout(self.importPage) - self.importLayout.setSpacing(8) - self.importLayout.setMargin(50) - self.importLayout.setObjectName(u'importLayout') + self.importLayout.setMargin(48) + self.importLayout.setObjectName(u'ImportLayout') self.importProgressLabel = QtGui.QLabel(self.importPage) - self.importProgressLabel.setObjectName(u'importProgressLabel') + self.importProgressLabel.setObjectName(u'ImportProgressLabel') self.importLayout.addWidget(self.importProgressLabel) self.importProgressBar = QtGui.QProgressBar(self.importPage) - self.importProgressBar.setProperty(u'value', 0) - self.importProgressBar.setInvertedAppearance(False) - self.importProgressBar.setObjectName(u'importProgressBar') + self.importProgressBar.setObjectName(u'ImportProgressBar') self.importLayout.addWidget(self.importProgressBar) songImportWizard.addPage(self.importPage) self.retranslateUi(songImportWizard) - self.formatStackedWidget.setCurrentIndex(0) + self.formatStack.setCurrentIndex(0) QtCore.QObject.connect(self.formatComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.formatStackedWidget.setCurrentIndex) + self.formatStack.setCurrentIndex) QtCore.QMetaObject.connectSlotsByName(songImportWizard) def retranslateUi(self, songImportWizard): @@ -257,6 +235,19 @@ class Ui_SongImportWizard(object): translate('SongsPlugin.ImportWizardForm', 'Ready.')) self.importProgressBar.setFormat( translate('SongsPlugin.ImportWizardForm', '%p%')) + # Align all QFormLayouts towards each other. + width = max(self.formatLabel.minimumSizeHint().width(), + self.openLP2FilenameLabel.minimumSizeHint().width()) + self.formatSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) + self.openLP2FormLabelSpacer.changeSize(width, 0, + QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + self.openLP1FormLabelSpacer.changeSize(width, 0, + QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + self.ewFormLabelSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Fixed) +# self.csvFormLabelSpacer.changeSize(width, 0, QtGui.QSizePolicy.Fixed, +# QtGui.QSizePolicy.Fixed) def addSingleFileSelectItem(self, prefix, obj_prefix=None, can_disable=False): @@ -270,16 +261,13 @@ class Ui_SongImportWizard(object): importWidget = page importLayout = QtGui.QFormLayout(importWidget) importLayout.setMargin(0) - importLayout.setSpacing(8) if can_disable: importLayout.setObjectName(obj_prefix + u'ImportLayout') else: importLayout.setObjectName(obj_prefix + u'Layout') filenameLabel = QtGui.QLabel(importWidget) filenameLabel.setObjectName(obj_prefix + u'FilenameLabel') - importLayout.setWidget(0, QtGui.QFormLayout.LabelRole, filenameLabel) fileLayout = QtGui.QHBoxLayout() - fileLayout.setSpacing(8) fileLayout.setObjectName(obj_prefix + u'FileLayout') filenameEdit = QtGui.QLineEdit(importWidget) filenameEdit.setObjectName(obj_prefix + u'FilenameEdit') @@ -288,10 +276,14 @@ class Ui_SongImportWizard(object): browseButton.setIcon(self.openIcon) browseButton.setObjectName(obj_prefix + u'BrowseButton') fileLayout.addWidget(browseButton) - importLayout.setLayout(0, QtGui.QFormLayout.FieldRole, fileLayout) - self.formatStackedWidget.addWidget(page) + importLayout.addRow(filenameLabel, fileLayout) + formSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + QtGui.QSizePolicy.Minimum) + importLayout.setItem(1, QtGui.QFormLayout.LabelRole, formSpacer) + self.formatStack.addWidget(page) setattr(self, prefix + u'Page', page) setattr(self, prefix + u'FilenameLabel', filenameLabel) + setattr(self, prefix + u'FormLabelSpacer', formSpacer) setattr(self, prefix + u'FileLayout', fileLayout) setattr(self, prefix + u'FilenameEdit', filenameEdit) setattr(self, prefix + u'BrowseButton', browseButton) @@ -313,7 +305,6 @@ class Ui_SongImportWizard(object): importWidget = page importLayout = QtGui.QVBoxLayout(importWidget) importLayout.setMargin(0) - importLayout.setSpacing(8) if can_disable: importLayout.setObjectName(obj_prefix + u'ImportLayout') else: @@ -324,25 +315,21 @@ class Ui_SongImportWizard(object): fileListWidget.setObjectName(obj_prefix + u'FileListWidget') importLayout.addWidget(fileListWidget) buttonLayout = QtGui.QHBoxLayout() - buttonLayout.setSpacing(8) buttonLayout.setObjectName(obj_prefix + u'ButtonLayout') addButton = QtGui.QPushButton(importWidget) addButton.setIcon(self.openIcon) addButton.setObjectName(obj_prefix + u'AddButton') buttonLayout.addWidget(addButton) - buttonSpacer = QtGui.QSpacerItem(40, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - buttonLayout.addItem(buttonSpacer) + buttonLayout.addStretch() removeButton = QtGui.QPushButton(importWidget) removeButton.setIcon(self.deleteIcon) removeButton.setObjectName(obj_prefix + u'RemoveButton') buttonLayout.addWidget(removeButton) importLayout.addLayout(buttonLayout) - self.formatStackedWidget.addWidget(page) + self.formatStack.addWidget(page) setattr(self, prefix + u'Page', page) setattr(self, prefix + u'FileListWidget', fileListWidget) setattr(self, prefix + u'ButtonLayout', buttonLayout) - setattr(self, prefix + u'ButtonSpacer', buttonSpacer) setattr(self, prefix + u'AddButton', addButton) setattr(self, prefix + u'RemoveButton', removeButton) if can_disable: @@ -361,7 +348,6 @@ class Ui_SongImportWizard(object): disabledWidget.setObjectName(obj_prefix + u'DisabledWidget') disabledLayout = QtGui.QVBoxLayout(disabledWidget) disabledLayout.setMargin(0) - disabledLayout.setSpacing(8) disabledLayout.setObjectName(obj_prefix + u'DisabledLayout') disabledLabel = QtGui.QLabel(disabledWidget) disabledLabel.setWordWrap(True) @@ -376,4 +362,4 @@ class Ui_SongImportWizard(object): setattr(self, prefix + u'DisabledLayout', disabledLayout) setattr(self, prefix + u'DisabledLabel', disabledLabel) setattr(self, prefix + u'ImportWidget', importWidget) - return importWidget \ No newline at end of file + return importWidget From 9212399ad77971dd96ef7e5abced2e47c9dd04f0 Mon Sep 17 00:00:00 2001 From: M2j Date: Mon, 27 Dec 2010 22:53:02 +0100 Subject: [PATCH 12/49] renamed slots to common naming scheme renamed objects to conform British English (reverted some experimental edit of themewizard.ui) --- openlp/core/ui/themeform.py | 78 +- openlp/core/ui/themewizard.py | 5 +- .../plugins/bibles/forms/bibleimportform.py | 8 +- resources/forms/themewizard.ui | 667 ++++++++++++++---- 4 files changed, 569 insertions(+), 189 deletions(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 1160d7645..21e6d0cac 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -58,49 +58,49 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.updateThemeAllowed = True QtCore.QObject.connect(self.backgroundComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onBackgroundComboBox) + self.onBackgroundComboBoxCurrentIndexChanged) QtCore.QObject.connect(self.gradientComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onGradientComboBox) + self.onGradientComboBoxCurrentIndexChanged) QtCore.QObject.connect(self.colorButton, - QtCore.SIGNAL(u'pressed()'), + QtCore.SIGNAL(u'clicked()'), self.onColorButtonClicked) QtCore.QObject.connect(self.gradientStartButton, - QtCore.SIGNAL(u'pressed()'), + QtCore.SIGNAL(u'clicked()'), self.onGradientStartButtonClicked) QtCore.QObject.connect(self.gradientEndButton, - QtCore.SIGNAL(u'pressed()'), + QtCore.SIGNAL(u'clicked()'), self.onGradientEndButtonClicked) QtCore.QObject.connect(self.imageBrowseButton, - QtCore.SIGNAL(u'pressed()'), + QtCore.SIGNAL(u'clicked()'), self.onImageBrowseButtonClicked) QtCore.QObject.connect(self.mainColorButton, - QtCore.SIGNAL(u'pressed()'), - self.onMainColourButtonClicked) + QtCore.SIGNAL(u'clicked()'), + self.onMainColorButtonClicked) QtCore.QObject.connect(self.outlineColorButton, - QtCore.SIGNAL(u'pressed()'), - self.onOutlineColourButtonClicked) + QtCore.SIGNAL(u'clicked()'), + self.onOutlineColorButtonClicked) QtCore.QObject.connect(self.shadowColorButton, - QtCore.SIGNAL(u'pressed()'), - self.onShadowColourButtonClicked) + QtCore.SIGNAL(u'clicked()'), + self.onShadowColorButtonClicked) QtCore.QObject.connect(self.outlineCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onOutlineCheckCheckBoxChanged) + self.onOutlineCheckCheckBoxStateChanged) QtCore.QObject.connect(self.shadowCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onShadowCheckCheckBoxChanged) + self.onShadowCheckCheckBoxStateChanged) QtCore.QObject.connect(self.footerColorButton, - QtCore.SIGNAL(u'pressed()'), - self.onFooterColourButtonClicked) + QtCore.SIGNAL(u'clicked()'), + self.onFooterColorButtonClicked) QtCore.QObject.connect(self.mainPositionCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onMainPositionCheckBox) + self.onMainPositionCheckBoxStateChanged) QtCore.QObject.connect(self.footerPositionCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), - self.onFooterPositionCheckBox) + self.onFooterPositionCheckBoxStateChanged) QtCore.QObject.connect(self, QtCore.SIGNAL(u'currentIdChanged(int)'), - self.pageChanged) + self.onCurrentIdChanged) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_line_count'), self.updateLinesText) @@ -121,15 +121,6 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.calculateLines) QtCore.QObject.connect(self, QtCore.SIGNAL(u'accepted()'), self.accept) - def pageChanged(self, pageId): - """ - Detects Page changes and updates as approprate. - """ - if self.page(pageId) == self.previewPage: - self.updateTheme() - frame = self.thememanager.generateImage(self.theme) - self.previewBoxLabel.setPixmap(QtGui.QPixmap.fromImage(frame)) - def setDefaults(self): """ Set up display at start of theme edit. @@ -224,7 +215,16 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.mainLineCountLabel.setText(unicode(translate('OpenLP.ThemeForm', \ '(%d lines per slide)' % int(lines)))) - def onOutlineCheckCheckBoxChanged(self, state): + def onCurrentIdChanged(self, pageId): + """ + Detects Page changes and updates as approprate. + """ + if self.page(pageId) == self.previewPage: + self.updateTheme() + frame = self.thememanager.generateImage(self.theme) + self.previewBoxLabel.setPixmap(QtGui.QPixmap.fromImage(frame)) + + def onOutlineCheckCheckBoxStateChanged(self, state): """ Change state as Outline check box changed """ @@ -236,7 +236,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.outlineSizeSpinBox.setEnabled(self.theme.font_main_outline) self.calculateLines() - def onShadowCheckCheckBoxChanged(self, state): + def onShadowCheckCheckBoxStateChanged(self, state): """ Change state as Shadow check box changed """ @@ -248,13 +248,13 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.shadowSizeSpinBox.setEnabled(self.theme.font_main_shadow) self.calculateLines() - def onMainPositionCheckBox(self, value): + def onMainPositionCheckBoxStateChanged(self, value): """ Change state as Main Area Position check box changed """ self.theme.font_main_override = (value == QtCore.Qt.Checked) - def onFooterPositionCheckBox(self, value): + def onFooterPositionCheckBoxStateChanged(self, value): """ Change state as Footer Area Position check box changed """ @@ -403,14 +403,14 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.themeNameEdit.setReadOnly(len(self.theme.theme_name) != 0) self.themeNameEdit.setFrame(len(self.theme.theme_name) == 0) - def onBackgroundComboBox(self, index): + def onBackgroundComboBoxCurrentIndexChanged(self, index): """ Background style Combo box has changed. """ self.theme.background_type = BackgroundType.to_string(index) self.setBackgroundTabValues() - def onGradientComboBox(self, index): + def onGradientComboBoxCurrentIndexChanged(self, index): """ Background gradient Combo box has changed. """ @@ -456,22 +456,22 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.theme.background_filename = unicode(filename) self.setBackgroundTabValues() - def onMainColourButtonClicked(self): + def onMainColorButtonClicked(self): self.theme.font_main_color = \ self._colorButton(self.theme.font_main_color) self.setMainAreaTabValues() - def onOutlineColourButtonClicked(self): + def onOutlineColorButtonClicked(self): self.theme.font_main_outline_color = \ self._colorButton(self.theme.font_main_outline_color) self.setMainAreaTabValues() - def onShadowColourButtonClicked(self): + def onShadowColorButtonClicked(self): self.theme.font_main_shadow_color = \ self._colorButton(self.theme.font_main_shadow_color) self.setMainAreaTabValues() - def onFooterColourButtonClicked(self): + def onFooterColorButtonClicked(self): self.theme.font_footer_color = \ self._colorButton(self.theme.font_footer_color) self.setFooterAreaTabValues() @@ -573,4 +573,4 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QColor(field), self) if new_color.isValid(): field = new_color.name() - return field \ No newline at end of file + return field diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index da25b0f37..a088bfd22 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -69,7 +69,7 @@ class Ui_ThemeWizard(object): self.backgroundComboBox) self.backgroundTypeSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) - self.backgroundTypeLayout.setItem(1,QtGui.QFormLayout.LabelRole, + self.backgroundTypeLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.backgroundTypeSpacer) self.backgroundLayout.addLayout(self.backgroundTypeLayout) self.backgroundStack = QtGui.QStackedLayout() @@ -84,7 +84,7 @@ class Ui_ThemeWizard(object): self.colorButton = QtGui.QPushButton(self.colorWidget) self.colorButton.setObjectName(u'ColorButton') self.colorLayout.addRow(self.colorLabel, self.colorButton) - self.colorSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + self.colorSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.colorLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.colorSpacer) @@ -379,7 +379,6 @@ class Ui_ThemeWizard(object): ThemeWizard.addPage(self.previewPage) self.retranslateUi(ThemeWizard) - QtCore.QObject.connect(self.backgroundComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), self.backgroundStack, QtCore.SLOT(u'setCurrentIndex(int)')) diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index b01a10ffb..7d8071faa 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -96,7 +96,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.selectStack.setCurrentIndex(0) QtCore.QObject.connect(self.webSourceComboBox, QtCore.SIGNAL(u'currentIndexChanged(int)'), - self.onWebSourceComboBoxChanged) + self.onWebSourceComboBoxCurrentIndexChanged) QtCore.QObject.connect(self.osisBrowseButton, QtCore.SIGNAL(u'clicked()'), self.onOsisBrowseButtonClicked) @@ -223,7 +223,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): if self.currentPage() == self.importPage: return True - def onWebSourceComboBoxChanged(self, index): + def onWebSourceComboBoxCurrentIndexChanged(self, index): """ Setup the list of Bibles when you select a different source on the web download page. @@ -332,7 +332,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): QtCore.QVariant(self.copyrightEdit.text())) self.setField(u'license_permissions', QtCore.QVariant(self.permissionsEdit.text())) - self.onWebSourceComboBoxChanged(WebDownload.Crosswalk) + self.onWebSourceComboBoxCurrentIndexChanged(WebDownload.Crosswalk) settings.endGroup() def loadWebBibles(self): @@ -534,4 +534,4 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): self.importProgressBar.setValue(self.importProgressBar.maximum()) self.finishButton.setVisible(True) self.cancelButton.setVisible(False) - Receiver.send_message(u'openlp_process_events') \ No newline at end of file + Receiver.send_message(u'openlp_process_events') diff --git a/resources/forms/themewizard.ui b/resources/forms/themewizard.ui index f6428cdc7..9e1f8f9e8 100644 --- a/resources/forms/themewizard.ui +++ b/resources/forms/themewizard.ui @@ -2,6 +2,14 @@ ThemeWizard + + + 0 + 0 + 550 + 386 + + Theme Wizard @@ -15,30 +23,51 @@ QWizard::IndependentPages|QWizard::NoBackButtonOnStartPage + + + + + + + + 8 + 0 - - - 0 - 0 - + + + 163 + 0 + + + + + 163 + 16777215 + + + + 0 + + + :/wizards/wizard_importbible.bmp + + 0 + - 6 - - - 12 + 8 @@ -49,9 +78,6 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:14pt; font-weight:600;">Welcome to the Theme Wizard</span></p></body></html> - - true - @@ -73,11 +99,14 @@ p, li { white-space: pre-wrap; } - This wizard will help you to maintain Themes. Click the next button below to start the process by setting up your background. + This wizard will help you to maintain Themes . Click the next button below to start the process by setting up your background. true + + 10 + @@ -104,127 +133,256 @@ p, li { white-space: pre-wrap; } Set up your theme's background according to the parameters below. - - - 6 + + + 8 - 12 + 20 - - - - Background type: + + + + 8 - - - - - - Solid Color - - - - - Gradient - - - - - Image - - - - - - - - Color: - - - - - - - - - - Starting color: - - - - - - - - - - Ending color: - - - - - - - - - - Gradient: - - - - - - - - Horizontal - - - - - Vertical - - - - - Circular - - - - - Top Left - Bottom Right - - - - - Bottom Left - Top Right - - - - - - - - Image: - - - - - - - - - - - - - :/general/general_open.png:/general/general_open.png + + + Background type: + + + + + Solid Color + + + + + Gradient + + + + + Image + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0 + + + + + 8 + + + 8 + + + 0 + + + + + + 103 + 0 + + + + Color: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + 8 + + + 8 + + + 0 + + + + + + 103 + 0 + + + + Starting color: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + 103 + 0 + + + + Ending color: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + 103 + 0 + + + + Gradient: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Horizontal + + + + + Vertical + + + + + Circular + + + + + Top Left - Bottom Right + + + + + Bottom Left - Top Right + + + + + + + + + + 8 + + + 8 + + + 0 + + + + + + 103 + 0 + + + + Image: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 8 + + + + + + + + + + + + :/general/general_open.png:/general/general_open.png + + + + + + + + + @@ -235,17 +393,29 @@ p, li { white-space: pre-wrap; } Define the font and display characteristics for the Display text + + 8 + - 6 + 8 - 12 + 20 + + + 103 + 0 + + Font: + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -261,10 +431,14 @@ p, li { white-space: pre-wrap; } - 12 + 24 - + + + + + @@ -291,8 +465,26 @@ p, li { white-space: pre-wrap; } + + 8 + + + 0 + + + + 0 + 0 + + + + + 70 + 0 + + pt @@ -343,7 +535,14 @@ p, li { white-space: pre-wrap; } - + + + true + + + + + @@ -375,6 +574,9 @@ p, li { white-space: pre-wrap; } true + + + @@ -403,17 +605,32 @@ p, li { white-space: pre-wrap; } Define the font and display characteristics for the Footer text + + QFormLayout::ExpandingFieldsGrow + + + 8 + - 6 + 8 - 12 + 20 + + + 103 + 0 + + Font: + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + @@ -427,7 +644,11 @@ p, li { white-space: pre-wrap; } - + + + + + @@ -438,6 +659,18 @@ p, li { white-space: pre-wrap; } + + + 0 + 0 + + + + + 70 + 0 + + pt @@ -459,21 +692,36 @@ p, li { white-space: pre-wrap; } Allows additional display formatting information to be defined + + 8 + - 6 + 8 - 12 + 20 + + + 103 + 0 + + Horizontal Align: + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + false + Left @@ -535,16 +783,31 @@ p, li { white-space: pre-wrap; } - 12 + 20 + + + 8 + + + 248 + 0 + + &Main Area + + 8 + - 6 + 8 + + + 8 @@ -554,10 +817,13 @@ p, li { white-space: pre-wrap; } true + + false + - + X position: @@ -574,6 +840,12 @@ p, li { white-space: pre-wrap; } 0 + + + 78 + 0 + + px @@ -596,6 +868,12 @@ p, li { white-space: pre-wrap; } 0 + + + 78 + 0 + + px @@ -622,6 +900,12 @@ p, li { white-space: pre-wrap; } 0 + + + 78 + 0 + + px @@ -642,6 +926,18 @@ p, li { white-space: pre-wrap; } false + + + 0 + 0 + + + + + 78 + 0 + + px @@ -662,12 +958,24 @@ p, li { white-space: pre-wrap; } + + + 248 + 0 + + - &Footer Area + Footer Area + + 8 + - 6 + 8 + + + 8 @@ -681,6 +989,18 @@ p, li { white-space: pre-wrap; } false + + + 0 + 0 + + + + + 78 + 0 + + px @@ -704,6 +1024,18 @@ p, li { white-space: pre-wrap; } false + + + 0 + 0 + + + + + 78 + 0 + + px @@ -727,6 +1059,12 @@ p, li { white-space: pre-wrap; } false + + + 78 + 0 + + px @@ -747,6 +1085,12 @@ p, li { white-space: pre-wrap; } false + + + 78 + 0 + + px @@ -779,18 +1123,33 @@ p, li { white-space: pre-wrap; } - 6 + 8 - 12 + 20 + + 8 + + + + 103 + 0 + + Theme name: + + Qt::PlainText + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + themeNameEdit @@ -803,6 +1162,9 @@ p, li { white-space: pre-wrap; } + + 0 + @@ -810,7 +1172,7 @@ p, li { white-space: pre-wrap; } - 40 + 58 20 @@ -839,6 +1201,9 @@ p, li { white-space: pre-wrap; } 1 + + + true @@ -851,7 +1216,7 @@ p, li { white-space: pre-wrap; } - 40 + 78 20 @@ -882,5 +1247,21 @@ p, li { white-space: pre-wrap; } + + backgroundTypeComboBox + currentIndexChanged(int) + backgroundStackedWidget + setCurrentIndex(int) + + + 178 + 78 + + + 249 + 199 + + + From 7c68265f4b525593337d93a1daff6028bf2bc756 Mon Sep 17 00:00:00 2001 From: M2j Date: Mon, 27 Dec 2010 23:57:35 +0100 Subject: [PATCH 13/49] remove two consecutive spaces from python code of the whole OpenLP sources replaced double quotes for string in python code of the whole OpenLP sources --- openlp/core/lib/settingstab.py | 4 ++-- openlp/core/ui/exceptionform.py | 4 ++-- openlp/core/ui/generaltab.py | 6 +++--- openlp/core/ui/maindisplay.py | 10 +++++----- openlp/core/ui/shortcutlistform.py | 2 +- openlp/core/ui/slidecontroller.py | 8 ++++---- openlp/core/ui/themeform.py | 2 +- openlp/core/ui/thememanager.py | 10 +++++----- openlp/core/ui/themewizard.py | 6 +++--- .../plugins/bibles/forms/bibleimportwizard.py | 8 ++++---- openlp/plugins/bibles/lib/__init__.py | 18 +++++++++--------- openlp/plugins/bibles/lib/csvbible.py | 5 +++-- openlp/plugins/media/lib/mediaitem.py | 4 ++-- openlp/plugins/media/mediaplugin.py | 4 ++-- .../presentations/lib/messagelistener.py | 6 +++--- openlp/plugins/songs/lib/cclifileimport.py | 8 ++++---- openlp/plugins/songs/lib/songbeamerimport.py | 6 +++--- openlp/plugins/songs/lib/wowimport.py | 6 +++--- 18 files changed, 59 insertions(+), 58 deletions(-) diff --git a/openlp/core/lib/settingstab.py b/openlp/core/lib/settingstab.py index 518080368..6586a50f2 100644 --- a/openlp/core/lib/settingstab.py +++ b/openlp/core/lib/settingstab.py @@ -31,7 +31,7 @@ class SettingsTab(QtGui.QWidget): SettingsTab is a helper widget for plugins to define Tabs for the settings dialog. """ - def __init__(self, title, visible_title=None): + def __init__(self, title, visible_title=None): """ Constructor to create the Settings tab item. @@ -95,4 +95,4 @@ class SettingsTab(QtGui.QWidget): Indicates if called before or after updates. """ - pass \ No newline at end of file + pass diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py index 90a54e12e..fde514d1a 100644 --- a/openlp/core/ui/exceptionform.py +++ b/openlp/core/ui/exceptionform.py @@ -84,7 +84,7 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): u'lxml: %s\n' % etree.__version__ + \ u'Chardet: %s\n' % chardet_version + \ u'PyEnchant: %s\n' % enchant_version + \ - u'PySQLite: %s\n' % sqlite_version + u'PySQLite: %s\n' % sqlite_version if platform.system() == u'Linux': if os.environ.get(u'KDE_FULL_SESSION') == u'true': system = system + u'Desktop: KDE SC\n' @@ -144,4 +144,4 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): exception = line.split(u'\n')[-1].split(u':')[0] subject = u'Bug report: %s in %s' % (exception, source) mailto(address=u'bugs@openlp.org', subject=subject, - body=body % content) \ No newline at end of file + body=body % content) diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index 8c56648c8..1dd6607ed 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -141,10 +141,10 @@ class GeneralTab(SettingsTab): self.settingsLayout.addWidget(self.autoPreviewCheckBox, 1, 0, 1, 2) # Moved here from image tab self.timeoutLabel = QtGui.QLabel(self.settingsGroupBox) - self.timeoutLabel.setObjectName("timeoutLabel") + self.timeoutLabel.setObjectName(u'timeoutLabel') self.settingsLayout.addWidget(self.timeoutLabel, 2, 0, 1, 1) self.timeoutSpinBox = QtGui.QSpinBox(self.settingsGroupBox) - self.timeoutSpinBox.setObjectName("timeoutSpinBox") + self.timeoutSpinBox.setObjectName(u'timeoutSpinBox') self.settingsLayout.addWidget(self.timeoutSpinBox, 2, 1, 1, 1) self.generalLeftLayout.addWidget(self.settingsGroupBox) self.generalLeftSpacer = QtGui.QSpacerItem(20, 40, @@ -530,4 +530,4 @@ class GeneralTab(SettingsTab): """ Called when the width, height, x position or y position has changed. """ - self.overrideChanged = True \ No newline at end of file + self.overrideChanged = True diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 2028e7f30..dd24f172d 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -209,7 +209,7 @@ class MainDisplay(DisplayWidget): shrink = True else: shrink = False - js = u'show_alert("%s", "%s")' % ( + js = u'show_alert("%s", "%s")' % ( text.replace(u'\\', u'\\\\').replace(u'\"', u'\\\"'), u'top' if shrink else u'') height = self.frame.evaluateJavaScript(js) @@ -235,8 +235,8 @@ class MainDisplay(DisplayWidget): def image(self, name): """ - Add an image as the background. The image is converted to a - bytestream on route. + Add an image as the background. The image is converted to a bytestream + on route. `Image` The Image to be displayed can be QImage or QPixmap @@ -421,8 +421,8 @@ class MainDisplay(DisplayWidget): Display the Footer """ log.debug(u'footer') - js = "show_footer('" + \ - text.replace("\\", "\\\\").replace("\'", "\\\'") + "')" + js = u'show_footer(\'' + \ + text.replace(u'\\', u'\\\\').replace(u'\'', u'\\\'') + u'\')' self.frame.evaluateJavaScript(js) def hideDisplay(self, mode=HideMode.Screen): diff --git a/openlp/core/ui/shortcutlistform.py b/openlp/core/ui/shortcutlistform.py index 0d9a4bab3..053f2347f 100644 --- a/openlp/core/ui/shortcutlistform.py +++ b/openlp/core/ui/shortcutlistform.py @@ -71,7 +71,7 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): if event.modifiers() & Qt.ShiftModifier == Qt.ShiftModifier: key_string = u'Shift+' + key_string key_sequence = QtGui.QKeySequence(key_string) - existing_key = QtGui.QKeySequence("Ctrl+Shift+F8") + existing_key = QtGui.QKeySequence(u'Ctrl+Shift+F8') if key_sequence == existing_key: QtGui.QMessageBox.warning( self, diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index be1fcd44a..8f699d152 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -184,14 +184,14 @@ class SlideController(QtGui.QWidget): 'Blank Screen'), self.HideMenu) self.BlankScreen.setCheckable(True) QtCore.QObject.connect(self.BlankScreen, - QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) + QtCore.SIGNAL(u'triggered(bool)'), self.onBlankDisplay) self.ThemeScreen = QtGui.QAction(QtGui.QIcon( u':/slides/slide_theme.png'), translate('OpenLP.SlideController', 'Blank to Theme'), self.HideMenu) self.ThemeScreen.setCheckable(True) QtCore.QObject.connect(self.ThemeScreen, - QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) + QtCore.SIGNAL(u'triggered(bool)'), self.onThemeDisplay) if self.screens.display_count > 1: self.DesktopScreen = QtGui.QAction(QtGui.QIcon( u':/slides/slide_desktop.png'), @@ -199,7 +199,7 @@ class SlideController(QtGui.QWidget): 'Show Desktop'), self.HideMenu) self.DesktopScreen.setCheckable(True) QtCore.QObject.connect(self.DesktopScreen, - QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) + QtCore.SIGNAL(u'triggered(bool)'), self.onHideDisplay) self.HideMenu.setDefaultAction(self.BlankScreen) self.HideMenu.menu().addAction(self.BlankScreen) self.HideMenu.menu().addAction(self.ThemeScreen) @@ -1033,4 +1033,4 @@ class SlideController(QtGui.QWidget): self.mediaObject.clearQueue() self.video.hide() self.SlidePreview.clear() - self.SlidePreview.show() \ No newline at end of file + self.SlidePreview.show() diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 21e6d0cac..acedefdb1 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -159,7 +159,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.mainAreaPage.registerField( u'outlineCheckBox', self.outlineCheckBox) self.mainAreaPage.registerField( - u'outlineColorPushButton', self.outlineColorButton) + u'outlineColorButton', self.outlineColorButton) self.mainAreaPage.registerField( u'outlineSizeSpinBox', self.outlineSizeSpinBox) self.mainAreaPage.registerField( diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 82d7c4b0e..e340042a5 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -35,7 +35,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.ui import FileRenameForm, ThemeForm from openlp.core.theme import Theme from openlp.core.lib import OpenLPToolbar, ThemeXML, get_text_file_string, \ - build_icon, Receiver, SettingsManager, translate, check_item_selected, \ + build_icon, Receiver, SettingsManager, translate, check_item_selected, \ BackgroundType, BackgroundGradientType from openlp.core.utils import AppLocation, get_filesystem_encoding @@ -230,7 +230,7 @@ class ThemeManager(QtGui.QWidget): self.fileRenameForm.fileNameEdit.setText(oldThemeName) self.saveThemeName = oldThemeName if self.fileRenameForm.exec_(): - newThemeName = unicode(self.fileRenameForm.fileNameEdit.text()) + newThemeName = unicode(self.fileRenameForm.fileNameEdit.text()) oldThemeData = self.getThemeData(oldThemeName) self.deleteTheme(oldThemeName) self.cloneThemeData(oldThemeData, newThemeName) @@ -244,7 +244,7 @@ class ThemeManager(QtGui.QWidget): self.fileRenameForm.fileNameEdit.setText(oldThemeName) self.saveThemeName = u'' if self.fileRenameForm.exec_(True): - newThemeName = unicode(self.fileRenameForm.fileNameEdit.text()) + newThemeName = unicode(self.fileRenameForm.fileNameEdit.text()) themeData = self.getThemeData(oldThemeName) self.cloneThemeData(themeData, newThemeName) self.loadThemes() @@ -331,7 +331,7 @@ class ThemeManager(QtGui.QWidget): theme = unicode(item.data(QtCore.Qt.UserRole).toString()) path = QtGui.QFileDialog.getExistingDirectory(self, unicode(translate('OpenLP.ThemeManager', - 'Save Theme - (%s)')) % theme, + 'Save Theme - (%s)')) % theme, SettingsManager.get_last_dir(self.settingsSection, 1)) path = unicode(path) if path: @@ -795,4 +795,4 @@ class ThemeManager(QtGui.QWidget): unicode(translate('OpenLP.ThemeManager', 'Theme %s is used by the service manager.')) % theme) return False - return True \ No newline at end of file + return True diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index a088bfd22..31d04ca03 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -67,7 +67,7 @@ class Ui_ThemeWizard(object): self.backgroundComboBox.setObjectName(u'BackgroundComboBox') self.backgroundTypeLayout.addRow(self.backgroundLabel, self.backgroundComboBox) - self.backgroundTypeSpacer = QtGui.QSpacerItem(10, 0, + self.backgroundTypeSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.backgroundTypeLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.backgroundTypeSpacer) @@ -113,7 +113,7 @@ class Ui_ThemeWizard(object): self.gradientComboBox.addItems([u'', u'', u'', u'', u'']) self.gradientLayout.addRow(self.gradientTypeLabel, self.gradientComboBox) - self.gradientSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + self.gradientSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.gradientLayout.setItem(3, QtGui.QFormLayout.LabelRole, self.gradientSpacer) @@ -136,7 +136,7 @@ class Ui_ThemeWizard(object): build_icon(u':/general/general_open.png')) self.imageFileLayout.addWidget(self.imageBrowseButton) self.imageLayout.addRow(self.imageLabel, self.imageFileLayout) - self.imageSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + self.imageSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.imageLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.imageSpacer) diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index a8d324cf1..a85e430a1 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -91,7 +91,7 @@ class Ui_BibleImportWizard(object): self.osisBrowseButton.setObjectName(u'OsisBrowseButton') self.osisFileLayout.addWidget(self.osisBrowseButton) self.osisLayout.addRow(self.osisFileLabel, self.osisFileLayout) - self.osisSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + self.osisSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.osisLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.osisSpacer) self.selectStack.addWidget(self.osisWidget) @@ -124,7 +124,7 @@ class Ui_BibleImportWizard(object): self.csvVersesButton.setObjectName(u'CsvVersesButton') self.csvVersesLayout.addWidget(self.csvVersesButton) self.csvLayout.addRow(self.csvVersesLabel, self.csvVersesLayout) - self.csvSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + self.csvSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.csvLayout.setItem(2, QtGui.QFormLayout.LabelRole, self.csvSpacer) self.selectStack.addWidget(self.csvWidget) @@ -147,7 +147,7 @@ class Ui_BibleImportWizard(object): self.openSongFileLayout.addWidget(self.openSongBrowseButton) self.openSongLayout.addRow(self.openSongFileLabel, self.openSongFileLayout) - self.openSongSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + self.openSongSpacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.openSongLayout.setItem(1, QtGui.QFormLayout.LabelRole, self.openSongSpacer) @@ -230,7 +230,7 @@ class Ui_BibleImportWizard(object): self.openlp1DisabledLabel.setWordWrap(True) self.openlp1DisabledLabel.setObjectName(u'Openlp1DisabledLabel') self.openlp1Layout.addRow(self.openlp1DisabledLabel) - self.openlp1Spacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, + self.openlp1Spacer = QtGui.QSpacerItem(10, 0, QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Minimum) self.openlp1Layout.setItem(1, QtGui.QFormLayout.LabelRole, self.openlp1Spacer) diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py index 31c7e4f3f..9f0b6243d 100644 --- a/openlp/plugins/bibles/lib/__init__.py +++ b/openlp/plugins/bibles/lib/__init__.py @@ -77,9 +77,9 @@ def parse_reference(reference): - After a verse reference all further single values are treat as verse in the last selected chapter. ``John 3:16-18`` refers to John chapter 3 verses 16 to 18 - - After a list separator it is possible to refer to additional verses. They - are build analog to the first ones. This way it is possible to define each - number of verse references. It is not possible to refer to verses in + - After a list separator it is possible to refer to additional verses. They + are build analog to the first ones. This way it is possible to define + each number of verse references. It is not possible to refer to verses in additional books. ``John 3:16,18`` refers to John chapter 3 verses 16 and 18 ``John 3:16-18,20`` refers to John chapter 3 verses 16 to 18 and 20 @@ -96,7 +96,7 @@ def parse_reference(reference): a verse separator. 2. ``(?P[0-9]+)`` The verse reference ``from_verse`` is manditory - 3. ``(?P%(sep_r)s(?:`` ... ``|%(sep_e)s)?)?`` + 3. ``(?P%(sep_r)s(?:`` ... ``|%(sep_e)s)?)?`` A ``range_to`` declaration is optional. It starts with a range separator and contains optional a chapter and verse declaration or a end separator. @@ -105,15 +105,15 @@ def parse_reference(reference): 5. ``(?P[0-9]+)`` The ``to_verse`` reference is equivalent to group 2. - The full reference is matched against get_reference_match(u'full'). This + The full reference is matched against get_reference_match(u'full'). This regular expression looks like this: 1. ``^\s*(?!\s)(?P[\d]*[^\d]+)(?(?:`` + range_string + ``(?:%(sep_l)s|(?=\s*$)))+)\s*$`` - The second group contains all ``ranges``. This can be multiple + The second group contains all ``ranges``. This can be multiple declarations of a range_string separated by a list separator. The reference list is a list of tuples, with each tuple structured like @@ -194,7 +194,7 @@ def parse_reference(reference): class SearchResults(object): """ - Encapsulate a set of search results. This is Bible-type independent. + Encapsulate a set of search results. This is Bible-type independent. """ def __init__(self, book, chapter, verselist): """ @@ -222,4 +222,4 @@ class SearchResults(object): from manager import BibleManager from biblestab import BiblesTab -from mediaitem import BibleMediaItem \ No newline at end of file +from mediaitem import BibleMediaItem diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py index d9144a34e..8ba13f773 100644 --- a/openlp/plugins/bibles/lib/csvbible.py +++ b/openlp/plugins/bibles/lib/csvbible.py @@ -86,7 +86,8 @@ class CSVBible(BibleDB): verse_file.seek(0) verse_reader = csv.reader(verse_file, dialect) for line in verse_reader: - if self.stop_import_flag: # cancel pressed + if self.stop_import_flag: + # cancel pressed break details = chardet.detect(line[3]) if book_ptr != line[0]: @@ -109,4 +110,4 @@ class CSVBible(BibleDB): if self.stop_import_flag: return False else: - return success \ No newline at end of file + return success diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index e2309ea76..56a7f4189 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - ItemCapabilities, SettingsManager, translate, check_item_selected, \ + ItemCapabilities, SettingsManager, translate, check_item_selected, \ context_menu_action log = logging.getLogger(__name__) @@ -159,4 +159,4 @@ class MediaMediaItem(MediaManagerItem): img = QtGui.QPixmap(u':/media/media_video.png').toImage() item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) - self.listView.addItem(item_name) \ No newline at end of file + self.listView.addItem(item_name) diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 2f5b78b8e..56da8e8d0 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -65,7 +65,7 @@ class MediaPlugin(Plugin): def _addToList(self, list, value, mimetype): # Is it a media type if len(value) == 2: - extensions = mimetypes.guess_all_extensions(unicode(mimetype)) + extensions = mimetypes.guess_all_extensions(unicode(mimetype)) # we have an extension if extensions: for extension in extensions: @@ -142,4 +142,4 @@ class MediaPlugin(Plugin): u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py index 566fc5706..19abadf0d 100644 --- a/openlp/plugins/presentations/lib/messagelistener.py +++ b/openlp/plugins/presentations/lib/messagelistener.py @@ -90,7 +90,7 @@ class Controller(object): """ Go to a specific slide """ - log.debug(u'Live = %s, slide' % self.is_live) + log.debug(u'Live = %s, slide' % self.is_live) if not self.is_live: return if self.doc.is_blank(): @@ -249,7 +249,7 @@ class MessageListener(object): self.timer = QtCore.QTimer() self.timer.setInterval(500) QtCore.QObject.connect( - self.timer, QtCore.SIGNAL("timeout()"), self.timeout) + self.timer, QtCore.SIGNAL(u'timeout()'), self.timeout) def startup(self, message): """ @@ -367,4 +367,4 @@ class MessageListener(object): to check which slide is currently displayed so the slidecontroller view can be updated """ - self.live_handler.poll() \ No newline at end of file + self.live_handler.poll() diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index 79a7260bb..a30f8b4eb 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -124,7 +124,7 @@ class CCLIFileImport(SongImport): ``Title=`` Contains the song title (e.g. *Title=Above All*) ``Author=`` - Contains a | delimited list of the song authors + Contains a | delimited list of the song authors e.g. *Author=LeBlanc, Lenny | Baloche, Paul* ``Copyright=`` Contains a | delimited list of the song copyrights @@ -184,8 +184,8 @@ class CCLIFileImport(SongImport): verse_type = u'O' check_first_verse_line = True verse_text = unicode(words_list[counter]) - verse_text = verse_text.replace("/n", "\n") - verse_lines = verse_text.split(u'\n', 1) + verse_text = verse_text.replace(u'/n', u'\n') + verse_lines = verse_text.split(u'\n', 1) if check_first_verse_line: if verse_lines[0].startswith(u'(PRE-CHORUS'): verse_type = u'P' @@ -337,4 +337,4 @@ class CCLIFileImport(SongImport): self.copyright = song_copyright self.ccli_number = song_ccli self.comments = song_comments - self.finish() \ No newline at end of file + self.finish() diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 29884b80c..9fb0f5eb5 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -85,7 +85,7 @@ class SongBeamerImport(SongImport): """ Recieve a single file, or a list of files to import. """ - if isinstance(self.import_source, list): + if isinstance(self.import_source, list): self.import_wizard.importProgressBar.setMaximum( len(self.import_source)) for file in self.import_source: @@ -96,7 +96,7 @@ class SongBeamerImport(SongImport): read_verses = False self.file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( - "Importing %s" % (self.file_name), 0) + "Importing %s" % (self.file_name), 0) if os.path.isfile(file): detect_file = open(file, u'r') details = chardet.detect(detect_file.read(2048)) @@ -292,4 +292,4 @@ class SongBeamerImport(SongImport): self.current_verse_type += marks[1] return True else: - return False \ No newline at end of file + return False diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index 42b66ccb7..3d4885661 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -32,7 +32,7 @@ import logging from openlp.plugins.songs.lib.songimport import SongImport -BLOCK_TYPES = (u'V', u'C', u'B') +BLOCK_TYPES = (u'V', u'C', u'B') log = logging.getLogger(__name__) @@ -111,7 +111,7 @@ class WowImport(SongImport): Recieve a single file, or a list of files to import. """ - if isinstance(self.import_source, list): + if isinstance(self.import_source, list): self.import_wizard.importProgressBar.setMaximum( len(self.import_source)) for file in self.import_source: @@ -119,7 +119,7 @@ class WowImport(SongImport): self.copyright = u'' self.file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( - "Importing %s" % (self.file_name), 0) + "Importing %s" % (self.file_name), 0) # Get the song title self.title = self.file_name.rpartition(u'.')[0] self.songData = open(file, 'rb') From 3e55468a3dce3c3ce80eb04cca02dc1e25470dec Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 28 Dec 2010 09:37:13 +0100 Subject: [PATCH 14/49] fixed AttributeError --- openlp/core/ui/slidecontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index b93009d5b..7c537e04b 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -193,11 +193,11 @@ class SlideController(QtGui.QWidget): self.HideMenu.menu().addAction(self.BlankScreen) self.HideMenu.menu().addAction(self.ThemeScreen) if self.screens.display_count > 1: - self.HideMenu.menu().addAction(self.DesktopScreen) self.DesktopScreen = QtGui.QAction(QtGui.QIcon( u':/slides/slide_desktop.png'), translate('OpenLP.SlideController', - 'Show Desktop'), self.HideMenu) + 'Show Desktop'), self.HideMenu) + self.HideMenu.menu().addAction(self.DesktopScreen) self.DesktopScreen.setCheckable(True) QtCore.QObject.connect(self.DesktopScreen, QtCore.SIGNAL(u'triggered(bool)'), self.onHideDisplay) From 1a31bf2047524392b9505c875e128eaec5a3312b Mon Sep 17 00:00:00 2001 From: M2j Date: Tue, 28 Dec 2010 10:22:29 +0100 Subject: [PATCH 15/49] reverted changes in slidecontroller.py to avoid interference with merge request 44744 of googol-hush --- openlp/core/theme/theme.py | 12 ++++++------ openlp/core/ui/slidecontroller.py | 8 ++++---- openlp/core/utils/languagemanager.py | 4 ++-- openlp/plugins/songs/lib/cclifileimport.py | 6 +++--- openlp/plugins/songs/lib/songbeamerimport.py | 2 +- openlp/plugins/songs/lib/wowimport.py | 4 ++-- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/openlp/core/theme/theme.py b/openlp/core/theme/theme.py index f3dabca5e..e506fc2c2 100644 --- a/openlp/core/theme/theme.py +++ b/openlp/core/theme/theme.py @@ -33,11 +33,11 @@ processing version 1 themes in OpenLP version 2. from xml.etree.ElementTree import ElementTree, XML from PyQt4 import QtGui -DELPHI_COLORS = {"clRed":0xFF0000, - "clBlue":0x0000FF, - "clYellow":0xFFFF00, - "clBlack":0x000000, - "clWhite":0xFFFFFF} +DELPHI_COLORS = {u'clRed': 0xFF0000, + u'clBlue': 0x0000FF, + u'clYellow': 0xFFFF00, + u'clBlack': 0x000000, + u'clWhite': 0xFFFFFF} BLANK_STYLE_XML = \ ''' @@ -222,4 +222,4 @@ class Theme(object): for key in dir(self): if key[0:1] != u'_': theme_strings.append(u'%30s : %s' % (key, getattr(self, key))) - return u'\n'.join(theme_strings) \ No newline at end of file + return u'\n'.join(theme_strings) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 8f699d152..be1fcd44a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -184,14 +184,14 @@ class SlideController(QtGui.QWidget): 'Blank Screen'), self.HideMenu) self.BlankScreen.setCheckable(True) QtCore.QObject.connect(self.BlankScreen, - QtCore.SIGNAL(u'triggered(bool)'), self.onBlankDisplay) + QtCore.SIGNAL("triggered(bool)"), self.onBlankDisplay) self.ThemeScreen = QtGui.QAction(QtGui.QIcon( u':/slides/slide_theme.png'), translate('OpenLP.SlideController', 'Blank to Theme'), self.HideMenu) self.ThemeScreen.setCheckable(True) QtCore.QObject.connect(self.ThemeScreen, - QtCore.SIGNAL(u'triggered(bool)'), self.onThemeDisplay) + QtCore.SIGNAL("triggered(bool)"), self.onThemeDisplay) if self.screens.display_count > 1: self.DesktopScreen = QtGui.QAction(QtGui.QIcon( u':/slides/slide_desktop.png'), @@ -199,7 +199,7 @@ class SlideController(QtGui.QWidget): 'Show Desktop'), self.HideMenu) self.DesktopScreen.setCheckable(True) QtCore.QObject.connect(self.DesktopScreen, - QtCore.SIGNAL(u'triggered(bool)'), self.onHideDisplay) + QtCore.SIGNAL("triggered(bool)"), self.onHideDisplay) self.HideMenu.setDefaultAction(self.BlankScreen) self.HideMenu.menu().addAction(self.BlankScreen) self.HideMenu.menu().addAction(self.ThemeScreen) @@ -1033,4 +1033,4 @@ class SlideController(QtGui.QWidget): self.mediaObject.clearQueue() self.video.hide() self.SlidePreview.clear() - self.SlidePreview.show() + self.SlidePreview.show() \ No newline at end of file diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 76c584bb3..454d14fa2 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -65,7 +65,7 @@ class LanguageManager(object): """ trans_dir = QtCore.QDir(AppLocation.get_directory( AppLocation.LanguageDir)) - file_names = trans_dir.entryList(QtCore.QStringList("*.qm"), + file_names = trans_dir.entryList(QtCore.QStringList(u'*.qm'), QtCore.QDir.Files, QtCore.QDir.Name) for name in file_names: file_names.replaceInStrings(name, trans_dir.filePath(name)) @@ -143,4 +143,4 @@ class LanguageManager(object): """ if not LanguageManager.__qm_list__: LanguageManager.init_qm_list() - return LanguageManager.__qm_list__ \ No newline at end of file + return LanguageManager.__qm_list__ diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index a30f8b4eb..e4bec1a3c 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -86,11 +86,11 @@ class CCLIFileImport(SongImport): infile = codecs.open(filename, u'r', details['encoding']) lines = infile.readlines() ext = os.path.splitext(filename)[1] - if ext.lower() == ".usr": + if ext.lower() == u'.usr': log.info(u'SongSelect .usr format file found %s: ', filename) self.do_import_usr_file(lines) - elif ext.lower() == ".txt": + elif ext.lower() == u'.txt': log.info(u'SongSelect .txt format file found %s: ', filename) self.do_import_txt_file(lines) @@ -207,7 +207,7 @@ class CCLIFileImport(SongImport): author_list = song_author.split(u'|') for author in author_list: seperated = author.split(u',') - self.add_author(seperated[1].strip() + " " + seperated[0].strip()) + self.add_author(seperated[1].strip() + u' ' + seperated[0].strip()) self.title = song_name self.copyright = song_copyright self.ccli_number = song_ccli diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 9fb0f5eb5..285c8c603 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -96,7 +96,7 @@ class SongBeamerImport(SongImport): read_verses = False self.file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( - "Importing %s" % (self.file_name), 0) + u'Importing %s' % (self.file_name), 0) if os.path.isfile(file): detect_file = open(file, u'r') details = chardet.detect(detect_file.read(2048)) diff --git a/openlp/plugins/songs/lib/wowimport.py b/openlp/plugins/songs/lib/wowimport.py index 3d4885661..1d5470f9b 100644 --- a/openlp/plugins/songs/lib/wowimport.py +++ b/openlp/plugins/songs/lib/wowimport.py @@ -119,7 +119,7 @@ class WowImport(SongImport): self.copyright = u'' self.file_name = os.path.split(file)[1] self.import_wizard.incrementProgressBar( - "Importing %s" % (self.file_name), 0) + u'Importing %s' % (self.file_name), 0) # Get the song title self.title = self.file_name.rpartition(u'.')[0] self.songData = open(file, 'rb') @@ -167,5 +167,5 @@ class WowImport(SongImport): self.songData.close() self.finish() self.import_wizard.incrementProgressBar( - "Importing %s" % (self.file_name)) + u'Importing %s' % (self.file_name)) return True From 2354ae65308b1c3e3b34b6289d55347c64c16aca Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 28 Dec 2010 11:06:05 +0100 Subject: [PATCH 16/49] instead of using the dockwidgets, the slidecontrollers update themselves --- openlp/core/lib/dockwidget.py | 14 -------------- openlp/core/ui/slidecontroller.py | 18 ++++++++++++++---- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/openlp/core/lib/dockwidget.py b/openlp/core/lib/dockwidget.py index 3884b9c37..7b8444c58 100644 --- a/openlp/core/lib/dockwidget.py +++ b/openlp/core/lib/dockwidget.py @@ -47,17 +47,3 @@ class OpenLPDockWidget(QtGui.QDockWidget): if name: self.setObjectName(name) self.setFloating(False) - - def moveEvent(self, event): - """ - Called, when the DockWidget is moved. - """ - self.parent.liveController.previewSizeChanged() - self.parent.previewController.previewSizeChanged() - - def resizeEvent(self, event): - """ - Called, when the DockWidget is resized. - """ - self.parent.liveController.previewSizeChanged() - self.parent.previewController.previewSizeChanged() diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 7c537e04b..728c86a08 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -386,10 +386,20 @@ class SlideController(QtGui.QWidget): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) + def paintEvent(self, event): + """ + When the Slidecontroller is painted, we need to make sure, that the + SlidePreview's size is updated. + """ + # We need to make this circuit, because we have to consider the other + # slidecontroller as well. + self.parent.previewController.previewSizeChanged() + self.parent.liveController.previewSizeChanged() + def screenSizeChanged(self): """ Settings dialog has changed the screen size of adjust output and - screen previews + screen previews. """ log.debug(u'screenSizeChanged live = %s' % self.isLive) # rebuild display as screen size changed @@ -397,6 +407,9 @@ class SlideController(QtGui.QWidget): self.display.imageManager = self.parent.renderManager.image_manager self.display.alertTab = self.alertTab self.display.setup() + # The SlidePreview's ratio. + self.ratio = float(self.screens.current[u'size'].width()) / \ + float(self.screens.current[u'size'].height()) self.previewSizeChanged() def previewSizeChanged(self): @@ -405,9 +418,6 @@ class SlideController(QtGui.QWidget): splitters is moved or when the screen size is changed. """ log.debug(u'previewSizeChanged live = %s' % self.isLive) - # The SlidePreview's ratio. - self.ratio = float(self.screens.current[u'size'].width()) / \ - float(self.screens.current[u'size'].height()) if self.ratio < float(self.PreviewFrame.width()) / float( self.PreviewFrame.height()): # We have to take the height as limit. From 3a3aee9c4a418295b1f7fbcd521f3cd5a78fb04a Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 28 Dec 2010 11:35:59 +0100 Subject: [PATCH 17/49] dockwidget tweak --- openlp/core/lib/dockwidget.py | 6 ++++-- openlp/core/ui/mainwindow.py | 17 +++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/openlp/core/lib/dockwidget.py b/openlp/core/lib/dockwidget.py index 7b8444c58..9c4187337 100644 --- a/openlp/core/lib/dockwidget.py +++ b/openlp/core/lib/dockwidget.py @@ -37,13 +37,15 @@ class OpenLPDockWidget(QtGui.QDockWidget): """ Custom DockWidget class to handle events """ - def __init__(self, parent=None, name=None): + def __init__(self, parent=None, name=None, icon=None): """ Initialise the DockWidget """ - log.debug(u'Initialise the DockWidget %s' % name) + log.debug(u'Initialise the %s widget' % name) QtGui.QDockWidget.__init__(self, parent) self.parent = parent if name: self.setObjectName(name) + if icon: + self.setWindowIcon(icon) self.setFloating(False) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 2c1e23421..1fbf40837 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -141,13 +141,12 @@ class Ui_MainWindow(object): self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel') self.StatusBar.addPermanentWidget(self.DefaultThemeLabel) # Create the MediaManager - self.MediaManagerDock = OpenLPDockWidget(MainWindow) - self.MediaManagerDock.setWindowIcon( + self.MediaManagerDock = OpenLPDockWidget( + MainWindow, u'MediaManagerDock', build_icon(u':/system/system_mediamanager.png')) self.MediaManagerDock.setStyleSheet(MEDIA_MANAGER_STYLE) self.MediaManagerDock.setMinimumWidth( self.settingsmanager.mainwindow_left) - self.MediaManagerDock.setObjectName(u'MediaManagerDock') self.MediaManagerContents = QtGui.QWidget(MainWindow) self.MediaManagerContents.setObjectName(u'MediaManagerContents') self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents) @@ -161,10 +160,9 @@ class Ui_MainWindow(object): MainWindow.addDockWidget( QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock) # Create the service manager - self.ServiceManagerDock = OpenLPDockWidget(MainWindow) - self.ServiceManagerDock.setWindowIcon( + self.ServiceManagerDock = OpenLPDockWidget( + MainWindow, u'ServiceManagerDock', build_icon(u':/system/system_servicemanager.png')) - self.ServiceManagerDock.setObjectName(u'ServiceManagerDock') self.ServiceManagerDock.setMinimumWidth( self.settingsmanager.mainwindow_right) self.ServiceManagerContents = ServiceManager(self) @@ -172,10 +170,9 @@ class Ui_MainWindow(object): MainWindow.addDockWidget( QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock) # Create the theme manager - self.ThemeManagerDock = OpenLPDockWidget(MainWindow) - self.ThemeManagerDock.setWindowIcon( + self.ThemeManagerDock = OpenLPDockWidget( + MainWindow, u'ThemeManagerDock', build_icon(u':/system/system_thememanager.png')) - self.ThemeManagerDock.setObjectName(u'ThemeManagerDock') self.ThemeManagerDock.setMinimumWidth( self.settingsmanager.mainwindow_right) self.ThemeManagerContents = ThemeManager(self) @@ -1000,4 +997,4 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.recentFiles.insert(0, QtCore.QString(filename)) while self.recentFiles.count() > maxRecentFiles: # Don't care what API says takeLast works, removeLast doesn't! - self.recentFiles.takeLast() \ No newline at end of file + self.recentFiles.takeLast() From 557a66db9d2190f26579277bcea37aa48a0bdf7e Mon Sep 17 00:00:00 2001 From: M2j Date: Tue, 28 Dec 2010 12:18:56 +0100 Subject: [PATCH 18/49] ThemeWizard: Show theme name in title and hide themeNameEdit if wizard is in editing mode. ThemeWizard: Changed transitionsComboBox to align with the FormLayout. (change some log.debug() arguments to avoid UnicodeError exceptions) --- openlp/core/lib/mediamanageritem.py | 10 +-- openlp/core/ui/pluginform.py | 4 +- openlp/core/ui/themeform.py | 76 ++++++++++--------- openlp/core/ui/themewizard.py | 9 ++- .../plugins/bibles/forms/bibleimportform.py | 2 +- openlp/plugins/bibles/lib/__init__.py | 2 +- openlp/plugins/bibles/lib/db.py | 6 +- openlp/plugins/bibles/lib/http.py | 4 +- openlp/plugins/bibles/lib/osis.py | 4 +- openlp/plugins/songs/forms/songimportform.py | 2 +- openlp/plugins/songs/lib/opensongimport.py | 6 +- 11 files changed, 68 insertions(+), 57 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 50e43afd0..7c91d6f40 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -445,7 +445,7 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', 'You must select one or more items to preview.')) else: - log.debug(self.plugin.name + u' Preview requested') + log.debug(u'%s Preview requested', self.plugin.name) serviceItem = self.buildServiceItem() if serviceItem: serviceItem.from_plugin = True @@ -462,7 +462,7 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', 'You must select one or more items to send live.')) else: - log.debug(self.plugin.name + u' Live requested') + log.debug(u'%s Live requested', self.plugin.name) serviceItem = self.buildServiceItem() if serviceItem: serviceItem.from_plugin = True @@ -481,7 +481,7 @@ class MediaManagerItem(QtGui.QWidget): # Is it posssible to process multiple list items to generate # multiple service items? if self.singleServiceItem or self.remoteTriggered: - log.debug(self.plugin.name + u' Add requested') + log.debug(u'%s Add requested', self.plugin.name) serviceItem = self.buildServiceItem(None, True) if serviceItem: serviceItem.from_plugin = False @@ -505,7 +505,7 @@ class MediaManagerItem(QtGui.QWidget): translate('OpenLP.MediaManagerItem', 'You must select one or more items')) else: - log.debug(self.plugin.name + u' Add requested') + log.debug(u'%s Add requested', self.plugin.name) serviceItem = self.parent.serviceManager.getServiceItem() if not serviceItem: QtGui.QMessageBox.information(self, @@ -544,4 +544,4 @@ class MediaManagerItem(QtGui.QWidget): Method to add processing when a service has been loaded and individual service items need to be processed by the plugins """ - pass \ No newline at end of file + pass diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index dfefef476..4d3177ef3 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -92,7 +92,7 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): self.statusComboBox.setEnabled(False) def _setDetails(self): - log.debug('PluginStatus: %s', str(self.activePlugin.status)) + log.debug(u'PluginStatus: %s', str(self.activePlugin.status)) self.versionNumberLabel.setText(self.activePlugin.version) self.aboutTextBrowser.setHtml(self.activePlugin.about()) self.programaticChange = True @@ -142,4 +142,4 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): translate('OpenLP.PluginForm', '%s (Disabled)')) name_string = self.activePlugin.getString(StringContent.Name) self.pluginListWidget.currentItem().setText( - status_text % name_string[u'singular']) \ No newline at end of file + status_text % name_string[u'singular']) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index acedefdb1..1eeae8dbe 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -127,12 +127,12 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.restart() self.accepted = False - self.setBackgroundTabValues() - self.setMainAreaTabValues() - self.setFooterAreaTabValues() - self.setAlignmentTabValues() - self.setPositionTabValues() - self.setPreviewTabValues() + self.setBackgroundPageValues() + self.setMainAreaPageValues() + self.setFooterAreaPageValues() + self.setAlignmentPageValues() + self.setPositionPageValues() + self.setPreviewPageValues() def registerFields(self): """ @@ -268,8 +268,15 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.updateThemeAllowed = False self.setDefaults() self.updateThemeAllowed = True + self.themeNameLabel.setVisible(not edit) + self.themeNameEdit.setVisible(not edit) if edit: + self.setWindowTitle(unicode(translate('OpenLP.ThemeWizard', + 'Edit Theme %s - OpenLP')) % self.theme.theme_name) self.next() + else: + self.setWindowTitle(translate('OpenLP.ThemeWizard', + 'New Theme - OpenLP')) return QtGui.QWizard.exec_(self) def initializePage(self, id): @@ -279,19 +286,19 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): log.debug(u'initializePage %s' % id) wizardPage = self.page(id) if wizardPage == self.backgroundPage: - self.setBackgroundTabValues() + self.setBackgroundPageValues() elif wizardPage == self.mainAreaPage: - self.setMainAreaTabValues() + self.setMainAreaPageValues() elif wizardPage == self.footerAreaPage: - self.setFooterAreaTabValues() + self.setFooterAreaPageValues() elif wizardPage == self.alignmentPage: - self.setAlignmentTabValues() + self.setAlignmentPageValues() elif wizardPage == self.areaPositionPage: - self.setPositionTabValues() + self.setPositionPageValues() - def setBackgroundTabValues(self): + def setBackgroundPageValues(self): """ - Handle the display and State of the background display tab. + Handle the display and state of the Background page. """ if self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Solid): @@ -323,9 +330,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): else: self.setField(u'gradient', QtCore.QVariant(4)) - def setMainAreaTabValues(self): + def setMainAreaPageValues(self): """ - Handle the display and State of the Main Area tab. + Handle the display and state of the Main Area page. """ self.mainFontComboBox.setCurrentFont( QtGui.QFont(self.theme.font_main_name)) @@ -352,9 +359,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.setField(u'mainItalicsCheckBox', QtCore.QVariant(self.theme.font_main_italics)) - def setFooterAreaTabValues(self): + def setFooterAreaPageValues(self): """ - Handle the display and State of the Footer Area tab. + Handle the display and state of the Footer Area page. """ self.footerFontComboBox.setCurrentFont( QtGui.QFont(self.theme.font_main_name)) @@ -363,9 +370,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.setField(u'footerSizeSpinBox', QtCore.QVariant(self.theme.font_footer_size)) - def setPositionTabValues(self): + def setPositionPageValues(self): """ - Handle the display and State of the Position tab. + Handle the display and state of the Position page. """ # Main Area self.mainPositionCheckBox.setChecked(not self.theme.font_main_override) @@ -387,9 +394,9 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.setField(u'footerPositionWidth', QtCore.QVariant(self.theme.font_footer_width)) - def setAlignmentTabValues(self): + def setAlignmentPageValues(self): """ - Define the Tab Alignments Page + Handle the display and state of the Alignments page. """ self.setField(u'horizontal', QtCore.QVariant(self.theme.display_horizontal_align)) @@ -398,17 +405,18 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.setField(u'slideTransition', QtCore.QVariant(self.theme.display_slide_transition)) - def setPreviewTabValues(self): + def setPreviewPageValues(self): + """ + Handle the display and state of the Preview page. + """ self.setField(u'name', QtCore.QVariant(self.theme.theme_name)) - self.themeNameEdit.setReadOnly(len(self.theme.theme_name) != 0) - self.themeNameEdit.setFrame(len(self.theme.theme_name) == 0) def onBackgroundComboBoxCurrentIndexChanged(self, index): """ Background style Combo box has changed. """ self.theme.background_type = BackgroundType.to_string(index) - self.setBackgroundTabValues() + self.setBackgroundPageValues() def onGradientComboBoxCurrentIndexChanged(self, index): """ @@ -416,7 +424,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.theme.background_direction = \ BackgroundGradientType.to_string(index) - self.setBackgroundTabValues() + self.setBackgroundPageValues() def onColorButtonClicked(self): """ @@ -424,7 +432,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.theme.background_color = \ self._colorButton(self.theme.background_color) - self.setBackgroundTabValues() + self.setBackgroundPageValues() def onGradientStartButtonClicked(self): """ @@ -432,7 +440,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.theme.background_start_color = \ self._colorButton(self.theme.background_start_color) - self.setBackgroundTabValues() + self.setBackgroundPageValues() def onGradientEndButtonClicked(self): """ @@ -440,7 +448,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ self.theme.background_end_color = \ self._colorButton(self.theme.background_end_color) - self.setBackgroundTabValues() + self.setBackgroundPageValues() def onImageBrowseButtonClicked(self): """ @@ -454,27 +462,27 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): images_filter) if filename: self.theme.background_filename = unicode(filename) - self.setBackgroundTabValues() + self.setBackgroundPageValues() def onMainColorButtonClicked(self): self.theme.font_main_color = \ self._colorButton(self.theme.font_main_color) - self.setMainAreaTabValues() + self.setMainAreaPageValues() def onOutlineColorButtonClicked(self): self.theme.font_main_outline_color = \ self._colorButton(self.theme.font_main_outline_color) - self.setMainAreaTabValues() + self.setMainAreaPageValues() def onShadowColorButtonClicked(self): self.theme.font_main_shadow_color = \ self._colorButton(self.theme.font_main_shadow_color) - self.setMainAreaTabValues() + self.setMainAreaPageValues() def onFooterColorButtonClicked(self): self.theme.font_footer_color = \ self._colorButton(self.theme.font_footer_color) - self.setFooterAreaTabValues() + self.setFooterAreaPageValues() def updateTheme(self): """ diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index 31d04ca03..9aa27b709 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -269,9 +269,12 @@ class Ui_ThemeWizard(object): self.verticalComboBox.addItems([u'', u'', u'']) self.verticalComboBox.setObjectName(u'VerticalComboBox') self.alignmentLayout.addRow(self.verticalLabel, self.verticalComboBox) + self.transitionsLabel = QtGui.QLabel(self.alignmentPage) + self.transitionsLabel.setObjectName(u'TransitionsLabel') self.transitionsCheckBox = QtGui.QCheckBox(self.alignmentPage) self.transitionsCheckBox.setObjectName(u'TransitionsCheckBox') - self.alignmentLayout.addRow(self.transitionsCheckBox) + self.alignmentLayout.addRow(self.transitionsLabel, + self.transitionsCheckBox) ThemeWizard.addPage(self.alignmentPage) # Area Position Page self.areaPositionPage = QtGui.QWizardPage() @@ -517,8 +520,8 @@ class Ui_ThemeWizard(object): translate('OpenLP.ThemeWizard', 'Middle')) self.verticalComboBox.setItemText(2, translate('OpenLP.ThemeWizard', 'Bottom')) - self.transitionsCheckBox.setText( - translate('OpenLP.ThemeWizard', 'Transitions')) + self.transitionsLabel.setText( + translate('OpenLP.ThemeWizard', 'Transitions:')) self.areaPositionPage.setTitle( translate('OpenLP.ThemeWizard', 'Output Area Locations')) self.areaPositionPage.setSubTitle( diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 7d8071faa..4590ea739 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -127,7 +127,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard): """ Stop the import on cancel button, close button or ESC key. """ - log.debug('Import canceled by user.') + log.debug(u'Import canceled by user.') if self.currentPage() == self.importPage: Receiver.send_message(u'bibles_stop_import') self.done(QtGui.QDialog.Rejected) diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py index 9f0b6243d..f2797e16d 100644 --- a/openlp/plugins/bibles/lib/__init__.py +++ b/openlp/plugins/bibles/lib/__init__.py @@ -126,7 +126,7 @@ def parse_reference(reference): Returns None or a reference list. """ - log.debug('parse_reference("%s")', reference) + log.debug(u'parse_reference("%s")', reference) match = get_reference_match(u'full').match(reference) if match: log.debug(u'Matched reference %s' % reference) diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 0ff2d999e..5f37f3c73 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -166,7 +166,7 @@ class BibleDB(QtCore.QObject, Manager): """ Stops the import of the Bible. """ - log.debug('Stopping import') + log.debug(u'Stopping import') self.stop_import_flag = True def get_name(self): @@ -430,9 +430,9 @@ class BibleDB(QtCore.QObject, Manager): Utility debugging method to dump the contents of a bible. """ log.debug(u'.........Dumping Bible Database') - log.debug('...............................Books ') + log.debug(u'...............................Books ') books = self.session.query(Book).all() log.debug(books) log.debug(u'...............................Verses ') verses = self.session.query(Verse).all() - log.debug(verses) \ No newline at end of file + log.debug(verses) diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index 07416b965..e0aeafa48 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -447,7 +447,7 @@ class HTTPBible(BibleDB): [(u'Genesis', 1, 1, 1), (u'Genesis', 2, 2, 3)] """ for reference in reference_list: - log.debug('Reference: %s', reference) + log.debug(u'Reference: %s', reference) book = reference[0] db_book = self.get_book(book) if not db_book: @@ -522,4 +522,4 @@ class HTTPBible(BibleDB): ``chapter`` The chapter whose verses are being counted. """ - return HTTPBooks.get_verse_count(book, chapter) \ No newline at end of file + return HTTPBooks.get_verse_count(book, chapter) diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index 5b359240f..b8ef22b91 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -125,7 +125,7 @@ class OSISBible(BibleDB): verse = int(match.group(3)) verse_text = match.group(4) if not db_book or db_book.name != self.books[book][0]: - log.debug('New book: "%s"', self.books[book][0]) + log.debug(u'New book: "%s"', self.books[book][0]) if book == u'Matt': testament += 1 db_book = self.create_book( @@ -180,4 +180,4 @@ class OSISBible(BibleDB): if self.stop_import_flag: return False else: - return success \ No newline at end of file + return success diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index ecb4fd3e1..672164253 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -133,7 +133,7 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): """ Stop the import on cancel button, close button or ESC key. """ - log.debug('Import canceled by user.') + log.debug(u'Import canceled by user.') if self.currentPage() == self.importPage: Receiver.send_message(u'songs_stop_import') self.done(QtGui.QDialog.Rejected) diff --git a/openlp/plugins/songs/lib/opensongimport.py b/openlp/plugins/songs/lib/opensongimport.py index 3341754c2..6a60fcc6c 100644 --- a/openlp/plugins/songs/lib/opensongimport.py +++ b/openlp/plugins/songs/lib/opensongimport.py @@ -128,7 +128,7 @@ class OpenSongImport(SongImport): numfiles += len(z.infolist()) else: numfiles += 1 - log.debug("Total number of files: %d", numfiles) + log.debug(u'Total number of files: %d', numfiles) self.import_wizard.importProgressBar.setMaximum(numfiles) for filename in self.filenames: if self.stop_import_flag: @@ -159,7 +159,7 @@ class OpenSongImport(SongImport): break else: # not a zipfile - log.info('Direct import %s', filename) + log.info(u'Direct import %s', filename) self.import_wizard.incrementProgressBar( unicode(translate('SongsPlugin.ImportWizardForm', 'Importing %s...')) % os.path.split(filename)[-1]) @@ -306,4 +306,4 @@ class OpenSongImport(SongImport): log.info(u'Got order %s but not in versetags, dropping this' u'item from presentation order', tag) else: - self.verse_order_list.append(tag) \ No newline at end of file + self.verse_order_list.append(tag) From a9c2b9fa18e50858e8872c584a7b9cb004e2893e Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Tue, 28 Dec 2010 23:12:20 +0200 Subject: [PATCH 19/49] Added a new SearchEdit GUI object. --- openlp/core/lib/searchedit.py | 191 ++++++++++++++++++++++ openlp/plugins/songs/lib/mediaitem.py | 59 ++++--- resources/images/general_search_clear.png | Bin 0 -> 644 bytes resources/images/openlp-2.qrc | 4 + resources/images/song_search_all.png | Bin 0 -> 607 bytes resources/images/song_search_author.png | Bin 0 -> 409 bytes resources/images/song_search_lyrics.png | Bin 0 -> 335 bytes resources/images/song_search_title.png | Bin 0 -> 245 bytes 8 files changed, 223 insertions(+), 31 deletions(-) create mode 100644 openlp/core/lib/searchedit.py create mode 100644 resources/images/general_search_clear.png create mode 100644 resources/images/song_search_all.png create mode 100644 resources/images/song_search_author.png create mode 100644 resources/images/song_search_lyrics.png create mode 100644 resources/images/song_search_title.png diff --git a/openlp/core/lib/searchedit.py b/openlp/core/lib/searchedit.py new file mode 100644 index 000000000..738661e14 --- /dev/null +++ b/openlp/core/lib/searchedit.py @@ -0,0 +1,191 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2011 Raoul Snyman # +# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # +# Gorven, Scott Guerrieri, Meinert Jordan, Andreas Preikschat, Christian # +# Richter, Philip Ridout, Maikel Stuivenberg, Martin Thompson, Jon Tibble, # +# Carsten Tinggaard, Frode Woldsund # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### + +import logging + +from PyQt4 import QtCore, QtGui + +from openlp.core.lib import build_icon + +log = logging.getLogger(__name__) + +class SearchEdit(QtGui.QLineEdit): + """ + This is a specialised QLineEdit with a "clear" button inside for searches. + """ + + def __init__(self, parent): + """ + Constructor. + """ + QtGui.QLineEdit.__init__(self, parent) + self._currentSearchType = -1 + self.clearButton = QtGui.QToolButton(self) + self.clearButton.setIcon(build_icon(u':/system/clear_shortcut.png')) + self.clearButton.setCursor(QtCore.Qt.ArrowCursor) + self.clearButton.setStyleSheet( + u'QToolButton { border: none; padding: 0px; }') + self.clearButton.resize(18, 18) + self.clearButton.hide() + QtCore.QObject.connect( + self.clearButton, + QtCore.SIGNAL(u'clicked()'), + self._onClearButtonClicked + ) + QtCore.QObject.connect( + self, + QtCore.SIGNAL(u'textChanged(const QString&)'), + self._onSearchEditTextChanged + ) + self._updateStyleSheet() + + def _updateStyleSheet(self): + """ + Internal method to update the stylesheet depending on which widgets are + available and visible. + """ + frameWidth = self.style().pixelMetric( + QtGui.QStyle.PM_DefaultFrameWidth) + rightPadding = self.clearButton.sizeHint().width() + frameWidth + if hasattr(self, u'menuButton'): + leftPadding = self.menuButton.width() + self.setStyleSheet( + u'QLineEdit { padding-left: %spx; padding-right: %spx; } ' % \ + (leftPadding, rightPadding)) + else: + self.setStyleSheet(u'QLineEdit { padding-right: %spx; } ' % \ + rightPadding) + msz = self.minimumSizeHint(); + self.setMinimumSize( + max(msz.width(), + self.clearButton.sizeHint().width() + (frameWidth * 2) + 2), + max(msz.height(), + self.clearButton.height() + (frameWidth * 2) + 2) + ) + + def resizeEvent(self, event): + """ + Reimplemented method to react to resizing of the widget. + + ``event`` + The event that happened. + """ + sz = self.clearButton.sizeHint() + frameWidth = self.style().pixelMetric( + QtGui.QStyle.PM_DefaultFrameWidth) + self.clearButton.move(self.rect().right() - frameWidth - sz.width(), + (self.rect().bottom() + 1 - sz.height()) / 2) + if hasattr(self, u'menuButton'): + sz = self.menuButton.sizeHint() + self.menuButton.move(self.rect().left() + frameWidth + 2, + (self.rect().bottom() + 1 - sz.height()) / 2) + + def currentSearchType(self): + """ + Readonly property to return the current search type. + """ + return self._currentSearchType + + def setSearchTypes(self, items): + """ + A list of tuples to be used in the search type menu. The first item in + the list will be preselected as the default. + + ``items`` + The list of tuples to use. The tuples should contain an integer + identifier, an icon (QIcon instance or string) and a title for the + item in the menu. In short, they should look like this:: + + (, , ) + + For instance:: + + (1, <QIcon instance>, "Titles") + + Or:: + + (2, ":/songs/authors.png", "Authors") + """ + menu = QtGui.QMenu(self) + first = None + for identifier, icon, title in items: + action = QtGui.QAction(build_icon(icon), title, menu) + action.setData(QtCore.QVariant(identifier)) + menu.addAction(action) + QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'), + self._onMenuActionTriggered) + if first is None: + first = action + self._currentSearchType = identifier + if not hasattr(self, u'menuButton'): + self.menuButton = QtGui.QToolButton(self) + self.menuButton.setIcon(build_icon(u':/system/clear_shortcut.png')) + self.menuButton.setCursor(QtCore.Qt.ArrowCursor) + self.menuButton.setPopupMode(QtGui.QToolButton.InstantPopup) + self.menuButton.setStyleSheet( + u'QToolButton { border: none; padding: 0px 10px 0px 0px; }') + self.menuButton.resize(QtCore.QSize(28, 18)) + self.menuButton.setMenu(menu) + self.menuButton.setDefaultAction(first) + self.menuButton.show() + self._updateStyleSheet() + + def _onSearchEditTextChanged(self, text): + """ + Internally implemented slot to react to when the text in the line edit + has changed so that we can show or hide the clear button. + + ``text`` + A :class:`~PyQt4.QtCore.QString` instance which represents the text + in the line edit. + """ + self.clearButton.setVisible(not text.isEmpty()) + + def _onClearButtonClicked(self): + """ + Internally implemented slot to react to the clear button being pressed + to clear the line edit. Once it has cleared the line edit, it emits the + ``cleared()`` signal so that an application can react to the clearing + of the line edit. + """ + self.clear() + self.emit(QtCore.SIGNAL(u'cleared()')) + + def _onMenuActionTriggered(self): + """ + Internally implemented slot to react to the select of one of the search + types in the menu. Once it has set the correct action on the button, + and set the current search type (using the list of identifiers provided + by the developer), the ``searchTypeChanged(int)`` signal is emitted + with the identifier. + """ + sender = self.sender() + for action in self.menuButton.menu().actions(): + action.setChecked(False) + self.menuButton.setDefaultAction(sender) + self._currentSearchType = sender.data().toInt()[0] + self.emit(QtCore.SIGNAL(u'searchTypeChanged(int)'), + self._currentSearchType) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 3be60dec4..8c06431ed 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -29,6 +29,7 @@ import locale import re from PyQt4 import QtCore, QtGui +from sqlalchemy.sql import or_ from openlp.core.lib import MediaManagerItem, BaseListWithDnD, Receiver, \ ItemCapabilities, translate, check_item_selected @@ -36,6 +37,7 @@ from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ SongImportForm from openlp.plugins.songs.lib import SongXMLParser, OpenLyricsParser from openlp.plugins.songs.lib.db import Author, Song +from openlp.core.lib.searchedit import SearchEdit log = logging.getLogger(__name__) @@ -88,20 +90,10 @@ class SongMediaItem(MediaManagerItem): self.SearchTextLabel.setObjectName(u'SearchTextLabel') self.SearchLayout.setWidget( 0, QtGui.QFormLayout.LabelRole, self.SearchTextLabel) - self.SearchTextEdit = QtGui.QLineEdit(self) + self.SearchTextEdit = SearchEdit(self) self.SearchTextEdit.setObjectName(u'SearchTextEdit') self.SearchLayout.setWidget( 0, QtGui.QFormLayout.FieldRole, self.SearchTextEdit) - self.SearchTypeLabel = QtGui.QLabel(self) - self.SearchTypeLabel.setAlignment( - QtCore.Qt.AlignBottom|QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft) - self.SearchTypeLabel.setObjectName(u'SearchTypeLabel') - self.SearchLayout.setWidget( - 1, QtGui.QFormLayout.LabelRole, self.SearchTypeLabel) - self.SearchTypeComboBox = QtGui.QComboBox(self) - self.SearchTypeComboBox.setObjectName(u'SearchTypeComboBox') - self.SearchLayout.setWidget( - 1, QtGui.QFormLayout.FieldRole, self.SearchTypeComboBox) self.pageLayout.addLayout(self.SearchLayout) self.SearchButtonLayout = QtGui.QHBoxLayout() self.SearchButtonLayout.setMargin(0) @@ -113,9 +105,6 @@ class SongMediaItem(MediaManagerItem): self.SearchTextButton = QtGui.QPushButton(self) self.SearchTextButton.setObjectName(u'SearchTextButton') self.SearchButtonLayout.addWidget(self.SearchTextButton) - self.ClearTextButton = QtGui.QPushButton(self) - self.ClearTextButton.setObjectName(u'ClearTextButton') - self.SearchButtonLayout.addWidget(self.ClearTextButton) self.pageLayout.addLayout(self.SearchButtonLayout) # Signals and slots QtCore.QObject.connect(Receiver.get_receiver(), @@ -124,8 +113,6 @@ class SongMediaItem(MediaManagerItem): QtCore.SIGNAL(u'returnPressed()'), self.onSearchTextButtonClick) QtCore.QObject.connect(self.SearchTextButton, QtCore.SIGNAL(u'pressed()'), self.onSearchTextButtonClick) - QtCore.QObject.connect(self.ClearTextButton, - QtCore.SIGNAL(u'pressed()'), self.onClearTextButtonClick) QtCore.QObject.connect(self.SearchTextEdit, QtCore.SIGNAL(u'textChanged(const QString&)'), self.onSearchTextEditChanged) @@ -139,6 +126,11 @@ class SongMediaItem(MediaManagerItem): QtCore.SIGNAL(u'songs_edit'), self.onRemoteEdit) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'songs_edit_clear'), self.onRemoteEditClear) + QtCore.QObject.connect(self.SearchTextEdit, + QtCore.SIGNAL(u'cleared()'), self.onClearTextButtonClick) + QtCore.QObject.connect(self.SearchTextEdit, + QtCore.SIGNAL(u'searchTypeChanged(int)'), + self.onSearchTextButtonClick) def configUpdated(self): self.searchAsYouType = QtCore.QSettings().value( @@ -154,39 +146,44 @@ class SongMediaItem(MediaManagerItem): def retranslateUi(self): self.SearchTextLabel.setText( translate('SongsPlugin.MediaItem', 'Search:')) - self.SearchTypeLabel.setText( - translate('SongsPlugin.MediaItem', 'Type:')) - self.ClearTextButton.setText( - translate('SongsPlugin.MediaItem', 'Clear')) self.SearchTextButton.setText( translate('SongsPlugin.MediaItem', 'Search')) def initialise(self): - self.SearchTypeComboBox.addItem( - translate('SongsPlugin.MediaItem', 'Titles')) - self.SearchTypeComboBox.addItem( - translate('SongsPlugin.MediaItem', 'Lyrics')) - self.SearchTypeComboBox.addItem( - translate('SongsPlugin.MediaItem', 'Authors')) + self.SearchTextEdit.setSearchTypes([ + (1, u':/songs/song_search_all.png', translate('SongsPlugin.MediaItem', 'Entire Song')), + (2, u':/songs/song_search_title.png', translate('SongsPlugin.MediaItem', 'Titles')), + (3, u':/songs/song_search_lyrics.png', translate('SongsPlugin.MediaItem', 'Lyrics')), + (4, u':/songs/song_search_author.png', translate('SongsPlugin.MediaItem', 'Authors')) + ]) self.configUpdated() def onSearchTextButtonClick(self): search_keywords = unicode(self.SearchTextEdit.displayText()) search_results = [] - search_type = self.SearchTypeComboBox.currentIndex() - if search_type == 0: + # search_type = self.SearchTypeComboBox.currentIndex() + search_type = self.SearchTextEdit.currentSearchType() + if search_type == 1: + log.debug(u'Entire Song Search') + search_results = self.parent.manager.get_all_objects(Song, + or_(Song.search_title.like(u'%' + self.whitespace.sub(u' ', + search_keywords.lower()) + u'%'), + Song.search_lyrics.like(u'%' + search_keywords.lower() + \ + u'%')), Song.search_title.asc()) + self.displayResultsSong(search_results) + if search_type == 2: log.debug(u'Titles Search') search_results = self.parent.manager.get_all_objects(Song, Song.search_title.like(u'%' + self.whitespace.sub(u' ', search_keywords.lower()) + u'%'), Song.search_title.asc()) self.displayResultsSong(search_results) - elif search_type == 1: + elif search_type == 3: log.debug(u'Lyrics Search') search_results = self.parent.manager.get_all_objects(Song, Song.search_lyrics.like(u'%' + search_keywords.lower() + u'%'), Song.search_lyrics.asc()) self.displayResultsSong(search_results) - elif search_type == 2: + elif search_type == 4: log.debug(u'Authors Search') search_results = self.parent.manager.get_all_objects(Author, Author.display_name.like(u'%' + search_keywords + u'%'), @@ -457,4 +454,4 @@ class SongMediaItem(MediaManagerItem): """ Locale aware collation of song titles """ - return locale.strcoll(unicode(song_1.title), unicode(song_2.title)) \ No newline at end of file + return locale.strcoll(unicode(song_1.title), unicode(song_2.title)) diff --git a/resources/images/general_search_clear.png b/resources/images/general_search_clear.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4b83b7ac6e451f461973dac0c9a6c53dedef25 GIT binary patch literal 644 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfLzW3kH}&M z2FBeW%xLxI@gtz1WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~*<rU5=7 zuK)l42dcMnvI3GiMmj)JK|ujXii!#WNmf=?TRR&d!`99^IXM}~U}R)8Fw|#aVp366 z0g@6D;w&sIyu7?XaUd7S25MnrV`FD$2Rf05hX*JnARr(jA}k^zA}J{eG+a?hQAtTj zU0qGzK+n+7(8$=(+}zyC$_i+Oy}i975IEVpxH`MKy1Ki&djWyBhqt%4ub;Oc5cvBB z1Ox;J2Zw}&goTBMg@;5$hDAn3Mn^}dq$H=LC8cGgWMpJy0YP?pVPRouX=!C;WmQ#G zOG`^zTU%FG*MtcZ=FgwMX3d&)>(*`Bv~l~6?FSDYJaY8Nv17;1UpRl|%9VTf?mc|? z@cHxSFJHcV_3G8zw{Jgu`0)Aj=PzHr{QC9l_wV0-{`@KR`o0Pn77`^ve!&d#@_Ksq z_8}pusXI=cy7Kht(+?kh{P_EqYvr0*Ks9qcT^vIsB<CJv7Gq*$U_CHD_x85j+hx(! z|CL*89p0NV|LN4@3TF9{bn4Y($NlDSw$%Pe(C#u$3X&K6yhu7fCUn)d`a9w*l_zg9 zelWf0v#F%Q=47;D5{tq|cc+67rl`yh?hoc}SiUVHxAXAV65D4bR(lGku>JkEM|1so z>*;dxIy;s3ojI<x+U-Dte%qDV>&$kq&AP_I<(sjr<Ku1am?9a8z1sZxK!-ATy85}S Ib4q9e0FX@VYXATM literal 0 HcmV?d00001 diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc index e9ec5c0a3..6b9d6dd54 100644 --- a/resources/images/openlp-2.qrc +++ b/resources/images/openlp-2.qrc @@ -1,5 +1,9 @@ <RCC> <qresource prefix="songs"> + <file>song_search_all.png</file> + <file>song_search_author.png</file> + <file>song_search_lyrics.png</file> + <file>song_search_title.png</file> <file>topic_edit.png</file> <file>author_add.png</file> <file>author_delete.png</file> diff --git a/resources/images/song_search_all.png b/resources/images/song_search_all.png new file mode 100644 index 0000000000000000000000000000000000000000..cedee77007ae3f4b236a482c0c882038fef9c93a GIT binary patch literal 607 zcmV-l0-*hgP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW zd<bNS00009a7bBm0005I0005I0XppC;s5{u8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H10o+MMK~y-6rBh976HydB_oef}WM*JmT1)*XmS$10#a04>bP>d5 z-TD)XxNzx86n{ZiE((I+O0uo4goYxBM&d`o*g}<PDA6|QWYQ$__1<%3YV9;A-rc?D zaPGP9aY#yu|EYn0A=3h#)b!K^+cAwF%WfV3D9HikNQa4;v(uyVW8*{f&WLs1vFuYr zwxbQE9lUx`ezUSz$R6up_S*R3l}ouL1_gc)q2mYWw0wN2d021NP^o@v^gThb6s*2| zheqh488_jEO$aUmMEJ-!Z7FT$^%d|bP&U6;Ui)fPfQI)_@d0golJ{ji`Q*f9uhhBI zSHK>&LbXsYb{~hg|HMqv5im}D1q`M$B2W^hrA(%$;vUA5NSsS{41_q0C=v%hm&j^{ zU2wq@1@@wSbfRvrPduR!w85n~G|TOfSzSY>zM)Qr@xk6i2X4?pEaG0Dc|g}kx96(q z36xYLeCU7nwIdGZ@-)oO;og1))4>Kt;vL%hg$29FmcN!PW0t`h!%I&SH;)L^xAAmg z=4!S)RfM<h#_dSn1pp#404&!sD2hF@`7YlC&>|uxr4+p^oW7-AOizg$17{G{9`R@O tJf2G_{lu62tqz5Wh*AIu0GEH6^Plm<$@(331Frx8002ovPDHLkV1hRG5Jvz2 literal 0 HcmV?d00001 diff --git a/resources/images/song_search_author.png b/resources/images/song_search_author.png new file mode 100644 index 0000000000000000000000000000000000000000..c974107d2829beeb5ba40bd4abfc536c1b5fe3b1 GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6n2Mb|LpV4>-?)JUISV`@iy0Ug zcY`pa)tkqUfP#`Gt`Q}{`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0aZ(Qx;Tbt zoKOC7zM<hz9oO+G=RABLi#T*BdKP<W&inpf{`>vk`wt2Faq_S(id`k2^Pm0i_5b<& zAxc~Md>Q+9-#UNbf82lGf7wh6Z`MDS-!o5x%Vn4DKkGl?&CZkmKjID$>3CoMZ~e!3 zNj}qm-m;E?3T3B%?SE8XsiILP>)QB1(075Iq>6@txGQ7%%rEs*|6lsAx-j5}UAuM{ z6PwsNyNCIU{yPRdu}@bQ=AYJ(<SqC^`-?nFB=g1=mCcOD-TwU-I8oYkwZBntT|?vC ztqp%WKKPp_7!)=yyk7shevf#>YKff=)1Gg>e}#!{-R=6F|78MB{EdIV|9Jh||9AK! zv?L<--()=8``%ugO@#SZ_h)ftZG$R_LWc=P3@@X9THg5(T@DOL22WQ%mvv4FO#rj_ Bsq6p% literal 0 HcmV?d00001 diff --git a/resources/images/song_search_lyrics.png b/resources/images/song_search_lyrics.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab7145c6520bc770aedc33259b26d1df59f1361 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJbFq_W2nPqp?T7vkfLzW3kH}&M z2FBeW%xLxI@gtz1WQl7;NpOBzNqJ&XDnogBxn5>oc5!lIL8@MUQTpt6Hc~)E9sxcf zuK)l42Qs<RK2)v!%9Z{BWMIZS?u>W(4WB}%e<@${og@7nN9H?@3?TWQBjY_sI*9D< z?gpxa10dJu!nw~tzF0|+UoeBTk&%ge1qf7DRoB$k)i*S??EDrrc?M8LxTlL_h=gS8 z!AQO)2L{#+TAvsMkL2$7@2jeJ^3TOh>n+2jc(j<S*1K2kTO)02#eVdld;5YPoJ~!o z${e|wwXA`hkM{lJTqNY8YH@ekQ>*irOC*oWysc)|Il#i*CwBG^$WflIelF{r5}E*( C9&~j8 literal 0 HcmV?d00001 diff --git a/resources/images/song_search_title.png b/resources/images/song_search_title.png new file mode 100644 index 0000000000000000000000000000000000000000..2323757e0e94760b6aec976d52da09ee2584bb7d GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF<E_U(^;o#u7{m}mbkjq)%5n0T@ zz_=TP8Li$tegqVhEOCt}3C>R|DNig)WhgH%*UQYyE>2D?NY%?PN}v7CMhd7%J-{c# z_5c6>9WXF)(u7^Rb{;r*;ONn#7cO3S^XARlw{PFQdk0jr(_cj#sD-&C$S;_|`i9?` zLLiU9(9^{+gyVX0f&vqVWOJiZ^RG8|9X4$4IQVMDaY==UGYPe7Y)5YNv@(V>UuQLE aH)mjws#a^|o9@yJ((UQ$=d#Wzp$PyKYFkPG literal 0 HcmV?d00001 From 31721c51d65102139b3e9122a8969fd81a86aec5 Mon Sep 17 00:00:00 2001 From: M2j <meinert@gmx.at> Date: Tue, 28 Dec 2010 22:24:21 +0100 Subject: [PATCH 20/49] Theme preview resizing for the ThemeWizard --- openlp/core/ui/themeform.py | 21 ++++++++++++++++ openlp/core/ui/themewizard.py | 25 +++++++++----------- openlp/plugins/songs/forms/songimportform.py | 2 +- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 1eeae8dbe..76e2d240b 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -215,6 +215,25 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.mainLineCountLabel.setText(unicode(translate('OpenLP.ThemeForm', \ '(%d lines per slide)' % int(lines)))) + def resizeEvent(self, event=None): + """ + Rescale the theme preview thumbnail on resize events. + """ + if not event: + event = QtGui.QResizeEvent(self.size(), self.size()) + QtGui.QWizard.resizeEvent(self, event) + if self.currentPage() == self.previewPage: + frameWidth = self.previewBoxLabel.lineWidth() + pixmapWidth = self.previewArea.width() - 2 * frameWidth + pixmapHeight = self.previewArea.height() - 2 * frameWidth + aspectRatio = float(pixmapWidth) / pixmapHeight + if aspectRatio < self.displayAspectRatio: + pixmapHeight = int(pixmapWidth / self.displayAspectRatio + 0.5) + else: + pixmapWidth = int(pixmapHeight * self.displayAspectRatio + 0.5) + self.previewBoxLabel.setFixedSize(pixmapWidth + 2 * frameWidth, + pixmapHeight + 2 * frameWidth) + def onCurrentIdChanged(self, pageId): """ Detects Page changes and updates as approprate. @@ -223,6 +242,8 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.updateTheme() frame = self.thememanager.generateImage(self.theme) self.previewBoxLabel.setPixmap(QtGui.QPixmap.fromImage(frame)) + self.displayAspectRatio = float(frame.width()) / frame.height() + self.resizeEvent() def onOutlineCheckCheckBoxStateChanged(self, state): """ diff --git a/openlp/core/ui/themewizard.py b/openlp/core/ui/themewizard.py index 9aa27b709..691b5e568 100644 --- a/openlp/core/ui/themewizard.py +++ b/openlp/core/ui/themewizard.py @@ -363,22 +363,19 @@ class Ui_ThemeWizard(object): self.themeNameEdit.setObjectName(u'ThemeNameEdit') self.themeNameLayout.addRow(self.themeNameLabel, self.themeNameEdit) self.previewLayout.addLayout(self.themeNameLayout) - self.previewPaneLayout = QtGui.QHBoxLayout() - self.previewPaneLayout.setObjectName(u'PreviewPaneLayout') - self.previewPaneLayout.addStretch() - self.previewBoxLabel = QtGui.QLabel(self.previewPage) - sizePolicy = QtGui.QSizePolicy( - QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) - self.previewBoxLabel.setSizePolicy(sizePolicy) - self.previewBoxLabel.setMinimumSize(QtCore.QSize(100, 150)) - self.previewBoxLabel.setFrameShape(QtGui.QFrame.WinPanel) - self.previewBoxLabel.setFrameShadow(QtGui.QFrame.Sunken) - self.previewBoxLabel.setLineWidth(1) + self.previewArea = QtGui.QWidget(self.previewPage) + self.previewArea.setObjectName(u'PreviewArea') + self.previewAreaLayout = QtGui.QGridLayout(self.previewArea) + self.previewAreaLayout.setMargin(0) + self.previewAreaLayout.setColumnStretch(0, 1) + self.previewAreaLayout.setRowStretch(0, 1) + self.previewAreaLayout.setObjectName(u'PreviewAreaLayout') + self.previewBoxLabel = QtGui.QLabel(self.previewArea) + self.previewBoxLabel.setFrameShape(QtGui.QFrame.Box) self.previewBoxLabel.setScaledContents(True) self.previewBoxLabel.setObjectName(u'PreviewBoxLabel') - self.previewPaneLayout.addWidget(self.previewBoxLabel) - self.previewPaneLayout.addStretch() - self.previewLayout.addLayout(self.previewPaneLayout) + self.previewAreaLayout.addWidget(self.previewBoxLabel) + self.previewLayout.addWidget(self.previewArea) ThemeWizard.addPage(self.previewPage) self.retranslateUi(ThemeWizard) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 672164253..1ea7d14ab 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -144,7 +144,7 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): """ if self.currentPage() == self.welcomePage: return True - elif self.currentId() == self.sourcePage: + elif self.currentPage() == self.sourcePage: source_format = self.formatComboBox.currentIndex() if source_format == SongFormat.OpenLP2: if self.openLP2FilenameEdit.text().isEmpty(): From 6f26c6fc0a2d0001e9395a68445827db32068094 Mon Sep 17 00:00:00 2001 From: Raoul Snyman <raoul.snyman@saturnlaboratories.co.za> Date: Tue, 28 Dec 2010 23:41:12 +0200 Subject: [PATCH 21/49] Fix up a small bug left over from the changeover to the new search edit. --- openlp/plugins/songs/lib/mediaitem.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 8c06431ed..c94753d61 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -252,7 +252,9 @@ class SongMediaItem(MediaManagerItem): """ if self.searchAsYouType: search_length = 1 - if self.SearchTypeComboBox.currentIndex() == 1: + if self.SearchTextEdit.currentSearchType() == 1: + search_length = 3 + elif self.SearchTextEdit.currentSearchType() == 3: search_length = 7 if len(text) > search_length: self.onSearchTextButtonClick() From 87c1074cfe3801ccc0b034be8bd329e13d044c59 Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Wed, 29 Dec 2010 09:14:13 +0000 Subject: [PATCH 22/49] Add guard for missing filename --- openlp/core/lib/mediamanageritem.py | 4 +- openlp/plugins/images/lib/mediaitem.py | 4 +- openlp/plugins/media/lib/mediaitem.py | 4 +- .../presentations/lib/impresscontroller.py | 5 ++- openlp/plugins/presentations/lib/mediaitem.py | 43 +++++++++++-------- 5 files changed, 33 insertions(+), 27 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 50e43afd0..102fc1f23 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -381,7 +381,7 @@ class MediaManagerItem(QtGui.QWidget): if os.path.exists(thumb): filedate = os.stat(file).st_mtime thumbdate = os.stat(thumb).st_mtime - #if file updated rebuild icon + # if file updated rebuild icon if filedate > thumbdate: self.iconFromFile(file, thumb) else: @@ -544,4 +544,4 @@ class MediaManagerItem(QtGui.QWidget): Method to add processing when a service has been loaded and individual service items need to be processed by the plugins """ - pass \ No newline at end of file + pass diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index fabad8e8c..99b8f624f 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -132,7 +132,7 @@ class ImageMediaItem(MediaManagerItem): os.remove(os.path.join(self.servicePath, unicode(text.text()))) except OSError: - #if not present do not worry + # if not present do not worry pass self.listView.takeItem(row) SettingsManager.set_list(self.settingsSection, @@ -195,4 +195,4 @@ class ImageMediaItem(MediaManagerItem): self.resetButton.setVisible(True) def onPreviewClick(self): - MediaManagerItem.onPreviewClick(self) \ No newline at end of file + MediaManagerItem.onPreviewClick(self) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index e2309ea76..d6719970f 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -89,7 +89,7 @@ class MediaMediaItem(MediaManagerItem): self.ImageWidget.sizePolicy().hasHeightForWidth()) self.ImageWidget.setSizePolicy(sizePolicy) self.ImageWidget.setObjectName(u'ImageWidget') - #Replace backgrounds do not work at present so remove functionality. + # Replace backgrounds do not work at present so remove functionality. self.blankButton = self.toolbar.addToolbarButton( translate('MediaPlugin.MediaItem', 'Replace Background'), u':/slides/slide_blank.png', @@ -159,4 +159,4 @@ class MediaMediaItem(MediaManagerItem): img = QtGui.QPixmap(u':/media/media_video.png').toImage() item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) - self.listView.addItem(item_name) \ No newline at end of file + self.listView.addItem(item_name) diff --git a/openlp/plugins/presentations/lib/impresscontroller.py b/openlp/plugins/presentations/lib/impresscontroller.py index 6ec90c853..d7407b729 100644 --- a/openlp/plugins/presentations/lib/impresscontroller.py +++ b/openlp/plugins/presentations/lib/impresscontroller.py @@ -255,8 +255,9 @@ class ImpressDocument(PresentationDocument): self.document = desktop.loadComponentFromURL(url, u'_blank', 0, properties) except: - log.exception(u'Failed to load presentation') + log.exception(u'Failed to load presentation %s' % url) return False + self.presentation = self.document.getPresentation() self.presentation.Display = \ self.controller.plugin.renderManager.screens.current_display + 1 @@ -478,4 +479,4 @@ class ImpressDocument(PresentationDocument): shape = notes.getByIndex(idx) if shape.supportsService("com.sun.star.drawing.Text"): text += shape.getString() + '\n' - return text \ No newline at end of file + return text diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 4b1067e8e..acd82d4f7 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -153,7 +153,7 @@ class PresentationMediaItem(MediaManagerItem): """ self.DisplayTypeComboBox.clear() for item in self.controllers: - #load the drop down selection + # load the drop down selection if self.controllers[item].enabled(): self.DisplayTypeComboBox.addItem(item) if self.DisplayTypeComboBox.count() > 1: @@ -197,7 +197,7 @@ class PresentationMediaItem(MediaManagerItem): doc.load_presentation() preview = doc.get_thumbnail_path(1, True) doc.close_presentation() - if preview and self.validate(preview, thumb): + if preview and self.validate(preview, file): icon = build_icon(thumb) else: icon = build_icon(u':/general/general_delete.png') @@ -254,22 +254,27 @@ class PresentationMediaItem(MediaManagerItem): for item in items: bitem = self.listView.item(item.row()) filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) - if shortname == self.Automatic: - service_item.shortname = self.findControllerByType(filename) - if not service_item.shortname: - return False - controller = self.controllers[service_item.shortname] - (path, name) = os.path.split(filename) - doc = controller.add_doc(filename) - if doc.get_thumbnail_path(1, True) is None: - doc.load_presentation() - i = 1 - img = doc.get_thumbnail_path(i, True) - while img: - service_item.add_from_command(path, name, img) - i = i + 1 + if os.path.exists(filename): + if shortname == self.Automatic: + service_item.shortname = \ + self.findControllerByType(filename) + if not service_item.shortname: + return False + controller = self.controllers[service_item.shortname] + (path, name) = os.path.split(filename) + doc = controller.add_doc(filename) + if doc.get_thumbnail_path(1, True) is None: + doc.load_presentation() + i = 1 img = doc.get_thumbnail_path(i, True) - doc.close_presentation() + while img: + service_item.add_from_command(path, name, img) + i = i + 1 + img = doc.get_thumbnail_path(i, True) + doc.close_presentation() + else: + # File is no longer present + return False return True else: return False @@ -280,7 +285,7 @@ class PresentationMediaItem(MediaManagerItem): file type. This is used if "Automatic" is set as the preferred controller. Find the first (alphabetic) enabled controller which "supports" the extension. If none found, then look for a controller - which "alsosupports" it instead. + which "also supports" it instead. """ filetype = filename.split(u'.')[1] if not filetype: @@ -293,4 +298,4 @@ class PresentationMediaItem(MediaManagerItem): if self.controllers[controller].enabled(): if filetype in self.controllers[controller].alsosupports: return controller - return None \ No newline at end of file + return None From ad346d8e05cd9ddbc541691df1af591c172fcb68 Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Wed, 29 Dec 2010 09:27:13 +0000 Subject: [PATCH 23/49] Add message popup and guard Images and Media as well --- openlp/plugins/images/lib/mediaitem.py | 15 ++++++++--- openlp/plugins/media/lib/mediaitem.py | 27 ++++++++++++------- openlp/plugins/presentations/lib/mediaitem.py | 7 ++++- 3 files changed, 36 insertions(+), 13 deletions(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 99b8f624f..f7d576913 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -172,9 +172,18 @@ class ImageMediaItem(MediaManagerItem): for item in items: bitem = self.listView.item(item.row()) filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) - (path, name) = os.path.split(filename) - service_item.add_from_image(filename, name) - return True + if os.path.exists(filename): + (path, name) = os.path.split(filename) + service_item.add_from_image(filename, name) + return True + else: + # File is no longer present + QtGui.QMessageBox.critical( + self, translate('ImagePlugin.MediaItem', + 'Missing Image'), + unicode(translate('ImagePlugin.MediaItem', + 'The Image %s no longer exists.')) % filename) + return False else: return False diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index d6719970f..a8bb6456b 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -122,15 +122,24 @@ class MediaMediaItem(MediaManagerItem): if item is None: return False filename = unicode(item.data(QtCore.Qt.UserRole).toString()) - service_item.title = unicode( - translate('MediaPlugin.MediaItem', 'Media')) - service_item.add_capability(ItemCapabilities.RequiresMedia) - # force a nonexistent theme - service_item.theme = -1 - frame = u':/media/image_clapperboard.png' - (path, name) = os.path.split(filename) - service_item.add_from_command(path, name, frame) - return True + if os.path.exists(filename): + service_item.title = unicode( + translate('MediaPlugin.MediaItem', 'Media')) + service_item.add_capability(ItemCapabilities.RequiresMedia) + # force a nonexistent theme + service_item.theme = -1 + frame = u':/media/image_clapperboard.png' + (path, name) = os.path.split(filename) + service_item.add_from_command(path, name, frame) + return True + else: + # File is no longer present + QtGui.QMessageBox.critical( + self, translate('MediaPlugin.MediaItem', + 'Missing Media File'), + unicode(translate('MediaPlugin.MediaItem', + 'The file %s no longer exists.')) % filename) + return False def initialise(self): self.listView.setSelectionMode( diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index acd82d4f7..4176fd58e 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -272,10 +272,15 @@ class PresentationMediaItem(MediaManagerItem): i = i + 1 img = doc.get_thumbnail_path(i, True) doc.close_presentation() + return True else: # File is no longer present + QtGui.QMessageBox.critical( + self, translate('PresentationPlugin.MediaItem', + 'Missing Presentation'), + unicode(translate('PresentationPlugin.MediaItem', + 'The Presentation %s no longer exists.')) % filename) return False - return True else: return False From bb10026b63a6189a65ccb4d76d4725364dfe202e Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Wed, 29 Dec 2010 09:37:36 +0000 Subject: [PATCH 24/49] Correct change in error --- openlp/plugins/presentations/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 4176fd58e..c39371eff 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -197,7 +197,7 @@ class PresentationMediaItem(MediaManagerItem): doc.load_presentation() preview = doc.get_thumbnail_path(1, True) doc.close_presentation() - if preview and self.validate(preview, file): + if preview and self.validate(preview, thumb): icon = build_icon(thumb) else: icon = build_icon(u':/general/general_delete.png') From 89a2280f4e1eae3b3709534e267bb54d7abc9730 Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Wed, 29 Dec 2010 09:43:02 +0000 Subject: [PATCH 25/49] Add css files to manifest file Fixes: https://launchpad.net/bugs/694079 --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) diff --git a/MANIFEST.in b/MANIFEST.in index efccdf79d..992685bcf 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,6 +3,7 @@ recursive-include openlp *.sqlite recursive-include openlp *.csv recursive-include openlp *.html recursive-include openlp *.js +recursive-include openlp *.css recursive-include openlp *.qm recursive-include documentation * recursive-include resources/forms * From 8cdf4d39bf2b98e323c3aef74bc8fa73305411cb Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Wed, 29 Dec 2010 12:45:16 +0000 Subject: [PATCH 26/49] Add muppet exit guard --- openlp/core/ui/mainwindow.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 1fbf40837..7fbe4c55a 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -825,8 +825,18 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): else: event.ignore() else: - self.cleanUp() - event.accept() + ret = QtGui.QMessageBox.question(self, + translate('OpenLP.MainWindow', 'Close OpenLP'), + translate('OpenLP.MainWindow', 'Are you sure you want to Exit.'), + QtGui.QMessageBox.StandardButtons( + QtGui.QMessageBox.Cancel | + QtGui.QMessageBox.Ok), + QtGui.QMessageBox.Ok) + if ret == QtGui.QMessageBox.Ok: + self.cleanUp() + event.accept() + else: + event.ignore() def cleanUp(self): """ From 3ef0098c07653fd0f6c08511f580ada48e18e4cd Mon Sep 17 00:00:00 2001 From: M2j <meinert@gmx.at> Date: Wed, 29 Dec 2010 17:35:10 +0100 Subject: [PATCH 27/49] fix bug #695136 --- openlp/plugins/songs/forms/songimportform.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 1ea7d14ab..5ec7f45e1 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -272,8 +272,8 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): filters += u'%s (*)' % translate('SongsPlugin.ImportWizardForm', 'All Files') filename = QtGui.QFileDialog.getOpenFileName(self, title, - os.path.dirname(SettingsManager.get_last_dir( - self.plugin.settingsSection, 1)), filters) + SettingsManager.get_last_dir(self.plugin.settingsSection, 1), + filters) if filename: editbox.setText(filename) SettingsManager.set_last_dir(self.plugin.settingsSection, @@ -300,8 +300,8 @@ class SongImportForm(QtGui.QWizard, Ui_SongImportWizard): filters += u'%s (*)' % translate('SongsPlugin.ImportWizardForm', 'All Files') filenames = QtGui.QFileDialog.getOpenFileNames(self, title, - os.path.dirname(SettingsManager.get_last_dir( - self.plugin.settingsSection, 1)), filters) + SettingsManager.get_last_dir(self.plugin.settingsSection, 1), + filters) if filenames: listbox.addItems(filenames) SettingsManager.set_last_dir( From 0ec22826a8c7838a345a6ddc740ec920120a765e Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Wed, 29 Dec 2010 17:26:03 +0000 Subject: [PATCH 28/49] Fix message text --- openlp/core/ui/mainwindow.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 7fbe4c55a..b88f69910 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -827,12 +827,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): else: ret = QtGui.QMessageBox.question(self, translate('OpenLP.MainWindow', 'Close OpenLP'), - translate('OpenLP.MainWindow', 'Are you sure you want to Exit.'), + translate('OpenLP.MainWindow', 'Are you sure you want to Exit?'), QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Cancel | - QtGui.QMessageBox.Ok), - QtGui.QMessageBox.Ok) - if ret == QtGui.QMessageBox.Ok: + QtGui.QMessageBox.Yes | + QtGui.QMessageBox.No), + QtGui.QMessageBox.Yes) + if ret == QtGui.QMessageBox.Yes: self.cleanUp() event.accept() else: From cd74645379e27b1193dc8eebbffa070790a7f623 Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Thu, 30 Dec 2010 09:13:39 +0000 Subject: [PATCH 29/49] Fix bug where blank hides the screen on restart. Presentations unblank the screen and reset the display flags and setting. Fixes: https://launchpad.net/bugs/660448 --- openlp/core/lib/serviceitem.py | 4 +-- openlp/core/ui/slidecontroller.py | 26 ++++++++++++++++--- openlp/plugins/presentations/lib/mediaitem.py | 3 ++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 271d3107e..f18605711 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -58,7 +58,7 @@ class ItemCapabilities(object): NoLineBreaks = 7 OnLoadUpdate = 8 AddIfNewItem = 9 - + ProvidesOwnDisplay = 10 class ServiceItem(object): """ @@ -397,4 +397,4 @@ class ServiceItem(object): """ Returns the path of the raw frame """ - return self._raw_frames[row][u'path'] \ No newline at end of file + return self._raw_frames[row][u'path'] diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 728c86a08..0d658dfe9 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -393,6 +393,7 @@ class SlideController(QtGui.QWidget): """ # We need to make this circuit, because we have to consider the other # slidecontroller as well. + log.debug(u'paintEvent live = %s' % self.isLive) self.parent.previewController.previewSizeChanged() self.parent.liveController.previewSizeChanged() @@ -561,6 +562,8 @@ class SlideController(QtGui.QWidget): if self.serviceItem.is_media(): self.onMediaClose() if self.isLive: + if serviceItem.is_capable(ItemCapabilities.ProvidesOwnDisplay): + self._forceUnblank() blanked = self.BlankScreen.isChecked() else: blanked = False @@ -568,8 +571,6 @@ class SlideController(QtGui.QWidget): [serviceItem, self.isLive, blanked, slideno]) self.slideList = {} width = self.parent.ControlSplitter.sizes()[self.split] - # Set pointing cursor when we have something to point at - self.PreviewListWidget.setCursor(QtCore.Qt.PointingHandCursor) self.serviceItem = serviceItem self.PreviewListWidget.clear() self.PreviewListWidget.setRowCount(0) @@ -698,7 +699,7 @@ class SlideController(QtGui.QWidget): """ log.debug(u'mainDisplaySetBackground live = %s' % self.isLive) if not self.display.primary: - self.onHideDisplay(True) + self.onBlankDisplay(True) def onSlideBlank(self): """ @@ -1041,3 +1042,22 @@ class SlideController(QtGui.QWidget): self.video.hide() self.SlidePreview.clear() self.SlidePreview.show() + + def _forceUnblank(self): + """ + Used by command items which provide their own displays to reset the + screen hide attributes + """ + if self.BlankScreen.isChecked: + self.BlankScreen.setChecked(False) + self.HideMenu.setDefaultAction(self.BlankScreen) + QtCore.QSettings().setValue( + self.parent.generalSettingsSection + u'/screen blank', + QtCore.QVariant(False)) + if self.ThemeScreen.isChecked: + self.ThemeScreen.setChecked(False) + self.HideMenu.setDefaultAction(self.ThemeScreen) + if self.DesktopScreen.isChecked: + self.DesktopScreen.setChecked(False) + self.HideMenu.setDefaultAction(self.DesktopScreen) + diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index c39371eff..127230cff 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - SettingsManager, translate, check_item_selected, Receiver + SettingsManager, translate, check_item_selected, Receiver, ItemCapabilities from openlp.plugins.presentations.lib import MessageListener log = logging.getLogger(__name__) @@ -249,6 +249,7 @@ class PresentationMediaItem(MediaManagerItem): return False service_item.title = unicode(self.DisplayTypeComboBox.currentText()) service_item.shortname = unicode(self.DisplayTypeComboBox.currentText()) + service_item.add_capability(ItemCapabilities.ProvidesOwnDisplay) shortname = service_item.shortname if shortname: for item in items: From 74bfde72dc065fda97912795450d554be1f218da Mon Sep 17 00:00:00 2001 From: M2j <meinert@gmx.at> Date: Thu, 30 Dec 2010 13:02:36 +0100 Subject: [PATCH 30/49] removed '- OpenLP' in ThemeWizard title --- openlp/core/ui/themeform.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 76e2d240b..160914802 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -293,11 +293,10 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): self.themeNameEdit.setVisible(not edit) if edit: self.setWindowTitle(unicode(translate('OpenLP.ThemeWizard', - 'Edit Theme %s - OpenLP')) % self.theme.theme_name) + 'Edit Theme %s')) % self.theme.theme_name) self.next() else: - self.setWindowTitle(translate('OpenLP.ThemeWizard', - 'New Theme - OpenLP')) + self.setWindowTitle(translate('OpenLP.ThemeWizard', 'New Theme')) return QtGui.QWizard.exec_(self) def initializePage(self, id): From 599ee1f7fa75feef878e4507445f91ade4df14d0 Mon Sep 17 00:00:00 2001 From: M2j <meinert@gmx.at> Date: Fri, 31 Dec 2010 03:17:41 +0100 Subject: [PATCH 31/49] Lots of i18n fixes and some others. In detail: translate() expanded for numbered strings MediaManager context menus are using the plugins strings instead of own string manipulations Removed string manipulations from ThemeManager and fixed the delete validation Added disambiguation for some plugin strings to distinguish between name plural and container title Added or repaired translate() calls at several positions. --- openlp/core/lib/__init__.py | 7 +-- openlp/core/lib/mediamanageritem.py | 16 +++---- openlp/core/ui/exceptionform.py | 6 ++- openlp/core/ui/generaltab.py | 10 ++--- openlp/core/ui/themeform.py | 8 ++-- openlp/core/ui/thememanager.py | 36 ++++++++------- openlp/plugins/alerts/alertsplugin.py | 8 ++-- openlp/plugins/bibles/bibleplugin.py | 45 +++++++++---------- openlp/plugins/bibles/lib/csvbible.py | 9 ++-- openlp/plugins/bibles/lib/mediaitem.py | 4 +- openlp/plugins/bibles/lib/openlp1.py | 6 +-- openlp/plugins/bibles/lib/opensong.py | 9 ++-- openlp/plugins/bibles/lib/osis.py | 9 ++-- openlp/plugins/custom/customplugin.py | 24 +++++----- openlp/plugins/images/imageplugin.py | 8 ++-- openlp/plugins/images/lib/mediaitem.py | 4 +- openlp/plugins/media/lib/mediaitem.py | 9 ++-- openlp/plugins/media/mediaplugin.py | 22 ++++----- openlp/plugins/presentations/lib/mediaitem.py | 6 +-- .../presentations/presentationplugin.py | 21 +++++---- openlp/plugins/remotes/remoteplugin.py | 8 ++-- .../songs/forms/songmaintenanceform.py | 41 ++++++++--------- openlp/plugins/songs/lib/cclifileimport.py | 8 ++-- openlp/plugins/songs/lib/mediaitem.py | 15 +++---- openlp/plugins/songs/lib/olpimport.py | 8 ++-- openlp/plugins/songs/lib/songbeamerimport.py | 14 +++--- openlp/plugins/songs/songsplugin.py | 20 ++++----- .../songusage/forms/songusagedetailform.py | 5 ++- openlp/plugins/songusage/songusageplugin.py | 11 +++-- 29 files changed, 201 insertions(+), 196 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 99255c6ee..ebbe31597 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -84,7 +84,8 @@ html_expands.append({u'desc': u'Underline', u'start tag': u'{u}', u'start html': u'<span style="text-decoration: underline;">', u'end tag': u'{/u}', u'end html': u'</span>', u'protected': True}) -def translate(context, text, comment=None): +def translate(context, text, comment=None, + encoding=QtCore.QCoreApplication.CodecForTr, n=-1): """ A special shortcut method to wrap around the Qt4 translation functions. This abstracts the translation procedure so that we can change it if at a @@ -101,7 +102,7 @@ def translate(context, text, comment=None): An identifying string for when the same text is used in different roles within the same context. """ - return QtCore.QCoreApplication.translate(context, text, comment) + return QtCore.QCoreApplication.translate(context, text, comment, encoding, n) def get_text_file_string(text_file): """ @@ -325,4 +326,4 @@ from dockwidget import OpenLPDockWidget from renderer import Renderer from rendermanager import RenderManager from mediamanageritem import MediaManagerItem -from baselistwithdnd import BaseListWithDnD \ No newline at end of file +from baselistwithdnd import BaseListWithDnD diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 50e43afd0..7991135f7 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -284,34 +284,30 @@ class MediaManagerItem(QtGui.QWidget): self.listView.addAction( context_menu_action( self.listView, u':/general/general_edit.png', - unicode(translate('OpenLP.MediaManagerItem', '&Edit %s')) % - name_string[u'singular'], + self.plugin.getString(StringContent.Edit)[u'title'], self.onEditClick)) self.listView.addAction(context_menu_separator(self.listView)) if self.hasDeleteIcon: self.listView.addAction( context_menu_action( self.listView, u':/general/general_delete.png', - unicode(translate('OpenLP.MediaManagerItem', - '&Delete %s')) % - name_string[u'singular'], + self.plugin.getString(StringContent.Delete)[u'title'], self.onDeleteClick)) self.listView.addAction(context_menu_separator(self.listView)) self.listView.addAction( context_menu_action( self.listView, u':/general/general_preview.png', - unicode(translate('OpenLP.MediaManagerItem', '&Preview %s')) % - name_string[u'singular'], + self.plugin.getString(StringContent.Preview)[u'title'], self.onPreviewClick)) self.listView.addAction( context_menu_action( self.listView, u':/general/general_live.png', - translate('OpenLP.MediaManagerItem', '&Show Live'), + self.plugin.getString(StringContent.Live)[u'title'], self.onLiveClick)) self.listView.addAction( context_menu_action( self.listView, u':/general/general_add.png', - translate('OpenLP.MediaManagerItem', '&Add to Service'), + self.plugin.getString(StringContent.Service)[u'title'], self.onAddClick)) if self.addToServiceItem: self.listView.addAction( @@ -544,4 +540,4 @@ class MediaManagerItem(QtGui.QWidget): Method to add processing when a service has been loaded and individual service items need to be processed by the plugins """ - pass \ No newline at end of file + pass diff --git a/openlp/core/ui/exceptionform.py b/openlp/core/ui/exceptionform.py index 90a54e12e..3272c7af9 100644 --- a/openlp/core/ui/exceptionform.py +++ b/openlp/core/ui/exceptionform.py @@ -135,7 +135,9 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): '--- Please enter the report below this line. ---\n\n\n' '--- Exception Traceback ---\n%s\n' '--- System information ---\n%s\n' - '--- Library Versions ---\n%s\n')) + '--- Library Versions ---\n%s\n', + 'Please add the information that bug reports are favoured written ' + 'in English.')) content = self._createReport() for line in content[1].split(u'\n'): if re.search(r'[/\\]openlp[/\\]', line): @@ -144,4 +146,4 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog): exception = line.split(u'\n')[-1].split(u':')[0] subject = u'Bug report: %s in %s' % (exception, source) mailto(address=u'bugs@openlp.org', subject=subject, - body=body % content) \ No newline at end of file + body=body % content) diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index 8c56648c8..6d98d0858 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -389,11 +389,11 @@ class GeneralTab(SettingsTab): settings = QtCore.QSettings() settings.beginGroup(self.settingsSection) for screen in self.screens.screen_list: - screen_name = u'%s %d' % (translate('OpenLP.GeneralTab', 'Screen'), - screen[u'number'] + 1) + screen_name = unicode(translate('OpenLP.GeneralTab', 'Screen %d')) \ + % (screen[u'number'] + 1) if screen[u'primary']: - screen_name = u'%s (%s)' % (screen_name, - translate('OpenLP.GeneralTab', 'primary')) + screen_name = unicode(translate('OpenLP.GeneralTab', + '%s (primary)')) % screen_name self.monitorComboBox.addItem(screen_name) self.numberEdit.setText(unicode(settings.value( u'ccli number', QtCore.QVariant(u'')).toString())) @@ -530,4 +530,4 @@ class GeneralTab(SettingsTab): """ Called when the width, height, x position or y position has changed. """ - self.overrideChanged = True \ No newline at end of file + self.overrideChanged = True diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index c7854e187..44720cbcc 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -586,8 +586,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QMessageBox.critical(self, translate('OpenLP.ThemeForm', 'Theme Name Missing'), translate('OpenLP.ThemeForm', - 'There is no name for this theme. ' - 'Please enter one.'), + 'There is no name for this theme. Please enter one.'), (QtGui.QMessageBox.Ok), QtGui.QMessageBox.Ok) return @@ -595,8 +594,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QMessageBox.critical(self, translate('OpenLP.ThemeForm', 'Theme Name Invalid'), translate('OpenLP.ThemeForm', - 'Invalid theme name. ' - 'Please enter one.'), + 'Invalid theme name. Please enter one.'), (QtGui.QMessageBox.Ok), QtGui.QMessageBox.Ok) return @@ -620,4 +618,4 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QColor(field), self) if new_color.isValid(): field = new_color.name() - return field \ No newline at end of file + return field diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 82d7c4b0e..584edf909 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -223,8 +223,11 @@ class ThemeManager(QtGui.QWidget): """ Renames an existing theme to a new name """ - action = unicode(translate('OpenLP.ThemeManager', 'Rename')) - if self._validate_theme_action(action, False): + if self._validate_theme_action(unicode(translate('OpenLP.ThemeManager', + 'You must select a theme to rename.')), + unicode(translate('OpenLP.ThemeManager', 'Rename Confirmation')), + unicode(translate('OpenLP.ThemeManager', 'Rename %s theme?')), + False): item = self.themeListWidget.currentItem() oldThemeName = unicode(item.data(QtCore.Qt.UserRole).toString()) self.fileRenameForm.fileNameEdit.setText(oldThemeName) @@ -288,8 +291,10 @@ class ThemeManager(QtGui.QWidget): """ Delete a theme """ - action = unicode(translate('OpenLP.ThemeManager', 'Delete')) - if self._validate_theme_action(action): + if self._validate_theme_action(unicode(translate('OpenLP.ThemeManager', + 'You must select a theme to delete.')), + unicode(translate('OpenLP.ThemeManager', 'Delete Confirmation')), + unicode(translate('OpenLP.ThemeManager', 'Delete %s theme?'))): item = self.themeListWidget.currentItem() theme = unicode(item.text()) row = self.themeListWidget.row(item) @@ -750,7 +755,8 @@ class ThemeManager(QtGui.QWidget): theme.extend_image_filename(path) return theme - def _validate_theme_action(self, action, testPlugin=True): + def _validate_theme_action(self, select_text, confirm_title, confirm_text, + testPlugin=True): """ Check to see if theme has been selected and the destructive action is allowed. @@ -758,19 +764,14 @@ class ThemeManager(QtGui.QWidget): self.global_theme = unicode(QtCore.QSettings().value( self.settingsSection + u'/global theme', QtCore.QVariant(u'')).toString()) - if check_item_selected(self.themeListWidget, - unicode(translate('OpenLP.ThemeManager', - 'You must select a theme to %s.')) % action): + if check_item_selected(self.themeListWidget, select_text): item = self.themeListWidget.currentItem() theme = unicode(item.text()) # confirm deletion - answer = QtGui.QMessageBox.question(self, - unicode(translate('OpenLP.ThemeManager', '%s Confirmation')) - % action, - unicode(translate('OpenLP.ThemeManager', '%s %s theme?')) - % (action, theme), - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | - QtGui.QMessageBox.No), 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 @@ -779,6 +780,7 @@ class ThemeManager(QtGui.QWidget): translate('OpenLP.ThemeManager', 'Error'), translate('OpenLP.ThemeManager', 'You are unable to delete the default theme.')) + return False else: if testPlugin: for plugin in self.parent.pluginManager.plugins: @@ -795,4 +797,6 @@ class ThemeManager(QtGui.QWidget): unicode(translate('OpenLP.ThemeManager', 'Theme %s is used by the service manager.')) % theme) return False - return True \ No newline at end of file + else: + return False + return True diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index 277a3903a..4a7e18cef 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -114,10 +114,10 @@ class AlertsPlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('AlertsPlugin', 'Alert'), - u'plural': translate('AlertsPlugin', 'Alerts') + u'singular': translate('AlertsPlugin', 'Alert', 'name singular'), + u'plural': translate('AlertsPlugin', 'Alerts', 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('AlertsPlugin', 'Alerts') - } \ No newline at end of file + u'title': translate('AlertsPlugin', 'Alerts', 'container title') + } diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 3e8dc82ee..15181e871 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -126,53 +126,48 @@ class BiblePlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('BiblesPlugin', 'Bible'), - u'plural': translate('BiblesPlugin', 'Bibles') + u'singular': translate('BiblesPlugin', 'Bible', 'name singular'), + u'plural': translate('BiblesPlugin', 'Bibles', 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('BiblesPlugin', 'Bibles') + u'title': translate('BiblesPlugin', 'Bibles', 'container title') } # Middle Header Bar - ## Import Button ## + ## Import Action ## self.textStrings[StringContent.Import] = { - u'title': translate('BiblesPlugin', 'Import'), - u'tooltip': translate('BiblesPlugin', - 'Import a Bible') + u'title': translate('BiblesPlugin', '&Import'), + u'tooltip': translate('BiblesPlugin', 'Import a Bible') } - ## New Button ## + ## New Action ## self.textStrings[StringContent.New] = { - u'title': translate('BiblesPlugin', 'Add'), - u'tooltip': translate('BiblesPlugin', - 'Add a new Bible') + u'title': translate('BiblesPlugin', '&Add'), + u'tooltip': translate('BiblesPlugin', 'Add a new Bible') } - ## Edit Button ## + ## Edit Action ## self.textStrings[StringContent.Edit] = { - u'title': translate('BiblesPlugin', 'Edit'), - u'tooltip': translate('BiblesPlugin', - 'Edit the selected Bible') + u'title': translate('BiblesPlugin', '&Edit'), + u'tooltip': translate('BiblesPlugin', 'Edit the selected Bible') } - ## Delete Button ## + ## Delete Action ## self.textStrings[StringContent.Delete] = { - u'title': translate('BiblesPlugin', 'Delete'), - u'tooltip': translate('BiblesPlugin', - 'Delete the selected Bible') + u'title': translate('BiblesPlugin', '&Delete'), + u'tooltip': translate('BiblesPlugin', 'Delete the selected Bible') } - ## Preview ## + ## Preview Action ## self.textStrings[StringContent.Preview] = { u'title': translate('BiblesPlugin', 'Preview'), - u'tooltip': translate('BiblesPlugin', - 'Preview the selected Bible') + u'tooltip': translate('BiblesPlugin', 'Preview the selected Bible') } - ## Live Button ## + ## Send Live Action ## self.textStrings[StringContent.Live] = { u'title': translate('BiblesPlugin', 'Live'), u'tooltip': translate('BiblesPlugin', 'Send the selected Bible live') } - ## Add to service Button ## + ## Add to Service Action ## self.textStrings[StringContent.Service] = { u'title': translate('BiblesPlugin', 'Service'), u'tooltip': translate('BiblesPlugin', 'Add the selected Bible to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py index b6cd81bf5..143b427fb 100644 --- a/openlp/plugins/bibles/lib/csvbible.py +++ b/openlp/plugins/bibles/lib/csvbible.py @@ -92,9 +92,10 @@ class CSVBible(BibleDB): if book_ptr != line[0]: book = self.get_book(line[0]) book_ptr = book.name - self.wizard.incrementProgressBar(u'%s %s %s...' % ( - translate('BiblesPlugin.CSVImport', 'Importing'), - book.name, line[1])) + self.wizard.incrementProgressBar(unicode(translate( + 'BiblesPlugin.CSVImport', 'Importing %s %s...', + 'Importing <book name> <chapter>...')) % + (book.name, int(line[1]))) self.session.commit() self.create_verse(book.id, line[1], line[2], unicode(line[3], details['encoding'])) @@ -109,4 +110,4 @@ class CSVBible(BibleDB): if self.stop_import_flag: return False else: - return success \ No newline at end of file + return success diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 20fa9e1f6..3f5ed41e4 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -912,7 +912,7 @@ class BibleMediaItem(MediaManagerItem): old_chapter != chapter: verse_text = unicode(chapter) + verse_separator + unicode(verse) else: - verse_text = u'%s' % verse + verse_text = unicode(verse) if self.parent.settings_tab.display_style == 1: verse_text = u'{su}(' + verse_text + u'){/su}' elif self.parent.settings_tab.display_style == 2: @@ -921,4 +921,4 @@ class BibleMediaItem(MediaManagerItem): verse_text = u'{su}[' + verse_text + u']{/su}' else: verse_text = u'{su}' + verse_text + u'{/su}' - return verse_text \ No newline at end of file + return verse_text diff --git a/openlp/plugins/bibles/lib/openlp1.py b/openlp/plugins/bibles/lib/openlp1.py index 41f4a2836..866652e5b 100644 --- a/openlp/plugins/bibles/lib/openlp1.py +++ b/openlp/plugins/bibles/lib/openlp1.py @@ -73,8 +73,8 @@ class OpenLP1Bible(BibleDB): abbreviation = unicode(book[3], u'cp1252') self.create_book(name, abbreviation, testament_id) # Update the progess bar. - self.wizard.incrementProgressBar(u'%s %s...' % (translate( - 'BiblesPlugin.OpenLP1Import', 'Importing'), name)) + self.wizard.incrementProgressBar(unicode(translate( + 'BiblesPlugin.OpenLP1Import', 'Importing %s...')) % name) # Import the verses for this book. cursor.execute(u'SELECT chapter, verse, text || \'\' AS text FROM ' 'verse WHERE book_id=%s' % book_id) @@ -90,4 +90,4 @@ class OpenLP1Bible(BibleDB): Receiver.send_message(u'openlp_process_events') self.session.commit() connection.close() - return True \ No newline at end of file + return True diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py index 241efbc0e..0d02cf11f 100644 --- a/openlp/plugins/bibles/lib/opensong.py +++ b/openlp/plugins/bibles/lib/opensong.py @@ -84,9 +84,10 @@ class OpenSongBible(BibleDB): unicode(verse.text) ) Receiver.send_message(u'openlp_process_events') - self.wizard.incrementProgressBar(u'%s %s %s...' % ( - translate('BiblesPlugin.Opensong', 'Importing'), - db_book.name, chapter.attrib[u'n'])) + self.wizard.incrementProgressBar(unicode(translate( + 'BiblesPlugin.Opensong', 'Importing %s %s...', + 'Importing <book name> <chapter>...')) % + (db_book.name, int(chapter.attrib[u'n']))) self.session.commit() except IOError: log.exception(u'Loading bible from OpenSong file failed') @@ -97,4 +98,4 @@ class OpenSongBible(BibleDB): if self.stop_import_flag: return False else: - return success \ No newline at end of file + return success diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index 5b359240f..8bf2462ac 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -140,9 +140,10 @@ class OSISBible(BibleDB): if last_chapter != chapter: if last_chapter != 0: self.session.commit() - self.wizard.incrementProgressBar(u'%s %s %s...' % ( - translate('BiblesPlugin.OsisImport', 'Importing'), - self.books[match.group(1)][0], chapter)) + self.wizard.incrementProgressBar(unicode(translate( + 'BiblesPlugin.OsisImport', 'Importing %s %s...', + 'Importing <book name> <chapter>...')) % + (self.books[match.group(1)][0], chapter)) last_chapter = chapter # All of this rigmarol below is because the mod2osis # tool from the Sword library embeds XML in the OSIS @@ -180,4 +181,4 @@ class OSISBible(BibleDB): if self.stop_import_flag: return False else: - return success \ No newline at end of file + return success diff --git a/openlp/plugins/custom/customplugin.py b/openlp/plugins/custom/customplugin.py index 9580077a8..54cb38501 100644 --- a/openlp/plugins/custom/customplugin.py +++ b/openlp/plugins/custom/customplugin.py @@ -104,57 +104,57 @@ class CustomPlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('CustomsPlugin', 'Custom'), - u'plural': translate('CustomsPlugin', 'Customs') + u'singular': translate('CustomsPlugin', 'Custom', 'name singular'), + u'plural': translate('CustomsPlugin', 'Customs', 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('CustomsPlugin', 'Custom') + u'title': translate('CustomsPlugin', 'Custom', 'container title') } # Middle Header Bar - ## Import Button ## + ## Import Action ## self.textStrings[StringContent.Import] = { u'title': translate('CustomsPlugin', 'Import'), u'tooltip': translate('CustomsPlugin', 'Import a Custom') } - ## Load Button ## + ## Load Action ## self.textStrings[StringContent.Load] = { u'title': translate('CustomsPlugin', 'Load'), u'tooltip': translate('CustomsPlugin', 'Load a new Custom') } - ## New Button ## + ## New Action ## self.textStrings[StringContent.New] = { u'title': translate('CustomsPlugin', 'Add'), u'tooltip': translate('CustomsPlugin', 'Add a new Custom') } - ## Edit Button ## + ## Edit Action ## self.textStrings[StringContent.Edit] = { u'title': translate('CustomsPlugin', 'Edit'), u'tooltip': translate('CustomsPlugin', 'Edit the selected Custom') } - ## Delete Button ## + ## Delete Action ## self.textStrings[StringContent.Delete] = { u'title': translate('CustomsPlugin', 'Delete'), u'tooltip': translate('CustomsPlugin', 'Delete the selected Custom') } - ## Preview ## + ## Preview Action ## self.textStrings[StringContent.Preview] = { u'title': translate('CustomsPlugin', 'Preview'), u'tooltip': translate('CustomsPlugin', 'Preview the selected Custom') } - ## Live Button ## + ## Send Live Action ## self.textStrings[StringContent.Live] = { u'title': translate('CustomsPlugin', 'Live'), u'tooltip': translate('CustomsPlugin', 'Send the selected Custom live') } - ## Add to service Button ## + ## Add to Service Action ## self.textStrings[StringContent.Service] = { u'title': translate('CustomsPlugin', 'Service'), u'tooltip': translate('CustomsPlugin', @@ -167,4 +167,4 @@ class CustomPlugin(Plugin): """ log.info(u'Custom Finalising') self.manager.finalise() - Plugin.finalise(self) \ No newline at end of file + Plugin.finalise(self) diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 4bd7783ee..79b08eb8c 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -64,12 +64,12 @@ class ImagePlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('ImagePlugin', 'Image'), - u'plural': translate('ImagePlugin', 'Images') + u'singular': translate('ImagePlugin', 'Image', 'name singular'), + u'plural': translate('ImagePlugin', 'Images', 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('ImagePlugin', 'Images') + u'title': translate('ImagePlugin', 'Images', 'container title') } # Middle Header Bar ## Load Button ## @@ -113,4 +113,4 @@ class ImagePlugin(Plugin): u'title': translate('ImagePlugin', 'Service'), u'tooltip': translate('ImagePlugin', 'Add the selected Image to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index fabad8e8c..9be08df4b 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -109,7 +109,7 @@ class ImageMediaItem(MediaManagerItem): translate('ImagePlugin.MediaItem', 'Replace Live Background'), self.onReplaceClick, False) self.resetButton = self.toolbar.addToolbarButton( - translate('ImagePlugin.MediaItem', u'Reset Background'), + translate('ImagePlugin.MediaItem', 'Reset Background'), u':/system/system_close.png', translate('ImagePlugin.MediaItem', 'Reset Live Background'), self.onResetClick, False) @@ -195,4 +195,4 @@ class ImageMediaItem(MediaManagerItem): self.resetButton.setVisible(True) def onPreviewClick(self): - MediaManagerItem.onPreviewClick(self) \ No newline at end of file + MediaManagerItem.onPreviewClick(self) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index e2309ea76..bf4aac918 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -60,10 +60,9 @@ class MediaMediaItem(MediaManagerItem): def retranslateUi(self): self.OnNewPrompt = translate('MediaPlugin.MediaItem', 'Select Media') - self.OnNewFileMasks = translate('MediaPlugin.MediaItem', - u'Videos (%s);;' - u'Audio (%s);;' - u'All files (*)' % (self.parent.video_list, self.parent.audio_list)) + self.OnNewFileMasks = unicode(translate('MediaPlugin.MediaItem', + 'Videos (%s);;Audio (%s);;All files (*)')) % \ + (self.parent.video_list, self.parent.audio_list) def requiredIcons(self): MediaManagerItem.requiredIcons(self) @@ -159,4 +158,4 @@ class MediaMediaItem(MediaManagerItem): img = QtGui.QPixmap(u':/media/media_video.png').toImage() item_name.setIcon(build_icon(img)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) - self.listView.addItem(item_name) \ No newline at end of file + self.listView.addItem(item_name) diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 2f5b78b8e..920f703f2 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -93,53 +93,53 @@ class MediaPlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('MediaPlugin', 'Media'), - u'plural': translate('MediaPlugin', 'Media') + u'singular': translate('MediaPlugin', 'Media', 'name singular'), + u'plural': translate('MediaPlugin', 'Media', 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('MediaPlugin', 'Media') + u'title': translate('MediaPlugin', 'Media', 'container title') } # Middle Header Bar - ## Load Button ## + ## Load Action ## self.textStrings[StringContent.Load] = { u'title': translate('MediaPlugin', 'Load'), u'tooltip': translate('MediaPlugin', 'Load a new Media') } - ## New Button ## + ## New Action ## self.textStrings[StringContent.New] = { u'title': translate('MediaPlugin', 'Add'), u'tooltip': translate('MediaPlugin', 'Add a new Media') } - ## Edit Button ## + ## Edit Action ## self.textStrings[StringContent.Edit] = { u'title': translate('MediaPlugin', 'Edit'), u'tooltip': translate('MediaPlugin', 'Edit the selected Media') } - ## Delete Button ## + ## Delete Action ## self.textStrings[StringContent.Delete] = { u'title': translate('MediaPlugin', 'Delete'), u'tooltip': translate('MediaPlugin', 'Delete the selected Media') } - ## Preview ## + ## Preview Action ## self.textStrings[StringContent.Preview] = { u'title': translate('MediaPlugin', 'Preview'), u'tooltip': translate('MediaPlugin', 'Preview the selected Media') } - ## Live Button ## + ## Send Live Action ## self.textStrings[StringContent.Live] = { u'title': translate('MediaPlugin', 'Live'), u'tooltip': translate('MediaPlugin', 'Send the selected Media live') } - ## Add to service Button ## + ## Add to Service Action ## self.textStrings[StringContent.Service] = { u'title': translate('MediaPlugin', 'Service'), u'tooltip': translate('MediaPlugin', 'Add the selected Media to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 4b1067e8e..a7739fa55 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -90,8 +90,8 @@ class PresentationMediaItem(MediaManagerItem): if fileType.find(type) == -1: fileType += u'*.%s ' % type self.parent.serviceManager.supportedSuffixes(type) - self.OnNewFileMasks = translate('PresentationPlugin.MediaItem', - 'Presentations (%s)' % fileType) + self.OnNewFileMasks = unicode(translate('PresentationPlugin.MediaItem', + 'Presentations (%s)')) % fileType def requiredIcons(self): """ @@ -293,4 +293,4 @@ class PresentationMediaItem(MediaManagerItem): if self.controllers[controller].enabled(): if filetype in self.controllers[controller].alsosupports: return controller - return None \ No newline at end of file + return None diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 9c4a64866..8afed6022 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -152,41 +152,44 @@ class PresentationPlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('PresentationPlugin', 'Presentation'), - u'plural': translate('PresentationPlugin', 'Presentations') + u'singular': translate('PresentationPlugin', 'Presentation', + 'name singular'), + u'plural': translate('PresentationPlugin', 'Presentations', + 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('PresentationPlugin', 'Presentations') + u'title': translate('PresentationPlugin', 'Presentations', + 'container title') } # Middle Header Bar - ## Load Button ## + ## Load Action ## self.textStrings[StringContent.Load] = { u'title': translate('PresentationPlugin', 'Load'), u'tooltip': translate('PresentationPlugin', 'Load a new Presentation') } - ## Delete Button ## + ## Delete Action ## self.textStrings[StringContent.Delete] = { u'title': translate('PresentationPlugin', 'Delete'), u'tooltip': translate('PresentationPlugin', 'Delete the selected Presentation') } - ## Preview ## + ## Preview Action ## self.textStrings[StringContent.Preview] = { u'title': translate('PresentationPlugin', 'Preview'), u'tooltip': translate('PresentationPlugin', 'Preview the selected Presentation') } - ## Live Button ## + ## Send Live Action ## self.textStrings[StringContent.Live] = { u'title': translate('PresentationPlugin', 'Live'), u'tooltip': translate('PresentationPlugin', 'Send the selected Presentation live') } - ## Add to service Button ## + ## Add to Service Action ## self.textStrings[StringContent.Service] = { u'title': translate('PresentationPlugin', 'Service'), u'tooltip': translate('PresentationPlugin', 'Add the selected Presentation to the service') - } \ No newline at end of file + } diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 419a51a72..dbc56a61c 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -84,10 +84,10 @@ class RemotesPlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('RemotePlugin', 'Remote'), - u'plural': translate('RemotePlugin', 'Remotes') + u'singular': translate('RemotePlugin', 'Remote', 'name singular'), + u'plural': translate('RemotePlugin', 'Remotes', 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('RemotePlugin', 'Remote') - } \ No newline at end of file + u'title': translate('RemotePlugin', 'Remote', 'container title') + } diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 0fcdc6ab1..0364a4df4 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -109,7 +109,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): author_name = QtGui.QListWidgetItem(author.display_name) else: author_name = QtGui.QListWidgetItem( - u'%s %s' % (author.first_name, author.last_name)) + u' '.join(author.first_name, author.last_name)) author_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id)) self.AuthorsListWidget.addItem(author_name) if self.AuthorsListWidget.count() == 0: @@ -305,12 +305,13 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): 'Could not save your changes.')) elif QtGui.QMessageBox.critical(self, translate('SongsPlugin.SongMaintenanceForm', 'Error'), - translate('SongsPlugin.SongMaintenanceForm', 'The author %s' - ' already exists. Would you like to make songs with author ' - '%s use the existing author %s?' % (author.display_name, - temp_display_name, author.display_name)), - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | - QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: + unicode(translate('SongsPlugin.SongMaintenanceForm', + 'The author %s already exists. Would you like to make songs' + ' with author %s use the existing author %s?')) % + (author.display_name, temp_display_name, + author.display_name), QtGui.QMessageBox.StandardButtons( + QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == \ + QtGui.QMessageBox.Yes: self.mergeAuthors(author) self.resetAuthors() Receiver.send_message(u'songs_load_list') @@ -346,12 +347,12 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): 'Could not save your changes.')) elif QtGui.QMessageBox.critical(self, translate('SongsPlugin.SongMaintenanceForm', 'Error'), - translate('SongsPlugin.SongMaintenanceForm', 'The topic %s ' - 'already exists. Would you like to make songs with topic %s' - ' use the existing topic %s?' % (topic.name, temp_name, - topic.name)), - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | - QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: + unicode(translate('SongsPlugin.SongMaintenanceForm', + 'The topic %s already exists. Would you like to make songs ' + 'with topic %s use the existing topic %s?')) % (topic.name, + temp_name, topic.name), QtGui.QMessageBox.StandardButtons( + QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == \ + QtGui.QMessageBox.Yes: self.mergeTopics(topic) self.resetTopics() else: @@ -389,12 +390,12 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): 'Could not save your changes.')) elif QtGui.QMessageBox.critical(self, translate('SongsPlugin.SongMaintenanceForm', 'Error'), - translate('SongsPlugin.SongMaintenanceForm', 'The book %s ' - 'already exists. Would you like to make songs with book %s ' - 'use the existing book %s?' % (book.name, temp_name, - book.name)), - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | - QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: + unicode(translate('SongsPlugin.SongMaintenanceForm', + 'The book %s already exists. Would you like to make songs ' + 'with book %s use the existing book %s?')) % (book.name, + temp_name, book.name), QtGui.QMessageBox.StandardButtons( + QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == \ + QtGui.QMessageBox.Yes: self.mergeBooks(book) self.resetBooks() else: @@ -498,4 +499,4 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): translate('SongsPlugin.SongMaintenanceForm', 'This book cannot be deleted, it is currently ' 'assigned to at least one song.'), - translate('SongsPlugin.SongMaintenanceForm', 'No book selected!')) \ No newline at end of file + translate('SongsPlugin.SongMaintenanceForm', 'No book selected!')) diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py index 79a7260bb..98e4be51e 100644 --- a/openlp/plugins/songs/lib/cclifileimport.py +++ b/openlp/plugins/songs/lib/cclifileimport.py @@ -29,6 +29,7 @@ import os import chardet import codecs +from openlp.core.lib import translate from songimport import SongImport log = logging.getLogger(__name__) @@ -69,8 +70,9 @@ class CCLIFileImport(SongImport): self.import_wizard.importProgressBar.setMaximum(song_total) song_count = 1 for filename in self.filenames: - self.import_wizard.incrementProgressBar( - u'Importing song %s of %s' % (song_count, song_total)) + self.import_wizard.incrementProgressBar(unicode(translate( + 'SongsPlugin.CCLIFileImport', 'Importing song %d of %d')) % + (song_count, song_total)) filename = unicode(filename) log.debug(u'Importing CCLI File: %s', filename) lines = [] @@ -337,4 +339,4 @@ class CCLIFileImport(SongImport): self.copyright = song_copyright self.ccli_number = song_ccli self.comments = song_comments - self.finish() \ No newline at end of file + self.finish() diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 3be60dec4..6521aa5cd 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -235,7 +235,7 @@ class SongMediaItem(MediaManagerItem): self.listView.clear() for author in searchresults: for song in author.songs: - song_detail = '%s (%s)' % (author.display_name, song.title) + song_detail = u'%s (%s)' % (author.display_name, song.title) song_name = QtGui.QListWidgetItem(song_detail) song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) self.listView.addItem(song_name) @@ -315,16 +315,11 @@ class SongMediaItem(MediaManagerItem): translate('SongsPlugin.MediaItem', 'You must select an item to delete.')): items = self.listView.selectedIndexes() - if len(items) == 1: - del_message = translate('SongsPlugin.MediaItem', - 'Are you sure you want to delete the selected song?') - else: - del_message = unicode(translate('SongsPlugin.MediaItem', - 'Are you sure you want to delete the %d selected ' - 'songs?')) % len(items) ans = QtGui.QMessageBox.question(self, translate('SongsPlugin.MediaItem', 'Delete Song(s)?'), - del_message, + translate('SongsPlugin.MediaItem', + 'Are you sure you want to delete the %n selected song(s)?', '', + QtCore.QCoreApplication.CodecForTr, len(items)), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok| QtGui.QMessageBox.Cancel), QtGui.QMessageBox.Ok) @@ -457,4 +452,4 @@ class SongMediaItem(MediaManagerItem): """ Locale aware collation of song titles """ - return locale.strcoll(unicode(song_1.title), unicode(song_2.title)) \ No newline at end of file + return locale.strcoll(unicode(song_1.title), unicode(song_2.title)) diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index b0175d45f..e366ddf4b 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -34,6 +34,7 @@ from sqlalchemy.orm import class_mapper, mapper, relation, scoped_session, \ sessionmaker from sqlalchemy.orm.exc import UnmappedClassError +from openlp.core.lib import translate from openlp.core.lib.db import BaseModel from openlp.plugins.songs.lib.db import Author, Book, Song, Topic #, MediaFile from songimport import SongImport @@ -148,8 +149,9 @@ class OpenLPSongImport(SongImport): self.import_wizard.importProgressBar.setMaximum(song_total) song_count = 1 for song in source_songs: - self.import_wizard.incrementProgressBar( - u'Importing song %s of %s' % (song_count, song_total)) + self.import_wizard.incrementProgressBar(unicode(translate( + 'SongsPlugin.OpenLPSongImport', 'Importing song %d of %d.')) % + (song_count, song_total)) new_song = Song() new_song.title = song.title if has_media_files and hasattr(song, 'alternate_title'): @@ -220,4 +222,4 @@ class OpenLPSongImport(SongImport): if self.stop_import_flag: return False engine.dispose() - return True \ No newline at end of file + return True diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py index 29884b80c..a69aa0bc1 100644 --- a/openlp/plugins/songs/lib/songbeamerimport.py +++ b/openlp/plugins/songs/lib/songbeamerimport.py @@ -126,17 +126,17 @@ class SongBeamerImport(SongImport): if verse_start: verse_start = False if not self.check_verse_marks(line): - self.current_verse = u'%s\n' % line + self.current_verse = line + u'\n' else: - self.current_verse += u'%s\n' % line + self.current_verse += line + u'\n' if self.current_verse: self.replace_html_tags() self.add_verse(self.current_verse, self.current_verse_type) if self.check_complete(): self.finish() - self.import_wizard.incrementProgressBar(u'%s %s...' % - (translate('SongsPlugin.SongBeamerImport', 'Importing'), - self.file_name)) + self.import_wizard.incrementProgressBar(unicode(translate( + 'SongsPlugin.SongBeamerImport', 'Importing %s...')) % + self.file_name) return True def replace_html_tags(self): @@ -252,7 +252,7 @@ class SongBeamerImport(SongImport): elif tag_val[0] == u'#TextAlign': pass elif tag_val[0] == u'#Title': - self.title = u'%s' % tag_val[1] + self.title = unicode(tag_val[1]) elif tag_val[0] == u'#TitleAlign': pass elif tag_val[0] == u'#TitleFontSize': @@ -292,4 +292,4 @@ class SongBeamerImport(SongImport): self.current_verse_type += marks[1] return True else: - return False \ No newline at end of file + return False diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index a44188c87..545497acb 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -213,45 +213,45 @@ class SongsPlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('SongsPlugin', 'Song'), - u'plural': translate('SongsPlugin', 'Songs') + u'singular': translate('SongsPlugin', 'Song', 'name singular'), + u'plural': translate('SongsPlugin', 'Songs', 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('SongsPlugin', 'Songs') + u'title': translate('SongsPlugin', 'Songs', 'container title') } # Middle Header Bar - ## New Button ## + ## New Action ## self.textStrings[StringContent.New] = { u'title': translate('SongsPlugin', 'Add'), u'tooltip': translate('SongsPlugin', 'Add a new Song') } - ## Edit Button ## + ## Edit Action ## self.textStrings[StringContent.Edit] = { u'title': translate('SongsPlugin', 'Edit'), u'tooltip': translate('SongsPlugin', 'Edit the selected Song') } - ## Delete Button ## + ## Delete Action ## self.textStrings[StringContent.Delete] = { u'title': translate('SongsPlugin', 'Delete'), u'tooltip': translate('SongsPlugin', 'Delete the selected Song') } - ## Preview ## + ## Preview Action ## self.textStrings[StringContent.Preview] = { u'title': translate('SongsPlugin', 'Preview'), u'tooltip': translate('SongsPlugin', 'Preview the selected Song') } - ## Live Button ## + ## Send Live Action ## self.textStrings[StringContent.Live] = { u'title': translate('SongsPlugin', 'Live'), u'tooltip': translate('SongsPlugin', 'Send the selected Song live') } - ## Add to service Button ## + ## Add to Service Action ## self.textStrings[StringContent.Service] = { u'title': translate('SongsPlugin', 'Service'), u'tooltip': translate('SongsPlugin', @@ -265,4 +265,4 @@ class SongsPlugin(Plugin): log.info(u'Songs Finalising') self.manager.finalise() self.toolsReindexItem.setVisible(False) - Plugin.finalise(self) \ No newline at end of file + Plugin.finalise(self) diff --git a/openlp/plugins/songusage/forms/songusagedetailform.py b/openlp/plugins/songusage/forms/songusagedetailform.py index c9c357a84..8588ddcff 100644 --- a/openlp/plugins/songusage/forms/songusagedetailform.py +++ b/openlp/plugins/songusage/forms/songusagedetailform.py @@ -73,7 +73,8 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog): def accept(self): log.debug(u'Detailed report generated') - filename = u'usage_detail_%s_%s.txt' % ( + filename = unicode(translate('SongUsagePlugin.SongUsageDetailForm', + 'usage_detail_%s_%s.txt')) % ( self.fromDate.selectedDate().toString(u'ddMMyyyy'), self.toDate.selectedDate().toString(u'ddMMyyyy')) usage = self.plugin.manager.get_all_objects( @@ -95,4 +96,4 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog): finally: if file: file.close() - self.close() \ No newline at end of file + self.close() diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 4a95b00f7..ec37dc65e 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -175,10 +175,13 @@ class SongUsagePlugin(Plugin): """ ## Name PluginList ## self.textStrings[StringContent.Name] = { - u'singular': translate('SongUsagePlugin', 'SongUsage'), - u'plural': translate('SongUsagePlugin', 'SongUsage') + u'singular': translate('SongUsagePlugin', 'SongUsage', + 'name singular'), + u'plural': translate('SongUsagePlugin', 'SongUsage', + 'name plural') } ## Name for MediaDockManager, SettingsManager ## self.textStrings[StringContent.VisibleName] = { - u'title': translate('SongUsagePlugin', 'SongUsage') - } \ No newline at end of file + u'title': translate('SongUsagePlugin', 'SongUsage', + 'container title') + } From a957e008254e7390f2dc8f59c80bca4edb439071 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat <googol@hush.com> Date: Fri, 31 Dec 2010 09:06:42 +0100 Subject: [PATCH 32/49] fix for a edge case, where the slidecontroller will not resize --- openlp/core/ui/mainwindow.py | 7 +++++++ openlp/core/ui/slidecontroller.py | 15 --------------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index b88f69910..a378dd633 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -747,6 +747,13 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ self.settingsForm.exec_() + def paintEvent(self, event): + """ + We need to make sure, that the SlidePreview's size is correct. + """ + self.previewController.previewSizeChanged() + self.liveController.previewSizeChanged() + def onSettingsShortcutsItemClicked(self): """ Show the shortcuts dialog diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 0d658dfe9..dd7853216 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -377,26 +377,11 @@ class SlideController(QtGui.QWidget): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.typePrefix), self.onTextRequest) - QtCore.QObject.connect(self.parent.ControlSplitter, - QtCore.SIGNAL(u'splitterMoved(int, int)'), self.previewSizeChanged) - QtCore.QObject.connect(self.Splitter, - QtCore.SIGNAL(u'splitterMoved(int, int)'), self.previewSizeChanged) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) - def paintEvent(self, event): - """ - When the Slidecontroller is painted, we need to make sure, that the - SlidePreview's size is updated. - """ - # We need to make this circuit, because we have to consider the other - # slidecontroller as well. - log.debug(u'paintEvent live = %s' % self.isLive) - self.parent.previewController.previewSizeChanged() - self.parent.liveController.previewSizeChanged() - def screenSizeChanged(self): """ Settings dialog has changed the screen size of adjust output and From a83df7ce045a90365c21a005ea54c50fc82c0142 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin <j@corwin.co.uk> Date: Fri, 31 Dec 2010 17:13:23 +0000 Subject: [PATCH 33/49] Fix https://bugs.launchpad.net/openlp/+bug/672164/comments/9 --- openlp/core/ui/slidecontroller.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index dd7853216..6a5e313f0 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -1042,7 +1042,8 @@ class SlideController(QtGui.QWidget): if self.ThemeScreen.isChecked: self.ThemeScreen.setChecked(False) self.HideMenu.setDefaultAction(self.ThemeScreen) - if self.DesktopScreen.isChecked: - self.DesktopScreen.setChecked(False) - self.HideMenu.setDefaultAction(self.DesktopScreen) + if self.screens.display_count > 1: + if self.DesktopScreen.isChecked: + self.DesktopScreen.setChecked(False) + self.HideMenu.setDefaultAction(self.DesktopScreen) From 3198de5c555e28c59073cc71b1d1d6a7e7f6a176 Mon Sep 17 00:00:00 2001 From: Raoul Snyman <raoul.snyman@saturnlaboratories.co.za> Date: Fri, 31 Dec 2010 23:43:02 +0200 Subject: [PATCH 34/49] For once and for all, change the save/save as/load/etc of services. --- openlp/core/ui/mainwindow.py | 39 ++- openlp/core/ui/servicemanager.py | 495 +++++++++++++++++-------------- openlp/core/utils/__init__.py | 9 +- 3 files changed, 305 insertions(+), 238 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index b88f69910..7beae55fa 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -582,16 +582,16 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(self.SettingsShortcutsItem, QtCore.SIGNAL(u'triggered()'), self.onSettingsShortcutsItemClicked) QtCore.QObject.connect(self.FileNewItem, QtCore.SIGNAL(u'triggered()'), - self.ServiceManagerContents.onNewService) + self.ServiceManagerContents.onNewServiceClicked) QtCore.QObject.connect(self.FileOpenItem, QtCore.SIGNAL(u'triggered()'), - self.ServiceManagerContents.onLoadService) + self.ServiceManagerContents.onLoadServiceClicked) QtCore.QObject.connect(self.FileSaveItem, QtCore.SIGNAL(u'triggered()'), - self.ServiceManagerContents.onQuickSaveService) + self.ServiceManagerContents.onSaveServiceClicked) QtCore.QObject.connect(self.FileSaveAsItem, QtCore.SIGNAL(u'triggered()'), - self.ServiceManagerContents.onSaveService) + self.ServiceManagerContents.onSaveServiceAsClicked) # i18n set signals for languages QtCore.QObject.connect(self.AutoLanguageItem, QtCore.SIGNAL(u'toggled(bool)'), self.setAutoLanguage) @@ -691,7 +691,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): if QtCore.QSettings().value( self.generalSettingsSection + u'/auto open', QtCore.QVariant(False)).toBool(): - self.ServiceManagerContents.onLoadService(True) + #self.ServiceManagerContents.onLoadService(True) + self.ServiceManagerContents.loadLastFile() view_mode = QtCore.QSettings().value(u'%s/view mode' % \ self.generalSettingsSection, u'default') if view_mode == u'default': @@ -805,7 +806,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ Hook to close the main window and display windows on exit """ - if self.serviceNotSaved: + if self.ServiceManagerContents.isModified(): ret = QtGui.QMessageBox.question(self, translate('OpenLP.MainWindow', 'Save Changes to Service?'), translate('OpenLP.MainWindow', 'Your service has changed. ' @@ -816,9 +817,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtGui.QMessageBox.Save), QtGui.QMessageBox.Save) if ret == QtGui.QMessageBox.Save: - self.ServiceManagerContents.onSaveService(True) - self.cleanUp() - event.accept() + #self.ServiceManagerContents.onSaveService(True) + if self.ServiceManagerContents.saveFile(): + self.cleanUp() + event.accept() + else: + event.ignore() elif ret == QtGui.QMessageBox.Discard: self.cleanUp() event.accept() @@ -878,6 +882,23 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): title = u'%s - %s*' % (self.mainTitle, service_name) self.setWindowTitle(title) + def setServiceModified(self, modified, fileName): + """ + This method is called from the ServiceManager to set the title of the + main window. + + ``modified`` + Whether or not this service has been modified. + + ``fileName`` + The file name of the service file. + """ + if modified: + title = u'%s - %s*' % (self.mainTitle, fileName) + else: + title = u'%s - %s' % (self.mainTitle, fileName) + self.setWindowTitle(title) + def showStatusMessage(self, message): self.StatusBar.showMessage(message) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index e2c1a765b..18dba7058 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -37,7 +37,7 @@ from openlp.core.lib import OpenLPToolbar, ServiceItem, context_menu_action, \ Receiver, build_icon, ItemCapabilities, SettingsManager, translate, \ ThemeLevel from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm -from openlp.core.utils import AppLocation +from openlp.core.utils import AppLocation, split_filename class ServiceManagerList(QtGui.QTreeWidget): """ @@ -90,6 +90,7 @@ class ServiceManagerList(QtGui.QTreeWidget): mimeData.setText(u'ServiceManager') drag.start(QtCore.Qt.CopyAction) + class ServiceManager(QtGui.QWidget): """ Manages the services. This involves taking text strings from plugins and @@ -101,15 +102,16 @@ class ServiceManager(QtGui.QWidget): """ Sets up the service manager, toolbars, list view, et al. """ - QtGui.QWidget.__init__(self) + QtGui.QWidget.__init__(self, parent) self.parent = parent self.serviceItems = [] self.serviceName = u'' self.suffixes = [] - self.droppos = 0 + self.dropPosition = 0 self.expandTabs = False #is a new service and has not been saved - self.isNew = True + self._modified = False + self._fileName = u'' self.serviceNoteForm = ServiceNoteForm(self.parent) self.serviceItemEditForm = ServiceItemEditForm(self.parent) #start with the layout @@ -123,17 +125,17 @@ class ServiceManager(QtGui.QWidget): translate('OpenLP.ServiceManager', 'New Service'), u':/general/general_new.png', translate('OpenLP.ServiceManager', 'Create a new service'), - self.onNewService) + self.onNewServiceClicked) self.toolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Open Service'), u':/general/general_open.png', translate('OpenLP.ServiceManager', 'Load an existing service'), - self.onLoadService) + self.onLoadServiceClicked) self.toolbar.addToolbarButton( translate('OpenLP.ServiceManager', 'Save Service'), u':/general/general_save.png', translate('OpenLP.ServiceManager', 'Save this service'), - self.onQuickSaveService) + self.onSaveServiceClicked) self.toolbar.addSeparator() self.themeLabel = QtGui.QLabel(translate('OpenLP.ServiceManager', 'Theme:'), self) @@ -282,6 +284,40 @@ class ServiceManager(QtGui.QWidget): self.menu.addMenu(self.themeMenu) self.configUpdated(True) + def setModified(self, modified=True): + """ + Setter for property "modified". Sets whether or not the current service + has been modified. + """ + self._modified = modified + serviceFile = self.shortFileName() or u'Untitled Service' + self.parent.setServiceModified(modified, serviceFile) + + def isModified(self): + """ + Getter for boolean property "modified". + """ + return self._modified + + def setFileName(self, fileName): + """ + Setter for service file. + """ + self._fileName = unicode(fileName) + self.parent.setServiceModified(self.isModified, self.shortFileName()) + + def fileName(self): + """ + Return the current file name including path. + """ + return self._fileName + + def shortFileName(self): + """ + Return the current file name, excluding the path. + """ + return split_filename(self._fileName)[1] + def configUpdated(self, firstTime=False): """ Triggered when Config dialog is updated. @@ -295,6 +331,201 @@ class ServiceManager(QtGui.QWidget): def supportedSuffixes(self, suffix): self.suffixes.append(suffix) + def onNewServiceClicked(self): + """ + Create a new service. + """ + if self.isModified(): + result = QtGui.QMessageBox.question(self.parent, + translate('OpenLP.ServiceManager', 'Save Changes'), + translate('OpenLP.ServiceManager', 'The current service has ' + 'been modified, would you like to save it?'), + QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard | + QtGui.QMessageBox.Cancel, QtGui.QMessageBox.Save) + if result == QtGui.QMessageBox.Cancel: + return False + elif result == QtGui.QMessageBox.Save: + if not self.saveFile(): + return False + self.serviceManagerList.clear() + self.serviceItems = [] + self.setFileName(u'') + self.setModified(False) + + def onLoadServiceClicked(self): + if self.isModified(): + result = QtGui.QMessageBox.question(self.parent, + translate('OpenLP.ServiceManager', 'Save Changes'), + translate('OpenLP.ServiceManager', 'The current service has ' + 'been modified, would you like to save it?'), + QtGui.QMessageBox.Save | QtGui.QMessageBox.Discard | + QtGui.QMessageBox.Cancel, QtGui.QMessageBox.Save) + if result == QtGui.QMessageBox.Cancel: + return False + elif result == QtGui.QMessageBox.Save: + self.saveFile() + fileName = unicode(QtGui.QFileDialog.getOpenFileName(self.parent, + translate('OpenLP.ServiceManager', 'Open File'), + SettingsManager.get_last_dir(self.parent.serviceSettingsSection), + translate('OpenLP.ServiceManager', + 'OpenLP Service Files (*.osz) (*.osz)'))) + if not fileName: + return False + SettingsManager.set_last_dir(self.parent.serviceSettingsSection, + split_filename(fileName)[0]) + self.loadFile(fileName) + + def onSaveServiceClicked(self): + self.saveFile() + + def onSaveServiceAsClicked(self): + self.saveFileAs() + + def saveFile(self): + """ + Save the current Service file. + """ + if not self.fileName(): + return self.saveFileAs() + else: + fileName = self.fileName() + log.debug(u'ServiceManager.saveFile - %s' % fileName) + SettingsManager.set_last_dir(self.parent.serviceSettingsSection, + split_filename(fileName)[0]) + service = [] + serviceFileName = fileName.replace(u'.osz', u'.osd') + zip = None + file = None + try: + write_list = [] + zip = zipfile.ZipFile(unicode(fileName), 'w') + for item in self.serviceItems: + service.append({u'serviceitem': \ + item[u'service_item'].get_service_repr()}) + if item[u'service_item'].uses_file(): + for frame in item[u'service_item'].get_frames(): + if item[u'service_item'].is_image(): + path_from = frame[u'path'] + else: + path_from = unicode(os.path.join( + frame[u'path'], + frame[u'title'])) + # On write a file once + if not path_from in write_list: + write_list.append(path_from) + zip.write(path_from.encode(u'utf-8')) + file = open(serviceFileName, u'wb') + cPickle.dump(service, file) + file.close() + zip.write(serviceFileName.encode(u'utf-8')) + except IOError: + log.exception(u'Failed to save service to disk') + finally: + if file: + file.close() + if zip: + zip.close() + try: + os.remove(serviceFileName) + except (IOError, OSError): + # if not present do not worry + pass + self.parent.addRecentFile(fileName) + self.setModified(False) + return True + + def saveFileAs(self): + """ + Get a file name and then call :function:`ServiceManager.saveFile` to + save the file. + """ + fileName = unicode(QtGui.QFileDialog.getSaveFileName(self.parent, + translate('OpenLP.ServiceManager', 'Save Service'), + SettingsManager.get_last_dir(self.parent.serviceSettingsSection), + translate('OpenLP.ServiceManager', + 'OpenLP Service Files (*.osz) (*.osz)'))) + if not fileName: + return False + if os.path.splitext(fileName)[1] == u'': + fileName += u'.osz' + else: + ext = os.path.splitext(fileName)[1] + fileName.replace(ext, u'.osz') + self.setFileName(fileName) + return self.saveFile() + + def loadFile(self, fileName): + if not fileName: + return False + zip = None + fileTo = None + try: + zip = zipfile.ZipFile(unicode(fileName)) + for file in zip.namelist(): + try: + ucsfile = file.decode(u'utf-8') + except UnicodeDecodeError: + QtGui.QMessageBox.critical( + self, translate('OpenLP.ServiceManager', 'Error'), + translate('OpenLP.ServiceManager', + 'File is not a valid service.\n' + 'The content encoding is not UTF-8.')) + log.exception(u'Filename "%s" is not valid UTF-8' % + file.decode(u'utf-8', u'replace')) + continue + osfile = unicode(QtCore.QDir.toNativeSeparators(ucsfile)) + filePath = os.path.join(self.servicePath, + split_filename(osfile)[1]) + fileTo = open(filePath, u'wb') + fileTo.write(zip.read(file)) + fileTo.flush() + fileTo.close() + if file_path.endswith(u'osd'): + p_file = file_path + if 'p_file' in locals(): + fileTo = open(p_file, u'r') + items = cPickle.load(fileTo) + fileTo.close() + self.onNewService() + for item in items: + serviceItem = ServiceItem() + serviceItem.render_manager = self.parent.renderManager + serviceItem.set_from_service(item, self.servicePath) + self.validateItem(serviceItem) + self.addServiceItem(serviceItem) + if serviceItem.is_capable( + ItemCapabilities.OnLoadUpdate): + Receiver.send_message(u'%s_service_load' % + serviceItem.name.lower(), serviceItem) + try: + if os.path.isfile(p_file): + os.remove(p_file) + except (IOError, OSError): + log.exception(u'Failed to remove osd file') + else: + QtGui.QMessageBox.critical( + self, translate('OpenLP.ServiceManager', 'Error'), + translate('OpenLP.ServiceManager', + 'File is not a valid service.')) + log.exception(u'File contains no service data') + except (IOError, NameError): + log.exception(u'Problem loading a service file') + finally: + if fileTo: + fileTo.close() + if zip: + zip.close() + self.setFileName(fileName) + self.parent.addRecentFile(fileName) + self.setModified(False) + # Refresh Plugin lists + Receiver.send_message(u'plugin_list_refresh') + + def loadLastFile(self): + if not self.parent.recentFiles: + return + self.loadFile(self.parent.recentFiles[0]) + def contextMenu(self, point): item = self.serviceManagerList.itemAt(point) if item is None: @@ -427,6 +658,7 @@ class ServiceManager(QtGui.QWidget): # Top Item was selected so set the last one if setLastItem: lastItem.setSelected(True) + self.isModified = True def onMoveSelectionDown(self): """ @@ -449,6 +681,7 @@ class ServiceManager(QtGui.QWidget): serviceIterator += 1 if setSelected: firstItem.setSelected(True) + self.isModified = True def onCollapseAll(self): """ @@ -492,7 +725,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(0, temp) self.repaintServiceList(0, count) - self.parent.serviceChanged(False, self.serviceName) + self.isModified = True def onServiceUp(self): """ @@ -505,7 +738,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(item - 1, temp) self.repaintServiceList(item - 1, count) - self.parent.serviceChanged(False, self.serviceName) + self.setModified(True) def onServiceDown(self): """ @@ -518,7 +751,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(item + 1, temp) self.repaintServiceList(item + 1, count) - self.parent.serviceChanged(False, self.serviceName) + self.setModified(True) def onServiceEnd(self): """ @@ -530,30 +763,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems.remove(self.serviceItems[item]) self.serviceItems.insert(len(self.serviceItems), temp) self.repaintServiceList(len(self.serviceItems) - 1, count) - self.parent.serviceChanged(False, self.serviceName) - - def onNewService(self): - """ - Clear the list to create a new service - """ - if self.parent.serviceNotSaved and QtCore.QSettings().value( - self.parent.generalSettingsSection + u'/save prompt', - QtCore.QVariant(False)).toBool(): - ret = QtGui.QMessageBox.question(self, - translate('OpenLP.ServiceManager', 'Save Changes to Service?'), - translate('OpenLP.ServiceManager', - 'Your service is unsaved, do you want to save ' - 'those changes before creating a new one?'), - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Cancel | QtGui.QMessageBox.Save), - QtGui.QMessageBox.Save) - if ret == QtGui.QMessageBox.Save: - self.onSaveService() - self.serviceManagerList.clear() - self.serviceItems = [] - self.serviceName = u'' - self.isNew = True - self.parent.serviceChanged(True, self.serviceName) + self.setModified(True) def onDeleteFromService(self): """ @@ -563,13 +773,19 @@ class ServiceManager(QtGui.QWidget): if item is not -1: self.serviceItems.remove(self.serviceItems[item]) self.repaintServiceList(0, 0) - self.parent.serviceChanged(False, self.serviceName) + self.setModified(True) def repaintServiceList(self, serviceItem, serviceItemCount): """ - Clear the existing service list and prepaint all the items - Used when moving items as the move takes place in supporting array, - and when regenerating all the items due to theme changes + Clear the existing service list and prepaint all the items. This is + used when moving items as the move takes place in a supporting list, + and when regenerating all the items due to theme changes. + + ``serviceItem`` + The item which changed. + + ``serviceItemCount`` + The number of items in the service. """ # Correct order of items in array count = 1 @@ -615,183 +831,6 @@ class ServiceManager(QtGui.QWidget): item[u'expanded'] = temp treewidgetitem.setExpanded(item[u'expanded']) - def onSaveService(self, quick=False): - """ - Save the current service in a zip (OSZ) file - This file contains - * An osd which is a pickle of the service items - * All image, presentation and video files needed to run the service. - """ - log.debug(u'onSaveService %s' % quick) - if not quick or self.isNew: - filename = QtGui.QFileDialog.getSaveFileName(self, - translate('OpenLP.ServiceManager', 'Save Service'), - SettingsManager.get_last_dir(self.parent.serviceSettingsSection), - translate('OpenLP.ServiceManager', 'OpenLP Service Files (*.osz)')) - else: - filename = os.path.join(SettingsManager.get_last_dir( - self.parent.serviceSettingsSection), self.serviceName) - if filename: - filename = QtCore.QDir.toNativeSeparators(filename) - splittedFile = filename.split(u'.') - if splittedFile[-1] != u'osz': - filename = filename + u'.osz' - filename = unicode(filename) - self.isNew = False - SettingsManager.set_last_dir(self.parent.serviceSettingsSection, - os.path.split(filename)[0]) - service = [] - servicefile = filename + u'.osd' - zip = None - file = None - try: - write_list = [] - zip = zipfile.ZipFile(unicode(filename), 'w') - for item in self.serviceItems: - service.append({u'serviceitem':item[u'service_item'] - .get_service_repr()}) - if item[u'service_item'].uses_file(): - for frame in item[u'service_item'].get_frames(): - if item[u'service_item'].is_image(): - path_from = frame[u'path'] - else: - path_from = unicode(os.path.join( - frame[u'path'], - frame[u'title'])) - # On write a file once - if not path_from in write_list: - write_list.append(path_from) - zip.write(path_from.encode(u'utf-8')) - file = open(servicefile, u'wb') - cPickle.dump(service, file) - file.close() - zip.write(servicefile.encode(u'utf-8')) - except IOError: - log.exception(u'Failed to save service to disk') - finally: - if file: - file.close() - if zip: - zip.close() - try: - os.remove(servicefile) - except (IOError, OSError): - pass #if not present do not worry - name = filename.split(os.path.sep) - self.serviceName = name[-1] - self.parent.addRecentFile(filename) - self.parent.serviceChanged(True, self.serviceName) - - def onQuickSaveService(self): - self.onSaveService(True) - - def onLoadService(self, lastService=False): - if lastService: - if not self.parent.recentFiles: - return - filename = self.parent.recentFiles[0] - else: - filename = QtGui.QFileDialog.getOpenFileName( - self, translate('OpenLP.ServiceManager', 'Open Service'), - SettingsManager.get_last_dir( - self.parent.serviceSettingsSection), u'Services (*.osz)') - filename = QtCore.QDir.toNativeSeparators(filename) - self.loadService(filename) - - def loadService(self, filename=None): - """ - Load an existing service from disk and rebuild the serviceitems. All - files retrieved from the zip file are placed in a temporary directory - and will only be used for this service. - """ - if self.parent.serviceNotSaved: - ret = QtGui.QMessageBox.question(self, - translate('OpenLP.ServiceManager', 'Save Changes to Service?'), - translate('OpenLP.ServiceManager', - 'Your current service is unsaved, do you want to ' - 'save the changes before opening a new one?'), - QtGui.QMessageBox.StandardButtons( - QtGui.QMessageBox.Discard | QtGui.QMessageBox.Save), - QtGui.QMessageBox.Save) - if ret == QtGui.QMessageBox.Save: - self.onSaveService() - if filename is None: - action = self.sender() - if isinstance(action, QtGui.QAction): - filename = action.data().toString() - else: - return - filename = unicode(filename) - name = filename.split(os.path.sep) - if filename: - SettingsManager.set_last_dir(self.parent.serviceSettingsSection, - os.path.split(filename)[0]) - zip = None - file_to = None - try: - zip = zipfile.ZipFile(unicode(filename)) - for file in zip.namelist(): - try: - ucsfile = file.decode(u'utf-8') - except UnicodeDecodeError: - QtGui.QMessageBox.critical( - self, translate('OpenLP.ServiceManager', 'Error'), - translate('OpenLP.ServiceManager', - 'File is not a valid service.\n' - 'The content encoding is not UTF-8.')) - log.exception(u'Filename "%s" is not valid UTF-8' % - file.decode(u'utf-8', u'replace')) - continue - osfile = unicode(QtCore.QDir.toNativeSeparators(ucsfile)) - names = osfile.split(os.path.sep) - file_path = os.path.join(self.servicePath, - names[len(names) - 1]) - file_to = open(file_path, u'wb') - file_to.write(zip.read(file)) - file_to.flush() - file_to.close() - if file_path.endswith(u'osd'): - p_file = file_path - if 'p_file' in locals(): - file_to = open(p_file, u'r') - items = cPickle.load(file_to) - file_to.close() - self.onNewService() - for item in items: - serviceitem = ServiceItem() - serviceitem.render_manager = self.parent.renderManager - serviceitem.set_from_service(item, self.servicePath) - self.validateItem(serviceitem) - self.addServiceItem(serviceitem) - if serviceitem.is_capable( - ItemCapabilities.OnLoadUpdate): - Receiver.send_message(u'%s_service_load' % - serviceitem.name.lower(), serviceitem) - try: - if os.path.isfile(p_file): - os.remove(p_file) - except (IOError, OSError): - log.exception(u'Failed to remove osd file') - else: - QtGui.QMessageBox.critical( - self, translate('OpenLP.ServiceManager', 'Error'), - translate('OpenLP.ServiceManager', - 'File is not a valid service.')) - log.exception(u'File contains no service data') - except (IOError, NameError): - log.exception(u'Problem loading a service file') - finally: - if file_to: - file_to.close() - if zip: - zip.close() - self.isNew = False - self.serviceName = name[len(name) - 1] - self.parent.addRecentFile(filename) - self.parent.serviceChanged(True, self.serviceName) - # Refresh Plugin lists - Receiver.send_message(u'plugin_list_refresh') - def validateItem(self, serviceItem): """ Validates the service item and if the suffix matches an accepted @@ -857,7 +896,7 @@ class ServiceManager(QtGui.QWidget): item[u'service_item'], False, expand=item[u'expanded']) # Set to False as items may have changed rendering # does not impact the saved song so True may also be valid - self.parent.serviceChanged(False, self.serviceName) + self.setModified(True) def serviceItemUpdate(self, message): """ @@ -881,7 +920,7 @@ class ServiceManager(QtGui.QWidget): item[u'service_item'] = newItem self.repaintServiceList(itemcount + 1, 0) self.parent.liveController.replaceServiceManagerItem(newItem) - self.parent.serviceChanged(False, self.serviceName) + self.setModified(True) def addServiceItem(self, item, rebuild=False, expand=None, replace=False): """ @@ -905,7 +944,7 @@ class ServiceManager(QtGui.QWidget): self.parent.liveController.replaceServiceManagerItem(item) else: # nothing selected for dnd - if self.droppos == 0: + if self.dropPosition == 0: if isinstance(item, list): for inditem in item: self.serviceItems.append({u'service_item': inditem, @@ -917,15 +956,15 @@ class ServiceManager(QtGui.QWidget): u'expanded':expand}) self.repaintServiceList(len(self.serviceItems) + 1, 0) else: - self.serviceItems.insert(self.droppos, {u'service_item': item, - u'order': self.droppos, + self.serviceItems.insert(self.dropPosition, {u'service_item': item, + u'order': self.dropPosition, u'expanded':expand}) - self.repaintServiceList(self.droppos, 0) + self.repaintServiceList(self.dropPosition, 0) # if rebuilding list make sure live is fixed. if rebuild: self.parent.liveController.replaceServiceManagerItem(item) - self.droppos = 0 - self.parent.serviceChanged(False, self.serviceName) + self.dropPosition = 0 + self.setModified(True) def makePreview(self): """ @@ -1045,7 +1084,7 @@ class ServiceManager(QtGui.QWidget): # we are not over anything so drop replace = False if item is None: - self.droppos = len(self.serviceItems) + self.dropPosition = len(self.serviceItems) else: # we are over somthing so lets investigate pos = self._getParentItemData(item) - 1 @@ -1056,14 +1095,14 @@ class ServiceManager(QtGui.QWidget): action = self.dndMenu.exec_(QtGui.QCursor.pos()) # New action required if action == self.newAction: - self.droppos = self._getParentItemData(item) + self.dropPosition = self._getParentItemData(item) # Append to existing action if action == self.addToAction: - self.droppos = self._getParentItemData(item) + self.dropPosition = self._getParentItemData(item) item.setSelected(True) replace = True else: - self.droppos = self._getParentItemData(item) + self.dropPosition = self._getParentItemData(item) Receiver.send_message(u'%s_add_service_item' % plugin, replace) def updateThemeList(self, theme_list): @@ -1119,4 +1158,4 @@ class ServiceManager(QtGui.QWidget): data_item[u'notes'] = unicode(service_item.notes) data_item[u'selected'] = (item == curitem) data.append(data_item) - Receiver.send_message(u'servicemanager_list_response', data) \ No newline at end of file + Receiver.send_message(u'servicemanager_list_response', data) diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index ff354b1c6..54bd78ccc 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -275,8 +275,15 @@ def get_images_filter(): visible_formats, actual_formats) return images_filter +def split_filename(path): + path = os.path.abspath(path) + if not os.path.isfile(path): + return path, u'' + else: + return os.path.split(path) + from languagemanager import LanguageManager from actions import ActionList __all__ = [u'AppLocation', u'check_latest_version', u'add_actions', - u'get_filesystem_encoding', u'LanguageManager', u'ActionList'] \ No newline at end of file + u'get_filesystem_encoding', u'LanguageManager', u'ActionList'] From f7943d5746574a32e249c44e6ff354e70c031de1 Mon Sep 17 00:00:00 2001 From: Raoul Snyman <raoul.snyman@saturnlaboratories.co.za> Date: Sat, 1 Jan 2011 01:06:35 +0200 Subject: [PATCH 35/49] Add in an error message if there is a problem with the user's downloaded Bibles. --- openlp/plugins/bibles/lib/http.py | 19 +++++++++++++++++-- openlp/plugins/bibles/lib/mediaitem.py | 11 +++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index e0aeafa48..219c845fb 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -28,6 +28,7 @@ import logging import os import re import sqlite3 +import socket import urllib import urllib2 from HTMLParser import HTMLParseError @@ -184,6 +185,7 @@ class BGExtract(object): def __init__(self, proxyurl=None): log.debug(u'init %s', proxyurl) self.proxyurl = proxyurl + socket.setdefaulttimeout(30) def get_bible_chapter(self, version, bookname, chapter): """ @@ -210,6 +212,7 @@ class BGExtract(object): Receiver.send_message(u'openlp_process_events') except urllib2.URLError: log.exception(u'The web bible page could not be downloaded.') + Receiver.send_message(u'bibles_download_error') finally: if not page: return None @@ -219,6 +222,7 @@ class BGExtract(object): soup = BeautifulSoup(page, markupMassage=cleaner) except HTMLParseError: log.exception(u'BeautifulSoup could not parse the bible page.') + Receiver.send_message(u'bibles_download_error') finally: if not soup: return None @@ -247,6 +251,7 @@ class BSExtract(object): def __init__(self, proxyurl=None): log.debug(u'init %s', proxyurl) self.proxyurl = proxyurl + socket.setdefaulttimeout(30) def get_bible_chapter(self, version, bookname, chapter): """ @@ -264,7 +269,7 @@ class BSExtract(object): log.debug(u'get_bible_chapter %s,%s,%s', version, bookname, chapter) chapter_url = u'http://m.bibleserver.com/text/%s/%s%s' % \ (version, bookname, chapter) - + log.debug(u'URL: %s', chapter_url) page = None try: @@ -272,6 +277,7 @@ class BSExtract(object): Receiver.send_message(u'openlp_process_events') except urllib2.URLError: log.exception(u'The web bible page could not be downloaded.') + Receiver.send_message(u'bibles_download_error') finally: if not page: return None @@ -280,6 +286,7 @@ class BSExtract(object): soup = BeautifulSoup(page) except HTMLParseError: log.exception(u'BeautifulSoup could not parse the bible page.') + Receiver.send_message(u'bibles_download_error') finally: if not soup: return None @@ -308,6 +315,7 @@ class CWExtract(object): def __init__(self, proxyurl=None): log.debug(u'init %s', proxyurl) self.proxyurl = proxyurl + socket.setdefaulttimeout(30) def get_bible_chapter(self, version, bookname, chapter): """ @@ -333,6 +341,7 @@ class CWExtract(object): Receiver.send_message(u'openlp_process_events') except urllib2.URLError: log.exception(u'The web bible page could not be downloaded.') + Receiver.send_message(u'bibles_download_error') finally: if not page: return None @@ -341,6 +350,7 @@ class CWExtract(object): soup = BeautifulSoup(page) except HTMLParseError: log.exception(u'BeautifulSoup could not parse the bible page.') + Receiver.send_message(u'bibles_download_error') finally: if not soup: return None @@ -491,7 +501,12 @@ class HTTPBible(BibleDB): ev = BGExtract(self.proxy_server) elif self.download_source.lower() == u'bibleserver': ev = BSExtract(self.proxy_server) - return ev.get_bible_chapter(self.download_name, book, chapter) + try: + return ev.get_bible_chapter(self.download_name, book, chapter) + except: + log.exception(u'Error occurred while downloading verses') + Receiver.send_message(u'bibles_download_error') + return None def get_books(self): """ diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 3f5ed41e4..39225acf1 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -261,6 +261,8 @@ class BibleMediaItem(MediaManagerItem): QtCore.SIGNAL(u'bibles_hideprogress'), self.onSearchProgressHide) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'bibles_nobook'), self.onNoBookFound) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'bibles_download_error'), self.onDownloadError) def addListViewToToolBar(self): MediaManagerItem.addListViewToToolBar(self) @@ -367,6 +369,15 @@ class BibleMediaItem(MediaManagerItem): 'No matching book could be found in this Bible.')) self.AdvancedSearchButton.setEnabled(True) + def onDownloadError(self): + QtGui.QMessageBox.critical(self, + translate('BiblesPlugin.MediaItem', 'Download Error'), + translate('BiblesPlugin.MediaItem', + 'There was a problem downloading your verse selection. Please ' + 'check your Internet connection, and if this error continues to ' + 'occur please consider reporting a bug.')) + self.AdvancedSearchButton.setEnabled(True) + def onImportClick(self): if not hasattr(self, u'import_wizard'): self.import_wizard = BibleImportForm(self, self.parent.manager, From 4bb59bff6734339064c83a721e54c2a221bb54f2 Mon Sep 17 00:00:00 2001 From: Raoul Snyman <raoul.snyman@saturnlaboratories.co.za> Date: Sat, 1 Jan 2011 12:33:14 +0200 Subject: [PATCH 36/49] Fix bug #641661 --- openlp/core/lib/eventreceiver.py | 2 +- openlp/core/ui/mainwindow.py | 19 +++++++- openlp/plugins/bibles/lib/db.py | 14 +++--- openlp/plugins/bibles/lib/http.py | 66 +++++++++++++++++--------- openlp/plugins/bibles/lib/mediaitem.py | 20 -------- 5 files changed, 70 insertions(+), 51 deletions(-) diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index 4f69c519f..b39173849 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -278,4 +278,4 @@ class Receiver(object): """ Get the global ``eventreceiver`` instance. """ - return Receiver.eventreceiver \ No newline at end of file + return Receiver.eventreceiver diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index a378dd633..ee15b31b1 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -612,6 +612,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'maindisplay_status_text'), self.showStatusMessage) + # Simple message boxes + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'openlp_error_message'), self.onErrorMessage) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'openlp_warning_message'), self.onWarningMessage) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'openlp_information_message'), + self.onInformationMessage) # warning cyclic dependency # RenderManager needs to call ThemeManager and # ThemeManager needs to call RenderManager @@ -720,6 +728,15 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): translate('OpenLP.MainWindow', 'The Main Display has been blanked out')) + def onErrorMessage(self, data): + QtGui.QMessageBox.critical(self, data[u'title'], data[u'message']) + + def onWarningMessage(self, data): + QtGui.QMessageBox.warning(self, data[u'title'], data[u'message']) + + def onInformationMessage(self, data): + QtGui.QMessageBox.information(self, data[u'title'], data[u'message']) + def onHelpWebSiteClicked(self): """ Load the OpenLP website @@ -834,7 +851,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): else: ret = QtGui.QMessageBox.question(self, translate('OpenLP.MainWindow', 'Close OpenLP'), - translate('OpenLP.MainWindow', 'Are you sure you want to Exit?'), + translate('OpenLP.MainWindow', 'Are you sure you want to close OpenLP?'), QtGui.QMessageBox.StandardButtons( QtGui.QMessageBox.Yes | QtGui.QMessageBox.No), diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 5f37f3c73..62068437a 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -33,7 +33,7 @@ from sqlalchemy import Column, ForeignKey, or_, Table, types from sqlalchemy.orm import class_mapper, mapper, relation from sqlalchemy.orm.exc import UnmappedClassError -from openlp.core.lib import translate +from openlp.core.lib import Receiver, translate from openlp.core.lib.db import BaseModel, init_db, Manager log = logging.getLogger(__name__) @@ -354,12 +354,12 @@ class BibleDB(QtCore.QObject, Manager): verse_list.extend(verses) else: log.debug(u'OpenLP failed to find book %s', book) - QtGui.QMessageBox.information(self.bible_plugin.mediaItem, - translate('BiblesPlugin.BibleDB', 'Book not found'), - translate('BiblesPlugin.BibleDB', 'The book you requested ' - 'could not be found in this Bible. Please check your ' - 'spelling and that this is a complete Bible not just ' - 'one testament.')) + Receiver.send_message(u'openlp_error_message', { + u'title': translate('BiblesPlugin', 'No Book Found'), + u'message': translate('BiblesPlugin', 'No matching book ' + 'could be found in this Bible. Check that you have ' + 'spelled the name of the book correctly.') + }) return verse_list def verse_search(self, text): diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index 219c845fb..a4f93f929 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -35,7 +35,7 @@ from HTMLParser import HTMLParseError from BeautifulSoup import BeautifulSoup, NavigableString -from openlp.core.lib import Receiver +from openlp.core.lib import Receiver, translate from openlp.core.utils import AppLocation from openlp.plugins.bibles.lib import SearchResults from openlp.plugins.bibles.lib.db import BibleDB, Book @@ -212,7 +212,13 @@ class BGExtract(object): Receiver.send_message(u'openlp_process_events') except urllib2.URLError: log.exception(u'The web bible page could not be downloaded.') - Receiver.send_message(u'bibles_download_error') + Receiver.send_message(u'openlp_error_message', { + u'title': translate('BiblePlugin.HTTPBible', 'Download Error'), + u'message': translate('BiblePlugin.HTTPBible', 'There was a ' + 'problem downloading your verse selection. Please check your ' + 'Internet connection, and if this error continues to occur ' + 'consider reporting a bug.') + }) finally: if not page: return None @@ -277,7 +283,13 @@ class BSExtract(object): Receiver.send_message(u'openlp_process_events') except urllib2.URLError: log.exception(u'The web bible page could not be downloaded.') - Receiver.send_message(u'bibles_download_error') + Receiver.send_message(u'openlp_error_message', { + u'title': translate('BiblePlugin.HTTPBible', 'Download Error'), + u'message': translate('BiblePlugin.HTTPBible', 'There was a ' + 'problem downloading your verse selection. Please check your ' + 'Internet connection, and if this error continues to occur ' + 'consider reporting a bug.') + }) finally: if not page: return None @@ -286,10 +298,13 @@ class BSExtract(object): soup = BeautifulSoup(page) except HTMLParseError: log.exception(u'BeautifulSoup could not parse the bible page.') - Receiver.send_message(u'bibles_download_error') - finally: - if not soup: - return None + Receiver.send_message(u'openlp_error_message', { + u'title': translate('BiblePlugin.HTTPBible', 'Parse Error'), + u'message': translate('BiblePlugin.HTTPBible', 'There was a ' + 'problem extracting your verse selection. If this error ' + 'continues to occur consider reporting a bug.') + }) + return None Receiver.send_message(u'openlp_process_events') content = None try: @@ -341,19 +356,26 @@ class CWExtract(object): Receiver.send_message(u'openlp_process_events') except urllib2.URLError: log.exception(u'The web bible page could not be downloaded.') - Receiver.send_message(u'bibles_download_error') - finally: - if not page: - return None + Receiver.send_message(u'openlp_error_message', { + u'title': translate('BiblePlugin.HTTPBible', 'Download Error'), + u'message': translate('BiblePlugin.HTTPBible', 'There was a ' + 'problem downloading your verse selection. Please check your ' + 'Internet connection, and if this error continues to occur ' + 'consider reporting a bug.') + }) + return None soup = None try: soup = BeautifulSoup(page) except HTMLParseError: log.exception(u'BeautifulSoup could not parse the bible page.') - Receiver.send_message(u'bibles_download_error') - finally: - if not soup: - return None + Receiver.send_message(u'openlp_error_message', { + u'title': translate('BiblePlugin.HTTPBible', 'Parse Error'), + u'message': translate('BiblePlugin.HTTPBible', 'There was a ' + 'problem extracting your verse selection. If this error ' + 'continues to occur consider reporting a bug.') + }) + return None Receiver.send_message(u'openlp_process_events') htmlverses = soup.findAll(u'span', u'versetext') verses = {} @@ -463,7 +485,12 @@ class HTTPBible(BibleDB): if not db_book: book_details = self.lookup_book(book) if not book_details: - Receiver.send_message(u'bibles_nobook') + Receiver.send_message(u'openlp_error_message', { + u'title': translate('BiblesPlugin', 'No Book Found'), + u'message': translate('BiblesPlugin', 'No matching ' + 'book could be found in this Bible. Check that you' + 'have spelled the name of the book correctly.') + }) return [] db_book = self.create_book(book_details[u'name'], book_details[u'abbreviation'], @@ -501,12 +528,7 @@ class HTTPBible(BibleDB): ev = BGExtract(self.proxy_server) elif self.download_source.lower() == u'bibleserver': ev = BSExtract(self.proxy_server) - try: - return ev.get_bible_chapter(self.download_name, book, chapter) - except: - log.exception(u'Error occurred while downloading verses') - Receiver.send_message(u'bibles_download_error') - return None + return ev.get_bible_chapter(self.download_name, book, chapter) def get_books(self): """ diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 39225acf1..d557897ed 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -259,10 +259,6 @@ class BibleMediaItem(MediaManagerItem): QtCore.SIGNAL(u'bibles_showprogress'), self.onSearchProgressShow) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'bibles_hideprogress'), self.onSearchProgressHide) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'bibles_nobook'), self.onNoBookFound) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'bibles_download_error'), self.onDownloadError) def addListViewToToolBar(self): MediaManagerItem.addListViewToToolBar(self) @@ -362,22 +358,6 @@ class BibleMediaItem(MediaManagerItem): def onSearchProgressHide(self): self.SearchProgress.setVisible(False) - def onNoBookFound(self): - QtGui.QMessageBox.critical(self, - translate('BiblesPlugin.MediaItem', 'No Book Found'), - translate('BiblesPlugin.MediaItem', - 'No matching book could be found in this Bible.')) - self.AdvancedSearchButton.setEnabled(True) - - def onDownloadError(self): - QtGui.QMessageBox.critical(self, - translate('BiblesPlugin.MediaItem', 'Download Error'), - translate('BiblesPlugin.MediaItem', - 'There was a problem downloading your verse selection. Please ' - 'check your Internet connection, and if this error continues to ' - 'occur please consider reporting a bug.')) - self.AdvancedSearchButton.setEnabled(True) - def onImportClick(self): if not hasattr(self, u'import_wizard'): self.import_wizard = BibleImportForm(self, self.parent.manager, From b52ead934d0ba612c748836d105fc0155ce7822a Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Sat, 1 Jan 2011 11:44:16 +0000 Subject: [PATCH 37/49] Add Cursor management --- openlp.pyw | 21 ++++++++++++++++++- openlp/core/ui/mainwindow.py | 2 ++ openlp/core/ui/servicemanager.py | 4 +++- openlp/plugins/images/lib/mediaitem.py | 6 ++---- openlp/plugins/presentations/lib/mediaitem.py | 2 ++ 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 8cc7a16a6..888cdae9f 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -162,6 +162,10 @@ class OpenLP(QtGui.QApplication): #provide a listener for widgets to reqest a screen update. QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_process_events'), self.processEvents) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'cursor_busy'), self.setBusyCursor) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'cursor_normal'), self.setNormalCursor) self.setOrganizationName(u'OpenLP') self.setOrganizationDomain(u'openlp.org') self.setApplicationName(u'OpenLP') @@ -203,6 +207,21 @@ class OpenLP(QtGui.QApplication): ''.join(format_exception(exctype, value, traceback))) self.exceptionForm.exec_() + def setBusyCursor(self): + """ + Sets the Busy Cursor on the Main Window + """ + #a=c + self.setOverrideCursor(QtCore.Qt.BusyCursor) + #self.processEvents() + + def setNormalCursor(self): + """ + Sets the Normal Cursor on the Main Window + """ + self.restoreOverrideCursor() + #self.processEvents() + def main(): """ The main function which parses command line options and then runs @@ -264,4 +283,4 @@ if __name__ == u'__main__': """ Instantiate and run the application. """ - main() \ No newline at end of file + main() diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index a378dd633..88b4305a2 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -612,6 +612,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'maindisplay_status_text'), self.showStatusMessage) + Receiver.send_message(u'cursor_busy') # warning cyclic dependency # RenderManager needs to call ThemeManager and # ThemeManager needs to call RenderManager @@ -659,6 +660,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): if savedPlugin != -1: self.MediaToolBox.setCurrentIndex(savedPlugin) self.settingsForm.postSetUp() + Receiver.send_message(u'cursor_normal') def setAutoLanguage(self, value): self.LanguageGroup.setDisabled(value) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index e2c1a765b..0e104a0eb 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -571,6 +571,7 @@ class ServiceManager(QtGui.QWidget): Used when moving items as the move takes place in supporting array, and when regenerating all the items due to theme changes """ + Receiver.send_message(u'cursor_busy') # Correct order of items in array count = 1 for item in self.serviceItems: @@ -614,6 +615,7 @@ class ServiceManager(QtGui.QWidget): self.serviceManagerList.setCurrentItem(treewidgetitem1) item[u'expanded'] = temp treewidgetitem.setExpanded(item[u'expanded']) + Receiver.send_message(u'cursor_normal') def onSaveService(self, quick=False): """ @@ -1119,4 +1121,4 @@ class ServiceManager(QtGui.QWidget): data_item[u'notes'] = unicode(service_item.notes) data_item[u'selected'] = (item == curitem) data.append(data_item) - Receiver.send_message(u'servicemanager_list_response', data) \ No newline at end of file + Receiver.send_message(u'servicemanager_list_response', data) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 170ac3b74..1c48e3eb6 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -139,8 +139,7 @@ class ImageMediaItem(MediaManagerItem): self.settingsSection, self.getFileList()) def loadList(self, list): - self.listView.setCursor(QtCore.Qt.BusyCursor) - Receiver.send_message(u'openlp_process_events') + Receiver.send_message(u'cursor_busy') for file in list: filename = os.path.split(unicode(file))[1] thumb = os.path.join(self.servicePath, filename) @@ -155,8 +154,7 @@ class ImageMediaItem(MediaManagerItem): item_name.setIcon(icon) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) self.listView.addItem(item_name) - self.listView.setCursor(QtCore.Qt.ArrowCursor) - Receiver.send_message(u'openlp_process_events') + Receiver.send_message(u'cursor_normal') def generateSlideData(self, service_item, item=None, xmlVersion=False): items = self.listView.selectedIndexes() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index e832f1a10..9b8c2c1a9 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -171,6 +171,7 @@ class PresentationMediaItem(MediaManagerItem): This is called both on initial load of the plugin to populate with existing files, and when the user adds new files via the media manager """ + Receiver.send_message(u'cursor_busy') currlist = self.getFileList() titles = [] for file in currlist: @@ -215,6 +216,7 @@ class PresentationMediaItem(MediaManagerItem): item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) item_name.setIcon(icon) self.listView.addItem(item_name) + Receiver.send_message(u'cursor_normal') def onDeleteClick(self): """ From fd92d47057850a73cd16c32c23927e50cf851ccf Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Sat, 1 Jan 2011 12:20:42 +0000 Subject: [PATCH 38/49] More changes to cursors --- openlp/core/lib/eventreceiver.py | 17 ++++++++++++++++- openlp/core/ui/mainwindow.py | 2 +- openlp/core/ui/servicemanager.py | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index 4f69c519f..d3cbf41f7 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -220,6 +220,21 @@ class EventReceiver(QtCore.QObject): Waits for openlp to do something "interesting" and sends a remotes_poll_response signal when it does + ``openlp_critical_message`` + Displays a standalong Critical Message + + ``openlp_error_message`` + Displays a standalong Error Message + + ``openlp_information_message`` + Displays a standalong Information Message + + ``cursor_busy`` + Makes the cursor got to a busy form + + ``cursor_normal`` + Resets the cursor to default + """ def __init__(self): """ @@ -278,4 +293,4 @@ class Receiver(object): """ Get the global ``eventreceiver`` instance. """ - return Receiver.eventreceiver \ No newline at end of file + return Receiver.eventreceiver diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index d44b43574..1a32d0df3 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -1013,7 +1013,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QFileInfo(filename).fileName()), self) action.setData(QtCore.QVariant(filename)) self.connect(action, QtCore.SIGNAL(u'triggered()'), - self.ServiceManagerContents.loadService) + self.ServiceManagerContents.loadFile) self.FileMenu.addAction(action) self.FileMenu.addSeparator() self.FileMenu.addAction(self.FileMenuActions[-1]) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 076e50c11..2397df1b3 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -787,7 +787,6 @@ class ServiceManager(QtGui.QWidget): ``serviceItemCount`` The number of items in the service. """ - Receiver.send_message(u'cursor_busy') # Correct order of items in array count = 1 for item in self.serviceItems: @@ -831,7 +830,6 @@ class ServiceManager(QtGui.QWidget): self.serviceManagerList.setCurrentItem(treewidgetitem1) item[u'expanded'] = temp treewidgetitem.setExpanded(item[u'expanded']) - Receiver.send_message(u'cursor_normal') def validateItem(self, serviceItem): """ @@ -885,6 +883,7 @@ class ServiceManager(QtGui.QWidget): Rebuild the service list as things have changed and a repaint is the easiest way to do this. """ + Receiver.send_message(u'cursor_busy') log.debug(u'regenerateServiceItems') # force reset of renderer as theme data has changed self.parent.renderManager.themedata = None @@ -899,6 +898,7 @@ class ServiceManager(QtGui.QWidget): # Set to False as items may have changed rendering # does not impact the saved song so True may also be valid self.setModified(True) + Receiver.send_message(u'cursor_normal') def serviceItemUpdate(self, message): """ From 8cd04bc0173b88bbab7c616a9246c21dac2b68dd Mon Sep 17 00:00:00 2001 From: Raoul Snyman <raoul.snyman@saturnlaboratories.co.za> Date: Sat, 1 Jan 2011 14:25:12 +0200 Subject: [PATCH 39/49] Fixed a few stray bugs to do with services. --- openlp/core/ui/mainwindow.py | 5 +++-- openlp/core/ui/servicemanager.py | 28 ++++++++++++++++++++-------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 260384a5f..a442f983d 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -1007,11 +1007,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): if recentFilesToDisplay: self.FileMenu.addSeparator() for fileId, filename in enumerate(recentFilesToDisplay): - action = QtGui.QAction(u'&%d %s' % (fileId +1, + log.debug('Recent file name: %s', filename) + action = QtGui.QAction(u'&%d %s' % (fileId + 1, QtCore.QFileInfo(filename).fileName()), self) action.setData(QtCore.QVariant(filename)) self.connect(action, QtCore.SIGNAL(u'triggered()'), - self.ServiceManagerContents.loadService) + self.ServiceManagerContents.onRecentServiceClicked) self.FileMenu.addAction(action) self.FileMenu.addSeparator() self.FileMenu.addAction(self.FileMenuActions[-1]) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 18dba7058..9d7bada14 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -347,10 +347,7 @@ class ServiceManager(QtGui.QWidget): elif result == QtGui.QMessageBox.Save: if not self.saveFile(): return False - self.serviceManagerList.clear() - self.serviceItems = [] - self.setFileName(u'') - self.setModified(False) + self.newFile() def onLoadServiceClicked(self): if self.isModified(): @@ -381,6 +378,19 @@ class ServiceManager(QtGui.QWidget): def onSaveServiceAsClicked(self): self.saveFileAs() + def onRecentServiceClicked(self): + sender = self.sender() + self.loadFile(sender.data().toString()) + + def newFile(self): + """ + Create a blank new service file. + """ + self.serviceManagerList.clear() + self.serviceItems = [] + self.setFileName(u'') + self.setModified(False) + def saveFile(self): """ Save the current Service file. @@ -457,6 +467,8 @@ class ServiceManager(QtGui.QWidget): def loadFile(self, fileName): if not fileName: return False + else: + fileName = unicode(fileName) zip = None fileTo = None try: @@ -475,18 +487,18 @@ class ServiceManager(QtGui.QWidget): continue osfile = unicode(QtCore.QDir.toNativeSeparators(ucsfile)) filePath = os.path.join(self.servicePath, - split_filename(osfile)[1]) + os.path.split(osfile)[1]) fileTo = open(filePath, u'wb') fileTo.write(zip.read(file)) fileTo.flush() fileTo.close() - if file_path.endswith(u'osd'): - p_file = file_path + if filePath.endswith(u'osd'): + p_file = filePath if 'p_file' in locals(): fileTo = open(p_file, u'r') items = cPickle.load(fileTo) fileTo.close() - self.onNewService() + self.newFile() for item in items: serviceItem = ServiceItem() serviceItem.render_manager = self.parent.renderManager From fd5e173d21347ce73363240481049dd19ef231de Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Sat, 1 Jan 2011 12:49:38 +0000 Subject: [PATCH 40/49] Cleanups --- openlp.pyw | 8 +++----- openlp/core/lib/mediamanageritem.py | 2 ++ openlp/plugins/images/lib/mediaitem.py | 2 -- openlp/plugins/presentations/lib/mediaitem.py | 2 -- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 888cdae9f..f3455962d 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -205,22 +205,20 @@ class OpenLP(QtGui.QApplication): self.exceptionForm = ExceptionForm(self.mainWindow) self.exceptionForm.exceptionTextEdit.setPlainText( ''.join(format_exception(exctype, value, traceback))) + self.setNormalCursor() self.exceptionForm.exec_() def setBusyCursor(self): """ - Sets the Busy Cursor on the Main Window + Sets the Busy Cursor for the Application """ - #a=c self.setOverrideCursor(QtCore.Qt.BusyCursor) - #self.processEvents() def setNormalCursor(self): """ - Sets the Normal Cursor on the Main Window + Sets the Normal Cursor forthe Application """ self.restoreOverrideCursor() - #self.processEvents() def main(): """ diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 6147be608..a9484795b 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -349,11 +349,13 @@ class MediaManagerItem(QtGui.QWidget): self.OnNewFileMasks) log.info(u'New files(s) %s', unicode(files)) if files: + Receiver.send_message(u'cursor_busy') self.loadList(files) lastDir = os.path.split(unicode(files[0]))[0] SettingsManager.set_last_dir(self.settingsSection, lastDir) SettingsManager.set_list(self.settingsSection, self.settingsSection, self.getFileList()) + Receiver.send_message(u'cursor_normal') def getFileList(self): """ diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 1c48e3eb6..7281bb091 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -139,7 +139,6 @@ class ImageMediaItem(MediaManagerItem): self.settingsSection, self.getFileList()) def loadList(self, list): - Receiver.send_message(u'cursor_busy') for file in list: filename = os.path.split(unicode(file))[1] thumb = os.path.join(self.servicePath, filename) @@ -154,7 +153,6 @@ class ImageMediaItem(MediaManagerItem): item_name.setIcon(icon) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) self.listView.addItem(item_name) - Receiver.send_message(u'cursor_normal') def generateSlideData(self, service_item, item=None, xmlVersion=False): items = self.listView.selectedIndexes() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 9b8c2c1a9..e832f1a10 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -171,7 +171,6 @@ class PresentationMediaItem(MediaManagerItem): This is called both on initial load of the plugin to populate with existing files, and when the user adds new files via the media manager """ - Receiver.send_message(u'cursor_busy') currlist = self.getFileList() titles = [] for file in currlist: @@ -216,7 +215,6 @@ class PresentationMediaItem(MediaManagerItem): item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) item_name.setIcon(icon) self.listView.addItem(item_name) - Receiver.send_message(u'cursor_normal') def onDeleteClick(self): """ From 0df80967757a8334388c085fc1346fbfc9fe886e Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Sat, 1 Jan 2011 15:28:10 +0000 Subject: [PATCH 41/49] Remove debugging code --- openlp/core/lib/eventreceiver.py | 8 ++++---- openlp/core/ui/slidecontroller.py | 2 -- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index d3cbf41f7..63ad5b796 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -220,14 +220,14 @@ class EventReceiver(QtCore.QObject): Waits for openlp to do something "interesting" and sends a remotes_poll_response signal when it does - ``openlp_critical_message`` - Displays a standalong Critical Message + ``openlp_warning_message`` + Displays a standalone Warning Message ``openlp_error_message`` - Displays a standalong Error Message + Displays a standalone Error Message ``openlp_information_message`` - Displays a standalong Information Message + Displays a standalone Information Message ``cursor_busy`` Makes the cursor got to a busy form diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 6a5e313f0..97a02f333 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -387,7 +387,6 @@ class SlideController(QtGui.QWidget): Settings dialog has changed the screen size of adjust output and screen previews. """ - log.debug(u'screenSizeChanged live = %s' % self.isLive) # rebuild display as screen size changed self.display = MainDisplay(self, self.screens, self.isLive) self.display.imageManager = self.parent.renderManager.image_manager @@ -403,7 +402,6 @@ class SlideController(QtGui.QWidget): Takes care of the SlidePreview's size. Is called when one of the the splitters is moved or when the screen size is changed. """ - log.debug(u'previewSizeChanged live = %s' % self.isLive) if self.ratio < float(self.PreviewFrame.width()) / float( self.PreviewFrame.height()): # We have to take the height as limit. From 625ef9fc00bcb464103ea0d6a4b165fd61758218 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat <googol@hush.com> Date: Sat, 1 Jan 2011 22:41:28 +0100 Subject: [PATCH 42/49] fixed adding more images at once, tweaked adding images when one image is not present --- openlp/plugins/images/lib/mediaitem.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 7281bb091..3309f06aa 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -43,6 +43,7 @@ class ImageListView(BaseListWithDnD): self.PluginName = u'Images' BaseListWithDnD.__init__(self, parent) + class ImageMediaItem(MediaManagerItem): """ This is the custom media manager item for images. @@ -51,8 +52,8 @@ class ImageMediaItem(MediaManagerItem): def __init__(self, parent, plugin, icon): self.IconPath = u'images/image' - # this next is a class, not an instance of a class - it will - # be instanced by the base MediaManagerItem + # This next is a class, not an instance of a class - it will + # be instanced by the base MediaManagerItem. self.ListViewWithDnD_class = ImageListView MediaManagerItem.__init__(self, parent, self, icon) @@ -113,7 +114,7 @@ class ImageMediaItem(MediaManagerItem): u':/system/system_close.png', translate('ImagePlugin.MediaItem', 'Reset Live Background'), self.onResetClick, False) - # Add the song widget to the page layout + # Add the song widget to the page layout. self.pageLayout.addWidget(self.ImageWidget) self.resetButton.setVisible(False) @@ -171,15 +172,24 @@ class ImageMediaItem(MediaManagerItem): if os.path.exists(filename): (path, name) = os.path.split(filename) service_item.add_from_image(filename, name) - return True - else: - # File is no longer present + # We have only one image, which is no longer present. + elif len(items) == 1: QtGui.QMessageBox.critical( self, translate('ImagePlugin.MediaItem', 'Missing Image'), unicode(translate('ImagePlugin.MediaItem', - 'The Image %s no longer exists.')) % filename) + 'The image %s no longer exists.')) % filename) return False + # We have more than one item, but a file is missing. + elif QtGui.QMessageBox.question(self, + translate('ImagePlugin.MediaItem', 'Missing Image'), + unicode(translate('ImagePlugin.MediaItem', 'The image ' + '%s no longer exists. Do you want to add the other ' + 'images anyway?')) % filename, + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | + QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No: + return False + return True else: return False From 2693e3dbd94f5ff1ba1e8141a86d26d1cc6ccd84 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat <googol@hush.com> Date: Sat, 1 Jan 2011 22:46:00 +0100 Subject: [PATCH 43/49] removed a not needed import --- openlp/plugins/images/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 3309f06aa..b0b411798 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ context_menu_action, ItemCapabilities, SettingsManager, translate, \ - check_item_selected, Receiver + check_item_selected from openlp.core.utils import AppLocation, get_images_filter log = logging.getLogger(__name__) From def66c204a2b94de5aa9f88a677cbe323615f5a6 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat <googol@hush.com> Date: Sat, 1 Jan 2011 22:55:22 +0100 Subject: [PATCH 44/49] fixed wrong indent --- openlp/plugins/images/lib/mediaitem.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index b0b411798..c3b265e61 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -182,13 +182,13 @@ class ImageMediaItem(MediaManagerItem): return False # We have more than one item, but a file is missing. elif QtGui.QMessageBox.question(self, - translate('ImagePlugin.MediaItem', 'Missing Image'), - unicode(translate('ImagePlugin.MediaItem', 'The image ' - '%s no longer exists. Do you want to add the other ' - 'images anyway?')) % filename, - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | - QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No: - return False + translate('ImagePlugin.MediaItem', 'Missing Image'), + unicode(translate('ImagePlugin.MediaItem', 'The image %s ' + 'no longer exists. Do you want to add the other images ' + 'anyway?')) % filename, + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | + QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No: + return False return True else: return False From 8a0eeb54bb66e9d3cc9cf4a354e969e75ccae721 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat <googol@hush.com> Date: Sun, 2 Jan 2011 08:57:05 +0100 Subject: [PATCH 45/49] --- openlp/plugins/images/__init__.py | 2 +- openlp/plugins/images/imageplugin.py | 2 +- openlp/plugins/images/lib/__init__.py | 2 +- openlp/plugins/images/lib/mediaitem.py | 48 +++++++++++++++++++------- 4 files changed, 38 insertions(+), 16 deletions(-) diff --git a/openlp/plugins/images/__init__.py b/openlp/plugins/images/__init__.py index 6ea473c72..9939bd87e 100644 --- a/openlp/plugins/images/__init__.py +++ b/openlp/plugins/images/__init__.py @@ -26,4 +26,4 @@ """ The :mod:`images` module provides the Images plugin. The Images plugin provides the facility to display images from OpenLP. -""" \ No newline at end of file +""" diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 79b08eb8c..ea118d3ec 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -41,7 +41,7 @@ class ImagePlugin(Plugin): self.icon = build_icon(self.icon_path) def getMediaManagerItem(self): - # Create the MediaManagerItem object + # Create the MediaManagerItem object. return ImageMediaItem(self, self, self.icon) def about(self): diff --git a/openlp/plugins/images/lib/__init__.py b/openlp/plugins/images/lib/__init__.py index 6ff2a295b..6a16ecc88 100644 --- a/openlp/plugins/images/lib/__init__.py +++ b/openlp/plugins/images/lib/__init__.py @@ -24,4 +24,4 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### -from mediaitem import ImageMediaItem \ No newline at end of file +from mediaitem import ImageMediaItem diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index c3b265e61..f81a744d4 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -166,29 +166,51 @@ class ImageMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsAdditions) # force a nonexistent theme service_item.theme = -1 + existing_images = [] + missing_images = [] + text = u'' for item in items: bitem = self.listView.item(item.row()) filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) if os.path.exists(filename): - (path, name) = os.path.split(filename) - service_item.add_from_image(filename, name) - # We have only one image, which is no longer present. - elif len(items) == 1: - QtGui.QMessageBox.critical( - self, translate('ImagePlugin.MediaItem', - 'Missing Image'), + existing_images.append(filename) + else: + missing_images.append(filename) + text += u'\n' + filename + # We cannot continue, as all images are missing. + if len(missing_images) == len(items): + if len(missing_images) == 1: + QtGui.QMessageBox.critical(self, + translate('ImagePlugin.MediaItem', 'Missing Image'), unicode(translate('ImagePlugin.MediaItem', - 'The image %s no longer exists.')) % filename) - return False - # We have more than one item, but a file is missing. - elif QtGui.QMessageBox.question(self, - translate('ImagePlugin.MediaItem', 'Missing Image'), + 'The image %s no longer exists.')) % text) + else: + QtGui.QMessageBox.critical(self, + translate('ImagePlugin.MediaItem', 'Missing Images'), + unicode(translate('ImagePlugin.MediaItem', + 'The following images no longer exist: %s')) % text) + return False + # We still have present images. Ask what to do. + elif missing_images: + if len(missing_images) == 1 and QtGui.QMessageBox.question( + self, translate('ImagePlugin.MediaItem', 'Missing Image'), unicode(translate('ImagePlugin.MediaItem', 'The image %s ' 'no longer exists. Do you want to add the other images ' - 'anyway?')) % filename, + 'anyway?')) % text, QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No: return False + elif len(missing_images) > 1 and QtGui.QMessageBox.question( + self, translate('ImagePlugin.MediaItem', 'Missing Images'), + unicode(translate('ImagePlugin.MediaItem', 'The following ' + 'images no longer exist: %s\nDo you want to add the other ' + 'images anyway?')) % text, + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | + QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No: + return False + for filename in existing_images: + (path, name) = os.path.split(filename) + service_item.add_from_image(filename, name) return True else: return False From 1031ea40d95212e6fa454ea2ff80a3f7d70a7feb Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Sun, 2 Jan 2011 08:03:42 +0000 Subject: [PATCH 46/49] Fix Song form clean up for new song having edited previously. Fixes: https://launchpad.net/bugs/696362 --- openlp/plugins/songs/forms/editsongform.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 929dfd839..70b0e912b 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -186,9 +186,11 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.AuthorsListView.clear() self.TopicsListView.clear() self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason) + self.songBookNumberEdit.setText(u'') self.loadAuthors() self.loadTopics() self.loadBooks() + self.ThemeSelectionComboItem.setCurrentIndex(0) # it's a new song to preview is not possible self.previewButton.setVisible(False) @@ -753,4 +755,4 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): def processTitle(self): log.debug(u'processTitle') self.song.search_title = re.sub(r'[\'"`,;:(){}?]+', u'', - unicode(self.song.search_title)).lower() \ No newline at end of file + unicode(self.song.search_title)).lower() From 893e1a1f48b5860f0d6e7aa76cd99241a3e235b5 Mon Sep 17 00:00:00 2001 From: Raoul Snyman <raoul.snyman@saturnlaboratories.co.za> Date: Sun, 2 Jan 2011 14:47:30 +0200 Subject: [PATCH 47/49] Updated the Windows build script to add a step to update from bzr first. --- .bzrignore | 1 + resources/windows/warnOpenLP.txt | 611 ------------------------------- scripts/windows-builder.py | 34 +- 3 files changed, 25 insertions(+), 621 deletions(-) delete mode 100644 resources/windows/warnOpenLP.txt diff --git a/.bzrignore b/.bzrignore index 073fb531a..2620fea42 100644 --- a/.bzrignore +++ b/.bzrignore @@ -19,3 +19,4 @@ _eric4project *.qm openlp/core/resources.py.old *.qm +resources/windows/warnOpenLP.txt diff --git a/resources/windows/warnOpenLP.txt b/resources/windows/warnOpenLP.txt deleted file mode 100644 index 19c579942..000000000 --- a/resources/windows/warnOpenLP.txt +++ /dev/null @@ -1,611 +0,0 @@ -W: no module named openlp.core.lib.build_html (top-level import by openlp.core.ui.maindisplay) -W: no module named mx (top-level import by sqlite.main) -W: no module named ctypes.create_string_buffer (delayed import by urllib) -W: no module named openlp.core.ui.ServiceNoteForm (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.mainwindow) -W: no module named email.Iterators (delayed import by email.message) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.lib.mediaitem) -W: no module named sqlalchemy.sql.join (top-level import by sqlalchemy) -W: no module named java (conditional import by xml.sax._exceptions) -W: no module named openlp.plugins.images.lib.ImageMediaItem (top-level import by openlp.plugins.images.imageplugin) -W: no module named sqlalchemy.SMALLINT (top-level import by sqlalchemy.databases.sybase) -W: no module named sqlalchemy.engine.create_engine (top-level import by sqlalchemy) -W: no module named sqlalchemy.sql.asc (top-level import by sqlalchemy) -W: no module named openlp.plugins.bibles.lib.BiblesTab (top-level import by openlp.plugins.bibles.bibleplugin) -W: no module named PyQt4._qt (top-level import by PyQt4.QtCore) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.lib.alertstab) -W: no module named sqlalchemy.Column (top-level import by openlp.plugins.custom.lib.db) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songusage.songusageplugin) -W: no module named openlp.plugins.alerts.lib.AlertsManager (top-level import by openlp.plugins.alerts.alertsplugin) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.generaltab) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.forms.alertdialog) -W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.custom.lib.mediaitem) -W: no module named sqlalchemy.orm.MapperExtension (top-level import by sqlalchemy.orm.scoping) -W: no module named pyodbc (delayed import by sqlalchemy.databases.access) -W: no module named openlp.core.lib.expand_tags (top-level import by openlp.core.lib.renderer) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.servicemanager) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.dynamic) -W: no module named ctypes._SimpleCData (top-level import by ctypes.wintypes) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.generaltab) -W: no module named simplejson (conditional import by openlp.plugins.remotes.lib.httpserver) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.alerts.forms.alertdialog) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.collections) -W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.lib.serviceitem) -W: no module named openlp.plugins.songs.lib.SongXMLParser (top-level import by openlp.plugins.songs.forms.editsongform) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.bibleplugin) -W: no module named xml.dom.XMLNS_NAMESPACE (top-level import by xml.dom.minidom) -W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.lib.songimport) -W: no module named openlp.plugins.songs.lib.SongXMLBuilder (top-level import by openlp.plugins.songs.forms.editsongform) -W: no module named openlp.core.ui.GeneralTab (top-level import by openlp.core.ui.settingsform) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.presentations.presentationplugin) -W: no module named informixdb (delayed import by sqlalchemy.databases.informix) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.custom.customplugin) -W: no module named cjkcodecs (top-level import by BeautifulSoup) -W: no module named readline (delayed, conditional import by cmd) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.songimport) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.media.mediaplugin) -W: no module named openlp.core.lib.ThemeXML (top-level import by openlp.core.ui.amendthemeform) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.manager) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.custom.lib.mediaitem) -W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.ui.maindisplay) -W: no module named openlp.plugins.songs.forms.EditVerseForm (top-level import by openlp.plugins.songs.forms.editsongform) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.ewimport) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.songs.lib.songstab) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.ui.HideMode (top-level import by openlp.core.ui.maindisplay) -W: no module named sqlalchemy.Column (top-level import by sqlalchemy.databases.sybase) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.slidecontroller) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.songimportform) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.aboutdialog) -W: no module named sqlalchemy.sql.insert (top-level import by sqlalchemy) -W: no module named openlp.core.lib.str_to_bool (top-level import by openlp.core.ui.thememanager) -W: no module named sqlalchemy.MetaData (top-level import by sqlalchemy.databases.sybase) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.biblestab) -W: no module named openlp.plugins.bibles.lib.BibleManager (top-level import by openlp.plugins.bibles.bibleplugin) -W: no module named openlp.core.ui.SlideController (top-level import by openlp.core.ui.mainwindow) -W: no module named MacOS (delayed import by platform) -W: no module named openlp.core.lib.ThemeXML (top-level import by openlp.core.ui.thememanager) -W: no module named cx_Oracle (delayed import by sqlalchemy.databases.oracle) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.slidecontroller) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.servicenotedialog) -W: no module named sqlalchemy.sql.except_ (top-level import by sqlalchemy) -W: no module named openlp.core.ui.AboutForm (top-level import by openlp.core.ui.mainwindow) -W: no module named EasyDialogs (conditional import by getpass) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.lib.mediamanageritem) -W: no module named sqlalchemy.orm.SessionExtension (top-level import by sqlalchemy.orm.session) -W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.bibles.lib.db) -W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editsongform) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.http) -W: no module named sqlalchemy.sql.func (top-level import by sqlalchemy) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.utils.languagemanager) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.mainwindow) -W: no module named uno (conditional import by openlp.plugins.songs.lib.oooimport) -W: no module named kinterbasdb (delayed import by sqlalchemy.databases.firebird) -W: no module named multiprocessing.RLock (top-level import by multiprocessing.sharedctypes) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.filerenameform) -W: no module named sqlalchemy.ForeignKey (top-level import by sqlalchemy.databases.mssql) -W: no module named openlp.core.lib.Renderer (top-level import by openlp.core.lib.rendermanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songmaintenancedialog) -W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.mediamanageritem) -W: no module named openlp.core.ui.FileRenameForm (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.songsplugin) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.bibles.bibleplugin) -W: no module named vms_lib (delayed, conditional import by platform) -W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.ui.slidecontroller) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.alerts.lib.alertsmanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedetaildialog) -W: no module named openlp.plugins.remotes.lib.RemoteTab (top-level import by openlp.plugins.remotes.remoteplugin) -W: no module named openlp.core.ui.ServiceManager (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.songusage.forms.songusagedetailform) -W: no module named openlp.core.ui.SettingsForm (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.plugins.alerts.lib.AlertsTab (top-level import by openlp.plugins.alerts.alertsplugin) -W: no module named xdg (delayed, conditional import by openlp.core.utils) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.custom.customplugin) -W: no module named openlp.core.ui.AmendThemeForm (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.custom.lib.mediaitem) -W: no module named posix (delayed, conditional import by iu) -W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editversedialog) -W: no module named multiprocessing.dummy.Process (delayed import by __main__) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.presentationplugin) -W: no module named sqlalchemy.String (top-level import by sqlalchemy.databases.mssql) -W: no module named xml.dom.EMPTY_PREFIX (top-level import by xml.dom.expatbuilder) -W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.custom.lib.mediaitem) -W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.lib.mediamanageritem) -W: no module named openlp.core.lib.PluginManager (top-level import by openlp.core.ui.mainwindow) -W: no module named multiprocessing.current_process (top-level import by multiprocessing.reduction) -W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songbookform) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.presentations.presentationplugin) -W: no module named xmltok (top-level import by pyexpat) -W: no module named openlp.plugins.bibles.lib.SearchResults (top-level import by openlp.plugins.bibles.lib.http) -W: no module named sqlalchemy.sql.delete (top-level import by sqlalchemy) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.oooimport) -W: no module named _emx_link (conditional import by os) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.aboutdialog) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.bibles.forms.bibleimportwizard) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.core.lib.pluginmanager) -W: no module named openlp.plugins.songs.lib.SongsTab (top-level import by openlp.plugins.songs.songsplugin) -W: no module named sqlalchemy.CHAR (top-level import by sqlalchemy.databases.sybase) -W: no module named sqlalchemy.sql.collate (top-level import by sqlalchemy) -W: no module named sqlalchemy.sql.outparam (top-level import by sqlalchemy) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.lib.db) -W: no module named openlp.core.ui.PluginForm (top-level import by openlp.core.ui.mainwindow) -W: no module named gobject (top-level import by enchant.checker.GtkSpellCheckerDialog) -W: no module named openlp.core.utils.VersionThread (top-level import by __main__) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.topicsform) -W: no module named sqlalchemy.Integer (top-level import by sqlalchemy.databases.mssql) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.exceptiondialog) -W: no module named pwd (delayed, conditional import by distutils.util) -W: no module named uno (conditional import by openlp.plugins.presentations.lib.impresscontroller) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.utils) -W: no module named sqlalchemy.orm.class_mapper (top-level import by openlp.plugins.songs.lib.olpimport) -W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.songs.lib.olpimport) -W: no module named readline (delayed import by pdb) -W: no module named openlp.core.ui.MainDisplay (top-level import by openlp.core.lib.rendermanager) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named sqlalchemy.Table (top-level import by openlp.plugins.songusage.lib.db) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.alertsplugin) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.forms.importwizardform) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.remotes.remoteplugin) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.images.imageplugin) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.alerts.lib.alertstab) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editversedialog) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songusage.songusageplugin) -W: no module named openlp.core.ui.HideMode (top-level import by openlp.core.ui.slidecontroller) -W: no module named sqlalchemy.sql.between (top-level import by sqlalchemy) -W: no module named xml.dom.EMPTY_PREFIX (top-level import by xml.dom.minidom) -W: no module named pysqlite2 (delayed import by sqlalchemy.databases.sqlite) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.lib.customtab) -W: no module named gtk (top-level import by enchant.checker.GtkSpellCheckerDialog) -W: no module named xml.dom.EMPTY_NAMESPACE (top-level import by xml.dom.expatbuilder) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.remotes.lib.httpserver) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedeleteform) -W: no module named sqlalchemy.orm.scoped_session (top-level import by openlp.core.lib.db) -W: no module named openlp.core.lib.clean_tags (top-level import by openlp.core.lib.serviceitem) -W: no module named openlp.core.utils.get_filesystem_encoding (top-level import by openlp.core.ui.thememanager) -W: no module named xml.dom.EMPTY_NAMESPACE (top-level import by xml.dom.minidom) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.toolbar) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.remotes.remoteplugin) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.attributes) -W: no module named sqlalchemy.ForeignKey (top-level import by sqlalchemy.databases.sybase) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.servicemanager) -W: no module named sqlalchemy.Column (top-level import by openlp.plugins.alerts.lib.db) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.advancedtab) -W: no module named AES (delayed, conditional import by archive) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.songmaintenanceform) -W: no module named openlp.core.lib.context_menu_separator (top-level import by openlp.core.lib.mediamanageritem) -W: no module named fcntl (top-level import by tempfile) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.thememanager) -W: no module named mx (top-level import by sqlalchemy.databases.mxODBC) -W: no module named sqlalchemy.sql.union (top-level import by sqlalchemy) -W: no module named openlp.plugins.songs.forms.TopicsForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform) -W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named MacOS (delayed import by distutils.sysconfig) -W: no module named openlp.core.lib.SpellTextEdit (top-level import by openlp.plugins.custom.forms.editcustomdialog) -W: no module named ic (top-level import by webbrowser) -W: no module named com (conditional import by openlp.plugins.presentations.lib.impresscontroller) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.media.mediaplugin) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.forms.editcustomform) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.lib.spelltextedit) -W: no module named openlp.core.lib.html_expands (top-level import by openlp.core.lib.spelltextedit) -W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named sqlalchemy.Column (top-level import by openlp.plugins.songs.lib.db) -W: no module named py2exe (delayed import by enchant.tests) -W: no module named openlp.plugins.songs.forms.AuthorsForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.authorsform) -W: no module named openlp.plugins.remotes.lib.HttpServer (top-level import by openlp.plugins.remotes.remoteplugin) -W: no module named sqlalchemy.Table (top-level import by openlp.plugins.bibles.lib.db) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.remotes.remoteplugin) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.filerenamedialog) -W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named sapdb (delayed import by sqlalchemy.databases.maxdb) -W: no module named ctypes.cdll (delayed import by ctypes.util) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.lib.presentationtab) -W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: no module named sqlalchemy.sql.text (top-level import by sqlalchemy) -W: no module named openlp.core.lib.image_to_byte (top-level import by openlp.core.lib.renderer) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.forms.importwizardform) -W: no module named openlp.core.lib.image_to_byte (top-level import by openlp.core.ui.maindisplay) -W: no module named iconv_codec (top-level import by BeautifulSoup) -W: no module named openlp.plugins.songs.forms.SongBookForm (top-level import by openlp.plugins.songs.forms.songmaintenanceform) -W: no module named sqlalchemy.sql.not_ (top-level import by sqlalchemy) -W: no module named multiprocessing.Pipe (top-level import by multiprocessing.queues) -W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedetailform) -W: no module named sqlalchemy.sql.subquery (top-level import by sqlalchemy) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.songsplugin) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editsongdialog) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.bibles.bibleplugin) -W: no module named openlp.plugins.songs.forms.SongMaintenanceForm (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named xmlparse (top-level import by pyexpat) -W: no module named sqlalchemy.sql.exists (top-level import by sqlalchemy) -W: no module named sqlalchemy.sql.and_ (top-level import by openlp.plugins.songs.forms.songmaintenanceform) -W: no module named multiprocessing.Process (top-level import by multiprocessing.pool) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.settingsdialog) -W: no module named sqlalchemy.exceptions (top-level import by openlp.core.lib.db) -W: no module named sqlalchemy.sql.outerjoin (top-level import by sqlalchemy) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.editsongdialog) -W: no module named openlp.plugins.custom.lib.CustomXMLParser (top-level import by openlp.plugins.custom.lib.mediaitem) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.custom.forms.editcustomdialog) -W: no module named sqlalchemy.Integer (top-level import by sqlalchemy.databases.sybase) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.properties) -W: no module named multiprocessing.current_process (top-level import by multiprocessing.managers) -W: no module named openlp.core.ui.SplashScreen (top-level import by __main__) -W: no module named multiprocessing.TimeoutError (top-level import by multiprocessing.dummy) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.songs.forms.songimportform) -W: no module named xml.dom.XMLNS_NAMESPACE (top-level import by xml.dom.expatbuilder) -W: no module named ctypes.c_int32 (delayed import by urllib) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.amendthemedialog) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.lib.serviceitem) -W: no module named openlp.core.utils.LanguageManager (top-level import by __main__) -W: no module named sqlalchemy.orm.object_mapper (top-level import by sqlalchemy.orm.properties) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.utils.languagemanager) -W: no module named sqlalchemy.sql.literal_column (top-level import by sqlalchemy) -W: no module named openlp.plugins.songs.lib.SongXMLParser (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named ctypes.c_char_p (delayed import by urllib) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.images.imageplugin) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.remotes.lib.remotetab) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.opensong) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songimportform) -W: no module named sqlalchemy.sql.select (top-level import by sqlalchemy) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songbookdialog) -W: no module named openlp.plugins.bibles.lib.BibleMediaItem (top-level import by openlp.plugins.bibles.bibleplugin) -W: no module named PyQt4._qt (top-level import by PyQt4.QtNetwork) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.songs.songsplugin) -W: no module named sqlalchemy.sql.case (top-level import by sqlalchemy) -W: no module named wx (top-level import by enchant.checker.wxSpellCheckerDialog) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.alerts.alertsplugin) -W: no module named com (conditional import by openlp.plugins.songs.lib.sofimport) -W: no module named PyQt4._qt (top-level import by PyQt4) -W: no module named SOCKS (top-level import by ftplib) -W: no module named openlp.plugins.songusage.forms.SongUsageDetailForm (top-level import by openlp.plugins.songusage.songusageplugin) -W: no module named sqlalchemy.sql.null (top-level import by sqlalchemy) -W: no module named sqlalchemy.MetaData (top-level import by openlp.core.lib.db) -W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.plugins.custom.forms.EditCustomForm (top-level import by openlp.plugins.custom.customplugin) -W: no module named org (delayed import by xml.sax) -W: no module named openlp.core.lib.SpellTextEdit (top-level import by openlp.plugins.songs.forms.editversedialog) -W: no module named sqlalchemy.orm.EXT_CONTINUE (top-level import by sqlalchemy.orm.scoping) -W: no module named openlp.core.lib.build_lyrics_outline_css (top-level import by openlp.core.lib.renderer) -W: no module named openlp.plugins.songs.lib.VerseType (top-level import by openlp.plugins.songs.forms.editverseform) -W: no module named com (conditional import by openlp.plugins.songs.lib.oooimport) -W: no module named openlp.core.lib.str_to_bool (top-level import by openlp.core.lib.theme) -W: no module named sqlalchemy.sql.literal (top-level import by sqlalchemy) -W: no module named termios (top-level import by getpass) -W: no module named openlp.core.lib.build_lyrics_format_css (top-level import by openlp.core.lib.renderer) -W: no module named ctypes.byref (delayed import by urllib) -W: no module named openlp.plugins.custom.lib.CustomTab (top-level import by openlp.plugins.custom.customplugin) -W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named openlp.plugins.bibles.lib.parse_reference (top-level import by openlp.plugins.bibles.lib.manager) -W: no module named java (delayed import by platform) -W: no module named openlp.core.ui.ServiceItemEditForm (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.customplugin) -W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.lib.rendermanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.db) -W: no module named _xmlrpclib (top-level import by xmlrpclib) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: no module named openlp.plugins.media.lib.MediaMediaItem (top-level import by openlp.plugins.media.mediaplugin) -W: no module named openlp.plugins.custom.lib.CustomXMLBuilder (top-level import by openlp.plugins.custom.forms.editcustomform) -W: no module named rourl2path (conditional import by urllib) -W: no module named pwd (delayed import by webbrowser) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.themestab) -W: no module named PyQt4._qt (top-level import by PyQt4.QtWebKit) -W: no module named sqlalchemy.orm.class_mapper (delayed, conditional import by sqlalchemy.orm.interfaces) -W: no module named PyQt4._qt (top-level import by PyQt4.phonon) -W: no module named openlp.core.ui.HideMode (top-level import by openlp.plugins.presentations.lib.messagelistener) -W: no module named openlp.plugins.songusage.forms.SongUsageDeleteForm (top-level import by openlp.plugins.songusage.songusageplugin) -W: no module named openlp.core.lib.context_menu_separator (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.plugindialog) -W: no module named fcntl (conditional import by subprocess) -W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.bibles.lib.mediaitem) -W: no module named openlp.core.lib.PluginStatus (top-level import by openlp.core.lib.pluginmanager) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.forms.editsongform) -W: no module named openlp.core.ui.ScreenList (top-level import by __main__) -W: no module named sqlalchemy.or_ (top-level import by openlp.plugins.bibles.lib.db) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.editsongform) -W: no module named openlp.plugins.songs.forms.ImportWizardForm (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.ui.ThemeManager (top-level import by openlp.core.ui.mainwindow) -W: no module named pyodbc (delayed, conditional import by sqlalchemy.databases.mssql) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.lib.mediamanageritem) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.biblestab) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.songusageplugin) -W: no module named multiprocessing.active_children (top-level import by multiprocessing.managers) -W: no module named openlp.plugins.songs.forms.EditSongForm (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named email.Generator (delayed import by email.message) -W: no module named mx (delayed import by sqlalchemy.databases.mxODBC) -W: no module named sqlalchemy.sql.or_ (top-level import by sqlalchemy) -W: no module named sqlalchemy.Table (top-level import by openlp.plugins.custom.lib.db) -W: no module named sqlalchemy.Table (top-level import by sqlalchemy.databases.sybase) -W: no module named openlp.core.lib.get_text_file_string (top-level import by openlp.core.ui.thememanager) -W: no module named sqlalchemy.orm.object_session (top-level import by sqlalchemy.orm.scoping) -W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.bibles.lib.mediaitem) -W: no module named sqlalchemy.Table (top-level import by sqlalchemy.databases.mssql) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.forms.bibleimportwizard) -W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.lib.renderer) -W: no module named pymssql (delayed import by sqlalchemy.databases.mssql) -W: no module named sqlalchemy.orm.sessionmaker (top-level import by openlp.plugins.songs.lib.olpimport) -W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.expand_tags (top-level import by openlp.core.lib.serviceitem) -W: no module named gestalt (delayed import by platform) -W: no module named enchant.checker.SpellChecker (top-level import by enchant.checker.CmdLineChecker) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.themestab) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.olp1import) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.messagelistener) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.interfaces) -W: no module named sqlalchemy.orm.object_mapper (top-level import by sqlalchemy.orm.query) -W: no module named sqlalchemy.sql.distinct (top-level import by sqlalchemy) -W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named sqlalchemy.sql.extract (top-level import by sqlalchemy) -W: no module named sqlalchemy.Column (top-level import by openlp.plugins.bibles.lib.db) -W: no module named psycopg2 (delayed import by sqlalchemy.databases.postgres) -W: no module named enchant.checker.SpellChecker (delayed import by enchant.checker.GtkSpellCheckerDialog) -W: no module named clr (conditional import by adodbapi.adodbapi) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named openlp.plugins.custom.lib.CustomXMLParser (top-level import by openlp.plugins.custom.forms.editcustomform) -W: no module named openlp.core.theme.Theme (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.custom.forms.editcustomform) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.core.lib.settingsmanager) -W: no module named openlp.core.lib.Receiver (top-level import by __main__) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.bibles.lib.manager) -W: no module named org (top-level import by pickle) -W: no module named enchant.DictNotFoundError (top-level import by openlp.core.lib.spelltextedit) -W: no module named sqlalchemy.sql.except_all (top-level import by sqlalchemy) -W: no module named openlp.plugins.presentations.lib.PresentationTab (top-level import by openlp.plugins.presentations.presentationplugin) -W: no module named sqlalchemy.sql.cast (top-level import by sqlalchemy) -W: no module named sqlalchemy.orm.relation (top-level import by openlp.plugins.songs.lib.db) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.settingsdialog) -W: no module named openlp.core.utils.LanguageManager (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named sqlalchemy.sql.intersect (top-level import by sqlalchemy) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.songimport) -W: no module named sqlalchemy.orm.class_mapper (top-level import by sqlalchemy.orm.scoping) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.util) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.opensongimport) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.bibles.lib.biblestab) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.aboutform) -W: no module named openlp.plugins.custom.lib.CustomMediaItem (top-level import by openlp.plugins.custom.customplugin) -W: no module named sqlalchemy.orm.scoped_session (top-level import by openlp.plugins.songs.lib.olpimport) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.amendthemeform) -W: no module named sqlalchemy.engine.engine_from_config (top-level import by sqlalchemy) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.core.ui.themestab) -W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.maindisplay) -W: no module named openlp.core.lib.PluginStatus (top-level import by openlp.core.ui.pluginform) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.http) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.remotes.lib.httpserver) -W: no module named sqlalchemy.Table (top-level import by openlp.plugins.songs.lib.db) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.utils) -W: no module named openlp.core.lib.RenderManager (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.alerts.alertsplugin) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.lib.plugin) -W: no module named sqlalchemy.ForeignKey (top-level import by openlp.plugins.bibles.lib.db) -W: no module named openlp.plugins.songs.lib.SongMediaItem (top-level import by openlp.plugins.songs.songsplugin) -W: no module named sqlalchemy.Index (top-level import by openlp.plugins.songs.lib.db) -W: no module named multiprocessing.TimeoutError (top-level import by multiprocessing.pool) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songusage.forms.songusagedetaildialog) -W: no module named enchant.DictWithPWL (delayed import by enchant.checker.tests) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.songstab) -W: no module named openlp.core.ui.AdvancedTab (top-level import by openlp.core.ui.settingsform) -W: no module named MySQLdb (delayed import by sqlalchemy.databases.mysql) -W: no module named openlp.plugins.presentations.lib.PresentationMediaItem (top-level import by openlp.plugins.presentations.presentationplugin) -W: no module named openlp.plugins.alerts.forms.AlertForm (top-level import by openlp.plugins.alerts.alertsplugin) -W: no module named ctypes.c_int (delayed import by urllib) -W: no module named xml.dom.XML_NAMESPACE (delayed import by xml.dom.pulldom) -W: no module named ctypes.c_void_p (delayed import by urllib) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.osis) -W: no module named sqlalchemy.create_engine (top-level import by openlp.core.lib.db) -W: no module named win32com.client._get_good_object_ (top-level import by win32com.client.util) -W: no module named openlp.core.ui.MainDisplay (top-level import by openlp.core.ui.slidecontroller) -W: no module named openlp.core.lib.resize_image (top-level import by openlp.plugins.presentations.lib.presentationcontroller) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.remotes.lib.remotetab) -W: no module named openlp.core.ui.MediaDockManager (top-level import by openlp.core.ui.mainwindow) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.session) -W: no module named sqlalchemy.Column (top-level import by sqlalchemy.databases.mssql) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.editversedialog) -W: no module named multiprocessing.Process (top-level import by multiprocessing.managers) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.presentationcontroller) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.custom.forms.editcustomdialog) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.lib.alertsmanager) -W: no module named sgmlop (top-level import by xmlrpclib) -W: no module named MacOS (conditional import by py_compile) -W: no module named multiprocessing.cpu_count (top-level import by multiprocessing.dummy) -W: no module named _dummy_threading (top-level import by dummy_threading) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songmaintenanceform) -W: no module named openlp.plugins.presentations.lib.PresentationController (top-level import by openlp.plugins.presentations.presentationplugin) -W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.lib.mediamanageritem) -W: no module named sqlalchemy.sql.union_all (top-level import by sqlalchemy) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.opensong) -W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.plugins.bibles.lib.mediaitem) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.osis) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.settingsform) -W: no module named enchant.tokenize.get_tokenizer (top-level import by enchant.checker) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.bibles.lib.manager) -W: no module named org (top-level import by copy) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.core.ui.servicemanager) -W: no module named sqlalchemy.MetaData (top-level import by openlp.plugins.songs.lib.olpimport) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.songmaintenancedialog) -W: no module named sqlalchemy.sql.select (top-level import by sqlalchemy.databases.mssql) -W: no module named openlp.core.lib.SettingsManager (top-level import by openlp.plugins.bibles.forms.importwizardform) -W: no module named multiprocessing.current_process (top-level import by multiprocessing.connection) -W: no module named sqlalchemy.orm.sessionmaker (top-level import by openlp.core.lib.db) -W: no module named sqlalchemy.sql.desc (top-level import by sqlalchemy) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songusage.forms.songusagedeletedialog) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.mediaitem) -W: no module named ctypes.cdll (delayed import by urllib) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.lib) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.media.mediaplugin) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.presentations.lib.presentationtab) -W: no module named MySQLdb (delayed, conditional import by sqlalchemy.databases.mysql) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: no module named openlp.core.lib.MediaManagerItem (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named sqlalchemy.orm.object_session (top-level import by sqlalchemy.orm.dynamic) -W: no module named sqlalchemy.sql.modifier (top-level import by sqlalchemy) -W: no module named _xmlplus (top-level import by xml) -W: no module named sqlalchemy.Column (top-level import by openlp.plugins.songusage.lib.db) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.advancedtab) -W: no module named sqlalchemy.sql.and_ (top-level import by sqlalchemy) -W: no module named sqlalchemy.MetaData (top-level import by sqlalchemy.databases.mssql) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.dependency) -W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.ui.themestab) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.presentations.lib.presentationtab) -W: no module named openlp.core.utils.get_images_filter (top-level import by openlp.core.ui.amendthemeform) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.presentations.presentationplugin) -W: no module named openlp.plugins.presentations.lib.MessageListener (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: no module named openlp.plugins.bibles.forms.ImportWizardForm (top-level import by openlp.plugins.bibles.lib.mediaitem) -W: no module named openlp.core.utils.AppLocation (top-level import by __main__) -W: no module named sqlalchemy.ForeignKey (top-level import by openlp.plugins.songs.lib.db) -W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.thememanager) -W: no module named ctypes.cdll (conditional import by openlp.plugins.presentations.lib.pptviewcontroller) -W: no module named pwd (delayed import by getpass) -W: no module named sqlalchemy.sql.and_ (top-level import by openlp.plugins.songusage.forms.songusagedetailform) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.amendthemedialog) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.plugins.songs.forms.songimportwizard) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.serviceitemeditdialog) -W: no module named openlp.core.lib.resize_image (top-level import by openlp.core.ui.maindisplay) -W: no module named openlp.core.lib.BaseListWithDnD (top-level import by openlp.plugins.custom.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.topicsdialog) -W: no module named PyQt4._qt (top-level import by PyQt4.QtGui) -W: no module named sqlalchemy.sql.update (top-level import by sqlalchemy) -W: no module named multiprocessing.current_process (delayed, conditional import by logging) -W: no module named multiprocessing.Pool (top-level import by multiprocessing.managers) -W: no module named sqlalchemy.create_engine (delayed, conditional import by sqlalchemy.schema) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.forms.importwizardform) -W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.lib.mediamanageritem) -W: no module named posix (conditional import by os) -W: no module named sqlalchemy.sql.bindparam (top-level import by sqlalchemy) -W: no module named xml.dom.DOMImplementation (top-level import by xml.dom.domreg) -W: no module named openlp.core.utils.add_actions (top-level import by openlp.core.ui.mainwindow) -W: no module named sqlalchemy.create_engine (top-level import by openlp.plugins.songs.lib.olpimport) -W: no module named multiprocessing.cpu_count (top-level import by multiprocessing.pool) -W: no module named multiprocessing.AuthenticationError (top-level import by multiprocessing.connection) -W: no module named openlp.core.ui.ThemesTab (top-level import by openlp.core.ui.settingsform) -W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.media.lib.mediaitem) -W: no module named sqlalchemy.orm.class_mapper (top-level import by openlp.plugins.bibles.lib.db) -W: no module named sqlalchemy.String (top-level import by sqlalchemy.databases.sybase) -W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named pwd (delayed, conditional import by posixpath) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.strategies) -W: no module named mx (top-level import by adodbapi.adodbapi) -W: no module named sqlalchemy.sql.alias (top-level import by sqlalchemy) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.authorsdialog) -W: no module named sqlalchemy.Table (top-level import by openlp.plugins.alerts.lib.db) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.bibles.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.images.imageplugin) -W: no module named sqlalchemy.orm.mapperlib (delayed import by sqlalchemy.orm.util) -W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.lib.rendermanager) -W: no module named openlp.core.lib.OpenLPDockWidget (top-level import by openlp.core.ui.mainwindow) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.songs.forms.songimportwizard) -W: no module named openlp.core.lib.Plugin (top-level import by openlp.plugins.songusage.songusageplugin) -W: no module named openlp.core.utils.AppLocation (top-level import by openlp.plugins.presentations.lib.presentationcontroller) -W: no module named openlp.core.lib.context_menu_action (top-level import by openlp.core.lib.spelltextedit) -W: no module named openlp.core.lib.build_icon (top-level import by openlp.core.ui.thememanager) -W: no module named openlp.core.lib.check_item_selected (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.pluginform) -W: no module named enchant.checker.SpellChecker (delayed import by enchant.checker.wxSpellCheckerDialog) -W: no module named sqlalchemy.DefaultClause (top-level import by sqlalchemy.databases.sqlite) -W: no module named openlp.core.lib.ServiceItem (top-level import by openlp.core.ui.servicemanager) -W: no module named openlp.core.lib.ItemCapabilities (top-level import by openlp.core.ui.slidecontroller) -W: no module named openlp.core.utils.get_images_filter (top-level import by openlp.plugins.images.lib.mediaitem) -W: no module named pyodbc (delayed import by sqlalchemy.databases.mssql) -W: no module named openlp.core.lib.OpenLPToolbar (top-level import by openlp.core.ui.slidecontroller) -W: no module named System (conditional import by adodbapi.adodbapi) -W: no module named openlp.core.lib.SettingsTab (top-level import by openlp.plugins.custom.lib.customtab) -W: no module named openlp.core.lib.Receiver (top-level import by openlp.plugins.bibles.lib.csvbible) -W: no module named openlp.core.lib.translate (top-level import by openlp.core.ui.generaltab) -W: no module named openlp.core.lib.ThemeLevel (top-level import by openlp.core.ui.servicemanager) -W: no module named sqlalchemy.exceptions (top-level import by sqlalchemy.orm.scoping) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.alerts.forms.alertform) -W: no module named mypyodbc (delayed import by sqlalchemy.databases.sybase) -W: no module named sqlalchemy.sql.intersect_all (top-level import by sqlalchemy) -W: no module named openlp.core.lib.translate (top-level import by openlp.plugins.presentations.lib.mediaitem) -W: __all__ is built strangely at line 0 - dummy_threading (C:\Python26\lib\dummy_threading.pyc) -W: delayed exec statement detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) -W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) -W: delayed eval hack detected at line 0 - bdb (C:\Python26\lib\bdb.pyc) -W: delayed __import__ hack detected at line 0 - optparse (C:\Python26\lib\optparse.pyc) -W: delayed conditional __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) -W: delayed conditional exec statement detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) -W: delayed conditional __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) -W: delayed __import__ hack detected at line 0 - pkg_resources (build/bdist.linux-i686/egg/pkg_resources.pyc) -W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) -W: delayed exec statement detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) -W: delayed conditional __import__ hack detected at line 0 - doctest (C:\Python26\lib\doctest.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.orm.interfaces (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\interfaces.pyc) -W: __all__ is built strangely at line 0 - tokenize (C:\Python26\lib\tokenize.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.engine (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\engine\__init__.pyc) -W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) -W: delayed __import__ hack detected at line 0 - pickle (C:\Python26\lib\pickle.pyc) -W: top-level conditional exec statement detected at line 0 - sqlalchemy.sql.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\util.pyc) -W: top-level conditional exec statement detected at line 0 - sqlalchemy.sql.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\util.pyc) -W: delayed conditional __import__ hack detected at line 0 - openlp.core.lib.pluginmanager (c:\Documents and Settings\raoul\My Documents\My Projects\openlp\movements\openlp\core\lib\pluginmanager.pyc) -W: delayed conditional exec statement detected at line 0 - multiprocessing.sharedctypes (C:\Python26\lib\multiprocessing\sharedctypes.pyc) -W: delayed __import__ hack detected at line 0 - encodings (C:\Python26\lib\encodings\__init__.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.databases.mysql (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\databases\mysql.pyc) -W: delayed exec statement detected at line 0 - sqlalchemy.orm.attributes (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\attributes.pyc) -W: delayed conditional __import__ hack detected at line 0 - openlp.plugins.presentations.presentationplugin (c:\Documents and Settings\raoul\My Documents\My Projects\openlp\movements\openlp\plugins\presentations\presentationplugin.pyc) -W: delayed __import__ hack detected at line 0 - enchant.tokenize (C:\Python26\lib\site-packages\enchant\tokenize\__init__.pyc) -W: __all__ is built strangely at line 0 - multiprocessing (C:\Python26\lib\multiprocessing\__init__.pyc) -W: __all__ is built strangely at line 0 - dis (C:\Python26\lib\dis.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.databases (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\databases\__init__.pyc) -W: delayed __import__ hack detected at line 0 - win32com.server.policy (C:\Python26\lib\site-packages\win32com\server\policy.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.orm.mapper (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\mapper.pyc) -W: top-level exec statement detected at line 0 - hashlib (C:\Python26\lib\hashlib.pyc) -W: top-level conditional exec statement detected at line 0 - hashlib (C:\Python26\lib\hashlib.pyc) -W: delayed conditional eval hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) -W: delayed conditional __import__ hack detected at line 0 - warnings (C:\Python26\lib\warnings.pyc) -W: delayed exec statement detected at line 0 - cgi (C:\Python26\lib\cgi.pyc) -W: delayed __import__ hack detected at line 0 - email (C:\Python26\lib\email\__init__.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.orm (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\__init__.pyc) -W: delayed __import__ hack detected at line 0 - ctypes (C:\Python26\lib\ctypes\__init__.pyc) -W: delayed __import__ hack detected at line 0 - ctypes (C:\Python26\lib\ctypes\__init__.pyc) -W: delayed conditional __import__ hack detected at line 0 - xml.dom.domreg (C:\Python26\lib\xml\dom\domreg.pyc) -W: delayed exec statement detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) -W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) -W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) -W: delayed conditional eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) -W: delayed eval hack detected at line 0 - pdb (C:\Python26\lib\pdb.pyc) -W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) -W: delayed conditional __import__ hack detected at line 0 - unittest (C:\Python26\lib\unittest.pyc) -W: delayed conditional __import__ hack detected at line 0 - pkgutil (C:\Python26\lib\pkgutil.pyc) -W: delayed conditional __import__ hack detected at line 0 - pkgutil (C:\Python26\lib\pkgutil.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.orm.properties (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\orm\properties.pyc) -W: delayed conditional exec statement detected at line 0 - iu (c:\Documents and Settings\raoul\My Documents\My Projects\pyinstaller\iu.pyc) -W: delayed conditional exec statement detected at line 0 - iu (c:\Documents and Settings\raoul\My Documents\My Projects\pyinstaller\iu.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy.sql (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\sql\__init__.pyc) -W: __all__ is built strangely at line 0 - collections (C:\Python26\lib\collections.pyc) -W: delayed exec statement detected at line 0 - collections (C:\Python26\lib\collections.pyc) -W: delayed __import__ hack detected at line 0 - sqlalchemy.engine.url (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\engine\url.pyc) -W: delayed exec statement detected at line 0 - multiprocessing.managers (C:\Python26\lib\multiprocessing\managers.pyc) -W: delayed exec statement detected at line 0 - socket (C:\Python26\lib\socket.pyc) -W: delayed conditional __import__ hack detected at line 0 - win32com.client.gencache (C:\Python26\lib\site-packages\win32com\client\gencache.pyc) -W: delayed __import__ hack detected at line 0 - win32com.client.gencache (C:\Python26\lib\site-packages\win32com\client\gencache.pyc) -W: delayed eval hack detected at line 0 - os (C:\Python26\lib\os.pyc) -W: __all__ is built strangely at line 0 - __future__ (C:\Python26\lib\__future__.pyc) -W: delayed __import__ hack detected at line 0 - win32com.client.makepy (C:\Python26\lib\site-packages\win32com\client\makepy.pyc) -W: delayed exec statement detected at line 0 - win32com.client.dynamic (C:\Python26\lib\site-packages\win32com\client\dynamic.pyc) -W: __all__ is built strangely at line 0 - sqlalchemy (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\__init__.pyc) -W: delayed __import__ hack detected at line 0 - xml.sax (C:\Python26\lib\xml\sax\__init__.pyc) -W: delayed eval hack detected at line 0 - gettext (C:\Python26\lib\gettext.pyc) -W: delayed eval hack detected at line 0 - sqlalchemy.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\util.pyc) -W: delayed exec statement detected at line 0 - sqlalchemy.util (C:\Python26\lib\site-packages\sqlalchemy-0.5.8-py2.6.egg\sqlalchemy\util.pyc) diff --git a/scripts/windows-builder.py b/scripts/windows-builder.py index 1900fab99..1af85853d 100644 --- a/scripts/windows-builder.py +++ b/scripts/windows-builder.py @@ -115,17 +115,30 @@ build_path = os.path.join(branch_path, u'build', u'pyi.win32', u'OpenLP') dist_path = os.path.join(branch_path, u'dist', u'OpenLP') enchant_path = os.path.join(site_packages, u'enchant') +def update_code(): + print u'Updating the code...' + os.chdir(branch_path) + bzr = Popen((u'bzr', u'update'), stdout=PIPE) + output, error = bzr.communicate() + code = bzr.wait() + if code != 0: + print output + raise Exception(u'Error updating the code') + def clean_build_directories(): - #if not os.path.exists(build_path) - for root, dirs, files in os.walk(build_path, topdown=False): - print root - for file in files: - os.remove(os.path.join(root, file)) - #os.removedirs(build_path) - for root, dirs, files in os.walk(dist_path, topdown=False): - for file in files: - os.remove(os.path.join(root, file)) - #os.removedirs(dist_path) + dist_dir = os.path.join(build_path, u'dist') + build_dir = os.path.join(build_path, u'build') + if os.path.exists(dist_dir): + for root, dirs, files in os.walk(dist_dir, topdown=False): + print root + for file in files: + os.remove(os.path.join(root, file)) + os.removedirs(dist_dir) + if os.path.exists(build_dir): + for root, dirs, files in os.walk(build_dir, topdown=False): + for file in files: + os.remove(os.path.join(root, file)) + os.removedirs(build_dir) def run_pyinstaller(): print u'Running PyInstaller...' @@ -239,6 +252,7 @@ def main(): print "PyInstaller:", pyi_build print "Inno Setup path:", innosetup_path print "Windows resources:", winres_path + update_code() #clean_build_directories() run_pyinstaller() write_version_file() From c487d7f33d95ef0c8e2373d97de0eaa1a56cd7de Mon Sep 17 00:00:00 2001 From: Tim Bentley <tim.bentley@gmail.com> Date: Sun, 2 Jan 2011 13:57:55 +0000 Subject: [PATCH 48/49] Fix the service saving Fixes: https://launchpad.net/bugs/696313 --- openlp/core/ui/mainwindow.py | 1 - openlp/core/ui/servicemanager.py | 22 +++++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 16dbfb2c4..8c6117955 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -701,7 +701,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): if QtCore.QSettings().value( self.generalSettingsSection + u'/auto open', QtCore.QVariant(False)).toBool(): - #self.ServiceManagerContents.onLoadService(True) self.ServiceManagerContents.loadLastFile() view_mode = QtCore.QSettings().value(u'%s/view mode' % \ self.generalSettingsSection, u'default') diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index e58e9eaef..8f4e17a0c 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -109,12 +109,12 @@ class ServiceManager(QtGui.QWidget): self.suffixes = [] self.dropPosition = 0 self.expandTabs = False - #is a new service and has not been saved + # is a new service and has not been saved self._modified = False self._fileName = u'' self.serviceNoteForm = ServiceNoteForm(self.parent) self.serviceItemEditForm = ServiceItemEditForm(self.parent) - #start with the layout + # start with the layout self.layout = QtGui.QVBoxLayout(self) self.layout.setSpacing(0) self.layout.setMargin(0) @@ -305,6 +305,8 @@ class ServiceManager(QtGui.QWidget): """ self._fileName = unicode(fileName) self.parent.setServiceModified(self.isModified, self.shortFileName()) + QtCore.QSettings(). \ + setValue(u'service/last file',QtCore.QVariant(fileName)) def fileName(self): """ @@ -390,6 +392,8 @@ class ServiceManager(QtGui.QWidget): self.serviceItems = [] self.setFileName(u'') self.setModified(False) + QtCore.QSettings(). \ + setValue(u'service/last file',QtCore.QVariant(u'')) def saveFile(self): """ @@ -530,13 +534,21 @@ class ServiceManager(QtGui.QWidget): self.setFileName(fileName) self.parent.addRecentFile(fileName) self.setModified(False) + QtCore.QSettings(). \ + setValue(u'service/last file',QtCore.QVariant(fileName)) # Refresh Plugin lists Receiver.send_message(u'plugin_list_refresh') def loadLastFile(self): - if not self.parent.recentFiles: - return - self.loadFile(self.parent.recentFiles[0]) + """ + Load the last service item from the service manager when the + service was last closed. Can be blank if there was no service + present. + """ + fileName = QtCore.QSettings(). \ + value(u'service/last file',QtCore.QVariant(u'')).toString() + if fileName: + self.loadFile(fileName) def contextMenu(self, point): item = self.serviceManagerList.itemAt(point) From d8ef3c5947a253ddec1c304384b5ce6ac67adbfe Mon Sep 17 00:00:00 2001 From: Andreas Preikschat <googol@hush.com> Date: Sun, 2 Jan 2011 22:34:33 +0100 Subject: [PATCH 49/49] added a check to prevent replacing the live background with an non existing image, prevent replacing with more images --- openlp/plugins/images/lib/mediaitem.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index bf702ae44..ccc432931 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -208,16 +208,21 @@ class ImageMediaItem(MediaManagerItem): self.parent.liveController.display.resetImage() def onReplaceClick(self): - # TODO: Check if image exists. if check_item_selected(self.listView, translate('ImagePlugin.MediaItem', 'You must select an image to replace the background with.')): - items = self.listView.selectedIndexes() - for item in items: - bitem = self.listView.item(item.row()) - filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) + item = self.listView.selectedIndexes()[0] + bitem = self.listView.item(item.row()) + filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) + if os.path.exists(filename): (path, name) = os.path.split(filename) self.parent.liveController.display.directImage(name, filename) + else: + QtGui.QMessageBox.critical(self, + translate('ImagePlugin.MediaItem', 'Live Background Could ' + 'Not Be Replaced'), + unicode(translate('ImagePlugin.MediaItem', + 'The image %s no longer exists.')) % filename) self.resetButton.setVisible(True) def onPreviewClick(self):