openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #02966
[Merge] lp:~raoul-snyman/openlp/song-wizard into lp:openlp
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/song-wizard into lp:openlp.
Requested reviews:
Tim Bentley (trb143)
Jonathan Corwin (j-corwin)
The long-awaited Song Import Wizard.
--
https://code.launchpad.net/~raoul-snyman/openlp/song-wizard/+merge/33496
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp.pyw'
--- openlp.pyw 2010-07-30 22:48:09 +0000
+++ openlp.pyw 2010-08-24 08:12:44 +0000
@@ -47,7 +47,6 @@
QDockWidget::title
{
- /*background: palette(dark);*/
border: 1px solid palette(dark);
padding-left: 5px;
padding-top: 2px;
=== modified file 'openlp/plugins/bibles/lib/mediaitem.py'
--- openlp/plugins/bibles/lib/mediaitem.py 2010-08-10 16:49:52 +0000
+++ openlp/plugins/bibles/lib/mediaitem.py 2010-08-24 08:12:44 +0000
@@ -401,9 +401,10 @@
self.AdvancedBookComboBox.itemData(item).toInt()[0])
def onImportClick(self):
- self.bibleimportform = ImportWizardForm(self,
- self.parent.manager, self.parent)
- self.bibleimportform.exec_()
+ if not hasattr(self, u'import_wizard'):
+ self.import_wizard = ImportWizardForm(self, self.parent.manager,
+ self.parent)
+ self.import_wizard.exec_()
self.reloadBibles()
def onAdvancedFromVerse(self):
=== modified file 'openlp/plugins/songs/forms/songimportform.py'
--- openlp/plugins/songs/forms/songimportform.py 2010-07-31 02:06:44 +0000
+++ openlp/plugins/songs/forms/songimportform.py 2010-08-24 08:12:44 +0000
@@ -25,24 +25,25 @@
###############################################################################
import logging
+import os
from PyQt4 import QtCore, QtGui
from songimportwizard import Ui_SongImportWizard
from openlp.core.lib import Receiver, SettingsManager, translate
#from openlp.core.utils import AppLocation
-from openlp.plugins.songs.lib import SongFormat
+from openlp.plugins.songs.lib.importer import SongFormat
log = logging.getLogger(__name__)
class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
"""
- This is the Bible Import Wizard, which allows easy importing of Bibles
- into OpenLP from other formats like OSIS, CSV and OpenSong.
+ This is the Song Import Wizard, which allows easy importing of Songs
+ into OpenLP from other formats like OpenLyrics, OpenSong and CCLI.
"""
- log.info(u'BibleImportForm loaded')
+ log.info(u'SongImportForm loaded')
- def __init__(self, parent, manager, songsplugin):
+ def __init__(self, parent, manager, plugin):
"""
Instantiate the wizard, and run any extra setup we need to.
@@ -53,10 +54,10 @@
The configuration object for storing and retrieving settings.
``manager``
- The Bible manager.
+ The songs manager.
- ``bibleplugin``
- The Bible plugin.
+ ``plugin``
+ The songs plugin.
"""
QtGui.QWizard.__init__(self, parent)
self.setupUi(self)
@@ -64,20 +65,44 @@
self.finishButton = self.button(QtGui.QWizard.FinishButton)
self.cancelButton = self.button(QtGui.QWizard.CancelButton)
self.manager = manager
- self.songsplugin = songsplugin
+ self.plugin = plugin
#self.manager.set_process_dialog(self)
-# QtCore.QObject.connect(self.OsisFileButton,
-# QtCore.SIGNAL(u'clicked()'),
-# self.onOsisFileButtonClicked)
-# QtCore.QObject.connect(self.BooksFileButton,
-# QtCore.SIGNAL(u'clicked()'),
-# self.onBooksFileButtonClicked)
-# QtCore.QObject.connect(self.CsvVersesFileButton,
-# QtCore.SIGNAL(u'clicked()'),
-# self.onCsvVersesFileButtonClicked)
-# QtCore.QObject.connect(self.OpenSongBrowseButton,
-# QtCore.SIGNAL(u'clicked()'),
-# self.onOpenSongBrowseButtonClicked)
+ 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()'),
+ self.onOpenLyricsAddButtonClicked)
+ QtCore.QObject.connect(self.openLyricsRemoveButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onOpenLyricsRemoveButtonClicked)
+ QtCore.QObject.connect(self.openSongAddButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onOpenSongAddButtonClicked)
+ QtCore.QObject.connect(self.openSongRemoveButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onOpenSongRemoveButtonClicked)
+ QtCore.QObject.connect(self.wordsOfWorshipAddButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onWordsOfWorshipAddButtonClicked)
+ QtCore.QObject.connect(self.wordsOfWorshipRemoveButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onWordsOfWorshipRemoveButtonClicked)
+ QtCore.QObject.connect(self.songsOfFellowshipAddButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onSongsOfFellowshipAddButtonClicked)
+ QtCore.QObject.connect(self.songsOfFellowshipRemoveButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onSongsOfFellowshipRemoveButtonClicked)
+ QtCore.QObject.connect(self.genericAddButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onGenericAddButtonClicked)
+ QtCore.QObject.connect(self.genericRemoveButton,
+ QtCore.SIGNAL(u'clicked()'),
+ self.onGenericRemoveButtonClicked)
QtCore.QObject.connect(self.cancelButton,
QtCore.SIGNAL(u'clicked(bool)'),
self.onCancelButtonClicked)
@@ -101,51 +126,185 @@
return True
elif self.currentId() == 1:
# Select page
- source_format = self.field(u'source_format').toInt()[0]
- if source_format == SongFormat.OpenLyrics:
- if self.OpenLyricsFileListWidget.count() == 0:
+ source_format = self.formatComboBox.currentIndex()
+ if source_format == SongFormat.OpenLP2:
+ 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,
translate('SongsPlugin.ImportWizardForm',
'No OpenLyrics Files Selected'),
translate('SongsPlugin.ImportWizardForm',
'You need to add at least one OpenLyrics '
'song file to import from.'))
- self.OpenLyricsAddButton.setFocus()
+ self.openLyricsAddButton.setFocus()
return False
elif source_format == SongFormat.OpenSong:
- if self.OpenSongFileListWidget.count() == 0:
+ if self.openSongFileListWidget.count() == 0:
QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm',
'No OpenSong Files Selected'),
translate('SongsPlugin.ImportWizardForm',
'You need to add at least one OpenSong '
'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
elif source_format == SongFormat.CCLI:
- if self.CCLIFileListWidget.count() == 0:
+ if self.ccliFileListWidget.count() == 0:
QtGui.QMessageBox.critical(self,
translate('SongsPlugin.ImportWizardForm',
'No CCLI Files Selected'),
translate('SongsPlugin.ImportWizardForm',
'You need to add at least one CCLI file '
'to import from.'))
- self.CCLIAddButton.setFocus()
- return False
- elif source_format == SongFormat.CSV:
- if self.CSVFilenameEdit.text().isEmpty():
- QtGui.QMessageBox.critical(self,
- translate('SongsPlugin.ImportWizardForm',
- 'No CSV File Selected'),
- translate('SongsPlugin.ImportWizardForm',
- 'You need to specify a CSV file to import from.'))
- self.CSVFilenameEdit.setFocus()
+ self.ccliAddButton.setFocus()
+ return False
+ elif source_format == SongFormat.SongsOfFellowship:
+ if self.songsOfFellowshipFileListWidget.count() == 0:
+ QtGui.QMessageBox.critical(self,
+ translate('SongsPlugin.ImportWizardForm',
+ 'No Songs of Fellowship File Selected'),
+ translate('SongsPlugin.ImportWizardForm',
+ 'You need to add at least one Songs of Fellowship '
+ 'file to import from.'))
+ self.songsOfFellowshipAddButton.setFocus()
+ return False
+ elif source_format == SongFormat.Generic:
+ if self.genericFileListWidget.count() == 0:
+ QtGui.QMessageBox.critical(self,
+ translate('SongsPlugin.ImportWizardForm',
+ 'No Document/Presentation Selected'),
+ translate('SongsPlugin.ImportWizardForm',
+ 'You need to add at least one document or '
+ 'presentation file to import from.'))
+ self.genericAddButton.setFocus()
return False
return True
elif self.currentId() == 2:
# Progress page
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):
+ filenames = QtGui.QFileDialog.getOpenFileNames(self, title,
+ SettingsManager.get_last_dir(self.plugin.settingsSection, 1))
+ if filenames:
+ listbox.addItems(filenames)
+ SettingsManager.set_last_dir(
+ self.plugin.settingsSection,
+ os.path.split(unicode(filenames[0]))[0], 1)
+
+ def getListOfFiles(self, listbox):
+ files = []
+ for row in range(0, listbox.count()):
+ files.append(unicode(listbox.item(row).text()))
+ return files
+
+ def removeSelectedItems(self, listbox):
+ for item in listbox.selectedItems():
+ item = listbox.takeItem(listbox.row(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):
+ self.getFiles(
+ translate('SongsPlugin.ImportWizardForm',
+ 'Select OpenLyrics Files'),
+ self.openLyricsFileListWidget
+ )
+
+ def onOpenLyricsRemoveButtonClicked(self):
+ 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 onSongsOfFellowshipAddButtonClicked(self):
+ self.getFiles(
+ translate('SongsPlugin.ImportWizardForm',
+ 'Select Songs of Fellowship Files'),
+ self.songsOfFellowshipFileListWidget
+ )
+
+ def onSongsOfFellowshipRemoveButtonClicked(self):
+ self.removeSelectedItems(self.songsOfFellowshipFileListWidget)
+
+ def onGenericAddButtonClicked(self):
+ self.getFiles(
+ translate('SongsPlugin.ImportWizardForm',
+ 'Select Document/Presentation Files'),
+ self.genericFileListWidget
+ )
+
+ def onGenericRemoveButtonClicked(self):
+ self.removeSelectedItems(self.genericFileListWidget)
+
def onCancelButtonClicked(self, checked):
"""
Stop the import on pressing the cancel button.
@@ -155,100 +314,101 @@
Receiver.send_message(u'openlp_stop_song_import')
def onCurrentIdChanged(self, id):
- if id == 3:
+ if id == 2:
self.preImport()
self.performImport()
self.postImport()
def registerFields(self):
- self.SourcePage.registerField(u'source_format', self.FormatComboBox)
+ pass
def setDefaults(self):
- self.setField(u'source_format', QtCore.QVariant(0))
- self.OpenLyricsFileListWidget.clear()
- self.OpenSongFileListWidget.clear()
- self.CCLIFileListWidget.clear()
- self.CSVFilenameEdit.setText(u'')
-
- def getFileName(self, title, editbox):
- 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)
+ self.formatComboBox.setCurrentIndex(0)
+ self.openLP2FilenameEdit.setText(u'')
+ self.openLP1FilenameEdit.setText(u'')
+ self.openLyricsFileListWidget.clear()
+ self.openSongFileListWidget.clear()
+ self.wordsOfWorshipFileListWidget.clear()
+ self.ccliFileListWidget.clear()
+ self.songsOfFellowshipFileListWidget.clear()
+ self.genericFileListWidget.clear()
+ #self.csvFilenameEdit.setText(u'')
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'process_events')
def preImport(self):
self.finishButton.setVisible(False)
- self.ImportProgressBar.setMinimum(0)
- self.ImportProgressBar.setMaximum(1188)
- self.ImportProgressBar.setValue(0)
- self.ImportProgressLabel.setText(
+ self.importProgressBar.setMinimum(0)
+ self.importProgressBar.setMaximum(1188)
+ self.importProgressBar.setValue(0)
+ self.importProgressLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Starting import...'))
Receiver.send_message(u'process_events')
def performImport(self):
- pass
-# source_format = self.field(u'source_format').toInt()[0]
-# importer = None
-# if bible_type == BibleFormat.OSIS:
-# # Import an OSIS bible
-# importer = self.manager.import_bible(BibleFormat.OSIS,
-# name=license_version,
-# filename=unicode(self.field(u'osis_location').toString())
-# )
-# elif bible_type == BibleFormat.CSV:
-# # Import a CSV bible
-# importer = self.manager.import_bible(BibleFormat.CSV,
-# name=license_version,
-# booksfile=unicode(self.field(u'csv_booksfile').toString()),
-# versefile=unicode(self.field(u'csv_versefile').toString())
-# )
-# elif bible_type == BibleFormat.OpenSong:
-# # Import an OpenSong bible
-# importer = self.manager.import_bible(BibleFormat.OpenSong,
-# name=license_version,
-# filename=unicode(self.field(u'opensong_file').toString())
-# )
-# elif bible_type == BibleFormat.WebDownload:
-# # Import a bible from the web
-# self.ImportProgressBar.setMaximum(1)
-# download_location = self.field(u'web_location').toInt()[0]
-# bible_version = self.BibleComboBox.currentText()
-# if not isinstance(bible_version, unicode):
-# bible_version = unicode(bible_version, u'utf8')
-# if download_location == WebDownload.Crosswalk:
-# bible = self.web_bible_list[WebDownload.Crosswalk][bible_version]
-# elif download_location == WebDownload.BibleGateway:
-# bible = self.web_bible_list[WebDownload.BibleGateway][bible_version]
-# importer = self.manager.import_bible(
-# BibleFormat.WebDownload,
-# name=license_version,
-# download_source=WebDownload.get_name(download_location),
-# download_name=bible,
-# proxy_server=unicode(self.field(u'proxy_server').toString()),
-# proxy_username=unicode(self.field(u'proxy_username').toString()),
-# proxy_password=unicode(self.field(u'proxy_password').toString())
-# )
-# success = importer.do_import()
-# if success:
-# self.manager.save_meta_data(license_version, license_version,
-# license_copyright, license_permission)
-# self.manager.reload_bibles()
-# self.ImportProgressLabel.setText(translate('SongsPlugin.SongImportForm', 'Finished import.'))
-# else:
-# self.ImportProgressLabel.setText(
-# translate('SongsPlugin.SongImportForm', 'Your Bible import failed.'))
-# importer.delete()
+ """
+ Perform the actual import. This method pulls in the correct importer
+ class, and then runs the ``do_import`` method of the importer to do
+ the actual importing.
+ """
+ source_format = self.formatComboBox.currentIndex()
+ importer = None
+ if source_format == SongFormat.OpenLP2:
+ # Import an OpenLP 2.0 database
+ importer = self.plugin.importSongs(SongFormat.OpenLP2,
+ filename=unicode(self.openLP2FilenameEdit.text())
+ )
+ #elif source_format == SongFormat.OpenLP1:
+ # # Import an openlp.org database
+ # importer = self.plugin.importSongs(SongFormat.OpenLP1,
+ # filename=unicode(self.field(u'openlp1_filename').toString())
+ # )
+ elif source_format == SongFormat.OpenLyrics:
+ # Import OpenLyrics songs
+ importer = self.plugin.importSongs(SongFormat.OpenLyrics,
+ filenames=self.getListOfFiles(self.openLyricsFileListWidget)
+ )
+ elif source_format == SongFormat.OpenSong:
+ # Import OpenSong songs
+ importer = self.plugin.importSongs(SongFormat.OpenSong,
+ filenames=self.getListOfFiles(self.openSongFileListWidget)
+ )
+ elif source_format == SongFormat.WordsOfWorship:
+ # Import Words Of Worship songs
+ importer = self.plugin.importSongs(SongFormat.WordsOfWorship,
+ filenames=self.getListOfFiles(self.wordsOfWorshipFileListWidget)
+ )
+ elif source_format == SongFormat.CCLI:
+ # Import Words Of Worship songs
+ importer = self.plugin.importSongs(SongFormat.CCLI,
+ filenames=self.getListOfFiles(self.ccliFileListWidget)
+ )
+ elif source_format == SongFormat.SongsOfFellowship:
+ # Import a Songs of Fellowship RTF file
+ importer = self.plugin.importSongs(SongFormat.SongsOfFellowship,
+ filenames=self.getListOfFiles(self.songsOfFellowshipFileListWidget)
+ )
+ elif source_format == SongFormat.Generic:
+ # Import a generic document or presentatoin
+ importer = self.plugin.importSongs(SongFormat.Generic,
+ filenames=self.getListOfFiles(self.genericFileListWidget)
+ )
+ success = importer.do_import()
+ if success:
+ # reload songs
+ self.ImportProgressLabel.setText(
+ translate('SongsPlugin.SongImportForm', 'Finished import.'))
+ else:
+ self.ImportProgressLabel.setText(
+ translate('SongsPlugin.SongImportForm',
+ 'Your song import failed.'))
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'process_events')
=== modified file 'openlp/plugins/songs/forms/songimportwizard.py'
--- openlp/plugins/songs/forms/songimportwizard.py 2010-07-27 09:32:52 +0000
+++ openlp/plugins/songs/forms/songimportwizard.py 2010-08-24 08:12:44 +0000
@@ -29,247 +29,425 @@
from openlp.core.lib import build_icon, translate
class Ui_SongImportWizard(object):
- def setupUi(self, SongImportWizard):
- SongImportWizard.setObjectName(u'SongImportWizard')
- SongImportWizard.resize(550, 386)
- SongImportWizard.setModal(True)
- SongImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
- SongImportWizard.setOptions(
+ def setupUi(self, songImportWizard):
+ openIcon = build_icon(u':/general/general_open.png')
+ deleteIcon = build_icon(u':/general/general_delete.png')
+ songImportWizard.setObjectName(u'songImportWizard')
+ songImportWizard.resize(550, 386)
+ songImportWizard.setModal(True)
+ songImportWizard.setWizardStyle(QtGui.QWizard.ModernStyle)
+ songImportWizard.setOptions(
QtGui.QWizard.IndependentPages |
QtGui.QWizard.NoBackButtonOnStartPage |
QtGui.QWizard.NoBackButtonOnLastPage)
- self.WelcomePage = QtGui.QWizardPage()
- self.WelcomePage.setObjectName(u'WelcomePage')
- self.WelcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
+ self.welcomePage = QtGui.QWizardPage()
+ self.welcomePage.setObjectName(u'welcomePage')
+ self.welcomePage.setPixmap(QtGui.QWizard.WatermarkPixmap,
QtGui.QPixmap(u':/wizards/wizard_importsong.bmp'))
- self.WelcomeLayout = QtGui.QHBoxLayout(self.WelcomePage)
- self.WelcomeLayout.setSpacing(8)
- self.WelcomeLayout.setMargin(0)
- self.WelcomeLayout.setObjectName(u'WelcomeLayout')
- self.WelcomeTextLayout = QtGui.QVBoxLayout()
- self.WelcomeTextLayout.setSpacing(8)
- self.WelcomeTextLayout.setObjectName(u'WelcomeTextLayout')
- self.TitleLabel = QtGui.QLabel(self.WelcomePage)
- self.TitleLabel.setObjectName(u'TitleLabel')
- self.WelcomeTextLayout.addWidget(self.TitleLabel)
- self.WelcomeTopSpacer = QtGui.QSpacerItem(20, 40,
+ self.welcomeLayout = QtGui.QHBoxLayout(self.welcomePage)
+ self.welcomeLayout.setSpacing(8)
+ self.welcomeLayout.setMargin(0)
+ self.welcomeLayout.setObjectName(u'welcomeLayout')
+ self.welcomeTextLayout = QtGui.QVBoxLayout()
+ self.welcomeTextLayout.setSpacing(8)
+ self.welcomeTextLayout.setObjectName(u'welcomeTextLayout')
+ self.titleLabel = QtGui.QLabel(self.welcomePage)
+ self.titleLabel.setObjectName(u'TitleLabel')
+ self.welcomeTextLayout.addWidget(self.titleLabel)
+ self.welcomeTopSpacer = QtGui.QSpacerItem(20, 40,
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
- self.WelcomeTextLayout.addItem(self.WelcomeTopSpacer)
- self.InformationLabel = QtGui.QLabel(self.WelcomePage)
- self.InformationLabel.setWordWrap(True)
- self.InformationLabel.setMargin(10)
- self.InformationLabel.setObjectName(u'InformationLabel')
- self.WelcomeTextLayout.addWidget(self.InformationLabel)
- self.WelcomeBottomSpacer = QtGui.QSpacerItem(20, 40,
+ self.welcomeTextLayout.addItem(self.welcomeTopSpacer)
+ self.informationLabel = QtGui.QLabel(self.welcomePage)
+ self.informationLabel.setWordWrap(True)
+ self.informationLabel.setMargin(10)
+ self.informationLabel.setObjectName(u'InformationLabel')
+ self.welcomeTextLayout.addWidget(self.informationLabel)
+ self.welcomeBottomSpacer = QtGui.QSpacerItem(20, 40,
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
- self.WelcomeTextLayout.addItem(self.WelcomeBottomSpacer)
- self.WelcomeLayout.addLayout(self.WelcomeTextLayout)
- SongImportWizard.addPage(self.WelcomePage)
- self.SourcePage = QtGui.QWizardPage()
- self.SourcePage.setObjectName(u'SourcePage')
- self.SourceLayout = QtGui.QVBoxLayout(self.SourcePage)
- self.SourceLayout.setSpacing(8)
- self.SourceLayout.setMargin(20)
- self.SourceLayout.setObjectName(u'SourceLayout')
- self.FormatLayout = QtGui.QHBoxLayout()
- self.FormatLayout.setSpacing(8)
- self.FormatLayout.setObjectName(u'FormatLayout')
- self.FormatLabel = QtGui.QLabel(self.SourcePage)
- self.FormatLabel.setObjectName(u'FormatLabel')
- self.FormatLayout.addWidget(self.FormatLabel)
- self.FormatComboBox = QtGui.QComboBox(self.SourcePage)
+ self.welcomeTextLayout.addItem(self.welcomeBottomSpacer)
+ self.welcomeLayout.addLayout(self.welcomeTextLayout)
+ songImportWizard.addPage(self.welcomePage)
+ self.sourcePage = QtGui.QWizardPage()
+ self.sourcePage.setObjectName(u'SourcePage')
+ self.sourceLayout = QtGui.QVBoxLayout(self.sourcePage)
+ self.sourceLayout.setSpacing(8)
+ self.sourceLayout.setMargin(20)
+ self.sourceLayout.setObjectName(u'SourceLayout')
+ self.formatLayout = QtGui.QHBoxLayout()
+ self.formatLayout.setSpacing(8)
+ self.formatLayout.setObjectName(u'FormatLayout')
+ self.formatLabel = QtGui.QLabel(self.sourcePage)
+ self.formatLabel.setObjectName(u'FormatLabel')
+ self.formatLayout.addWidget(self.formatLabel)
+ self.formatComboBox = QtGui.QComboBox(self.sourcePage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding,
QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(
- self.FormatComboBox.sizePolicy().hasHeightForWidth())
- self.FormatComboBox.setSizePolicy(sizePolicy)
- self.FormatComboBox.setObjectName(u'FormatComboBox')
- self.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)
- self.FormatLayout.addItem(self.FormatSpacer)
- self.SourceLayout.addLayout(self.FormatLayout)
- self.FormatStackedWidget = QtGui.QStackedWidget(self.SourcePage)
- self.FormatStackedWidget.setObjectName(u'FormatStackedWidget')
- 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)
- openIcon = build_icon(u':/general/general_open.png')
- self.OpenLyricsAddButton.setIcon(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)
- deleteIcon = build_icon(u':/general/general_delete.png')
- self.OpenLyricsRemoveButton.setIcon(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(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(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(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(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(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()
- 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.setProperty(u'value', 0)
- self.ImportProgressBar.setInvertedAppearance(False)
- self.ImportProgressBar.setObjectName(u'ImportProgressBar')
- self.ImportLayout.addWidget(self.ImportProgressBar)
- SongImportWizard.addPage(self.ImportPage)
- self.retranslateUi(SongImportWizard)
- self.FormatStackedWidget.setCurrentIndex(0)
- QtCore.QObject.connect(self.FormatComboBox,
+ 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.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.formatSpacer = QtGui.QSpacerItem(40, 20,
+ QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+ self.formatLayout.addItem(self.formatSpacer)
+ self.sourceLayout.addLayout(self.formatLayout)
+ self.formatStackedWidget = QtGui.QStackedWidget(self.sourcePage)
+ self.formatStackedWidget.setObjectName(u'FormatStackedWidget')
+ # OpenLP 2.0
+ self.openLP2Page = QtGui.QWidget()
+ self.openLP2Page.setObjectName(u'openLP2Page')
+ self.openLP2Layout = QtGui.QFormLayout(self.openLP2Page)
+ self.openLP2Layout.setMargin(0)
+ self.openLP2Layout.setSpacing(8)
+ self.openLP2Layout.setObjectName(u'openLP2Layout')
+ 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)
+ 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.openLyricsAddButton.setIcon(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(deleteIcon)
+ self.openLyricsRemoveButton.setObjectName(u'OpenLyricsRemoveButton')
+ self.openLyricsButtonLayout.addWidget(self.openLyricsRemoveButton)
+ self.openLyricsLayout.addLayout(self.openLyricsButtonLayout)
+ self.formatStackedWidget.addWidget(self.openLyricsPage)
+ # Open Song
+ 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.setSelectionMode(
+ QtGui.QAbstractItemView.ExtendedSelection)
+ 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(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(deleteIcon)
+ self.openSongRemoveButton.setObjectName(u'OpenSongRemoveButton')
+ self.openSongButtonLayout.addWidget(self.openSongRemoveButton)
+ self.openSongLayout.addLayout(self.openSongButtonLayout)
+ 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.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.setSelectionMode(
+ QtGui.QAbstractItemView.ExtendedSelection)
+ 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(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(deleteIcon)
+ self.ccliRemoveButton.setObjectName(u'ccliRemoveButton')
+ self.ccliButtonLayout.addWidget(self.ccliRemoveButton)
+ self.ccliLayout.addLayout(self.ccliButtonLayout)
+ self.formatStackedWidget.addWidget(self.ccliPage)
+ # Songs of Fellowship
+ self.songsOfFellowshipPage = QtGui.QWidget()
+ self.songsOfFellowshipPage.setObjectName(u'songsOfFellowshipPage')
+ self.songsOfFellowshipLayout = QtGui.QVBoxLayout(self.songsOfFellowshipPage)
+ self.songsOfFellowshipLayout.setMargin(0)
+ self.songsOfFellowshipLayout.setSpacing(8)
+ self.songsOfFellowshipLayout.setObjectName(u'songsOfFellowshipLayout')
+ self.songsOfFellowshipFileListWidget = QtGui.QListWidget(self.songsOfFellowshipPage)
+ self.songsOfFellowshipFileListWidget.setSelectionMode(
+ QtGui.QAbstractItemView.ExtendedSelection)
+ self.songsOfFellowshipFileListWidget.setObjectName(u'songsOfFellowshipFileListWidget')
+ self.songsOfFellowshipLayout.addWidget(self.songsOfFellowshipFileListWidget)
+ self.songsOfFellowshipButtonLayout = QtGui.QHBoxLayout()
+ self.songsOfFellowshipButtonLayout.setSpacing(8)
+ self.songsOfFellowshipButtonLayout.setObjectName(u'songsOfFellowshipButtonLayout')
+ self.songsOfFellowshipAddButton = QtGui.QPushButton(self.songsOfFellowshipPage)
+ self.songsOfFellowshipAddButton.setIcon(openIcon)
+ self.songsOfFellowshipAddButton.setObjectName(u'songsOfFellowshipAddButton')
+ self.songsOfFellowshipButtonLayout.addWidget(self.songsOfFellowshipAddButton)
+ self.songsOfFellowshipButtonSpacer = QtGui.QSpacerItem(40, 20,
+ QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+ self.songsOfFellowshipButtonLayout.addItem(self.songsOfFellowshipButtonSpacer)
+ self.songsOfFellowshipRemoveButton = QtGui.QPushButton(self.songsOfFellowshipPage)
+ self.songsOfFellowshipRemoveButton.setIcon(deleteIcon)
+ self.songsOfFellowshipRemoveButton.setObjectName(u'songsOfFellowshipRemoveButton')
+ self.songsOfFellowshipButtonLayout.addWidget(self.songsOfFellowshipRemoveButton)
+ self.songsOfFellowshipLayout.addLayout(self.songsOfFellowshipButtonLayout)
+ self.formatStackedWidget.addWidget(self.songsOfFellowshipPage)
+ # Generic Document/Presentation import
+ self.genericPage = QtGui.QWidget()
+ self.genericPage.setObjectName(u'genericPage')
+ self.genericLayout = QtGui.QVBoxLayout(self.genericPage)
+ self.genericLayout.setMargin(0)
+ self.genericLayout.setSpacing(8)
+ self.genericLayout.setObjectName(u'genericLayout')
+ self.genericFileListWidget = QtGui.QListWidget(self.genericPage)
+ self.genericFileListWidget.setSelectionMode(
+ QtGui.QAbstractItemView.ExtendedSelection)
+ self.genericFileListWidget.setObjectName(u'genericFileListWidget')
+ self.genericLayout.addWidget(self.genericFileListWidget)
+ self.genericButtonLayout = QtGui.QHBoxLayout()
+ self.genericButtonLayout.setSpacing(8)
+ self.genericButtonLayout.setObjectName(u'genericButtonLayout')
+ self.genericAddButton = QtGui.QPushButton(self.genericPage)
+ self.genericAddButton.setIcon(openIcon)
+ self.genericAddButton.setObjectName(u'genericAddButton')
+ self.genericButtonLayout.addWidget(self.genericAddButton)
+ self.genericButtonSpacer = QtGui.QSpacerItem(40, 20,
+ QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+ self.genericButtonLayout.addItem(self.genericButtonSpacer)
+ self.genericRemoveButton = QtGui.QPushButton(self.genericPage)
+ self.genericRemoveButton.setIcon(deleteIcon)
+ self.genericRemoveButton.setObjectName(u'genericRemoveButton')
+ self.genericButtonLayout.addWidget(self.genericRemoveButton)
+ self.genericLayout.addLayout(self.genericButtonLayout)
+ 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)
+ songImportWizard.addPage(self.sourcePage)
+ 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.setProperty(u'value', 0)
+ self.importProgressBar.setInvertedAppearance(False)
+ self.importProgressBar.setObjectName(u'importProgressBar')
+ self.importLayout.addWidget(self.importProgressBar)
+ songImportWizard.addPage(self.importPage)
+ self.retranslateUi(songImportWizard)
+ self.formatStackedWidget.setCurrentIndex(0)
+ QtCore.QObject.connect(self.formatComboBox,
QtCore.SIGNAL(u'currentIndexChanged(int)'),
- self.FormatStackedWidget.setCurrentIndex)
- QtCore.QMetaObject.connectSlotsByName(SongImportWizard)
+ self.formatStackedWidget.setCurrentIndex)
+ QtCore.QMetaObject.connectSlotsByName(songImportWizard)
- def retranslateUi(self, SongImportWizard):
- SongImportWizard.setWindowTitle(
+ def retranslateUi(self, songImportWizard):
+ songImportWizard.setWindowTitle(
translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard'))
- self.TitleLabel.setText(
+ self.titleLabel.setText(
u'<span style="font-size:14pt; font-weight:600;">%s</span>' % \
translate('SongsPlugin.ImportWizardForm',
'Welcome to the Song Import Wizard'))
- self.InformationLabel.setText(
+ self.informationLabel.setText(
translate('SongsPlugin.ImportWizardForm',
'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.'))
- self.SourcePage.setTitle(
+ self.sourcePage.setTitle(
translate('SongsPlugin.ImportWizardForm', 'Select Import Source'))
- self.SourcePage.setSubTitle(
+ self.sourcePage.setSubTitle(
translate('SongsPlugin.ImportWizardForm',
'Select the import format, and where to import from.'))
- self.FormatLabel.setText(
+ self.formatLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Format:'))
- self.FormatComboBox.setItemText(0,
+ self.formatComboBox.setItemText(0,
+ translate('SongsPlugin.ImportWizardForm', 'OpenLP 2.0'))
+ self.formatComboBox.setItemText(1,
+ translate('SongsPlugin.ImportWizardForm', 'openlp.org 1.x'))
+ self.formatComboBox.setItemText(2,
translate('SongsPlugin.ImportWizardForm', 'OpenLyrics'))
- self.FormatComboBox.setItemText(1,
+ self.formatComboBox.setItemText(3,
translate('SongsPlugin.ImportWizardForm', 'OpenSong'))
- self.FormatComboBox.setItemText(2,
- translate('SongsPlugin.ImportWizardForm', 'CCLI'))
- self.FormatComboBox.setItemText(3,
- translate('SongsPlugin.ImportWizardForm', 'CSV'))
- self.OpenLyricsAddButton.setText(
- translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
- self.OpenLyricsRemoveButton.setText(
- translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
- self.OpenSongAddButton.setText(
- translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
- self.OpenSongRemoveButton.setText(
- translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
- self.CCLIAddButton.setText(
- translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
- self.CCLIRemoveButton.setText(
- translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
- self.CSVFilenameLabel.setText(
- translate('SongsPlugin.ImportWizardForm', 'Filename:'))
- self.CSVBrowseButton.setText(
- translate('SongsPlugin.ImportWizardForm', 'Browse...'))
- self.ImportPage.setTitle(
+ self.formatComboBox.setItemText(4,
+ translate('SongsPlugin.ImportWizardForm', 'Words of Worship'))
+ self.formatComboBox.setItemText(5,
+ translate('SongsPlugin.ImportWizardForm', 'CCLI/SongSelect'))
+ 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...'))
+ self.openLyricsRemoveButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
+ self.openSongAddButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
+ 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)'))
+ self.ccliAddButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
+ self.ccliRemoveButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
+ self.songsOfFellowshipAddButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
+ self.songsOfFellowshipRemoveButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
+ self.genericAddButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
+ self.genericRemoveButton.setText(
+ translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
+# self.csvFilenameLabel.setText(
+# translate('SongsPlugin.ImportWizardForm', 'Filename:'))
+# self.csvBrowseButton.setText(
+# translate('SongsPlugin.ImportWizardForm', 'Browse...'))
+ self.importPage.setTitle(
translate('SongsPlugin.ImportWizardForm', 'Importing'))
- self.ImportPage.setSubTitle(
+ self.importPage.setSubTitle(
translate('SongsPlugin.ImportWizardForm',
'Please wait while your songs are imported.'))
- self.ImportProgressLabel.setText(
+ self.importProgressLabel.setText(
translate('SongsPlugin.ImportWizardForm', 'Ready.'))
- self.ImportProgressBar.setFormat(
+ self.importProgressBar.setFormat(
translate('SongsPlugin.ImportWizardForm', '%p%'))
=== modified file 'openlp/plugins/songs/lib/__init__.py'
--- openlp/plugins/songs/lib/__init__.py 2010-07-28 13:32:12 +0000
+++ openlp/plugins/songs/lib/__init__.py 2010-08-24 08:12:44 +0000
@@ -26,52 +26,6 @@
from openlp.core.lib import translate
-#from openlp.plugins.songs.lib import OpenLyricsSong, OpenSongSong, CCLISong, \
-# CSVSong
-
-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
- OpenSong = 1
- CCLI = 2
- CSV = 3
-
- @staticmethod
- def get_class(format):
- """
- Return the appropriate imeplementation class.
-
- ``format``
- The song format.
- """
-# if format == SongFormat.OpenLyrics:
-# return OpenLyricsSong
-# elif format == SongFormat.OpenSong:
-# return OpenSongSong
-# elif format == SongFormat.CCLI:
-# return CCLISong
-# elif format == SongFormat.CSV:
-# return CSVSong
-# else:
- return None
-
- @staticmethod
- def list():
- """
- Return a list of the supported song formats.
- """
- return [
- SongFormat.OpenLyrics,
- SongFormat.OpenSong,
- SongFormat.CCLI,
- SongFormat.CSV
- ]
-
class VerseType(object):
"""
VerseType provides an enumeration for the tags that may be associated
@@ -138,14 +92,7 @@
unicode(VerseType.to_string(VerseType.Other)).lower():
return VerseType.Other
+
from xml import LyricsXML, SongXMLBuilder, SongXMLParser
from songstab import SongsTab
from mediaitem import SongMediaItem
-from songimport import SongImport
-from opensongimport import OpenSongImport
-from olpimport import OpenLPSongImport
-try:
- from sofimport import SofImport
- from oooimport import OooImport
-except ImportError:
- pass
=== added file 'openlp/plugins/songs/lib/importer.py'
--- openlp/plugins/songs/lib/importer.py 1970-01-01 00:00:00 +0000
+++ openlp/plugins/songs/lib/importer.py 2010-08-24 08:12:44 +0000
@@ -0,0 +1,87 @@
+# -*- 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 #
+###############################################################################
+
+from opensongimport import OpenSongImport
+from olpimport import OpenLPSongImport
+try:
+ from sofimport import SofImport
+ from oooimport import OooImport
+except ImportError:
+ pass
+
+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
+ OpenLP2 = 0
+ OpenLP1 = 1
+ OpenLyrics = 2
+ OpenSong = 3
+ WordsOfWorship = 4
+ CCLI = 5
+ SongsOfFellowship = 6
+ Generic = 7
+ CSV = 8
+
+ @staticmethod
+ def get_class(format):
+ """
+ Return the appropriate imeplementation class.
+
+ ``format``
+ The song format.
+ """
+ if format == SongFormat.OpenLP2:
+ return OpenLPSongImport
+ elif format == SongFormat.OpenSong:
+ return OpenSongImport
+ elif format == SongFormat.SongsOfFellowship:
+ return SofImport
+ elif format == SongFormat.Generic:
+ return OooImport
+# else:
+ return None
+
+ @staticmethod
+ def list():
+ """
+ Return a list of the supported song formats.
+ """
+ return [
+ SongFormat.OpenLP2,
+ SongFormat.OpenLP1,
+ SongFormat.OpenLyrics,
+ SongFormat.OpenSong,
+ SongFormat.WordsOfWorship,
+ SongFormat.CCLI,
+ SongFormat.SongsOfFellowship,
+ SongFormat.Generic
+ ]
+
+__all__ = [u'SongFormat']
=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py 2010-08-02 19:23:39 +0000
+++ openlp/plugins/songs/lib/mediaitem.py 2010-08-24 08:12:44 +0000
@@ -236,9 +236,10 @@
self.onSearchTextButtonClick()
def onImportClick(self):
- songimportform = ImportWizardForm(self, self.parent.manager,
- self.parent)
- songimportform.exec_()
+ if not hasattr(self, u'import_wizard'):
+ self.import_wizard = ImportWizardForm(self, self.parent.manager,
+ self.parent)
+ self.import_wizard.exec_()
def onNewClick(self):
self.edit_song_form.newSong()
=== modified file 'openlp/plugins/songs/lib/olpimport.py'
--- openlp/plugins/songs/lib/olpimport.py 2010-07-27 09:32:52 +0000
+++ openlp/plugins/songs/lib/olpimport.py 2010-08-24 08:12:44 +0000
@@ -36,6 +36,7 @@
from openlp.core.lib.db import BaseModel
from openlp.plugins.songs.lib.db import Author, Book, Song, Topic #, MediaFile
+from songimport import SongImport
log = logging.getLogger(__name__)
@@ -69,12 +70,12 @@
"""
pass
-class OpenLPSongImport(object):
+class OpenLPSongImport(SongImport):
"""
The :class:`OpenLPSongImport` class provides OpenLP with the ability to
import song databases from other installations of OpenLP.
"""
- def __init__(self, master_manager, source_db):
+ def __init__(self, master_manager, **kwargs):
"""
Initialise the import.
@@ -84,11 +85,13 @@
``source_db``
The database providing the data to import.
"""
+ SongImport.__init__(self, master_manager)
self.master_manager = master_manager
- self.import_source = source_db
+ self.import_source = u'sqlite:///%s' % kwargs[u'filename']
+ log.debug(self.import_source)
self.source_session = None
- def import_source_v2_db(self):
+ def do_import(self):
"""
Run the import for an OpenLP version 2 song database.
"""
=== modified file 'openlp/plugins/songs/lib/songimport.py'
--- openlp/plugins/songs/lib/songimport.py 2010-07-27 09:32:52 +0000
+++ openlp/plugins/songs/lib/songimport.py 2010-08-24 08:12:44 +0000
@@ -27,8 +27,9 @@
import re
from openlp.core.lib import translate
-from openlp.plugins.songs.lib import SongXMLBuilder, VerseType
+from openlp.plugins.songs.lib import VerseType
from openlp.plugins.songs.lib.db import Song, Author, Topic, Book
+from openlp.plugins.songs.lib.xml import SongXMLBuilder
class SongImport(object):
"""
@@ -39,14 +40,14 @@
as necessary
"""
- def __init__(self, song_manager):
+ def __init__(self, manager):
"""
Initialise and create defaults for properties
song_manager is an instance of a SongManager, through which all
database access is performed
"""
- self.manager = song_manager
+ self.manager = manager
self.title = u''
self.song_number = u''
self.alternate_title = u''
@@ -67,6 +68,9 @@
self.copyright_symbol = unicode(translate(
'SongsPlugin.SongImport', '\xa9'))
+ def register(self, import_wizard):
+ self.import_wizard = import_wizard
+
@staticmethod
def process_songs_text(manager, text):
songs = []
=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py 2010-07-31 02:06:44 +0000
+++ openlp/plugins/songs/songsplugin.py 2010-08-24 08:12:44 +0000
@@ -30,16 +30,16 @@
from openlp.core.lib import Plugin, build_icon, Receiver, translate
from openlp.core.lib.db import Manager
-from openlp.plugins.songs.lib import OpenLPSongImport, SongMediaItem, SongsTab
+from openlp.plugins.songs.lib import SongMediaItem, SongsTab
from openlp.plugins.songs.lib.db import init_schema, Song
-
-try:
- from openlp.plugins.songs.lib import SofImport, OooImport
- OOo_available = True
-except ImportError:
- OOo_available = False
-
-from openlp.plugins.songs.lib import OpenSongImport
+from openlp.plugins.songs.lib.importer import SongFormat
+
+#try:
+# from openlp.plugins.songs.lib import SofImport, OooImport
+# OOo_available = True
+#except ImportError:
+# OOo_available = False
+#from openlp.plugins.songs.lib import OpenSongImport
log = logging.getLogger(__name__)
@@ -99,76 +99,76 @@
# Signals and slots
QtCore.QObject.connect(self.SongImportItem,
QtCore.SIGNAL(u'triggered()'), self.onSongImportItemClicked)
- if OOo_available:
- # Songs of Fellowship import menu item - will be removed and the
- # functionality will be contained within the import wizard
- self.ImportSofItem = QtGui.QAction(import_menu)
- self.ImportSofItem.setObjectName(u'ImportSofItem')
- self.ImportSofItem.setText(
- translate('SongsPlugin',
- 'Songs of Fellowship (temp menu item)'))
- self.ImportSofItem.setToolTip(
- translate('SongsPlugin',
- 'Import songs from the VOLS1_2.RTF, sof3words' \
- + '.rtf and sof4words.rtf supplied with the music books'))
- self.ImportSofItem.setStatusTip(
- translate('SongsPlugin',
- 'Import songs from the VOLS1_2.RTF, sof3words' \
- + '.rtf and sof4words.rtf supplied with the music books'))
- import_menu.addAction(self.ImportSofItem)
- # OpenOffice.org import menu item - will be removed and the
- # functionality will be contained within the import wizard
- self.ImportOooItem = QtGui.QAction(import_menu)
- self.ImportOooItem.setObjectName(u'ImportOooItem')
- self.ImportOooItem.setText(
- translate('SongsPlugin',
- 'Generic Document/Presentation Import '
- '(temp menu item)'))
- self.ImportOooItem.setToolTip(
- translate('SongsPlugin',
- 'Import songs from '
- 'Word/Writer/Powerpoint/Impress'))
- self.ImportOooItem.setStatusTip(
- translate('SongsPlugin',
- 'Import songs from '
- 'Word/Writer/Powerpoint/Impress'))
- import_menu.addAction(self.ImportOooItem)
- # Signals and slots
- QtCore.QObject.connect(self.ImportSofItem,
- QtCore.SIGNAL(u'triggered()'), self.onImportSofItemClick)
- QtCore.QObject.connect(self.ImportOooItem,
- QtCore.SIGNAL(u'triggered()'), self.onImportOooItemClick)
- # OpenSong import menu item - will be removed and the
- # functionality will be contained within the import wizard
- self.ImportOpenSongItem = QtGui.QAction(import_menu)
- self.ImportOpenSongItem.setObjectName(u'ImportOpenSongItem')
- self.ImportOpenSongItem.setText(
- translate('SongsPlugin',
- 'OpenSong (temp menu item)'))
- self.ImportOpenSongItem.setToolTip(
- translate('SongsPlugin',
- 'Import songs from OpenSong files' +
- '(either raw text or ZIPfiles)'))
- self.ImportOpenSongItem.setStatusTip(
- translate('SongsPlugin',
- 'Import songs from OpenSong files' +
- '(either raw text or ZIPfiles)'))
- import_menu.addAction(self.ImportOpenSongItem)
- QtCore.QObject.connect(self.ImportOpenSongItem,
- QtCore.SIGNAL(u'triggered()'), self.onImportOpenSongItemClick)
- # OpenLP v2 import menu item - ditto above regarding refactoring into
- # an import wizard
- self.ImportOpenLPSongItem = QtGui.QAction(import_menu)
- self.ImportOpenLPSongItem.setObjectName(u'ImportOpenLPSongItem')
- self.ImportOpenLPSongItem.setText(translate('SongsPlugin',
- 'OpenLP v2 Songs (temporary)'))
- self.ImportOpenLPSongItem.setToolTip(translate('SongsPlugin',
- 'Import an OpenLP v2 song database'))
- self.ImportOpenLPSongItem.setStatusTip(translate('SongsPlugin',
- 'Import an OpenLP v2 song database'))
- import_menu.addAction(self.ImportOpenLPSongItem)
- QtCore.QObject.connect(self.ImportOpenLPSongItem,
- QtCore.SIGNAL(u'triggered()'), self.onImportOpenLPSongItemClick)
+# if OOo_available:
+# # Songs of Fellowship import menu item - will be removed and the
+# # functionality will be contained within the import wizard
+# self.ImportSofItem = QtGui.QAction(import_menu)
+# self.ImportSofItem.setObjectName(u'ImportSofItem')
+# self.ImportSofItem.setText(
+# translate('SongsPlugin',
+# 'Songs of Fellowship (temp menu item)'))
+# self.ImportSofItem.setToolTip(
+# translate('SongsPlugin',
+# 'Import songs from the VOLS1_2.RTF, sof3words' \
+# + '.rtf and sof4words.rtf supplied with the music books'))
+# self.ImportSofItem.setStatusTip(
+# translate('SongsPlugin',
+# 'Import songs from the VOLS1_2.RTF, sof3words' \
+# + '.rtf and sof4words.rtf supplied with the music books'))
+# import_menu.addAction(self.ImportSofItem)
+# # OpenOffice.org import menu item - will be removed and the
+# # functionality will be contained within the import wizard
+# self.ImportOooItem = QtGui.QAction(import_menu)
+# self.ImportOooItem.setObjectName(u'ImportOooItem')
+# self.ImportOooItem.setText(
+# translate('SongsPlugin',
+# 'Generic Document/Presentation Import '
+# '(temp menu item)'))
+# self.ImportOooItem.setToolTip(
+# translate('SongsPlugin',
+# 'Import songs from '
+# 'Word/Writer/Powerpoint/Impress'))
+# self.ImportOooItem.setStatusTip(
+# translate('SongsPlugin',
+# 'Import songs from '
+# 'Word/Writer/Powerpoint/Impress'))
+# import_menu.addAction(self.ImportOooItem)
+# # Signals and slots
+# QtCore.QObject.connect(self.ImportSofItem,
+# QtCore.SIGNAL(u'triggered()'), self.onImportSofItemClick)
+# QtCore.QObject.connect(self.ImportOooItem,
+# QtCore.SIGNAL(u'triggered()'), self.onImportOooItemClick)
+# # OpenSong import menu item - will be removed and the
+# # functionality will be contained within the import wizard
+# self.ImportOpenSongItem = QtGui.QAction(import_menu)
+# self.ImportOpenSongItem.setObjectName(u'ImportOpenSongItem')
+# self.ImportOpenSongItem.setText(
+# translate('SongsPlugin',
+# 'OpenSong (temp menu item)'))
+# self.ImportOpenSongItem.setToolTip(
+# translate('SongsPlugin',
+# 'Import songs from OpenSong files' +
+# '(either raw text or ZIPfiles)'))
+# self.ImportOpenSongItem.setStatusTip(
+# translate('SongsPlugin',
+# 'Import songs from OpenSong files' +
+# '(either raw text or ZIPfiles)'))
+# import_menu.addAction(self.ImportOpenSongItem)
+# QtCore.QObject.connect(self.ImportOpenSongItem,
+# QtCore.SIGNAL(u'triggered()'), self.onImportOpenSongItemClick)
+# # OpenLP v2 import menu item - ditto above regarding refactoring into
+# # an import wizard
+# self.ImportOpenLPSongItem = QtGui.QAction(import_menu)
+# self.ImportOpenLPSongItem.setObjectName(u'ImportOpenLPSongItem')
+# self.ImportOpenLPSongItem.setText(translate('SongsPlugin',
+# 'OpenLP v2 Songs (temporary)'))
+# self.ImportOpenLPSongItem.setToolTip(translate('SongsPlugin',
+# 'Import an OpenLP v2 song database'))
+# self.ImportOpenLPSongItem.setStatusTip(translate('SongsPlugin',
+# 'Import an OpenLP v2 song database'))
+# import_menu.addAction(self.ImportOpenLPSongItem)
+# QtCore.QObject.connect(self.ImportOpenLPSongItem,
+# QtCore.SIGNAL(u'triggered()'), self.onImportOpenLPSongItemClick)
def addExportMenuItem(self, export_menu):
"""
@@ -186,67 +186,67 @@
if self.mediaItem:
self.mediaItem.onImportClick()
- def onImportSofItemClick(self):
- filenames = QtGui.QFileDialog.getOpenFileNames(
- None, translate('SongsPlugin',
- 'Open Songs of Fellowship file'),
- u'', u'Songs of Fellowship file (*.rtf *.RTF)')
- try:
- for filename in filenames:
- sofimport = SofImport(self.manager)
- sofimport.import_sof(unicode(filename))
- except:
- log.exception('Could not import SoF file')
- QtGui.QMessageBox.critical(None,
- translate('SongsPlugin', 'Import Error'),
- translate('SongsPlugin', 'Error importing Songs of '
- 'Fellowship file.\nOpenOffice.org must be installed'
- ' and you must be using an unedited copy of the RTF'
- ' included with the Songs of Fellowship Music Editions'))
- Receiver.send_message(u'songs_load_list')
-
- def onImportOpenSongItemClick(self):
- filenames = QtGui.QFileDialog.getOpenFileNames(
- None, translate('SongsPlugin',
- 'Open OpenSong file'),
- u'', u'All files (*.*)')
- try:
- for filename in filenames:
- importer = OpenSongImport(self.manager)
- importer.do_import(unicode(filename))
- except:
- log.exception('Could not import OpenSong file')
- QtGui.QMessageBox.critical(None,
- translate('SongsPlugin', 'Import Error'),
- translate('SongsPlugin', 'Error importing OpenSong file'))
- Receiver.send_message(u'songs_load_list')
-
- def onImportOpenLPSongItemClick(self):
- filenames = QtGui.QFileDialog.getOpenFileNames(None,
- translate('SongsPlugin', 'Select OpenLP database(s) to import...'),
- u'', u'OpenLP databases (*.sqlite);;All Files (*)')
- try:
- for filename in filenames:
- db_url = u'sqlite:///%s' % filename
- importer = OpenLPSongImport(self.manager, db_url)
- importer.import_source_v2_db()
- QtGui.QMessageBox.information(None, translate('SongsPlugin',
- 'Database(s) imported'), translate('SongsPlugin', 'Your '
- 'OpenLP v2 song databases have been successfully imported'))
- except:
- log.exception(u'Failed to import OpenLP v2 database(s)')
- QtGui.QMessageBox.critical(None, translate('SongsPlugin',
- 'Import Error'), translate('SongsPlugin',
- 'Error importing OpenLP v2 database(s)'))
- Receiver.send_message(u'songs_load_list')
-
- def onImportOooItemClick(self):
- filenames = QtGui.QFileDialog.getOpenFileNames(
- None, translate('SongsPlugin', 'Open documents or presentations'),
- '', u'All Files(*.*)')
- oooimport = OooImport(self.manager)
- oooimport.import_docs(filenames)
- Receiver.send_message(u'songs_load_list')
+# def onImportSofItemClick(self):
+# filenames = QtGui.QFileDialog.getOpenFileNames(
+# None, translate('SongsPlugin',
+# 'Open Songs of Fellowship file'),
+# u'', u'Songs of Fellowship file (*.rtf *.RTF)')
+# try:
+# for filename in filenames:
+# sofimport = SofImport(self.manager)
+# sofimport.import_sof(unicode(filename))
+# except:
+# log.exception('Could not import SoF file')
+# QtGui.QMessageBox.critical(None,
+# translate('SongsPlugin', 'Import Error'),
+# translate('SongsPlugin', 'Error importing Songs of '
+# 'Fellowship file.\nOpenOffice.org must be installed'
+# ' and you must be using an unedited copy of the RTF'
+# ' included with the Songs of Fellowship Music Editions'))
+# Receiver.send_message(u'songs_load_list')
+#
+# def onImportOpenSongItemClick(self):
+# filenames = QtGui.QFileDialog.getOpenFileNames(
+# None, translate('SongsPlugin',
+# 'Open OpenSong file'),
+# u'', u'All files (*.*)')
+# try:
+# for filename in filenames:
+# importer = OpenSongImport(self.manager)
+# importer.do_import(unicode(filename))
+# except:
+# log.exception('Could not import OpenSong file')
+# QtGui.QMessageBox.critical(None,
+# translate('SongsPlugin', 'Import Error'),
+# translate('SongsPlugin', 'Error importing OpenSong file'))
+# Receiver.send_message(u'songs_load_list')
+#
+# def onImportOpenLPSongItemClick(self):
+# filenames = QtGui.QFileDialog.getOpenFileNames(None,
+# translate('SongsPlugin', 'Select OpenLP database(s) to import...'),
+# u'', u'OpenLP databases (*.sqlite);;All Files (*)')
+# try:
+# for filename in filenames:
+# db_url = u'sqlite:///%s' % filename
+# importer = OpenLPSongImport(self.manager, db_url)
+# importer.import_source_v2_db()
+# QtGui.QMessageBox.information(None, translate('SongsPlugin',
+# 'Database(s) imported'), translate('SongsPlugin', 'Your '
+# 'OpenLP v2 song databases have been successfully imported'))
+# except:
+# log.exception(u'Failed to import OpenLP v2 database(s)')
+# QtGui.QMessageBox.critical(None, translate('SongsPlugin',
+# 'Import Error'), translate('SongsPlugin',
+# 'Error importing OpenLP v2 database(s)'))
+# Receiver.send_message(u'songs_load_list')
+#
+# def onImportOooItemClick(self):
+# filenames = QtGui.QFileDialog.getOpenFileNames(
+# None, translate('SongsPlugin', 'Open documents or presentations'),
+# '', u'All Files(*.*)')
+# oooimport = OooImport(self.manager)
+# oooimport.import_docs(filenames)
+# Receiver.send_message(u'songs_load_list')
def about(self):
about_text = translate('SongsPlugin', '<strong>Songs Plugin</strong>'
@@ -280,3 +280,9 @@
for song in songsUsingTheme:
song.theme_name = newTheme
self.custommanager.save_object(song)
+
+ def importSongs(self, format, **kwargs):
+ class_ = SongFormat.get_class(format)
+ importer = class_(self.manager, **kwargs)
+ importer.register(self.mediaItem.import_wizard)
+ return importer
Follow ups