Song Wizard!

This commit is contained in:
Raoul Snyman 2010-08-20 21:40:07 +02:00
parent d992fb1e07
commit 3d478ec975
3 changed files with 438 additions and 151 deletions

View File

@ -25,6 +25,7 @@
############################################################################### ###############################################################################
import logging import logging
import os
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
@ -66,21 +67,36 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
self.manager = manager self.manager = manager
self.plugin = plugin self.plugin = plugin
#self.manager.set_process_dialog(self) #self.manager.set_process_dialog(self)
QtCore.QObject.connect(self.OpenLyricsAddButton, QtCore.QObject.connect(self.openLP2BrowseButton,
QtCore.SIGNAL(u'clicked()'),
self.onOpenLP2BrowseButtonClicked)
QtCore.QObject.connect(self.openLP1BrowseButton,
QtCore.SIGNAL(u'clicked()'),
self.onOpenLP1BrowseButtonClicked)
QtCore.QObject.connect(self.openLyricsAddButton,
QtCore.SIGNAL(u'clicked()'), QtCore.SIGNAL(u'clicked()'),
self.onOpenLyricsAddButtonClicked) self.onOpenLyricsAddButtonClicked)
QtCore.QObject.connect(self.OpenLyricsRemoveButton, QtCore.QObject.connect(self.openLyricsRemoveButton,
QtCore.SIGNAL(u'clicked()'), QtCore.SIGNAL(u'clicked()'),
self.onOpenLyricsRemoveButtonClicked) self.onOpenLyricsRemoveButtonClicked)
# QtCore.QObject.connect(self.BooksFileButton, QtCore.QObject.connect(self.openSongAddButton,
# QtCore.SIGNAL(u'clicked()'), QtCore.SIGNAL(u'clicked()'),
# self.onBooksFileButtonClicked) self.onOpenSongAddButtonClicked)
# QtCore.QObject.connect(self.CsvVersesFileButton, QtCore.QObject.connect(self.openSongRemoveButton,
# QtCore.SIGNAL(u'clicked()'), QtCore.SIGNAL(u'clicked()'),
# self.onCsvVersesFileButtonClicked) self.onOpenSongRemoveButtonClicked)
# QtCore.QObject.connect(self.OpenSongBrowseButton, QtCore.QObject.connect(self.wordsOfWorshipAddButton,
# QtCore.SIGNAL(u'clicked()'), QtCore.SIGNAL(u'clicked()'),
# self.onOpenSongBrowseButtonClicked) self.onWordsOfWorshipAddButtonClicked)
QtCore.QObject.connect(self.wordsOfWorshipRemoveButton,
QtCore.SIGNAL(u'clicked()'),
self.onWordsOfWorshipRemoveButtonClicked)
QtCore.QObject.connect(self.songsOfFellowshipBrowseButton,
QtCore.SIGNAL(u'clicked()'),
self.onSongsOfFellowshipBrowseButtonClicked)
QtCore.QObject.connect(self.genericBrowseButton,
QtCore.SIGNAL(u'clicked()'),
self.onGenericBrowseButtonClicked)
QtCore.QObject.connect(self.cancelButton, QtCore.QObject.connect(self.cancelButton,
QtCore.SIGNAL(u'clicked(bool)'), QtCore.SIGNAL(u'clicked(bool)'),
self.onCancelButtonClicked) self.onCancelButtonClicked)
@ -105,25 +121,55 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
elif self.currentId() == 1: elif self.currentId() == 1:
# Select page # Select page
source_format = self.field(u'source_format').toInt()[0] source_format = self.field(u'source_format').toInt()[0]
if source_format == SongFormat.OpenLyrics: if source_format == SongFormat.OpenLP2:
if self.OpenLyricsFileListWidget.count() == 0: if self.openLP2FilenameEdit.text().isEmpty():
QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm',
'No OpenLP 2.0 Song Database Selected'),
translate('SongsPlugin.ImportWizardForm',
'You need to select an OpenLP 2.0 song database '
'file to import from.'))
self.openLP2BrowseButton.setFocus()
return False
elif source_format == SongFormat.OpenLP1:
if self.openSongFilenameEdit.text().isEmpty():
QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm',
'No openlp.org 1.x Song Database Selected'),
translate('SongsPlugin.ImportWizardForm',
'You need to select an openlp.org 1.x song '
'database file to import from.'))
self.openLP1BrowseButton.setFocus()
return False
elif source_format == SongFormat.OpenLyrics:
if self.openLyricsFileListWidget.count() == 0:
QtGui.QMessageBox.critical(self, QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm', translate('SongsPlugin.ImportWizardForm',
'No OpenLyrics Files Selected'), 'No OpenLyrics Files Selected'),
translate('SongsPlugin.ImportWizardForm', translate('SongsPlugin.ImportWizardForm',
'You need to add at least one OpenLyrics ' 'You need to add at least one OpenLyrics '
'song file to import from.')) 'song file to import from.'))
self.OpenLyricsAddButton.setFocus() self.openLyricsAddButton.setFocus()
return False return False
elif source_format == SongFormat.OpenSong: elif source_format == SongFormat.OpenSong:
if self.OpenSongFileListWidget.count() == 0: if self.openSongFileListWidget.count() == 0:
QtGui.QMessageBox.critical(self, QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm', translate('SongsPlugin.ImportWizardForm',
'No OpenSong Files Selected'), 'No OpenSong Files Selected'),
translate('SongsPlugin.ImportWizardForm', translate('SongsPlugin.ImportWizardForm',
'You need to add at least one OpenSong ' 'You need to add at least one OpenSong '
'song file to import from.')) 'song file to import from.'))
self.OpenSongAddButton.setFocus() self.openSongAddButton.setFocus()
return False
elif source_format == SongFormat.WordsOfWorship:
if self.wordsOfWorshipListWidget.count() == 0:
QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm',
'No Words of Worship Files Selected'),
translate('SongsPlugin.ImportWizardForm',
'You need to add at least one Words of Worship '
'file to import from.'))
self.wordsOfWorshipAddButton.setFocus()
return False return False
elif source_format == SongFormat.CCLI: elif source_format == SongFormat.CCLI:
if self.CCLIFileListWidget.count() == 0: if self.CCLIFileListWidget.count() == 0:
@ -135,42 +181,108 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
'to import from.')) 'to import from.'))
self.CCLIAddButton.setFocus() self.CCLIAddButton.setFocus()
return False return False
elif source_format == SongFormat.CSV: elif source_format == SongFormat.SongsOfFellowship:
if self.CSVFilenameEdit.text().isEmpty(): if self.songsOfFellowshipFilenameEdit.text().isEmpty():
QtGui.QMessageBox.critical(self, QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm', translate('SongsPlugin.ImportWizardForm',
'No CSV File Selected'), 'No Songs of Fellowship File Selected'),
translate('SongsPlugin.ImportWizardForm', translate('SongsPlugin.ImportWizardForm',
'You need to specify a CSV file to import from.')) 'You need to select a Songs of Fellowship file to '
self.CSVFilenameEdit.setFocus() 'import from.'))
self.songsOfFellowshipBrowseButton.setFocus()
return False
elif source_format == SongFormat.Generic:
if self.genericFilenameEdit.text().isEmpty():
QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm',
'No Document/Presentation Selected'),
translate('SongsPlugin.ImportWizardForm',
'You need to select a document/presentation file '
'to import from.'))
self.genericBrowseButton.setFocus()
return False return False
return True return True
elif self.currentId() == 2: elif self.currentId() == 2:
# Progress page # Progress page
return True return True
def getFileName(self, title, editbox):
filename = QtGui.QFileDialog.getOpenFileName(self, title,
SettingsManager.get_last_dir(self.plugin.settingsSection, 1))
if filename:
editbox.setText(filename)
SettingsManager.set_last_dir(
self.plugin.settingsSection,
os.path.split(unicode(filename))[0], 1)
def getFiles(self, title, listbox): def getFiles(self, title, listbox):
filenames = QtGui.QFileDialog.getOpenFileNames(self, title, filenames = QtGui.QFileDialog.getOpenFileNames(self, title,
SettingsManager.get_last_dir(self.plugin.settingsSection, 1)) SettingsManager.get_last_dir(self.plugin.settingsSection, 1))
if filenames: if filenames:
listbox.addItems(filenames) listbox.addItems(filenames)
#SettingsManager.set_last_dir( SettingsManager.set_last_dir(
# self.plugin.settingsSection, self.plugin.settingsSection,
# os.path.split(unicode(filenames[0]))[0], 1) os.path.split(unicode(filenames[0]))[0], 1)
def removeSelectedItems(self, listbox): def removeSelectedItems(self, listbox):
for item in listbox.selectedItems(): for item in listbox.selectedItems():
item = listbox.takeItem(listbox.row(item)) item = listbox.takeItem(listbox.row(item))
del item del item
def onOpenLP2BrowseButtonClicked(self):
self.getFileName(
translate('SongsPlugin.ImportWizardForm',
'Select OpenLP 2.0 Database File'),
self.openLP2FilenameEdit
)
def onOpenLP1BrowseButtonClicked(self):
self.getFileName(
translate('SongsPlugin.ImportWizardForm',
'Select openlp.org 1.x Database File'),
self.openLP1FilenameEdit
)
def onOpenLyricsAddButtonClicked(self): def onOpenLyricsAddButtonClicked(self):
self.getFiles( self.getFiles(
translate('SongsPlugin.ImportWizard', 'Select OpenLyrics Files'), translate('SongsPlugin.ImportWizardForm', 'Select OpenLyrics Files'),
self.OpenLyricsFileListWidget self.openLyricsFileListWidget
) )
def onOpenLyricsRemoveButtonClicked(self): def onOpenLyricsRemoveButtonClicked(self):
self.removeSelectedItems(self.OpenLyricsFileListWidget) self.removeSelectedItems(self.openLyricsFileListWidget)
def onOpenSongAddButtonClicked(self):
self.getFiles(
translate('SongsPlugin.ImportWizardForm', 'Select Open Song Files'),
self.openSongFileListWidget
)
def onOpenSongRemoveButtonClicked(self):
self.removeSelectedItems(self.openSongFileListWidget)
def onWordsOfWorshipAddButtonClicked(self):
self.getFiles(
translate('SongsPlugin.ImportWizardForm', 'Select Words of Worship Files'),
self.wordsOfWorshipFileListWidget
)
def onWordsOfWorshipRemoveButtonClicked(self):
self.removeSelectedItems(self.wordsOfWorshipFileListWidget)
def onSongsOfFellowshipBrowseButtonClicked(self):
self.getFileName(
translate('SongsPlugin.ImportWizardForm',
'Select Songs of Fellowship File'),
self.songsOfFellowshipFilenameEdit
)
def onGenericBrowseButtonClicked(self):
self.getFileName(
translate('SongsPlugin.ImportWizardForm',
'Select Document/Presentation File'),
self.genericFilenameEdit
)
def onCancelButtonClicked(self, checked): def onCancelButtonClicked(self, checked):
""" """
@ -191,18 +303,15 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
def setDefaults(self): def setDefaults(self):
self.setField(u'source_format', QtCore.QVariant(0)) self.setField(u'source_format', QtCore.QVariant(0))
self.OpenLyricsFileListWidget.clear() self.openLP2FilenameEdit.setText(u'')
self.OpenSongFileListWidget.clear() self.openLP1FilenameEdit.setText(u'')
self.openLyricsFileListWidget.clear()
self.openSongFileListWidget.clear()
self.wordsOfWorshipFileListWidget.clear()
self.CCLIFileListWidget.clear() self.CCLIFileListWidget.clear()
self.CSVFilenameEdit.setText(u'') self.songsOfFellowshipFilenameEdit.setText(u'')
self.genericFilenameEdit.setText(u'')
def getFileName(self, title, editbox): # self.CSVFilenameEdit.setText(u'')
filename = QtGui.QFileDialog.getOpenFileName(self, title,
SettingsManager.get_last_dir(self.songsplugin.settingsSection, 1))
if filename:
editbox.setText(filename)
SettingsManager.set_last_dir(self.songsplugin.settingsSection,
filename, 1)
def incrementProgressBar(self, status_text): def incrementProgressBar(self, status_text):
log.debug(u'IncrementBar %s', status_text) log.debug(u'IncrementBar %s', status_text)
@ -223,9 +332,9 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
pass pass
# source_format = self.field(u'source_format').toInt()[0] # source_format = self.field(u'source_format').toInt()[0]
# importer = None # importer = None
# if bible_type == BibleFormat.OSIS: # if bible_type == SongFormat.OSIS:
# # Import an OSIS bible # # Import an OSIS bible
# importer = self.manager.import_bible(BibleFormat.OSIS, # importer = self.plugin.import_songs(BibleFormat.OSIS,
# name=license_version, # name=license_version,
# filename=unicode(self.field(u'osis_location').toString()) # filename=unicode(self.field(u'osis_location').toString())
# ) # )

View File

@ -29,12 +29,14 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import build_icon, translate from openlp.core.lib import build_icon, translate
class Ui_SongImportWizard(object): class Ui_SongImportWizard(object):
def setupUi(self, SongImportWizard): def setupUi(self, songImportWizard):
SongImportWizard.setObjectName(u'SongImportWizard') openIcon = build_icon(u':/general/general_open.png')
SongImportWizard.resize(550, 386) deleteIcon = build_icon(u':/general/general_delete.png')
SongImportWizard.setModal(True) songImportWizard.setObjectName(u'songImportWizard')
SongImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle) songImportWizard.resize(550, 386)
SongImportWizard.setOptions( songImportWizard.setModal(True)
songImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
songImportWizard.setOptions(
QtGui.QWizard.IndependentPages | QtGui.QWizard.IndependentPages |
QtGui.QWizard.NoBackButtonOnStartPage | QtGui.QWizard.NoBackButtonOnStartPage |
QtGui.QWizard.NoBackButtonOnLastPage) QtGui.QWizard.NoBackButtonOnLastPage)
@ -64,7 +66,7 @@ class Ui_SongImportWizard(object):
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.WelcomeTextLayout.addItem(self.WelcomeBottomSpacer) self.WelcomeTextLayout.addItem(self.WelcomeBottomSpacer)
self.WelcomeLayout.addLayout(self.WelcomeTextLayout) self.WelcomeLayout.addLayout(self.WelcomeTextLayout)
SongImportWizard.addPage(self.WelcomePage) songImportWizard.addPage(self.WelcomePage)
self.SourcePage = QtGui.QWizardPage() self.SourcePage = QtGui.QWizardPage()
self.SourcePage.setObjectName(u'SourcePage') self.SourcePage.setObjectName(u'SourcePage')
self.SourceLayout = QtGui.QVBoxLayout(self.SourcePage) self.SourceLayout = QtGui.QVBoxLayout(self.SourcePage)
@ -90,6 +92,11 @@ class Ui_SongImportWizard(object):
self.FormatComboBox.addItem(u'') self.FormatComboBox.addItem(u'')
self.FormatComboBox.addItem(u'') self.FormatComboBox.addItem(u'')
self.FormatComboBox.addItem(u'') self.FormatComboBox.addItem(u'')
self.FormatComboBox.addItem(u'')
self.FormatComboBox.addItem(u'')
self.FormatComboBox.addItem(u'')
self.FormatComboBox.addItem(u'')
# self.FormatComboBox.addItem(u'')
self.FormatLayout.addWidget(self.FormatComboBox) self.FormatLayout.addWidget(self.FormatComboBox)
self.FormatSpacer = QtGui.QSpacerItem(40, 20, self.FormatSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
@ -97,60 +104,139 @@ class Ui_SongImportWizard(object):
self.SourceLayout.addLayout(self.FormatLayout) self.SourceLayout.addLayout(self.FormatLayout)
self.FormatStackedWidget = QtGui.QStackedWidget(self.SourcePage) self.FormatStackedWidget = QtGui.QStackedWidget(self.SourcePage)
self.FormatStackedWidget.setObjectName(u'FormatStackedWidget') self.FormatStackedWidget.setObjectName(u'FormatStackedWidget')
self.OpenLyricsPage = QtGui.QWidget() # OpenLP 2.0
self.OpenLyricsPage.setObjectName(u'OpenLyricsPage') self.openLP2Page = QtGui.QWidget()
self.OpenLyricsLayout = QtGui.QVBoxLayout(self.OpenLyricsPage) self.openLP2Page.setObjectName(u'openLP2Page')
self.OpenLyricsLayout.setSpacing(8) self.openLP2Layout = QtGui.QFormLayout(self.openLP2Page)
self.OpenLyricsLayout.setMargin(0) self.openLP2Layout.setMargin(0)
self.OpenLyricsLayout.setObjectName(u'OpenLyricsLayout') self.openLP2Layout.setSpacing(8)
self.OpenLyricsFileListWidget = QtGui.QListWidget(self.OpenLyricsPage) self.openLP2Layout.setObjectName(u'openLP2Layout')
self.OpenLyricsFileListWidget.setSelectionMode( self.openLP2FilenameLabel = QtGui.QLabel(self.openLP2Page)
self.openLP2FilenameLabel.setObjectName(u'openLP2FilenameLabel')
self.openLP2Layout.setWidget(0, QtGui.QFormLayout.LabelRole,
self.openLP2FilenameLabel)
self.openLP2FileLayout = QtGui.QHBoxLayout()
self.openLP2FileLayout.setSpacing(8)
self.openLP2FileLayout.setObjectName(u'openLP2FileLayout')
self.openLP2FilenameEdit = QtGui.QLineEdit(self.openLP2Page)
self.openLP2FilenameEdit.setObjectName(u'openLP2FilenameEdit')
self.openLP2FileLayout.addWidget(self.openLP2FilenameEdit)
self.openLP2BrowseButton = QtGui.QToolButton(self.openLP2Page)
self.openLP2BrowseButton.setIcon(openIcon)
self.openLP2BrowseButton.setObjectName(u'openLP2BrowseButton')
self.openLP2FileLayout.addWidget(self.openLP2BrowseButton)
self.openLP2Layout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.openLP2FileLayout)
self.FormatStackedWidget.addWidget(self.openLP2Page)
# openlp.org 1.x
self.openLP1Page = QtGui.QWidget()
self.openLP1Page.setObjectName(u'openLP1Page')
self.openLP1Layout = QtGui.QFormLayout(self.openLP1Page)
self.openLP1Layout.setMargin(0)
self.openLP1Layout.setSpacing(8)
self.openLP1Layout.setObjectName(u'openLP1Layout')
self.openLP1FilenameLabel = QtGui.QLabel(self.openLP1Page)
self.openLP1FilenameLabel.setObjectName(u'openLP1FilenameLabel')
self.openLP1Layout.setWidget(0, QtGui.QFormLayout.LabelRole,
self.openLP1FilenameLabel)
self.openLP1FileLayout = QtGui.QHBoxLayout()
self.openLP1FileLayout.setSpacing(8)
self.openLP1FileLayout.setObjectName(u'openLP1FileLayout')
self.openLP1FilenameEdit = QtGui.QLineEdit(self.openLP1Page)
self.openLP1FilenameEdit.setObjectName(u'openLP1FilenameEdit')
self.openLP1FileLayout.addWidget(self.openLP1FilenameEdit)
self.openLP1BrowseButton = QtGui.QToolButton(self.openLP1Page)
self.openLP1BrowseButton.setIcon(openIcon)
self.openLP1BrowseButton.setObjectName(u'openLP1BrowseButton')
self.openLP1FileLayout.addWidget(self.openLP1BrowseButton)
self.openLP1Layout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.openLP1FileLayout)
self.FormatStackedWidget.addWidget(self.openLP1Page)
# OpenLyrics
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.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection) QtGui.QAbstractItemView.ExtendedSelection)
self.OpenLyricsFileListWidget.setObjectName(u'OpenLyricsFileListWidget') self.openLyricsFileListWidget.setObjectName(u'OpenLyricsFileListWidget')
self.OpenLyricsLayout.addWidget(self.OpenLyricsFileListWidget) self.openLyricsLayout.addWidget(self.openLyricsFileListWidget)
self.OpenLyricsButtonLayout = QtGui.QHBoxLayout() self.openLyricsButtonLayout = QtGui.QHBoxLayout()
self.OpenLyricsButtonLayout.setSpacing(8) self.openLyricsButtonLayout.setSpacing(8)
self.OpenLyricsButtonLayout.setObjectName(u'OpenLyricsButtonLayout') self.openLyricsButtonLayout.setObjectName(u'OpenLyricsButtonLayout')
self.OpenLyricsAddButton = QtGui.QPushButton(self.OpenLyricsPage) self.openLyricsAddButton = QtGui.QPushButton(self.openLyricsPage)
openIcon = build_icon(u':/general/general_open.png') self.openLyricsAddButton.setIcon(openIcon)
self.OpenLyricsAddButton.setIcon(openIcon) self.openLyricsAddButton.setObjectName(u'OpenLyricsAddButton')
self.OpenLyricsAddButton.setObjectName(u'OpenLyricsAddButton') self.openLyricsButtonLayout.addWidget(self.openLyricsAddButton)
self.OpenLyricsButtonLayout.addWidget(self.OpenLyricsAddButton) self.openLyricsButtonSpacer = QtGui.QSpacerItem(40, 20,
self.OpenLyricsButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.OpenLyricsButtonLayout.addItem(self.OpenLyricsButtonSpacer) self.openLyricsButtonLayout.addItem(self.openLyricsButtonSpacer)
self.OpenLyricsRemoveButton = QtGui.QPushButton(self.OpenLyricsPage) self.openLyricsRemoveButton = QtGui.QPushButton(self.openLyricsPage)
deleteIcon = build_icon(u':/general/general_delete.png') self.openLyricsRemoveButton.setIcon(deleteIcon)
self.OpenLyricsRemoveButton.setIcon(deleteIcon) self.openLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton')
self.OpenLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton') self.openLyricsButtonLayout.addWidget(self.openLyricsRemoveButton)
self.OpenLyricsButtonLayout.addWidget(self.OpenLyricsRemoveButton) self.openLyricsLayout.addLayout(self.openLyricsButtonLayout)
self.OpenLyricsLayout.addLayout(self.OpenLyricsButtonLayout) self.FormatStackedWidget.addWidget(self.openLyricsPage)
self.FormatStackedWidget.addWidget(self.OpenLyricsPage) # Open Song
self.OpenSongPage = QtGui.QWidget() self.openSongPage = QtGui.QWidget()
self.OpenSongPage.setObjectName(u'OpenSongPage') self.openSongPage.setObjectName(u'OpenSongPage')
self.OpenSongLayout = QtGui.QVBoxLayout(self.OpenSongPage) self.openSongLayout = QtGui.QVBoxLayout(self.openSongPage)
self.OpenSongLayout.setSpacing(8) self.openSongLayout.setSpacing(8)
self.OpenSongLayout.setMargin(0) self.openSongLayout.setMargin(0)
self.OpenSongLayout.setObjectName(u'OpenSongLayout') self.openSongLayout.setObjectName(u'OpenSongLayout')
self.OpenSongFileListWidget = QtGui.QListWidget(self.OpenSongPage) self.openSongFileListWidget = QtGui.QListWidget(self.openSongPage)
self.OpenSongFileListWidget.setObjectName(u'OpenSongFileListWidget') self.openSongFileListWidget.setSelectionMode(
self.OpenSongLayout.addWidget(self.OpenSongFileListWidget) QtGui.QAbstractItemView.ExtendedSelection)
self.OpenSongButtonLayout = QtGui.QHBoxLayout() self.openSongFileListWidget.setObjectName(u'OpenSongFileListWidget')
self.OpenSongButtonLayout.setSpacing(8) self.openSongLayout.addWidget(self.openSongFileListWidget)
self.OpenSongButtonLayout.setObjectName(u'OpenSongButtonLayout') self.openSongButtonLayout = QtGui.QHBoxLayout()
self.OpenSongAddButton = QtGui.QPushButton(self.OpenSongPage) self.openSongButtonLayout.setSpacing(8)
self.OpenSongAddButton.setIcon(openIcon) self.openSongButtonLayout.setObjectName(u'OpenSongButtonLayout')
self.OpenSongAddButton.setObjectName(u'OpenSongAddButton') self.openSongAddButton = QtGui.QPushButton(self.openSongPage)
self.OpenSongButtonLayout.addWidget(self.OpenSongAddButton) self.openSongAddButton.setIcon(openIcon)
self.OpenSongButtonSpacer = QtGui.QSpacerItem(40, 20, self.openSongAddButton.setObjectName(u'OpenSongAddButton')
self.openSongButtonLayout.addWidget(self.openSongAddButton)
self.openSongButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.OpenSongButtonLayout.addItem(self.OpenSongButtonSpacer) self.openSongButtonLayout.addItem(self.openSongButtonSpacer)
self.OpenSongRemoveButton = QtGui.QPushButton(self.OpenSongPage) self.openSongRemoveButton = QtGui.QPushButton(self.openSongPage)
self.OpenSongRemoveButton.setIcon(deleteIcon) self.openSongRemoveButton.setIcon(deleteIcon)
self.OpenSongRemoveButton.setObjectName(u'OpenSongRemoveButton') self.openSongRemoveButton.setObjectName(u'OpenSongRemoveButton')
self.OpenSongButtonLayout.addWidget(self.OpenSongRemoveButton) self.openSongButtonLayout.addWidget(self.openSongRemoveButton)
self.OpenSongLayout.addLayout(self.OpenSongButtonLayout) self.openSongLayout.addLayout(self.openSongButtonLayout)
self.FormatStackedWidget.addWidget(self.OpenSongPage) self.FormatStackedWidget.addWidget(self.openSongPage)
# Words of Worship
self.wordsOfWorshipPage = QtGui.QWidget()
self.wordsOfWorshipPage.setObjectName(u'wordsOfWorshipPage')
self.wordsOfWorshipLayout = QtGui.QVBoxLayout(self.wordsOfWorshipPage)
self.wordsOfWorshipLayout.setSpacing(8)
self.wordsOfWorshipLayout.setMargin(0)
self.wordsOfWorshipLayout.setObjectName(u'wordsOfWorshipLayout')
self.wordsOfWorshipFileListWidget = QtGui.QListWidget(self.wordsOfWorshipPage)
self.wordsOfWorshipFileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
self.wordsOfWorshipFileListWidget.setObjectName(u'wordsOfWorshipFileListWidget')
self.wordsOfWorshipLayout.addWidget(self.wordsOfWorshipFileListWidget)
self.wordsOfWorshipButtonLayout = QtGui.QHBoxLayout()
self.wordsOfWorshipButtonLayout.setSpacing(8)
self.wordsOfWorshipButtonLayout.setObjectName(u'wordsOfWorshipButtonLayout')
self.wordsOfWorshipAddButton = QtGui.QPushButton(self.wordsOfWorshipPage)
self.wordsOfWorshipAddButton.setIcon(openIcon)
self.wordsOfWorshipAddButton.setObjectName(u'wordsOfWorshipAddButton')
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipAddButton)
self.wordsOfWorshipButtonSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.wordsOfWorshipButtonLayout.addItem(self.wordsOfWorshipButtonSpacer)
self.wordsOfWorshipRemoveButton = QtGui.QPushButton(self.wordsOfWorshipPage)
self.wordsOfWorshipRemoveButton.setIcon(deleteIcon)
self.wordsOfWorshipRemoveButton.setObjectName(u'wordsOfWorshipRemoveButton')
self.wordsOfWorshipButtonLayout.addWidget(self.wordsOfWorshipRemoveButton)
self.wordsOfWorshipLayout.addLayout(self.wordsOfWorshipButtonLayout)
self.FormatStackedWidget.addWidget(self.wordsOfWorshipPage)
# CCLI File Import
self.CCLIPage = QtGui.QWidget() self.CCLIPage = QtGui.QWidget()
self.CCLIPage.setObjectName(u'CCLIPage') self.CCLIPage.setObjectName(u'CCLIPage')
self.CCLILayout = QtGui.QVBoxLayout(self.CCLIPage) self.CCLILayout = QtGui.QVBoxLayout(self.CCLIPage)
@ -158,6 +244,8 @@ class Ui_SongImportWizard(object):
self.CCLILayout.setMargin(0) self.CCLILayout.setMargin(0)
self.CCLILayout.setObjectName(u'CCLILayout') self.CCLILayout.setObjectName(u'CCLILayout')
self.CCLIFileListWidget = QtGui.QListWidget(self.CCLIPage) self.CCLIFileListWidget = QtGui.QListWidget(self.CCLIPage)
self.CCLIFileListWidget.setSelectionMode(
QtGui.QAbstractItemView.ExtendedSelection)
self.CCLIFileListWidget.setObjectName(u'CCLIFileListWidget') self.CCLIFileListWidget.setObjectName(u'CCLIFileListWidget')
self.CCLILayout.addWidget(self.CCLIFileListWidget) self.CCLILayout.addWidget(self.CCLIFileListWidget)
self.CCLIButtonLayout = QtGui.QHBoxLayout() self.CCLIButtonLayout = QtGui.QHBoxLayout()
@ -176,31 +264,80 @@ class Ui_SongImportWizard(object):
self.CCLIButtonLayout.addWidget(self.CCLIRemoveButton) self.CCLIButtonLayout.addWidget(self.CCLIRemoveButton)
self.CCLILayout.addLayout(self.CCLIButtonLayout) self.CCLILayout.addLayout(self.CCLIButtonLayout)
self.FormatStackedWidget.addWidget(self.CCLIPage) self.FormatStackedWidget.addWidget(self.CCLIPage)
self.CSVPage = QtGui.QWidget() # Songs of Fellowship
self.CSVPage.setObjectName(u'CSVPage') self.songsOfFellowshipPage = QtGui.QWidget()
self.CSVLayout = QtGui.QFormLayout(self.CSVPage) self.songsOfFellowshipPage.setObjectName(u'songsOfFellowshipPage')
self.CSVLayout.setMargin(0) self.songsOfFellowshipLayout = QtGui.QFormLayout(self.songsOfFellowshipPage)
self.CSVLayout.setSpacing(8) self.songsOfFellowshipLayout.setMargin(0)
self.CSVLayout.setObjectName(u'CSVLayout') self.songsOfFellowshipLayout.setSpacing(8)
self.CSVFilenameLabel = QtGui.QLabel(self.CSVPage) self.songsOfFellowshipLayout.setObjectName(u'songsOfFellowshipLayout')
self.CSVFilenameLabel.setObjectName(u'CSVFilenameLabel') self.songsOfFellowshipFilenameLabel = QtGui.QLabel(self.songsOfFellowshipPage)
self.CSVLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.songsOfFellowshipFilenameLabel.setObjectName(u'songsOfFellowshipFilenameLabel')
self.CSVFilenameLabel) self.songsOfFellowshipLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
self.CSVFileLayout = QtGui.QHBoxLayout() self.songsOfFellowshipFilenameLabel)
self.CSVFileLayout.setSpacing(8) self.songsOfFellowshipFileLayout = QtGui.QHBoxLayout()
self.CSVFileLayout.setObjectName(u'CSVFileLayout') self.songsOfFellowshipFileLayout.setSpacing(8)
self.CSVFilenameEdit = QtGui.QLineEdit(self.CSVPage) self.songsOfFellowshipFileLayout.setObjectName(u'songsOfFellowshipFileLayout')
self.CSVFilenameEdit.setObjectName(u'CSVFilenameEdit') self.songsOfFellowshipFilenameEdit = QtGui.QLineEdit(self.songsOfFellowshipPage)
self.CSVFileLayout.addWidget(self.CSVFilenameEdit) self.songsOfFellowshipFilenameEdit.setObjectName(u'songsOfFellowshipFilenameEdit')
self.CSVBrowseButton = QtGui.QToolButton(self.CSVPage) self.songsOfFellowshipFileLayout.addWidget(self.songsOfFellowshipFilenameEdit)
self.CSVBrowseButton.setIcon(openIcon) self.songsOfFellowshipBrowseButton = QtGui.QToolButton(self.songsOfFellowshipPage)
self.CSVBrowseButton.setObjectName(u'CSVBrowseButton') self.songsOfFellowshipBrowseButton.setIcon(openIcon)
self.CSVFileLayout.addWidget(self.CSVBrowseButton) self.songsOfFellowshipBrowseButton.setObjectName(u'songsOfFellowshipBrowseButton')
self.CSVLayout.setLayout(0, QtGui.QFormLayout.FieldRole, self.songsOfFellowshipFileLayout.addWidget(self.songsOfFellowshipBrowseButton)
self.CSVFileLayout) self.songsOfFellowshipLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.FormatStackedWidget.addWidget(self.CSVPage) self.songsOfFellowshipFileLayout)
self.FormatStackedWidget.addWidget(self.songsOfFellowshipPage)
# Generic Document/Presentation Import
self.genericPage = QtGui.QWidget()
self.genericPage.setObjectName(u'genericPage')
self.genericLayout = QtGui.QFormLayout(self.genericPage)
self.genericLayout.setMargin(0)
self.genericLayout.setSpacing(8)
self.genericLayout.setObjectName(u'genericLayout')
self.genericFilenameLabel = QtGui.QLabel(self.genericPage)
self.genericFilenameLabel.setObjectName(u'genericFilenameLabel')
self.genericLayout.setWidget(0, QtGui.QFormLayout.LabelRole,
self.genericFilenameLabel)
self.genericFileLayout = QtGui.QHBoxLayout()
self.genericFileLayout.setSpacing(8)
self.genericFileLayout.setObjectName(u'genericFileLayout')
self.genericFilenameEdit = QtGui.QLineEdit(self.genericPage)
self.genericFilenameEdit.setObjectName(u'genericFilenameEdit')
self.genericFileLayout.addWidget(self.genericFilenameEdit)
self.genericBrowseButton = QtGui.QToolButton(self.genericPage)
self.genericBrowseButton.setIcon(openIcon)
self.genericBrowseButton.setObjectName(u'genericBrowseButton')
self.genericFileLayout.addWidget(self.genericBrowseButton)
self.genericLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.genericFileLayout)
self.FormatStackedWidget.addWidget(self.genericPage)
# Commented out for future use.
# 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(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) self.SourceLayout.addWidget(self.FormatStackedWidget)
SongImportWizard.addPage(self.SourcePage) songImportWizard.addPage(self.SourcePage)
self.ImportPage = QtGui.QWizardPage() self.ImportPage = QtGui.QWizardPage()
self.ImportPage.setObjectName(u'ImportPage') self.ImportPage.setObjectName(u'ImportPage')
self.ImportLayout = QtGui.QVBoxLayout(self.ImportPage) self.ImportLayout = QtGui.QVBoxLayout(self.ImportPage)
@ -215,16 +352,16 @@ class Ui_SongImportWizard(object):
self.ImportProgressBar.setInvertedAppearance(False) self.ImportProgressBar.setInvertedAppearance(False)
self.ImportProgressBar.setObjectName(u'ImportProgressBar') self.ImportProgressBar.setObjectName(u'ImportProgressBar')
self.ImportLayout.addWidget(self.ImportProgressBar) self.ImportLayout.addWidget(self.ImportProgressBar)
SongImportWizard.addPage(self.ImportPage) songImportWizard.addPage(self.ImportPage)
self.retranslateUi(SongImportWizard) self.retranslateUi(songImportWizard)
self.FormatStackedWidget.setCurrentIndex(0) self.FormatStackedWidget.setCurrentIndex(0)
QtCore.QObject.connect(self.FormatComboBox, QtCore.QObject.connect(self.FormatComboBox,
QtCore.SIGNAL(u'currentIndexChanged(int)'), QtCore.SIGNAL(u'currentIndexChanged(int)'),
self.FormatStackedWidget.setCurrentIndex) self.FormatStackedWidget.setCurrentIndex)
QtCore.QMetaObject.connectSlotsByName(SongImportWizard) QtCore.QMetaObject.connectSlotsByName(songImportWizard)
def retranslateUi(self, SongImportWizard): def retranslateUi(self, songImportWizard):
SongImportWizard.setWindowTitle( songImportWizard.setWindowTitle(
translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard')) translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard'))
self.TitleLabel.setText( self.TitleLabel.setText(
u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \ u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
@ -243,29 +380,60 @@ class Ui_SongImportWizard(object):
self.FormatLabel.setText( self.FormatLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Format:')) translate('SongsPlugin.ImportWizardForm', 'Format:'))
self.FormatComboBox.setItemText(0, self.FormatComboBox.setItemText(0,
translate('SongsPlugin.ImportWizardForm', 'OpenLyrics')) translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0'))
self.FormatComboBox.setItemText(1, self.FormatComboBox.setItemText(1,
translate('SongsPlugin.ImportWizardForm', 'OpenSong')) translate('SongsPlugin.ImportWizardForm', 'openlp.org 1.x'))
self.FormatComboBox.setItemText(2, self.FormatComboBox.setItemText(2,
translate('SongsPlugin.ImportWizardForm', 'CCLI')) translate('SongsPlugin.ImportWizardForm', 'OpenLyrics'))
self.FormatComboBox.setItemText(3, self.FormatComboBox.setItemText(3,
translate('SongsPlugin.ImportWizardForm', 'CSV')) translate('SongsPlugin.ImportWizardForm', 'OpenSong'))
self.OpenLyricsAddButton.setText( self.FormatComboBox.setItemText(4,
translate('SongsPlugin.ImportWizardForm', 'Words of Worship'))
self.FormatComboBox.setItemText(5,
translate('SongsPlugin.ImportWizardForm', 'CCLI'))
self.FormatComboBox.setItemText(6,
translate('SongsPlugin.ImportWizardForm', 'Songs of Fellowship'))
self.FormatComboBox.setItemText(7,
translate('SongsPlugin.ImportWizardForm',
'Generic Document/Presentation'))
# self.FormatComboBox.setItemText(8,
# translate('SongsPlugin.ImportWizardForm', 'CSV'))
self.openLP2FilenameLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
self.openLP2BrowseButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
self.openLP1FilenameLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
self.openLP1BrowseButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
self.openLyricsAddButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Add Files...')) translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
self.OpenLyricsRemoveButton.setText( self.openLyricsRemoveButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
self.OpenSongAddButton.setText( self.openSongAddButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Add Files...')) translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
self.OpenSongRemoveButton.setText( self.openSongRemoveButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
self.wordsOfWorshipAddButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
self.wordsOfWorshipRemoveButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
self.CCLIAddButton.setText( self.CCLIAddButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Add Files...')) translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
self.CCLIRemoveButton.setText( self.CCLIRemoveButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
self.CSVFilenameLabel.setText( self.songsOfFellowshipFilenameLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Filename:')) translate('SongsPlugin.ImportWizardForm', 'Filename:'))
self.CSVBrowseButton.setText( self.songsOfFellowshipBrowseButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Browse...')) translate('SongsPlugin.ImportWizardForm', 'Browse...'))
self.genericFilenameLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Filename:'))
self.genericBrowseButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Browse...'))
# self.CSVFilenameLabel.setText(
# translate('SongsPlugin.ImportWizardForm', 'Filename:'))
# self.CSVBrowseButton.setText(
# translate('SongsPlugin.ImportWizardForm', 'Browse...'))
self.ImportPage.setTitle( self.ImportPage.setTitle(
translate('SongsPlugin.ImportWizardForm', 'Importing')) translate('SongsPlugin.ImportWizardForm', 'Importing'))
self.ImportPage.setSubTitle( self.ImportPage.setSubTitle(

View File

@ -26,7 +26,8 @@
from openlp.core.lib import translate from openlp.core.lib import translate
#from openlp.plugins.songs.lib import OpenLyricsSong, OpenSongSong, CCLISong, \ from openlp.plugins.songs.lib import OpenLPSongImport, OpenSongImport, \
OooImport, SofImport
# CSVSong # CSVSong
class SongFormat(object): class SongFormat(object):
@ -36,10 +37,15 @@ class SongFormat(object):
for importing. for importing.
""" """
Unknown = -1 Unknown = -1
OpenLyrics = 0 OpenLP2 = 0
OpenSong = 1 OpenLP1 = 1
CCLI = 2 OpenLyrics = 2
CSV = 3 OpenSong = 3
WordsOfWorship = 4
CCLI = 5
SongsOfFellowship = 6
Generic = 7
CSV = 8
@staticmethod @staticmethod
def get_class(format): def get_class(format):
@ -49,14 +55,14 @@ class SongFormat(object):
``format`` ``format``
The song format. The song format.
""" """
# if format == SongFormat.OpenLyrics: if format == SongFormat.OpenLP2:
# return OpenLyricsSong return OpenLPSongImport
# elif format == SongFormat.OpenSong: elif format == SongFormat.OpenSong:
# return OpenSongSong return OpenSongImport
# elif format == SongFormat.CCLI: elif format == SongFormat.SongsOfFellowship:
# return CCLISong return SofImport
# elif format == SongFormat.CSV: elif format == SongFormat.Generic:
# return CSVSong return OooImport
# else: # else:
return None return None
@ -66,10 +72,14 @@ class SongFormat(object):
Return a list of the supported song formats. Return a list of the supported song formats.
""" """
return [ return [
SongFormat.OpenLP2,
SongFormat.OpenLP1,
SongFormat.OpenLyrics, SongFormat.OpenLyrics,
SongFormat.OpenSong, SongFormat.OpenSong,
SongFormat.WordsOfWorship,
SongFormat.CCLI, SongFormat.CCLI,
SongFormat.CSV SongFormat.SongsOfFellowship,
SongFormat.Generic
] ]
class VerseType(object): class VerseType(object):