From 9111a1885e9e1508af6028e9003e65dadee7215d Mon Sep 17 00:00:00 2001 From: rimach Date: Thu, 23 Sep 2010 21:01:52 +0200 Subject: [PATCH] add SongBeamer import --- openlp/plugins/songs/forms/songimportform.py | 33 +++++++++++++ .../plugins/songs/forms/songimportwizard.py | 47 +++++++++++++++++-- openlp/plugins/songs/lib/importer.py | 7 ++- 3 files changed, 82 insertions(+), 5 deletions(-) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index c62fa058e..ef655a12a 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -112,6 +112,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): QtCore.QObject.connect(self.ewBrowseButton, QtCore.SIGNAL(u'clicked()'), self.onEWBrowseButtonClicked) + QtCore.QObject.connect(self.songBeamerAddButton, + QtCore.SIGNAL(u'clicked()'), + self.onSongBeamerAddButtonClicked) + QtCore.QObject.connect(self.songBeamerRemoveButton, + QtCore.SIGNAL(u'clicked()'), + self.onSongBeamerRemoveButtonClicked) QtCore.QObject.connect(self.cancelButton, QtCore.SIGNAL(u'clicked(bool)'), self.onCancelButtonClicked) @@ -227,6 +233,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): 'file to import from.')) self.ewBrowseButton.setFocus() return False + elif source_format == SongFormat.SongBeamer: + if self.songBeamerFileListWidget.count() == 0: + QtGui.QMessageBox.critical(self, + translate('SongsPlugin.ImportWizardForm', + 'No SongBeamer File Selected'), + translate('SongsPlugin.ImportWizardForm', + 'You need to add at least one SongBeamer ' + 'file to import from.')) + self.songBeamerAddButton.setFocus() + return False return True elif self.currentId() == 2: # Progress page @@ -342,6 +358,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.ewFilenameEdit ) + def onSongBeamerAddButtonClicked(self): + self.getFiles( + translate('SongsPlugin.ImportWizardForm', + 'Select SongBeamer Files'), + self.songBeamerFileListWidget + ) + + def onSongBeamerRemoveButtonClicked(self): + self.removeSelectedItems(self.songBeamerFileListWidget) + def onCancelButtonClicked(self, checked): """ Stop the import on pressing the cancel button. @@ -373,6 +399,7 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): self.songsOfFellowshipFileListWidget.clear() self.genericFileListWidget.clear() self.ewFilenameEdit.setText(u'') + self.songBeamerFileListWidget.clear() #self.csvFilenameEdit.setText(u'') def incrementProgressBar(self, status_text, increment=1): @@ -448,6 +475,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard): importer = self.plugin.importSongs(SongFormat.EasyWorship, filename=unicode(self.ewFilenameEdit.text()) ) + elif source_format == SongFormat.SongBeamer: + # Import SongBeamer songs + importer = self.plugin.importSongs(SongFormat.SongBeamer, + filenames=self.getListOfFiles( + self.songBeamerFileListWidget) + ) 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 0fb36cfe7..01f0c3541 100644 --- a/openlp/plugins/songs/forms/songimportwizard.py +++ b/openlp/plugins/songs/forms/songimportwizard.py @@ -97,6 +97,7 @@ 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.formatLayout.addWidget(self.formatComboBox) self.formatSpacer = QtGui.QSpacerItem(40, 20, @@ -438,6 +439,42 @@ class Ui_SongImportWizard(object): self.ewLayout.setLayout(0, QtGui.QFormLayout.FieldRole, self.ewFileLayout) self.formatStackedWidget.addWidget(self.ewPage) + # SongBeamer + # Words of Worship + self.songBeamerPage = QtGui.QWidget() + self.songBeamerPage.setObjectName(u'songBeamerPage') + self.songBeamerLayout = QtGui.QVBoxLayout(self.songBeamerPage) + self.songBeamerLayout.setSpacing(8) + self.songBeamerLayout.setMargin(0) + self.songBeamerLayout.setObjectName(u'songBeamerLayout') + self.songBeamerFileListWidget = QtGui.QListWidget( + self.songBeamerPage) + self.songBeamerFileListWidget.setSelectionMode( + QtGui.QAbstractItemView.ExtendedSelection) + self.songBeamerFileListWidget.setObjectName( + u'songBeamerFileListWidget') + self.songBeamerLayout.addWidget(self.songBeamerFileListWidget) + self.songBeamerButtonLayout = QtGui.QHBoxLayout() + self.songBeamerButtonLayout.setSpacing(8) + self.songBeamerButtonLayout.setObjectName( + u'songBeamerButtonLayout') + self.songBeamerAddButton = QtGui.QPushButton( + self.songBeamerPage) + self.songBeamerAddButton.setIcon(openIcon) + self.songBeamerAddButton.setObjectName(u'songBeamerAddButton') + self.songBeamerButtonLayout.addWidget(self.songBeamerAddButton) + self.songBeamerButtonSpacer = QtGui.QSpacerItem(40, 20, + QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.songBeamerButtonLayout.addItem(self.songBeamerButtonSpacer) + self.songBeamerRemoveButton = QtGui.QPushButton( + self.songBeamerPage) + self.songBeamerRemoveButton.setIcon(deleteIcon) + self.songBeamerRemoveButton.setObjectName( + u'songBeamerRemoveButton') + self.songBeamerButtonLayout.addWidget( + self.songBeamerRemoveButton) + self.songBeamerLayout.addLayout(self.songBeamerButtonLayout) + self.formatStackedWidget.addWidget(self.songBeamerPage) # Commented out for future use. # self.csvPage = QtGui.QWidget() # self.csvPage.setObjectName(u'CSVPage') @@ -524,6 +561,8 @@ class Ui_SongImportWizard(object): 'Generic Document/Presentation')) self.formatComboBox.setItemText(8, translate('SongsPlugin.ImportWizardForm', 'EasyWorship')) + self.formatComboBox.setItemText(9, + translate('SongsPlugin.ImportWizardForm', 'SongBeamer')) # self.formatComboBox.setItemText(9, # translate('SongsPlugin.ImportWizardForm', 'CSV')) self.openLP2FilenameLabel.setText( @@ -576,10 +615,10 @@ class Ui_SongImportWizard(object): translate('SongsPlugin.ImportWizardForm', 'The generic document/' 'presentation importer has been disabled because OpenLP cannot ' 'find OpenOffice.org on your computer.')) - self.ewFilenameLabel.setText( - translate('SongsPlugin.ImportWizardForm', 'Filename:')) - self.ewBrowseButton.setText( - translate('SongsPlugin.ImportWizardForm', 'Browse...')) + self.songBeamerAddButton.setText( + translate('SongsPlugin.ImportWizardForm', 'Add Files...')) + self.songBeamerRemoveButton.setText( + translate('SongsPlugin.ImportWizardForm', 'Remove File(s)')) # self.csvFilenameLabel.setText( # translate('SongsPlugin.ImportWizardForm', 'Filename:')) # self.csvBrowseButton.setText( diff --git a/openlp/plugins/songs/lib/importer.py b/openlp/plugins/songs/lib/importer.py index d8028db24..63d19b95c 100644 --- a/openlp/plugins/songs/lib/importer.py +++ b/openlp/plugins/songs/lib/importer.py @@ -29,6 +29,7 @@ from olpimport import OpenLPSongImport from wowimport import WowImport from cclifileimport import CCLIFileImport from ewimport import EasyWorshipSongImport +from songbeamerimport import SongBeamerImport # Imports that might fail try: from olp1import import OpenLP1SongImport @@ -64,6 +65,7 @@ class SongFormat(object): Generic = 7 #CSV = 8 EasyWorship = 8 + SongBeamer = 9 @staticmethod def get_class(format): @@ -89,6 +91,8 @@ class SongFormat(object): return CCLIFileImport elif format == SongFormat.EasyWorship: return EasyWorshipSongImport + elif format == SongFormat.SongBeamer: + return SongBeamerImport # else: return None @@ -106,7 +110,8 @@ class SongFormat(object): SongFormat.CCLI, SongFormat.SongsOfFellowship, SongFormat.Generic, - SongFormat.EasyWorship + SongFormat.EasyWorship, + SongFormat.SongBeamer ] @staticmethod