From 20636bf655c72f7a0dcf7ef2c63f39e7d01fb2f5 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 2 Apr 2010 22:03:51 +0200 Subject: [PATCH] Wizard works, though not functional. --- .../plugins/bibles/forms/bibleimportwizard.py | 8 +- openlp/plugins/songs/forms/songimportform.py | 51 ++--- .../plugins/songs/forms/songimportwizard.py | 212 +++++++++++------- openlp/plugins/songs/lib/manager.py | 46 +++- resources/forms/songimportwizard.ui | 201 ++++++++++++++--- 5 files changed, 368 insertions(+), 150 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleimportwizard.py b/openlp/plugins/bibles/forms/bibleimportwizard.py index 7b42ed26d..d32b9dc4e 100644 --- a/openlp/plugins/bibles/forms/bibleimportwizard.py +++ b/openlp/plugins/bibles/forms/bibleimportwizard.py @@ -32,8 +32,8 @@ class Ui_BibleImportWizard(object): BibleImportWizard.setModal(True) BibleImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle) BibleImportWizard.setOptions( - QtGui.QWizard.IndependentPages | \ - QtGui.QWizard.NoBackButtonOnStartPage | \ + QtGui.QWizard.IndependentPages | + QtGui.QWizard.NoBackButtonOnStartPage | QtGui.QWizard.NoBackButtonOnLastPage) self.WelcomePage = QtGui.QWizardPage() self.WelcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap, @@ -309,8 +309,8 @@ class Ui_BibleImportWizard(object): def retranslateUi(self, BibleImportWizard): BibleImportWizard.setWindowTitle(self.trUtf8('Bible Import Wizard')) self.TitleLabel.setText( - u'' + \ - self.trUtf8('Welcome to the Bible Import Wizard') + u'') + u'%s' % \ + self.trUtf8('Welcome to the Bible Import Wizard')) self.InformationLabel.setText( self.trUtf8('This wizard will help you to import Bibles from a ' 'variety of formats. Click the next button below to start the ' diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index 5477e1d17..fc652a1e7 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -193,39 +193,41 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): # self.preImport() # self.performImport() # self.postImport() -# -# def registerFields(self): -# self.SelectPage.registerField( + + def registerFields(self): + pass +# self.SourcePage.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( +# self.SourcePage.registerField( +# u'openlyrics_filename', self.OpenLyricsFilenameEdit) +# self.SourcePage.registerField( +# u'openlyrics_directory', self.OpenLyricsDirectoryEdit) +# self.SourcePage.registerField( +# u'opensong_filename', self.OpenSongFilenameEdit) +# self.SourcePage.registerField( +# u'opensong_directory', self.OpenSongDirectoryEdit) +# self.SourcePage.registerField( # u'csv_versefile', self.CsvVerseLocationEdit) -# self.SelectPage.registerField( +# self.SourcePage.registerField( # u'opensong_file', self.OpenSongFileEdit) -# self.SelectPage.registerField( +# self.SourcePage.registerField( # u'web_location', self.LocationComboBox) -# self.SelectPage.registerField( +# self.SourcePage.registerField( # u'web_biblename', self.BibleComboBox) -# self.SelectPage.registerField( +# self.SourcePage.registerField( # u'proxy_server', self.AddressEdit) -# self.SelectPage.registerField( +# self.SourcePage.registerField( # u'proxy_username', self.UsernameEdit) -# self.SelectPage.registerField( +# self.SourcePage.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_permission', self.PermissionEdit) -# -# def setDefaults(self): + + def setDefaults(self): + pass # self.setField(u'source_format', QtCore.QVariant(0)) -# self.setField(u'osis_location', QtCore.QVariant('')) -# self.setField(u'csv_booksfile', QtCore.QVariant('')) +# self.setField(u'openlyrics_filename', QtCore.QVariant('')) +# self.setField(u'openlyrics_directory', QtCore.QVariant('')) +# self.setField(u'opensong_filename', QtCore.QVariant('')) +# self.setField(u'opensong_directory', QtCore.QVariant('')) # self.setField(u'csv_versefile', QtCore.QVariant('')) # self.setField(u'opensong_file', QtCore.QVariant('')) # self.setField(u'web_location', QtCore.QVariant(WebDownload.Crosswalk)) @@ -241,7 +243,6 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): # self.setField(u'license_permission', QtCore.QVariant(self.PermissionEdit)) # self.onLocationComboBoxChanged(WebDownload.Crosswalk) - def getFileName(self, title, editbox): filename = QtGui.QFileDialog.getOpenFileName(self, title, self.config.get_last_dir(1)) diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py index 112191557..d0c8d9d92 100644 --- a/openlp/plugins/songs/forms/songimportwizard.py +++ b/openlp/plugins/songs/forms/songimportwizard.py @@ -29,24 +29,20 @@ class Ui_SongImportWizard(object): def setupUi(self, SongImportWizard): SongImportWizard.setObjectName(u'SongImportWizard') SongImportWizard.resize(550, 386) - SongImportWizard.setMinimumSize(QtCore.QSize(166, 386)) SongImportWizard.setModal(True) SongImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle) - SongImportWizard.setOptions(QtGui.QWizard.NoBackButtonOnLastPage | - QtGui.QWizard.NoBackButtonOnStartPage) + SongImportWizard.setOptions( + QtGui.QWizard.IndependentPages | + QtGui.QWizard.NoBackButtonOnStartPage | + QtGui.QWizard.NoBackButtonOnLastPage) 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.ImportSongImage = QtGui.QLabel(self.WelcomePage) - self.ImportSongImage.setMinimumSize(QtCore.QSize(163, 0)) - self.ImportSongImage.setMaximumSize(QtCore.QSize(163, 16777215)) - self.ImportSongImage.setPixmap( - QtGui.QPixmap(u':/wizards/wizard_importsong.bmp')) - self.ImportSongImage.setObjectName(u'ImportSongImage') - self.WelcomeLayout.addWidget(self.ImportSongImage) self.WelcomeTextLayout = QtGui.QVBoxLayout() self.WelcomeTextLayout.setSpacing(8) self.WelcomeTextLayout.setObjectName(u'WelcomeTextLayout') @@ -79,15 +75,18 @@ class Ui_SongImportWizard(object): 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 = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, + QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.FormatComboBox.sizePolicy().hasHeightForWidth()) + sizePolicy.setHeightForWidth( + self.FormatComboBox.sizePolicy().hasHeightForWidth()) self.FormatComboBox.setSizePolicy(sizePolicy) self.FormatComboBox.setObjectName(u'FormatComboBox') self.FormatComboBox.addItem(u'') self.FormatComboBox.addItem(u'') + self.FormatComboBox.addItem(u'') + self.FormatComboBox.addItem(u'') self.FormatLayout.addWidget(self.FormatComboBox) self.FormatSpacer = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) @@ -95,58 +94,108 @@ class Ui_SongImportWizard(object): self.SourceLayout.addLayout(self.FormatLayout) self.FormatStackedWidget = QtGui.QStackedWidget(self.SourcePage) self.FormatStackedWidget.setObjectName(u'FormatStackedWidget') - self.OpenSongFilePage = QtGui.QWidget() - self.OpenSongFilePage.setObjectName(u'OpenSongFilePage') - self.OpenSongFileLayout = QtGui.QFormLayout(self.OpenSongFilePage) - self.OpenSongFileLayout.setMargin(0) - self.OpenSongFileLayout.setSpacing(8) - self.OpenSongFileLayout.setObjectName(u'OpenSongFileLayout') - self.OpenSongFileLabel = QtGui.QLabel(self.OpenSongFilePage) - self.OpenSongFileLabel.setObjectName(u'OpenSongFileLabel') - self.OpenSongFileLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.OpenSongFileLabel) - self.OpenSongFilenameLayout = QtGui.QHBoxLayout() - self.OpenSongFilenameLayout.setSpacing(8) - self.OpenSongFilenameLayout.setObjectName(u'OpenSongFilenameLayout') - self.OpenSongFilenameLineEdit = QtGui.QLineEdit(self.OpenSongFilePage) - self.OpenSongFilenameLineEdit.setObjectName(u'OpenSongFilenameLineEdit') - self.OpenSongFilenameLayout.addWidget(self.OpenSongFilenameLineEdit) - self.OpenSongFilenameButton = QtGui.QToolButton(self.OpenSongFilePage) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(u':/imports/import_load.png'), + self.OpenLyricsPage = QtGui.QWidget() + self.OpenLyricsPage.setObjectName(u'OpenLyricsPage') + self.OpenLyricsLayout = QtGui.QVBoxLayout(self.OpenLyricsPage) + self.OpenLyricsLayout.setSpacing(8) + self.OpenLyricsLayout.setMargin(0) + self.OpenLyricsLayout.setObjectName(u'OpenLyricsLayout') + self.OpenLyricsFileListWidget = QtGui.QListWidget(self.OpenLyricsPage) + self.OpenLyricsFileListWidget.setObjectName(u'OpenLyricsFileListWidget') + self.OpenLyricsLayout.addWidget(self.OpenLyricsFileListWidget) + self.OpenLyricsButtonLayout = QtGui.QHBoxLayout() + self.OpenLyricsButtonLayout.setSpacing(8) + self.OpenLyricsButtonLayout.setObjectName(u'OpenLyricsButtonLayout') + self.OpenLyricsAddButton = QtGui.QPushButton(self.OpenLyricsPage) + self.OpenIcon = QtGui.QIcon() + self.OpenIcon.addPixmap(QtGui.QPixmap(u':/general/general_open.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.OpenSongFilenameButton.setIcon(icon) - self.OpenSongFilenameButton.setObjectName(u'OpenSongFilenameButton') - self.OpenSongFilenameLayout.addWidget(self.OpenSongFilenameButton) - self.OpenSongFileLayout.setLayout(0, - QtGui.QFormLayout.FieldRole, self.OpenSongFilenameLayout) - self.FormatStackedWidget.addWidget(self.OpenSongFilePage) - self.OpenSongDirectoryPage = QtGui.QWidget() - self.OpenSongDirectoryPage.setObjectName(u'OpenSongDirectoryPage') - self.OpenSongDirectoryLayout = QtGui.QFormLayout(self.OpenSongDirectoryPage) - self.OpenSongDirectoryLayout.setMargin(0) - self.OpenSongDirectoryLayout.setSpacing(8) - self.OpenSongDirectoryLayout.setObjectName(u'OpenSongDirectoryLayout') - self.OpenSongDirectoryLabel = QtGui.QLabel(self.OpenSongDirectoryPage) - self.OpenSongDirectoryLabel.setObjectName(u'OpenSongDirectoryLabel') - self.OpenSongDirectoryLayout.setWidget(0, - QtGui.QFormLayout.LabelRole, self.OpenSongDirectoryLabel) - self.OpenSongDirLayout = QtGui.QHBoxLayout() - self.OpenSongDirLayout.setSpacing(8) - self.OpenSongDirLayout.setObjectName(u'OpenSongDirLayout') - self.OpenSongDirectoryLineEdit = QtGui.QLineEdit(self.OpenSongDirectoryPage) - self.OpenSongDirectoryLineEdit.setObjectName(u'OpenSongDirectoryLineEdit') - self.OpenSongDirLayout.addWidget(self.OpenSongDirectoryLineEdit) - self.OpenSongDirectoryButton = QtGui.QToolButton(self.OpenSongDirectoryPage) - icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(u':/exports/export_load.png'), + self.DeleteIcon = QtGui.QIcon() + self.DeleteIcon.addPixmap(QtGui.QPixmap(u':/general/general_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.OpenSongDirectoryButton.setIcon(icon1) - self.OpenSongDirectoryButton.setObjectName(u'OpenSongDirectoryButton') - self.OpenSongDirLayout.addWidget(self.OpenSongDirectoryButton) - self.OpenSongDirectoryLayout.setLayout(0, - QtGui.QFormLayout.FieldRole, self.OpenSongDirLayout) - self.FormatStackedWidget.addWidget(self.OpenSongDirectoryPage) + self.OpenLyricsAddButton.setIcon(self.OpenIcon) + self.OpenLyricsAddButton.setObjectName(u'OpenLyricsAddButton') + self.OpenLyricsButtonLayout.addWidget(self.OpenLyricsAddButton) + self.OpenLyricsButtonSpacer = QtGui.QSpacerItem(40, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.OpenLyricsButtonLayout.addItem(self.OpenLyricsButtonSpacer) + self.OpenLyricsRemoveButton = QtGui.QPushButton(self.OpenLyricsPage) + self.OpenLyricsRemoveButton.setIcon(self.DeleteIcon) + self.OpenLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton') + self.OpenLyricsButtonLayout.addWidget(self.OpenLyricsRemoveButton) + self.OpenLyricsLayout.addLayout(self.OpenLyricsButtonLayout) + self.FormatStackedWidget.addWidget(self.OpenLyricsPage) + self.OpenSongPage = QtGui.QWidget() + self.OpenSongPage.setObjectName(u'OpenSongPage') + self.OpenSongLayout = QtGui.QVBoxLayout(self.OpenSongPage) + self.OpenSongLayout.setSpacing(8) + self.OpenSongLayout.setMargin(0) + self.OpenSongLayout.setObjectName(u'OpenSongLayout') + self.OpenSongFileListWidget = QtGui.QListWidget(self.OpenSongPage) + self.OpenSongFileListWidget.setObjectName(u'OpenSongFileListWidget') + self.OpenSongLayout.addWidget(self.OpenSongFileListWidget) + self.OpenSongButtonLayout = QtGui.QHBoxLayout() + self.OpenSongButtonLayout.setSpacing(8) + self.OpenSongButtonLayout.setObjectName(u'OpenSongButtonLayout') + self.OpenSongAddButton = QtGui.QPushButton(self.OpenSongPage) + self.OpenSongAddButton.setIcon(self.OpenIcon) + self.OpenSongAddButton.setObjectName(u'OpenSongAddButton') + self.OpenSongButtonLayout.addWidget(self.OpenSongAddButton) + self.OpenSongButtonSpacer = QtGui.QSpacerItem(40, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.OpenSongButtonLayout.addItem(self.OpenSongButtonSpacer) + self.OpenSongRemoveButton = QtGui.QPushButton(self.OpenSongPage) + self.OpenSongRemoveButton.setIcon(self.DeleteIcon) + self.OpenSongRemoveButton.setObjectName(u'OpenSongRemoveButton') + self.OpenSongButtonLayout.addWidget(self.OpenSongRemoveButton) + self.OpenSongLayout.addLayout(self.OpenSongButtonLayout) + self.FormatStackedWidget.addWidget(self.OpenSongPage) + self.CCLIPage = QtGui.QWidget() + self.CCLIPage.setObjectName(u'CCLIPage') + self.CCLILayout = QtGui.QVBoxLayout(self.CCLIPage) + self.CCLILayout.setSpacing(8) + self.CCLILayout.setMargin(0) + self.CCLILayout.setObjectName(u'CCLILayout') + self.CCLIFileListWidget = QtGui.QListWidget(self.CCLIPage) + self.CCLIFileListWidget.setObjectName(u'CCLIFileListWidget') + self.CCLILayout.addWidget(self.CCLIFileListWidget) + self.CCLIButtonLayout = QtGui.QHBoxLayout() + self.CCLIButtonLayout.setSpacing(8) + self.CCLIButtonLayout.setObjectName(u'CCLIButtonLayout') + self.CCLIAddButton = QtGui.QPushButton(self.CCLIPage) + self.CCLIAddButton.setIcon(self.OpenIcon) + self.CCLIAddButton.setObjectName(u'CCLIAddButton') + self.CCLIButtonLayout.addWidget(self.CCLIAddButton) + self.CCLIButtonSpacer = QtGui.QSpacerItem(40, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.CCLIButtonLayout.addItem(self.CCLIButtonSpacer) + self.CCLIRemoveButton = QtGui.QPushButton(self.CCLIPage) + self.CCLIRemoveButton.setIcon(self.DeleteIcon) + self.CCLIRemoveButton.setObjectName(u'CCLIRemoveButton') + self.CCLIButtonLayout.addWidget(self.CCLIRemoveButton) + self.CCLILayout.addLayout(self.CCLIButtonLayout) + self.FormatStackedWidget.addWidget(self.CCLIPage) + self.CSVPage = QtGui.QWidget() + self.CSVPage.setObjectName(u'CSVPage') + self.CSVLayout = QtGui.QFormLayout(self.CSVPage) + self.CSVLayout.setMargin(0) + self.CSVLayout.setSpacing(8) + self.CSVLayout.setObjectName(u'CSVLayout') + self.CSVFilenameLabel = QtGui.QLabel(self.CSVPage) + self.CSVFilenameLabel.setObjectName(u'CSVFilenameLabel') + self.CSVLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.CSVFilenameLabel) + self.CSVFileLayout = QtGui.QHBoxLayout() + self.CSVFileLayout.setSpacing(8) + self.CSVFileLayout.setObjectName(u'CSVFileLayout') + self.CSVFilenameEdit = QtGui.QLineEdit(self.CSVPage) + self.CSVFilenameEdit.setObjectName(u'CSVFilenameEdit') + self.CSVFileLayout.addWidget(self.CSVFilenameEdit) + self.CSVBrowseButton = QtGui.QToolButton(self.CSVPage) + self.CSVBrowseButton.setIcon(self.OpenIcon) + self.CSVBrowseButton.setObjectName(u'CSVBrowseButton') + self.CSVFileLayout.addWidget(self.CSVBrowseButton) + self.CSVLayout.setLayout(0, QtGui.QFormLayout.FieldRole, self.CSVFileLayout) + self.FormatStackedWidget.addWidget(self.CSVPage) self.SourceLayout.addWidget(self.FormatStackedWidget) SongImportWizard.addPage(self.SourcePage) self.ImportPage = QtGui.QWizardPage() @@ -164,7 +213,6 @@ class Ui_SongImportWizard(object): self.ImportProgressBar.setObjectName(u'ImportProgressBar') self.ImportLayout.addWidget(self.ImportProgressBar) SongImportWizard.addPage(self.ImportPage) - self.OpenSongFileLabel.setBuddy(self.OpenSongFilenameLineEdit) self.retranslateUi(SongImportWizard) self.FormatStackedWidget.setCurrentIndex(0) @@ -177,23 +225,9 @@ class Ui_SongImportWizard(object): def retranslateUi(self, SongImportWizard): SongImportWizard.setWindowTitle(self.trUtf8('Song Import Wizard')) - self.TitleLabel.setText(self.trUtf8( - '\n' - '\n' - ' \n' - ' \n' - ' \n' - ' \n' - ' \n' - '

\n' - ' \n' - ' Welcome to the Song Import Wizard\n' - ' \n' - '

\n' - ' \n' - '' - )) + self.TitleLabel.setText( + '%s' % \ + self.trUtf8('Welcome to the Song Import Wizard')) self.InformationLabel.setText(self.trUtf8('This wizard will help you ' 'to import songs from a variety of formats. Click the next button ' 'below to start the process by selecting a format to import from.')) @@ -201,10 +235,18 @@ class Ui_SongImportWizard(object): self.SourcePage.setSubTitle(self.trUtf8('Select the import format, ' 'and where to import from.')) self.FormatLabel.setText(self.trUtf8('Format:')) - self.FormatComboBox.setItemText(0, self.trUtf8('OpenSong (Single File)')) - self.FormatComboBox.setItemText(1, self.trUtf8('OpenSong (Directory of Files)')) - self.OpenSongFileLabel.setText(self.trUtf8('Filename:')) - self.OpenSongDirectoryLabel.setText(self.trUtf8('Directory:')) + self.FormatComboBox.setItemText(0, self.trUtf8('OpenLyrics')) + self.FormatComboBox.setItemText(1, self.trUtf8('OpenSong')) + self.FormatComboBox.setItemText(2, self.trUtf8('CCLI')) + self.FormatComboBox.setItemText(3, self.trUtf8('CSV')) + self.OpenLyricsAddButton.setText(self.trUtf8('Add Files...')) + self.OpenLyricsRemoveButton.setText(self.trUtf8('Remove File(s)')) + self.OpenSongAddButton.setText(self.trUtf8('Add Files...')) + self.OpenSongRemoveButton.setText(self.trUtf8('Remove File(s)')) + self.CCLIAddButton.setText(self.trUtf8('Add Files...')) + self.CCLIRemoveButton.setText(self.trUtf8('Remove File(s)')) + self.CSVFilenameLabel.setText(self.trUtf8('Filename:')) + self.CSVBrowseButton.setText(self.trUtf8('Browse...')) self.ImportPage.setTitle(self.trUtf8('Importing')) self.ImportPage.setSubTitle(self.trUtf8('Please wait while your songs ' 'are imported.')) diff --git a/openlp/plugins/songs/lib/manager.py b/openlp/plugins/songs/lib/manager.py index 87f0e6132..c49b31d86 100644 --- a/openlp/plugins/songs/lib/manager.py +++ b/openlp/plugins/songs/lib/manager.py @@ -30,7 +30,51 @@ from openlp.plugins.songs.lib.models import init_models, metadata, Song, \ log = logging.getLogger(__name__) -class SongManager(): +class SongFormat(object): + """ + This is a special enumeration class that holds the various types of songs, + plus a few helper functions to facilitate generic handling of song types + for importing. + """ + Unknown = -1 + OpenLyrics = 0 + OpenSongFile = 1 + OpenSongDirectory = 2 + CSV = 3 + + @staticmethod + def get_class(id): + """ + Return the appropriate imeplementation class. + + ``id`` + The Bible format. + """ + if id == BibleFormat.OSIS: + return OSISBible + elif id == BibleFormat.CSV: + return CSVBible + elif id == BibleFormat.OpenSong: + return OpenSongBible + elif id == BibleFormat.WebDownload: + return HTTPBible + else: + return None + + @staticmethod + def list(): + """ + Return a list of the supported Bible formats. + """ + return [ + BibleFormat.OSIS, + BibleFormat.CSV, + BibleFormat.OpenSong, + BibleFormat.WebDownload + ] + + +class SongManager(object): """ The Song Manager provides a central location for all database code. This class takes care of connecting to the database and running all the queries. diff --git a/resources/forms/songimportwizard.ui b/resources/forms/songimportwizard.ui index 1495d88c0..6679efb38 100644 --- a/resources/forms/songimportwizard.ui +++ b/resources/forms/songimportwizard.ui @@ -156,12 +156,22 @@ p, li { white-space: pre-wrap; } - OpenSong (Single File) + OpenLyrics - OpenSong (Directory of Files) + OpenSong + + + + + CCLI + + + + + CSV @@ -184,45 +194,56 @@ p, li { white-space: pre-wrap; } - 0 + 3 - - - - 8 - - + + + 8 0 - - - - Filename: - - - OpenSongFilenameLineEdit - - + + - - + + 8 - - - - + - + Add Files... - :/imports/import_load.png:/imports/import_load.png + :/general/general_open.png:/general/general_open.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Remove File(s) + + + + :/general/general_delete.png:/general/general_delete.png @@ -230,8 +251,118 @@ p, li { white-space: pre-wrap; } - - + + + + 8 + + + 0 + + + + + + + + 8 + + + + + Add Files... + + + + :/general/general_open.png:/general/general_open.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Remove File(s) + + + + :/general/general_delete.png:/general/general_delete.png + + + + + + + + + + + 8 + + + 0 + + + + + + + + 8 + + + + + Add Files... + + + + :/general/general_open.png:/general/general_open.png + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Remove File(s) + + + + :/general/general_delete.png:/general/general_delete.png + + + + + + + + + 8 @@ -242,28 +373,28 @@ p, li { white-space: pre-wrap; } 0 - + - Directory: + Filename: - + 8 - + - + - + Browse... - :/exports/export_load.png:/exports/export_load.png + :/general/general_open.png:/general/general_open.png