add SongBeamer import

This commit is contained in:
rimach 2010-09-23 21:01:52 +02:00
parent da33167b66
commit 9111a1885e
3 changed files with 82 additions and 5 deletions

View File

@ -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

View File

@ -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(

View File

@ -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