From ef44dc72c68fcd12244dc336bd33d53ef41098ca Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Mon, 23 Aug 2010 21:29:39 +0200 Subject: [PATCH] Changed the Generic importer to multifile as well. --- openlp/plugins/songs/forms/songimportform.py | 41 +++++++---- .../plugins/songs/forms/songimportwizard.py | 72 ++++++++----------- openlp/plugins/songs/lib/olpimport.py | 1 + 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index a4f1aedc0..e310a2509 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -97,9 +97,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): QtCore.QObject.connect(self.songsOfFellowshipRemoveButton, QtCore.SIGNAL(u'clicked()'), self.onSongsOfFellowshipRemoveButtonClicked) - QtCore.QObject.connect(self.genericBrowseButton, + QtCore.QObject.connect(self.genericAddButton, QtCore.SIGNAL(u'clicked()'), - self.onGenericBrowseButtonClicked) + 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) @@ -185,24 +188,24 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.ccliAddButton.setFocus() return False elif source_format == SongFormat.SongsOfFellowship: - if self.songsOfFellowshipFilenameEdit.text().isEmpty(): + if self.songsOfFellowshipFileListWidget.count() == 0: QtGui.QMessageBox.critical(self, translate('SongsPlugin.ImportWizardForm', 'No Songs of Fellowship File Selected'), translate('SongsPlugin.ImportWizardForm', - 'You need to select a Songs of Fellowship file to ' - 'import from.')) - self.songsOfFellowshipBrowseButton.setFocus() + '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.genericFilenameEdit.text().isEmpty(): + if self.genericFileListWidget.count() == 0: 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() + '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: @@ -292,13 +295,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): def onSongsOfFellowshipRemoveButtonClicked(self): self.removeSelectedItems(self.songsOfFellowshipFileListWidget) - def onGenericBrowseButtonClicked(self): - self.getFileName( + def onGenericAddButtonClicked(self): + self.getFiles( translate('SongsPlugin.ImportWizardForm', - 'Select Document/Presentation File'), - self.genericFilenameEdit + '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. @@ -325,7 +331,7 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.wordsOfWorshipFileListWidget.clear() self.ccliFileListWidget.clear() self.songsOfFellowshipFileListWidget.clear() - self.genericFilenameEdit.setText(u'') + self.genericFileListWidget.clear() #self.csvFilenameEdit.setText(u'') def incrementProgressBar(self, status_text): @@ -386,6 +392,11 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): 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 diff --git a/openlp/plugins/songs/forms/songimportwizard.py b/openlp/plugins/songs/forms/songimportwizard.py index 20de94721..f1898d107 100644 --- a/openlp/plugins/songs/forms/songimportwizard.py +++ b/openlp/plugins/songs/forms/songimportwizard.py @@ -291,46 +291,34 @@ class Ui_SongImportWizard(object): self.songsOfFellowshipRemoveButton.setObjectName(u'songsOfFellowshipRemoveButton') self.songsOfFellowshipButtonLayout.addWidget(self.songsOfFellowshipRemoveButton) self.songsOfFellowshipLayout.addLayout(self.songsOfFellowshipButtonLayout) -# self.songsOfFellowshipFilenameLabel = QtGui.QLabel(self.songsOfFellowshipPage) -# self.songsOfFellowshipFilenameLabel.setObjectName(u'songsOfFellowshipFilenameLabel') -# self.songsOfFellowshipLayout.setWidget(0, QtGui.QFormLayout.LabelRole, -# self.songsOfFellowshipFilenameLabel) -# self.songsOfFellowshipFileLayout = QtGui.QHBoxLayout() -# self.songsOfFellowshipFileLayout.setSpacing(8) -# self.songsOfFellowshipFileLayout.setObjectName(u'songsOfFellowshipFileLayout') -# self.songsOfFellowshipFilenameEdit = QtGui.QLineEdit(self.songsOfFellowshipPage) -# self.songsOfFellowshipFilenameEdit.setObjectName(u'songsOfFellowshipFilenameEdit') -# self.songsOfFellowshipFileLayout.addWidget(self.songsOfFellowshipFilenameEdit) -# self.songsOfFellowshipBrowseButton = QtGui.QToolButton(self.songsOfFellowshipPage) -# self.songsOfFellowshipBrowseButton.setIcon(openIcon) -# self.songsOfFellowshipBrowseButton.setObjectName(u'songsOfFellowshipBrowseButton') -# self.songsOfFellowshipFileLayout.addWidget(self.songsOfFellowshipBrowseButton) -# self.songsOfFellowshipLayout.setLayout(0, QtGui.QFormLayout.FieldRole, -# 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 = QtGui.QVBoxLayout(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.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() @@ -382,18 +370,18 @@ class Ui_SongImportWizard(object): def retranslateUi(self, songImportWizard): songImportWizard.setWindowTitle( - translate('SongsPlugin.ImportWizardForm', 'Song import Wizard')) + translate('SongsPlugin.ImportWizardForm', 'Song Import Wizard')) self.titleLabel.setText( u'%s' % \ translate('SongsPlugin.ImportWizardForm', - 'Welcome to the Song import Wizard')) + 'Welcome to the Song Import Wizard')) 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( - translate('SongsPlugin.ImportWizardForm', 'Select import Source')) + translate('SongsPlugin.ImportWizardForm', 'Select Import Source')) self.sourcePage.setSubTitle( translate('SongsPlugin.ImportWizardForm', 'Select the import format, and where to import from.')) @@ -410,7 +398,7 @@ class Ui_SongImportWizard(object): self.formatComboBox.setItemText(4, translate('SongsPlugin.ImportWizardForm', 'Words of Worship')) self.formatComboBox.setItemText(5, - translate('SongsPlugin.ImportWizardForm', 'CCLI')) + translate('SongsPlugin.ImportWizardForm', 'CCLI/SongSelect')) self.formatComboBox.setItemText(6, translate('SongsPlugin.ImportWizardForm', 'Songs of Fellowship')) self.formatComboBox.setItemText(7, @@ -446,16 +434,16 @@ class Ui_SongImportWizard(object): translate('SongsPlugin.ImportWizardForm', 'Add Files...')) self.songsOfFellowshipRemoveButton.setText( translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) - self.genericFilenameLabel.setText( - translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.genericBrowseButton.setText( - translate('SongsPlugin.ImportWizardForm', 'Browse...')) + 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')) + translate('SongsPlugin.ImportWizardForm', 'Importing')) self.importPage.setSubTitle( translate('SongsPlugin.ImportWizardForm', 'Please wait while your songs are imported.')) diff --git a/openlp/plugins/songs/lib/olpimport.py b/openlp/plugins/songs/lib/olpimport.py index 39dd01916..a4c15718e 100644 --- a/openlp/plugins/songs/lib/olpimport.py +++ b/openlp/plugins/songs/lib/olpimport.py @@ -85,6 +85,7 @@ class OpenLPSongImport(SongImport): ``source_db`` The database providing the data to import. """ + SongImport.__init__(self, master_manager) self.master_manager = master_manager self.import_source = u'sqlite:///%s' % kwargs[u'filename'] log.debug(self.import_source)