diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py
index d8481e801..b8894fe9a 100644
--- a/openlp/core/ui/generaltab.py
+++ b/openlp/core/ui/generaltab.py
@@ -23,11 +23,34 @@
# 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 SettingsTab, Receiver, translate
+log = logging.getLogger(__name__)
+
+class ValidEdit(QtGui.QLineEdit):
+ """
+ Only allow numeric characters to be edited
+ """
+ def __init__(self, parent):
+ """
+ Set up Override and Validator
+ """
+ QtGui.QLineEdit.__init__(self, parent)
+ self.setValidator(QtGui.QIntValidator(0, 9999, self))
+
+ def validText(self):
+ """
+ Only return Integers. Space is 0
+ """
+ if self.text().isEmpty():
+ return QtCore.QString(u'0')
+ else:
+ return self.text()
+
class GeneralTab(SettingsTab):
"""
GeneralTab is the general settings tab in the settings dialog.
@@ -240,7 +263,7 @@ class GeneralTab(SettingsTab):
self.customXLabel.setAlignment(QtCore.Qt.AlignCenter)
self.customXLabel.setObjectName(u'customXLabel')
self.customXLayout.addWidget(self.customXLabel)
- self.customXValueEdit = QtGui.QLineEdit(self.displayGroupBox)
+ self.customXValueEdit = ValidEdit(self.displayGroupBox)
self.customXValueEdit.setObjectName(u'customXValueEdit')
self.customXLayout.addWidget(self.customXValueEdit)
self.customLayout.addLayout(self.customXLayout)
@@ -252,7 +275,7 @@ class GeneralTab(SettingsTab):
self.customYLabel.setAlignment(QtCore.Qt.AlignCenter)
self.customYLabel.setObjectName(u'customYLabel')
self.customYLayout.addWidget(self.customYLabel)
- self.customYValueEdit = QtGui.QLineEdit(self.displayGroupBox)
+ self.customYValueEdit = ValidEdit(self.displayGroupBox)
self.customYValueEdit.setObjectName(u'customYValueEdit')
self.customYLayout.addWidget(self.customYValueEdit)
self.customLayout.addLayout(self.customYLayout)
@@ -265,7 +288,7 @@ class GeneralTab(SettingsTab):
self.customWidthLabel.setAlignment(QtCore.Qt.AlignCenter)
self.customWidthLabel.setObjectName(u'customWidthLabel')
self.customWidthLayout.addWidget(self.customWidthLabel)
- self.customWidthValueEdit = QtGui.QLineEdit(self.displayGroupBox)
+ self.customWidthValueEdit = ValidEdit(self.displayGroupBox)
self.customWidthValueEdit.setObjectName(u'customWidthValueEdit')
self.customWidthLayout.addWidget(self.customWidthValueEdit)
self.customLayout.addLayout(self.customWidthLayout)
@@ -277,7 +300,7 @@ class GeneralTab(SettingsTab):
self.customHeightLabel.setAlignment(QtCore.Qt.AlignCenter)
self.customHeightLabel.setObjectName(u'customHeightLabel')
self.customHeightLayout.addWidget(self.customHeightLabel)
- self.customHeightValueEdit = QtGui.QLineEdit(self.displayGroupBox)
+ self.customHeightValueEdit = ValidEdit(self.displayGroupBox)
self.customHeightValueEdit.setObjectName(u'customHeightValueEdit')
self.customHeightLayout.addWidget(self.customHeightValueEdit)
self.customLayout.addLayout(self.customHeightLayout)
@@ -465,10 +488,10 @@ class GeneralTab(SettingsTab):
# Reset screens after initial definition
if self.overrideChanged:
self.screens.override[u'size'] = QtCore.QRect(
- int(self.customXValueEdit.text()),
- int(self.customYValueEdit.text()),
- int(self.customWidthValueEdit.text()),
- int(self.customHeightValueEdit.text()))
+ int(self.customXValueEdit.validText()),
+ int(self.customYValueEdit.validText()),
+ int(self.customWidthValueEdit.validText()),
+ int(self.customHeightValueEdit.validText()))
if self.overrideCheckBox.isChecked():
self.screens.set_override_display()
else:
diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py
index 5b4c324dc..24cc4317b 100644
--- a/openlp/plugins/alerts/forms/alertdialog.py
+++ b/openlp/plugins/alerts/forms/alertdialog.py
@@ -128,7 +128,7 @@ class Ui_AlertDialog(object):
self.AlertEntryLabel.setText(
translate('AlertsPlugin.AlertForm', 'Alert &text:'))
self.AlertParameter.setText(
- translate('AlertsPlugin.AlertForm', '&Parameter(s):'))
+ translate('AlertsPlugin.AlertForm', '&Parameter:'))
self.NewButton.setText(
translate('AlertsPlugin.AlertForm', '&New'))
self.SaveButton.setText(
diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py
index 98fc5dae2..70a06fc0c 100644
--- a/openlp/plugins/bibles/forms/bibleimportform.py
+++ b/openlp/plugins/bibles/forms/bibleimportform.py
@@ -84,21 +84,27 @@ 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.locationComboBox,
QtCore.SIGNAL(u'currentIndexChanged(int)'),
self.onLocationComboBoxChanged)
- QtCore.QObject.connect(self.OsisFileButton,
+ QtCore.QObject.connect(self.osisFileButton,
QtCore.SIGNAL(u'clicked()'),
self.onOsisFileButtonClicked)
- QtCore.QObject.connect(self.BooksFileButton,
+ QtCore.QObject.connect(self.booksFileButton,
QtCore.SIGNAL(u'clicked()'),
self.onBooksFileButtonClicked)
- QtCore.QObject.connect(self.CsvVersesFileButton,
+ QtCore.QObject.connect(self.csvVersesFileButton,
QtCore.SIGNAL(u'clicked()'),
self.onCsvVersesFileButtonClicked)
- QtCore.QObject.connect(self.OpenSongBrowseButton,
+ QtCore.QObject.connect(self.openSongBrowseButton,
QtCore.SIGNAL(u'clicked()'),
self.onOpenSongBrowseButtonClicked)
+ QtCore.QObject.connect(self.openlp1FileButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onOpenlp1FileButtonClicked)
+ QtCore.QObject.connect(self.cancelButton,
+ QtCore.SIGNAL(u'clicked(bool)'),
+ self.onCancelButtonClicked)
QtCore.QObject.connect(self,
QtCore.SIGNAL(u'currentIdChanged(int)'),
self.onCurrentIdChanged)
@@ -130,7 +136,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
elif self.currentId() == 1:
# Select page
if self.field(u'source_format').toInt()[0] == BibleFormat.OSIS:
- if self.field(u'osis_location').toString() == u'':
+ if not self.field(u'osis_location').toString():
QtGui.QMessageBox.critical(self,
translate('BiblesPlugin.ImportWizardForm',
'Invalid Bible Location'),
@@ -147,7 +153,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.booksLocationEdit.setFocus()
return False
elif not self.field(u'csv_versefile').toString():
QtGui.QMessageBox.critical(self,
@@ -156,7 +162,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.csvVerseLocationEdit.setFocus()
return False
elif self.field(u'source_format').toInt()[0] == \
BibleFormat.OpenSong:
@@ -167,7 +173,17 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
translate('BiblesPlugin.ImportWizardForm',
'You need to specify an OpenSong Bible '
'file to import.'))
- self.OpenSongFileEdit.setFocus()
+ self.openSongFileEdit.setFocus()
+ return False
+ elif self.field(u'source_format').toInt()[0] == BibleFormat.OpenLP1:
+ if not self.field(u'openlp1_location').toString():
+ QtGui.QMessageBox.critical(self,
+ translate('BiblesPlugin.ImportWizardForm',
+ 'Invalid Bible Location'),
+ translate('BiblesPlugin.ImportWizardForm',
+ 'You need to specify a file to import your '
+ 'Bible from.'))
+ self.openlp1LocationEdit.setFocus()
return False
return True
elif self.currentId() == 2:
@@ -181,7 +197,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
'Empty Version Name'),
translate('BiblesPlugin.ImportWizardForm',
'You need to specify a version name for your Bible.'))
- self.VersionNameEdit.setFocus()
+ self.versionNameEdit.setFocus()
return False
elif not license_copyright:
QtGui.QMessageBox.critical(self,
@@ -190,7 +206,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
translate('BiblesPlugin.ImportWizardForm',
'You need to set a copyright for your Bible. '
'Bibles in the Public Domain need to be marked as such.'))
- self.CopyrightEdit.setFocus()
+ self.copyrightEdit.setFocus()
return False
elif self.manager.exists(license_version):
QtGui.QMessageBox.critical(self,
@@ -198,7 +214,7 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
translate('BiblesPlugin.ImportWizardForm',
'This Bible already exists. Please import '
'a different Bible or first delete the existing one.'))
- self.VersionNameEdit.setFocus()
+ self.versionNameEdit.setFocus()
return False
return True
if self.currentId() == 3:
@@ -213,12 +229,12 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
``index``
The index of the combo box.
"""
- self.BibleComboBox.clear()
+ self.bibleComboBox.clear()
bibles = [unicode(translate('BiblesPlugin.ImportWizardForm', bible)) for
bible in self.web_bible_list[index].keys()]
bibles.sort()
for bible in bibles:
- self.BibleComboBox.addItem(bible)
+ self.bibleComboBox.addItem(bible)
def onOsisFileButtonClicked(self):
"""
@@ -234,14 +250,14 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
"""
self.getFileName(
translate('BiblesPlugin.ImportWizardForm', 'Open Books CSV File'),
- self.BooksLocationEdit)
+ self.booksLocationEdit)
def onCsvVersesFileButtonClicked(self):
"""
Show the file open dialog for the verses CSV file.
"""
self.getFileName(translate('BiblesPlugin.ImportWizardForm',
- 'Open Verses CSV File'), self.CsvVerseLocationEdit)
+ 'Open Verses CSV File'), self.csvVerseLocationEdit)
def onOpenSongBrowseButtonClicked(self):
"""
@@ -249,7 +265,15 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
"""
self.getFileName(
translate('BiblesPlugin.ImportWizardForm', 'Open OpenSong Bible'),
- self.OpenSongFileEdit)
+ self.openSongFileEdit)
+
+ def onOpenlp1FileButtonClicked(self):
+ """
+ Show the file open dialog for the openlp.org 1.x file.
+ """
+ self.getFileName(
+ translate('BiblesPlugin.ImportWizardForm',
+ 'Open openlp.org 1.x Bible'), self.openlp1LocationEdit)
def onCurrentIdChanged(self, pageId):
if pageId == 3:
@@ -258,32 +282,25 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
self.postImport()
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'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.LicenseDetailsPage.registerField(
- u'license_version', self.VersionNameEdit)
- self.LicenseDetailsPage.registerField(
- u'license_copyright', self.CopyrightEdit)
- self.LicenseDetailsPage.registerField(
- u'license_permissions', self.PermissionsEdit)
+ 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'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.licenseDetailsPage.registerField(
+ u'license_version', self.versionNameEdit)
+ self.licenseDetailsPage.registerField(
+ u'license_copyright', self.copyrightEdit)
+ self.licenseDetailsPage.registerField(
+ u'license_permissions', self.permissionsEdit)
def setDefaults(self):
settings = QtCore.QSettings()
@@ -298,19 +315,20 @@ 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.bibleComboBox.currentIndex()))
self.setField(u'proxy_server',
settings.value(u'proxy address', QtCore.QVariant(u'')))
self.setField(u'proxy_username',
settings.value(u'proxy username', QtCore.QVariant(u'')))
self.setField(u'proxy_password',
settings.value(u'proxy password', QtCore.QVariant(u'')))
+ self.setField(u'openlp1_location', QtCore.QVariant(''))
self.setField(u'license_version',
- QtCore.QVariant(self.VersionNameEdit.text()))
+ QtCore.QVariant(self.versionNameEdit.text()))
self.setField(u'license_copyright',
- QtCore.QVariant(self.CopyrightEdit.text()))
+ QtCore.QVariant(self.copyrightEdit.text()))
self.setField(u'license_permissions',
- QtCore.QVariant(self.PermissionsEdit.text()))
+ QtCore.QVariant(self.permissionsEdit.text()))
self.onLocationComboBoxChanged(WebDownload.Crosswalk)
settings.endGroup()
@@ -375,26 +393,32 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
def incrementProgressBar(self, status_text):
log.debug(u'IncrementBar %s', status_text)
- self.ImportProgressLabel.setText(status_text)
- self.ImportProgressBar.setValue(self.ImportProgressBar.value() + 1)
+ self.importProgressLabel.setText(status_text)
+ self.importProgressBar.setValue(self.importProgressBar.value() + 1)
Receiver.send_message(u'openlp_process_events')
def preImport(self):
+ """
+ Prepare the UI for the import.
+ """
bible_type = self.field(u'source_format').toInt()[0]
self.finishButton.setVisible(False)
- self.ImportProgressBar.setMinimum(0)
- self.ImportProgressBar.setMaximum(1188)
- self.ImportProgressBar.setValue(0)
+ self.importProgressBar.setMinimum(0)
+ self.importProgressBar.setMaximum(1188)
+ self.importProgressBar.setValue(0)
if bible_type == BibleFormat.WebDownload:
- self.ImportProgressLabel.setText(translate(
+ self.importProgressLabel.setText(translate(
'BiblesPlugin.ImportWizardForm',
'Starting Registering bible...'))
else:
- self.ImportProgressLabel.setText(translate(
+ self.importProgressLabel.setText(translate(
'BiblesPlugin.ImportWizardForm', 'Starting import...'))
Receiver.send_message(u'openlp_process_events')
def performImport(self):
+ """
+ Perform the actual import.
+ """
bible_type = self.field(u'source_format').toInt()[0]
license_version = unicode(self.field(u'license_version').toString())
license_copyright = unicode(self.field(u'license_copyright').toString())
@@ -422,9 +446,9 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
)
elif bible_type == BibleFormat.WebDownload:
# Import a bible from the web.
- self.ImportProgressBar.setMaximum(1)
+ self.importProgressBar.setMaximum(1)
download_location = self.field(u'web_location').toInt()[0]
- bible_version = unicode(self.BibleComboBox.currentText())
+ bible_version = unicode(self.bibleComboBox.currentText())
if download_location == WebDownload.Crosswalk:
bible = \
self.web_bible_list[WebDownload.Crosswalk][bible_version]
@@ -441,26 +465,31 @@ class BibleImportForm(QtGui.QWizard, Ui_BibleImportWizard):
unicode(self.field(u'proxy_username').toString()),
proxy_password=unicode(self.field(u'proxy_password').toString())
)
+ elif bible_type == BibleFormat.OpenLP1:
+ # Import an openlp.org 1.x bible.
+ importer = self.manager.import_bible(BibleFormat.OpenLP1,
+ name=license_version,
+ filename=unicode(self.field(u'openlp1_location').toString())
+ )
if importer.do_import():
self.manager.save_meta_data(license_version, license_version,
license_copyright, license_permissions)
self.manager.reload_bibles()
if bible_type == BibleFormat.WebDownload:
- self.ImportProgressLabel.setText(
+ self.importProgressLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Registered '
'bible. Please note, that verses will be downloaded on\n'
'demand and thus an internet connection is required.'))
else:
- self.ImportProgressLabel.setText(translate(
+ self.importProgressLabel.setText(translate(
'BiblesPlugin.ImportWizardForm', 'Finished import.'))
else:
- self.ImportProgressLabel.setText(
- translate('BiblesPlugin.ImportWizardForm',
- 'Your Bible import failed.'))
+ self.importProgressLabel.setText(translate(
+ 'BiblesPlugin.ImportWizardForm', 'Your Bible import failed.'))
delete_database(self.bibleplugin.settingsSection, importer.file)
def postImport(self):
- self.ImportProgressBar.setValue(self.ImportProgressBar.maximum())
+ self.importProgressBar.setValue(self.importProgressBar.maximum())
self.finishButton.setVisible(True)
self.cancelButton.setVisible(False)
Receiver.send_message(u'openlp_process_events')
diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py
index 304e9fb0f..4f6e0f624 100644
--- a/openlp/plugins/bibles/forms/bibleimportwizard.py
+++ b/openlp/plugins/bibles/forms/bibleimportwizard.py
@@ -29,356 +29,391 @@ from PyQt4 import QtCore, QtGui
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(
+ def setupUi(self, bibleImportWizard):
+ bibleImportWizard.setObjectName(u'bibleImportWizard')
+ bibleImportWizard.resize(550, 386)
+ bibleImportWizard.setModal(True)
+ bibleImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
+ bibleImportWizard.setOptions(
QtGui.QWizard.IndependentPages |
QtGui.QWizard.NoBackButtonOnStartPage |
QtGui.QWizard.NoBackButtonOnLastPage)
- self.WelcomePage = QtGui.QWizardPage()
- self.WelcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
+ # Welcome page
+ self.welcomePage = QtGui.QWizardPage()
+ self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
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.setObjectName(u'WelcomeLayout')
- self.TitleLabel = QtGui.QLabel(self.WelcomePage)
- self.TitleLabel.setObjectName(u'TitleLabel')
- self.WelcomeLayout.addWidget(self.TitleLabel)
+ self.welcomePage.setObjectName(u'WelcomePage')
+ self.welcomeLayout = QtGui.QVBoxLayout(self.welcomePage)
+ self.welcomeLayout.setSpacing(8)
+ self.welcomeLayout.setMargin(0)
+ 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,
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
- self.WelcomeLayout.addItem(spacerItem)
- self.InformationLabel = QtGui.QLabel(self.WelcomePage)
- self.InformationLabel.setWordWrap(True)
- self.InformationLabel.setMargin(10)
- self.InformationLabel.setObjectName(u'InformationLabel')
- self.WelcomeLayout.addWidget(self.InformationLabel)
+ self.welcomeLayout.addItem(spacerItem)
+ 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,
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
- self.WelcomeLayout.addItem(spacerItem1)
- BibleImportWizard.addPage(self.WelcomePage)
- self.SelectPage = QtGui.QWizardPage()
- self.SelectPage.setObjectName(u'SelectPage')
- self.selectPageLayout = QtGui.QVBoxLayout(self.SelectPage)
+ self.welcomeLayout.addItem(spacerItem1)
+ 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.FormatLabel = QtGui.QLabel(self.SelectPage)
- self.FormatLabel.setObjectName(u'FormatLabel')
- self.FormatSelectLayout.addWidget(self.FormatLabel)
- self.FormatComboBox = QtGui.QComboBox(self.SelectPage)
- self.FormatComboBox.setObjectName(u'FormatComboBox')
- self.FormatComboBox.addItem(u'')
- self.FormatComboBox.addItem(u'')
- self.FormatComboBox.addItem(u'')
- self.FormatComboBox.addItem(u'')
- self.FormatSelectLayout.addWidget(self.FormatComboBox)
+ self.formatSelectLayout = QtGui.QHBoxLayout()
+ self.formatSelectLayout.setSpacing(8)
+ self.formatSelectLayout.setObjectName(u'FormatSelectLayout')
+ self.formatLabel = QtGui.QLabel(self.selectPage)
+ self.formatLabel.setObjectName(u'FormatLabel')
+ self.formatSelectLayout.addWidget(self.formatLabel)
+ self.formatComboBox = QtGui.QComboBox(self.selectPage)
+ 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')
- 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.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.OsisFileButton.setIcon(generalIcon)
- 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(
+ self.osisPage = QtGui.QWidget()
+ self.osisPage.setObjectName(u'OsisPage')
+ self.osisLayout = QtGui.QFormLayout(self.osisPage)
+ self.osisLayout.setFieldGrowthPolicy(
QtGui.QFormLayout.ExpandingFieldsGrow)
- self.CsvSourceLayout.setLabelAlignment(QtCore.Qt.AlignBottom |
+ 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.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 |
+ 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.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.OpenSongFileLabel.setObjectName(u'OpenSongFileLabel')
- self.OpenSongLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
- self.OpenSongFileLabel)
- self.OpenSongFileLayout = QtGui.QHBoxLayout()
- self.OpenSongFileLayout.setSpacing(8)
- self.OpenSongFileLayout.setObjectName(u'OpenSongFileLayout')
- self.OpenSongFileEdit = QtGui.QLineEdit(self.OpenSongPage)
- 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.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.selectPageLayout.addWidget(self.FormatWidget)
- BibleImportWizard.addPage(self.SelectPage)
- 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.setObjectName(u'LicenseDetailsLayout')
- self.VersionNameLabel = QtGui.QLabel(self.LicenseDetailsPage)
- self.VersionNameLabel.setObjectName(u'VersionNameLabel')
- self.LicenseDetailsLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
- self.VersionNameLabel)
- self.VersionNameEdit = QtGui.QLineEdit(self.LicenseDetailsPage)
- self.VersionNameEdit.setObjectName(u'VersionNameEdit')
- self.LicenseDetailsLayout.setWidget(0, QtGui.QFormLayout.FieldRole,
- self.VersionNameEdit)
- self.CopyrightLabel = QtGui.QLabel(self.LicenseDetailsPage)
- self.CopyrightLabel.setObjectName(u'CopyrightLabel')
- self.LicenseDetailsLayout.setWidget(1, QtGui.QFormLayout.LabelRole,
- self.CopyrightLabel)
- self.CopyrightEdit = QtGui.QLineEdit(self.LicenseDetailsPage)
- self.CopyrightEdit.setObjectName(u'CopyrightEdit')
- self.LicenseDetailsLayout.setWidget(1, QtGui.QFormLayout.FieldRole,
- self.CopyrightEdit)
- self.PermissionsLabel = QtGui.QLabel(self.LicenseDetailsPage)
- self.PermissionsLabel.setObjectName(u'PermissionsLabel')
- self.LicenseDetailsLayout.setWidget(2, QtGui.QFormLayout.LabelRole,
- self.PermissionsLabel)
- self.PermissionsEdit = QtGui.QLineEdit(self.LicenseDetailsPage)
- self.PermissionsEdit.setObjectName(u'PermissionsEdit')
- self.LicenseDetailsLayout.setWidget(2, QtGui.QFormLayout.FieldRole,
- self.PermissionsEdit)
- BibleImportWizard.addPage(self.LicenseDetailsPage)
- 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.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.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.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.openSongFileLabel.setObjectName(u'OpenSongFileLabel')
+ self.openSongLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
+ self.openSongFileLabel)
+ self.openSongFileLayout = QtGui.QHBoxLayout()
+ self.openSongFileLayout.setSpacing(8)
+ self.openSongFileLayout.setObjectName(u'OpenSongFileLayout')
+ self.openSongFileEdit = QtGui.QLineEdit(self.openSongPage)
+ 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.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.openlp1FileButton.setObjectName(u'Openlp1FileButton')
+ self.openlp1LocationLayout.addWidget(self.openlp1FileButton)
+ self.openlp1Layout.setLayout(1, QtGui.QFormLayout.FieldRole,
+ self.openlp1LocationLayout)
+ self.formatWidget.addWidget(self.openlp1Page)
+ self.selectPageLayout.addWidget(self.formatWidget)
+ 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.setObjectName(u'LicenseDetailsLayout')
+ self.versionNameLabel = QtGui.QLabel(self.licenseDetailsPage)
+ self.versionNameLabel.setObjectName(u'VersionNameLabel')
+ self.licenseDetailsLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
+ self.versionNameLabel)
+ self.versionNameEdit = QtGui.QLineEdit(self.licenseDetailsPage)
+ self.versionNameEdit.setObjectName(u'VersionNameEdit')
+ self.licenseDetailsLayout.setWidget(0, QtGui.QFormLayout.FieldRole,
+ self.versionNameEdit)
+ self.copyrightLabel = QtGui.QLabel(self.licenseDetailsPage)
+ self.copyrightLabel.setObjectName(u'CopyrightLabel')
+ self.licenseDetailsLayout.setWidget(1, QtGui.QFormLayout.LabelRole,
+ self.copyrightLabel)
+ self.copyrightEdit = QtGui.QLineEdit(self.licenseDetailsPage)
+ self.copyrightEdit.setObjectName(u'CopyrightEdit')
+ self.licenseDetailsLayout.setWidget(1, QtGui.QFormLayout.FieldRole,
+ self.copyrightEdit)
+ self.permissionsLabel = QtGui.QLabel(self.licenseDetailsPage)
+ self.permissionsLabel.setObjectName(u'PermissionsLabel')
+ self.licenseDetailsLayout.setWidget(2, QtGui.QFormLayout.LabelRole,
+ self.permissionsLabel)
+ self.permissionsEdit = QtGui.QLineEdit(self.licenseDetailsPage)
+ self.permissionsEdit.setObjectName(u'PermissionsEdit')
+ self.licenseDetailsLayout.setWidget(2, QtGui.QFormLayout.FieldRole,
+ self.permissionsEdit)
+ bibleImportWizard.addPage(self.licenseDetailsPage)
+ # Progress page
+ 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.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,
+ 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.formatWidget.setCurrentIndex)
+ QtCore.QMetaObject.connectSlotsByName(bibleImportWizard)
- def retranslateUi(self, BibleImportWizard):
- BibleImportWizard.setWindowTitle(
+ def retranslateUi(self, bibleImportWizard):
+ bibleImportWizard.setWindowTitle(
translate('BiblesPlugin.ImportWizardForm', 'Bible Import Wizard'))
- self.TitleLabel.setText(
+ self.titleLabel.setText(
u'%s' % \
translate('BiblesPlugin.ImportWizardForm',
- 'Welcome to the Bible Import Wizard'))
- self.InformationLabel.setText(
+ 'Welcome to the Bible Import Wizard'))
+ self.informationLabel.setText(
translate('BiblesPlugin.ImportWizardForm',
- 'This wizard will help you to import Bibles from a '
- 'variety of formats. Click the next button below to start the '
- 'process by selecting a format to import from.'))
- self.SelectPage.setTitle(translate('BiblesPlugin.ImportWizardForm',
+ 'This wizard will help you to import Bibles from a '
+ 'variety of formats. Click the next button below to start the '
+ 'process by selecting a format to import from.'))
+ self.selectPage.setTitle(translate('BiblesPlugin.ImportWizardForm',
'Select Import Source'))
- self.SelectPage.setSubTitle(
+ self.selectPage.setSubTitle(
translate('BiblesPlugin.ImportWizardForm',
- 'Select the import format, and where to import from.'))
- self.FormatLabel.setText(
+ 'Select the import format, and where to import from.'))
+ self.formatLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Format:'))
- self.FormatComboBox.setItemText(0,
+ self.formatComboBox.setItemText(0,
translate('BiblesPlugin.ImportWizardForm', 'OSIS'))
- self.FormatComboBox.setItemText(1,
+ self.formatComboBox.setItemText(1,
translate('BiblesPlugin.ImportWizardForm', 'CSV'))
- self.FormatComboBox.setItemText(2,
+ self.formatComboBox.setItemText(2,
translate('BiblesPlugin.ImportWizardForm', 'OpenSong'))
- self.FormatComboBox.setItemText(3,
+ self.formatComboBox.setItemText(3,
translate('BiblesPlugin.ImportWizardForm', 'Web Download'))
- self.OsisLocationLabel.setText(
+ self.formatComboBox.setItemText(4,
+ translate('BiblesPlugin.ImportWizardForm', 'openlp.org 1.x'))
+ self.openlp1LocationLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'File location:'))
- self.BooksLocationLabel.setText(
+ self.osisLocationLabel.setText(
+ translate('BiblesPlugin.ImportWizardForm', 'File location:'))
+ self.booksLocationLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Books location:'))
- self.VerseLocationLabel.setText(
+ self.verseLocationLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Verse location:'))
- self.OpenSongFileLabel.setText(
+ self.openSongFileLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Bible filename:'))
- self.LocationLabel.setText(
+ self.locationLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Location:'))
- self.LocationComboBox.setItemText(0,
+ self.locationComboBox.setItemText(0,
translate('BiblesPlugin.ImportWizardForm', 'Crosswalk'))
- self.LocationComboBox.setItemText(1,
+ self.locationComboBox.setItemText(1,
translate('BiblesPlugin.ImportWizardForm', 'BibleGateway'))
- self.BibleLabel.setText(
+ self.bibleLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Bible:'))
- self.WebDownloadTabWidget.setTabText(
- self.WebDownloadTabWidget.indexOf(self.DownloadOptionsTab),
+ self.webDownloadTabWidget.setTabText(
+ self.webDownloadTabWidget.indexOf(self.downloadOptionsTab),
translate('BiblesPlugin.ImportWizardForm', 'Download Options'))
- self.AddressLabel.setText(
+ self.addressLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Server:'))
- self.UsernameLabel.setText(
+ self.usernameLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Username:'))
- self.PasswordLabel.setText(
+ self.passwordLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Password:'))
- self.WebDownloadTabWidget.setTabText(
- self.WebDownloadTabWidget.indexOf(self.ProxyServerTab),
+ self.webDownloadTabWidget.setTabText(
+ self.webDownloadTabWidget.indexOf(self.proxyServerTab),
translate('BiblesPlugin.ImportWizardForm',
- 'Proxy Server (Optional)'))
- self.LicenseDetailsPage.setTitle(
+ 'Proxy Server (Optional)'))
+ self.licenseDetailsPage.setTitle(
translate('BiblesPlugin.ImportWizardForm', 'License Details'))
- self.LicenseDetailsPage.setSubTitle(
+ self.licenseDetailsPage.setSubTitle(
translate('BiblesPlugin.ImportWizardForm',
- 'Set up the Bible\'s license details.'))
- self.VersionNameLabel.setText(
+ 'Set up the Bible\'s license details.'))
+ self.versionNameLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Version name:'))
- self.CopyrightLabel.setText(
+ self.copyrightLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Copyright:'))
- self.PermissionsLabel.setText(
+ self.permissionsLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Permissions:'))
- self.ImportPage.setTitle(
+ self.importPage.setTitle(
translate('BiblesPlugin.ImportWizardForm', 'Importing'))
- self.ImportPage.setSubTitle(
+ self.importPage.setSubTitle(
translate('BiblesPlugin.ImportWizardForm',
- 'Please wait while your Bible is imported.'))
- self.ImportProgressLabel.setText(
+ 'Please wait while your Bible is imported.'))
+ self.importProgressLabel.setText(
translate('BiblesPlugin.ImportWizardForm', 'Ready.'))
- self.ImportProgressBar.setFormat(u'%p%')
+ self.importProgressBar.setFormat(u'%p%')
diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py
index cc981059c..d02ff2a70 100644
--- a/openlp/plugins/bibles/lib/csvbible.py
+++ b/openlp/plugins/bibles/lib/csvbible.py
@@ -30,7 +30,7 @@ import csv
from PyQt4 import QtCore
-from openlp.core.lib import Receiver
+from openlp.core.lib import Receiver, translate
from db import BibleDB
log = logging.getLogger(__name__)
@@ -46,21 +46,19 @@ class CSVBible(BibleDB):
This class assumes the files contain all the information and
a clean bible is being loaded.
"""
- BibleDB.__init__(self, parent, **kwargs)
log.info(self.__class__.__name__)
- if u'booksfile' not in kwargs:
- raise KeyError(u'You have to supply a file to import books from.')
+ BibleDB.__init__(self, parent, **kwargs)
self.booksfile = kwargs[u'booksfile']
- if u'versefile' not in kwargs:
- raise KeyError(u'You have to supply a file to import verses from.')
self.versesfile = kwargs[u'versefile']
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'bibles_stop_import'), self.stop_import)
def do_import(self):
- #Populate the Tables
success = True
books_file = None
+ book_ptr = None
+ verse_file = None
+ # Populate the Tables
try:
books_file = open(self.booksfile, 'r')
dialect = csv.Sniffer().sniff(books_file.read(1024))
@@ -82,9 +80,7 @@ class CSVBible(BibleDB):
books_file.close()
if not success:
return False
- verse_file = None
try:
- book_ptr = None
verse_file = open(self.versesfile, 'r')
dialect = csv.Sniffer().sniff(verse_file.read(1024))
verse_file.seek(0)
@@ -96,11 +92,12 @@ class CSVBible(BibleDB):
if book_ptr != line[0]:
book = self.get_book(line[0])
book_ptr = book.name
- self.wizard.incrementProgressBar(
- u'Importing %s %s' % (book.name, line[1]))
+ self.wizard.incrementProgressBar(u'%s %s %s...' % (
+ translate('BiblesPlugin.CSVImport', 'Importing'),
+ book.name, line[1]))
self.session.commit()
self.create_verse(book.id, line[1], line[2],
- unicode(line[3], details['encoding']))
+ unicode(line[3], details['encoding']))
Receiver.send_message(u'openlp_process_events')
self.session.commit()
except IOError:
@@ -110,7 +107,6 @@ class CSVBible(BibleDB):
if verse_file:
verse_file.close()
if self.stop_import_flag:
- self.wizard.incrementProgressBar(u'Import canceled!')
return False
else:
return success
diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py
index 9852ed16b..cdc81d408 100644
--- a/openlp/plugins/bibles/lib/db.py
+++ b/openlp/plugins/bibles/lib/db.py
@@ -231,7 +231,7 @@ class BibleDB(QtCore.QObject, Manager):
def create_chapter(self, book_id, chapter, textlist):
"""
- Add a chapter and it's verses to a book.
+ Add a chapter and its verses to a book.
``book_id``
The id of the book being appended.
diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py
index fa47dd7f5..dade3ad44 100644
--- a/openlp/plugins/bibles/lib/http.py
+++ b/openlp/plugins/bibles/lib/http.py
@@ -333,24 +333,17 @@ class HTTPBible(BibleDB):
Init confirms the bible exists and stores the database path.
"""
BibleDB.__init__(self, parent, **kwargs)
- if u'download_source' not in kwargs:
- raise KeyError(u'Missing keyword argument "download_source"')
- if u'download_name' not in kwargs:
- raise KeyError(u'Missing keyword argument "download_name"')
self.download_source = kwargs[u'download_source']
self.download_name = kwargs[u'download_name']
+ self.proxy_server = None
+ self.proxy_username = None
+ self.proxy_password = None
if u'proxy_server' in kwargs:
self.proxy_server = kwargs[u'proxy_server']
- else:
- self.proxy_server = None
if u'proxy_username' in kwargs:
self.proxy_username = kwargs[u'proxy_username']
- else:
- self.proxy_username = None
if u'proxy_password' in kwargs:
self.proxy_password = kwargs[u'proxy_password']
- else:
- self.proxy_password = None
def do_import(self):
"""
diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py
index 6b4d7c800..794c9c5f7 100644
--- a/openlp/plugins/bibles/lib/manager.py
+++ b/openlp/plugins/bibles/lib/manager.py
@@ -33,10 +33,11 @@ from openlp.core.utils import AppLocation
from openlp.plugins.bibles.lib import parse_reference
from openlp.plugins.bibles.lib.db import BibleDB, BibleMeta
-from opensong import OpenSongBible
-from osis import OSISBible
from csvbible import CSVBible
from http import HTTPBible
+from openlp1 import OpenLP1Bible
+from opensong import OpenSongBible
+from osis import OSISBible
log = logging.getLogger(__name__)
@@ -61,6 +62,7 @@ class BibleFormat(object):
CSV = 1
OpenSong = 2
WebDownload = 3
+ OpenLP1 = 4
@staticmethod
def get_class(format):
@@ -78,6 +80,8 @@ class BibleFormat(object):
return OpenSongBible
elif format == BibleFormat.WebDownload:
return HTTPBible
+ elif format == BibleFormat.OpenLP1:
+ return OpenLP1Bible
else:
return None
@@ -90,7 +94,8 @@ class BibleFormat(object):
BibleFormat.OSIS,
BibleFormat.CSV,
BibleFormat.OpenSong,
- BibleFormat.WebDownload
+ BibleFormat.WebDownload,
+ BibleFormat.OpenLP1
]
diff --git a/openlp/plugins/bibles/lib/openlp1.py b/openlp/plugins/bibles/lib/openlp1.py
new file mode 100755
index 000000000..7f8a8d17e
--- /dev/null
+++ b/openlp/plugins/bibles/lib/openlp1.py
@@ -0,0 +1,92 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2010 Raoul Snyman #
+# Portions copyright (c) 2008-2010 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
+import sqlite
+
+from PyQt4 import QtCore
+
+from openlp.core.lib import Receiver, translate
+from db import BibleDB
+
+log = logging.getLogger(__name__)
+
+class OpenLP1Bible(BibleDB):
+ """
+ This class provides the OpenLPv1 bible importer.
+ """
+ def __init__(self, parent, **kwargs):
+ """
+ Constructor.
+ """
+ log.debug(self.__class__.__name__)
+ BibleDB.__init__(self, parent, **kwargs)
+ self.filename = kwargs[u'filename']
+ QtCore.QObject.connect(Receiver.get_receiver(),
+ QtCore.SIGNAL(u'bibles_stop_import'), self.stop_import)
+
+ def do_import(self):
+ """
+ Imports an openlp.org v1 bible.
+ """
+ connection = None
+ cursor = None
+ try:
+ connection = sqlite.connect(self.filename)
+ cursor = connection.cursor()
+ except:
+ return False
+ # Create all books.
+ cursor.execute(u'SELECT id, testament_id, name, abbreviation FROM book')
+ books = cursor.fetchall()
+ for book in books:
+ if self.stop_import_flag:
+ connection.close()
+ return False
+ book_id = int(book[0])
+ testament_id = int(book[1])
+ name = unicode(book[2], u'cp1252')
+ 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))
+ # Import the verses for this book.
+ cursor.execute(u'SELECT chapter, verse, text || \'\' AS text FROM '
+ 'verse WHERE book_id=%s' % book_id)
+ verses = cursor.fetchall()
+ for verse in verses:
+ if self.stop_import_flag:
+ connection.close()
+ return False
+ chapter = int(verse[0])
+ verse_number = int(verse[1])
+ text = unicode(verse[2], u'cp1252')
+ self.create_verse(book_id, chapter, verse_number, text)
+ Receiver.send_message(u'openlp_process_events')
+ self.session.commit()
+ connection.close()
+ return True
diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py
index f1d3efd74..14454a69f 100644
--- a/openlp/plugins/bibles/lib/opensong.py
+++ b/openlp/plugins/bibles/lib/opensong.py
@@ -44,10 +44,8 @@ class OpenSongBible(BibleDB):
Constructor to create and set up an instance of the OpenSongBible
class. This class is used to import Bibles from OpenSong's XML format.
"""
- log.debug(__name__)
+ log.debug(self.__class__.__name__)
BibleDB.__init__(self, parent, **kwargs)
- if 'filename' not in kwargs:
- raise KeyError(u'You have to supply a file name to import from.')
self.filename = kwargs['filename']
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'bibles_stop_import'), self.stop_import)
@@ -59,7 +57,6 @@ class OpenSongBible(BibleDB):
log.debug(u'Starting OpenSong import from "%s"' % self.filename)
if not isinstance(self.filename, unicode):
self.filename = unicode(self.filename, u'utf8')
- self.wizard.incrementProgressBar(u'Preparing for import...')
file = None
success = True
try:
@@ -87,10 +84,9 @@ class OpenSongBible(BibleDB):
unicode(verse.text)
)
Receiver.send_message(u'openlp_process_events')
- self.wizard.incrementProgressBar(
- QtCore.QString('%s %s %s' % (
- translate('BiblesPlugin.Opensong', 'Importing'),
- db_book.name, chapter.attrib[u'n'])))
+ self.wizard.incrementProgressBar(u'%s %s %s...' % (
+ translate('BiblesPlugin.Opensong', 'Importing'),
+ db_book.name, chapter.attrib[u'n']))
self.session.commit()
except IOError:
log.exception(u'Loading bible from OpenSong file failed')
@@ -99,7 +95,6 @@ class OpenSongBible(BibleDB):
if file:
file.close()
if self.stop_import_flag:
- self.wizard.incrementProgressBar(u'Import canceled!')
return False
else:
return success
diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py
index a0b6a1828..53a6f152c 100644
--- a/openlp/plugins/bibles/lib/osis.py
+++ b/openlp/plugins/bibles/lib/osis.py
@@ -33,7 +33,7 @@ import re
from PyQt4 import QtCore
-from openlp.core.lib import Receiver
+from openlp.core.lib import Receiver, translate
from openlp.core.utils import AppLocation
from db import BibleDB
@@ -50,11 +50,11 @@ class OSISBible(BibleDB):
Constructor to create and set up an instance of the OpenSongBible
class. This class is used to import Bibles from OpenSong's XML format.
"""
- log.debug(__name__)
+ log.debug(self.__class__.__name__)
BibleDB.__init__(self, parent, **kwargs)
- if u'filename' not in kwargs:
- raise KeyError(u'You have to supply a file name to import from.')
self.filename = kwargs[u'filename']
+ fbibles = None
+ self.books = {}
self.verse_regex = re.compile(
r'(.*?)')
self.note_regex = re.compile(r'(.*?)')
@@ -72,11 +72,9 @@ class OSISBible(BibleDB):
self.divineName_regex = re.compile(
r'(.*?)')
self.spaces_regex = re.compile(r'([ ]{2,})')
- self.books = {}
filepath = os.path.join(
AppLocation.get_directory(AppLocation.PluginsDir), u'bibles',
u'resources', u'osisbooks.csv')
- fbibles = None
try:
fbibles = open(filepath, u'r')
for line in fbibles:
@@ -96,9 +94,15 @@ class OSISBible(BibleDB):
Loads a Bible from file.
"""
log.debug(u'Starting OSIS import from "%s"' % self.filename)
- self.wizard.incrementProgressBar(
- u'Detecting encoding (this may take a few minutes)...')
detect_file = None
+ db_book = None
+ osis = None
+ success = True
+ last_chapter = 0
+ testament = 1
+ match_count = 0
+ self.wizard.incrementProgressBar(translate('BiblesPlugin.OsisImport',
+ 'Detecting encoding (this may take a few minutes)...'))
try:
detect_file = open(self.filename, u'r')
details = chardet.detect(detect_file.read(1048576))
@@ -108,14 +112,8 @@ class OSISBible(BibleDB):
finally:
if detect_file:
detect_file.close()
- osis = None
- success = True
try:
osis = codecs.open(self.filename, u'r', details['encoding'])
- last_chapter = 0
- testament = 1
- match_count = 0
- db_book = None
for file_record in osis:
if self.stop_import_flag:
break
@@ -142,9 +140,9 @@ class OSISBible(BibleDB):
if last_chapter != chapter:
if last_chapter != 0:
self.session.commit()
- self.wizard.incrementProgressBar(
- u'Importing %s %s...' % \
- (self.books[match.group(1)][0], chapter))
+ self.wizard.incrementProgressBar(u'%s %s %s...' % (
+ translate('BiblesPlugin.OsisImport', 'Importing'),
+ 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
@@ -171,7 +169,6 @@ class OSISBible(BibleDB):
self.create_verse(db_book.id, chapter, verse, verse_text)
Receiver.send_message(u'openlp_process_events')
self.session.commit()
- self.wizard.incrementProgressBar(u'Finishing import...')
if match_count == 0:
success = False
except (ValueError, IOError):
@@ -181,7 +178,6 @@ class OSISBible(BibleDB):
if osis:
osis.close()
if self.stop_import_flag:
- self.wizard.incrementProgressBar(u'Import canceled!')
return False
else:
return success
diff --git a/openlp/plugins/songs/lib/cclifileimport.py b/openlp/plugins/songs/lib/cclifileimport.py
index b30ec20ce..3b6019e5f 100644
--- a/openlp/plugins/songs/lib/cclifileimport.py
+++ b/openlp/plugins/songs/lib/cclifileimport.py
@@ -170,6 +170,7 @@ class CCLIFileImport(SongImport):
song_words = line[6:].strip()
#Unhandled usr keywords:Type,Version,Admin,Themes,Keys
#Process Fields and words sections
+ check_first_verse_line = False
field_list = song_fields.split(u'/t')
words_list = song_words.split(u'/t')
for counter in range(0, len(field_list)):
@@ -181,10 +182,25 @@ class CCLIFileImport(SongImport):
verse_type = u'B'
else: #Other
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)
+ if check_first_verse_line:
+ if verse_lines[0].startswith(u'(PRE-CHORUS'):
+ verse_type = u'P'
+ log.debug(u'USR verse PRE-CHORUS: %s', verse_lines[0] )
+ verse_text = verse_lines[1]
+ elif verse_lines[0].startswith(u'(BRIDGE'):
+ verse_type = u'B'
+ log.debug(u'USR verse BRIDGE')
+ verse_text = verse_lines[1]
+ elif verse_lines[0].startswith(u'('):
+ verse_type = u'O'
+ verse_text = verse_lines[1]
if len(verse_text) > 0:
self.add_verse(verse_text, verse_type)
+ check_first_verse_line = False
#Handle multiple authors
author_list = song_author.split(u'/')
if len(author_list) < 2:
@@ -233,6 +249,7 @@ class CCLIFileImport(SongImport):
log.debug(u'TXT file text: %s', textList)
self.set_defaults()
line_number = 0
+ check_first_verse_line = False
verse_text = u''
song_comments = u''
song_copyright = u''
@@ -270,16 +287,32 @@ class CCLIFileImport(SongImport):
elif verse_desc_parts[0].startswith(u'Br'):
verse_type = u'B'
else:
+ #we need to analyse the next line for
+ #verse type, so set flag
verse_type = u'O'
+ check_first_verse_line = True
verse_number = verse_desc_parts[1]
else:
verse_type = u'O'
verse_number = 1
verse_start = True
else:
- # We have verse content or the start of the
- # last part. Add l so as to keep the CRLF
- verse_text = verse_text + line
+ #check first line for verse type
+ if check_first_verse_line:
+ if line.startswith(u'(PRE-CHORUS'):
+ verse_type = u'P'
+ elif line.startswith(u'(BRIDGE'):
+ verse_type = u'B'
+ # Handle all other misc types
+ elif line.startswith(u'('):
+ verse_type = u'O'
+ else:
+ verse_text = verse_text + line
+ check_first_verse_line = False
+ else:
+ # We have verse content or the start of the
+ # last part. Add l so as to keep the CRLF
+ verse_text = verse_text + line
else:
#line_number=2, copyright
if line_number == 2:
diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py
index 6de559e28..dc8310e9d 100644
--- a/openlp/plugins/songs/lib/mediaitem.py
+++ b/openlp/plugins/songs/lib/mediaitem.py
@@ -25,6 +25,8 @@
###############################################################################
import logging
+import locale
+import re
from PyQt4 import QtCore, QtGui
@@ -61,6 +63,7 @@ class SongMediaItem(MediaManagerItem):
# which Song is required.
self.remoteSong = -1
self.editItem = None
+ self.whitespace = re.compile(r'\W+', re.UNICODE)
def requiredIcons(self):
MediaManagerItem.requiredIcons(self)
@@ -173,8 +176,8 @@ class SongMediaItem(MediaManagerItem):
if search_type == 0:
log.debug(u'Titles Search')
search_results = self.parent.manager.get_all_objects(Song,
- Song.search_title.like(u'%' + search_keywords.lower() + u'%'),
- Song.search_title.asc())
+ 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:
log.debug(u'Lyrics Search')
@@ -213,6 +216,7 @@ class SongMediaItem(MediaManagerItem):
def displayResultsSong(self, searchresults):
log.debug(u'display results Song')
self.listView.clear()
+ searchresults.sort(cmp=self.collateSongTitles)
for song in searchresults:
author_list = u''
for author in song.authors:
@@ -390,7 +394,7 @@ class SongMediaItem(MediaManagerItem):
raw_footer.append(author_list)
raw_footer.append(song.copyright )
raw_footer.append(unicode(
- translate('SongsPlugin.MediaItem', 'CCLI Licence: ') +
+ translate('SongsPlugin.MediaItem', 'CCLI License: ') +
QtCore.QSettings().value(u'general/ccli number',
QtCore.QVariant(u'')).toString()))
service_item.raw_footer = raw_footer
@@ -437,3 +441,9 @@ class SongMediaItem(MediaManagerItem):
if editId != 0:
Receiver.send_message(u'service_item_update',
u'%s:%s' %(editId, uuid))
+
+ def collateSongTitles(self, song_1, song_2):
+ """
+ Locale aware collation of song titles
+ """
+ return locale.strcoll(unicode(song_1.title), unicode(song_2.title))
diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py
index 44e8805c9..4980c2cff 100644
--- a/openlp/plugins/songs/lib/songbeamerimport.py
+++ b/openlp/plugins/songs/lib/songbeamerimport.py
@@ -42,18 +42,18 @@ class SongBeamerTypes(object):
u'Chorus': u'C',
u'Vers': u'V',
u'Verse': u'V',
- u'Strophe': u'V',
+ u'Strophe': u'V',
u'Intro': u'I',
u'Coda': u'E',
u'Ending': u'E',
u'Bridge': u'B',
- u'Interlude': u'B',
+ u'Interlude': u'B',
u'Zwischenspiel': u'B',
u'Pre-Chorus': u'P',
- u'Pre-Refrain': u'P',
+ u'Pre-Refrain': u'P',
u'Pre-Bridge': u'O',
u'Pre-Coda': u'O',
- u'Unbekannt': u'O',
+ u'Unbekannt': u'O',
u'Unknown': u'O'
}
diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py
index 655ea1e3c..d26919d79 100644
--- a/openlp/plugins/songs/lib/xml.py
+++ b/openlp/plugins/songs/lib/xml.py
@@ -346,8 +346,12 @@ class OpenLyricsParser(object):
song.comments = u''
song.song_number = u''
# Process Authors
- for author in properties.authors.author:
- self._process_author(author.text, song)
+ try:
+ for author in properties.authors.author:
+ self._process_author(author.text, song)
+ except:
+ # No Author in XML so ignore
+ pass
self.manager.save_object(song)
return song.id
diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py
index b2df06401..32336c507 100644
--- a/openlp/plugins/songs/songsplugin.py
+++ b/openlp/plugins/songs/songsplugin.py
@@ -56,7 +56,7 @@ class SongsPlugin(Plugin):
self.manager = Manager(u'songs', init_schema)
self.icon_path = u':/plugins/plugin_songs.png'
self.icon = build_icon(self.icon_path)
- self.whitespace = re.compile(r'\W+')
+ self.whitespace = re.compile(r'\W+', re.UNICODE)
def getSettingsTab(self):
visible_name = self.getString(StringContent.VisibleName)
diff --git a/resources/forms/alertdialog.ui b/resources/forms/alertdialog.ui
index 725fb7c4e..3fa9b96a7 100644
--- a/resources/forms/alertdialog.ui
+++ b/resources/forms/alertdialog.ui
@@ -57,7 +57,7 @@
-
- &Parameter(s):
+ &Parameter:
ParameterEdit