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.QObject.connect(self.ewBrowseButton,
QtCore.SIGNAL(u'clicked()'), QtCore.SIGNAL(u'clicked()'),
self.onEWBrowseButtonClicked) 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.QObject.connect(self.cancelButton,
QtCore.SIGNAL(u'clicked(bool)'), QtCore.SIGNAL(u'clicked(bool)'),
self.onCancelButtonClicked) self.onCancelButtonClicked)
@ -227,6 +233,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
'file to import from.')) 'file to import from.'))
self.ewBrowseButton.setFocus() self.ewBrowseButton.setFocus()
return False 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 return True
elif self.currentId() == 2: elif self.currentId() == 2:
# Progress page # Progress page
@ -342,6 +358,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
self.ewFilenameEdit 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): def onCancelButtonClicked(self, checked):
""" """
Stop the import on pressing the cancel button. Stop the import on pressing the cancel button.
@ -373,6 +399,7 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
self.songsOfFellowshipFileListWidget.clear() self.songsOfFellowshipFileListWidget.clear()
self.genericFileListWidget.clear() self.genericFileListWidget.clear()
self.ewFilenameEdit.setText(u'') self.ewFilenameEdit.setText(u'')
self.songBeamerFileListWidget.clear()
#self.csvFilenameEdit.setText(u'') #self.csvFilenameEdit.setText(u'')
def incrementProgressBar(self, status_text, increment=1): def incrementProgressBar(self, status_text, increment=1):
@ -448,6 +475,12 @@ class ImportWizardForm(QtGui.QWizard, Ui_SongImportWizard):
importer = self.plugin.importSongs(SongFormat.EasyWorship, importer = self.plugin.importSongs(SongFormat.EasyWorship,
filename=unicode(self.ewFilenameEdit.text()) 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() success = importer.do_import()
if success: if success:
# reload songs # 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.formatComboBox.addItem(u'')
self.formatComboBox.addItem(u'')
# self.formatComboBox.addItem(u'') # self.formatComboBox.addItem(u'')
self.formatLayout.addWidget(self.formatComboBox) self.formatLayout.addWidget(self.formatComboBox)
self.formatSpacer = QtGui.QSpacerItem(40, 20, self.formatSpacer = QtGui.QSpacerItem(40, 20,
@ -438,6 +439,42 @@ class Ui_SongImportWizard(object):
self.ewLayout.setLayout(0, QtGui.QFormLayout.FieldRole, self.ewLayout.setLayout(0, QtGui.QFormLayout.FieldRole,
self.ewFileLayout) self.ewFileLayout)
self.formatStackedWidget.addWidget(self.ewPage) 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. # Commented out for future use.
# self.csvPage = QtGui.QWidget() # self.csvPage = QtGui.QWidget()
# self.csvPage.setObjectName(u'CSVPage') # self.csvPage.setObjectName(u'CSVPage')
@ -524,6 +561,8 @@ class Ui_SongImportWizard(object):
'Generic Document/Presentation')) 'Generic Document/Presentation'))
self.formatComboBox.setItemText(8, self.formatComboBox.setItemText(8,
translate('SongsPlugin.ImportWizardForm', 'EasyWorship')) translate('SongsPlugin.ImportWizardForm', 'EasyWorship'))
self.formatComboBox.setItemText(9,
translate('SongsPlugin.ImportWizardForm', 'SongBeamer'))
# self.formatComboBox.setItemText(9, # self.formatComboBox.setItemText(9,
# translate('SongsPlugin.ImportWizardForm', 'CSV')) # translate('SongsPlugin.ImportWizardForm', 'CSV'))
self.openLP2FilenameLabel.setText( self.openLP2FilenameLabel.setText(
@ -576,10 +615,10 @@ class Ui_SongImportWizard(object):
translate('SongsPlugin.ImportWizardForm', 'The generic document/' translate('SongsPlugin.ImportWizardForm', 'The generic document/'
'presentation importer has been disabled because OpenLP cannot ' 'presentation importer has been disabled because OpenLP cannot '
'find OpenOffice.org on your computer.')) 'find OpenOffice.org on your computer.'))
self.ewFilenameLabel.setText( self.songBeamerAddButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Filename:')) translate('SongsPlugin.ImportWizardForm', 'Add Files...'))
self.ewBrowseButton.setText( self.songBeamerRemoveButton.setText(
translate('SongsPlugin.ImportWizardForm', 'Browse...')) translate('SongsPlugin.ImportWizardForm', 'Remove File(s)'))
# self.csvFilenameLabel.setText( # self.csvFilenameLabel.setText(
# translate('SongsPlugin.ImportWizardForm', 'Filename:')) # translate('SongsPlugin.ImportWizardForm', 'Filename:'))
# self.csvBrowseButton.setText( # self.csvBrowseButton.setText(

View File

@ -29,6 +29,7 @@ from olpimport import OpenLPSongImport
from wowimport import WowImport from wowimport import WowImport
from cclifileimport import CCLIFileImport from cclifileimport import CCLIFileImport
from ewimport import EasyWorshipSongImport from ewimport import EasyWorshipSongImport
from songbeamerimport import SongBeamerImport
# Imports that might fail # Imports that might fail
try: try:
from olp1import import OpenLP1SongImport from olp1import import OpenLP1SongImport
@ -64,6 +65,7 @@ class SongFormat(object):
Generic = 7 Generic = 7
#CSV = 8 #CSV = 8
EasyWorship = 8 EasyWorship = 8
SongBeamer = 9
@staticmethod @staticmethod
def get_class(format): def get_class(format):
@ -89,6 +91,8 @@ class SongFormat(object):
return CCLIFileImport return CCLIFileImport
elif format == SongFormat.EasyWorship: elif format == SongFormat.EasyWorship:
return EasyWorshipSongImport return EasyWorshipSongImport
elif format == SongFormat.SongBeamer:
return SongBeamerImport
# else: # else:
return None return None
@ -106,7 +110,8 @@ class SongFormat(object):
SongFormat.CCLI, SongFormat.CCLI,
SongFormat.SongsOfFellowship, SongFormat.SongsOfFellowship,
SongFormat.Generic, SongFormat.Generic,
SongFormat.EasyWorship SongFormat.EasyWorship,
SongFormat.SongBeamer
] ]
@staticmethod @staticmethod