forked from openlp/openlp
idea to improve song import feedback
This commit is contained in:
parent
237cabfeff
commit
a13cf49940
@ -132,6 +132,7 @@ class OpenLPWizard(QtGui.QWizard):
|
|||||||
self.progressLayout.addWidget(self.progressLabel)
|
self.progressLayout.addWidget(self.progressLabel)
|
||||||
self.progressBar = QtGui.QProgressBar(self.progressPage)
|
self.progressBar = QtGui.QProgressBar(self.progressPage)
|
||||||
self.progressBar.setObjectName(u'progressBar')
|
self.progressBar.setObjectName(u'progressBar')
|
||||||
|
self.progressLabel.setWordWrap(True)
|
||||||
self.progressLayout.addWidget(self.progressBar)
|
self.progressLayout.addWidget(self.progressBar)
|
||||||
self.addPage(self.progressPage)
|
self.addPage(self.progressPage)
|
||||||
|
|
||||||
|
@ -740,12 +740,15 @@ class SongImportForm(OpenLPWizard):
|
|||||||
importer = self.plugin.importSongs(SongFormat.FoilPresenter,
|
importer = self.plugin.importSongs(SongFormat.FoilPresenter,
|
||||||
filenames=self.getListOfFiles(self.foilPresenterFileListWidget)
|
filenames=self.getListOfFiles(self.foilPresenterFileListWidget)
|
||||||
)
|
)
|
||||||
if importer.do_import():
|
message = importer.do_import()
|
||||||
self.progressLabel.setText(WizardStrings.FinishedImport)
|
if isinstance(message, bool) and not message:
|
||||||
else:
|
self.progressLabel.setText(self.progressLabel.setText(
|
||||||
self.progressLabel.setText(
|
|
||||||
translate('SongsPlugin.SongImportForm',
|
translate('SongsPlugin.SongImportForm',
|
||||||
'Your song import failed.'))
|
'Your song import failed.')))
|
||||||
|
elif not isinstance(message, bool) and message:
|
||||||
|
self.progressLabel.setText(message)
|
||||||
|
else:
|
||||||
|
self.progressLabel.setText(WizardStrings.FinishedImport)
|
||||||
|
|
||||||
def addFileSelectItem(self, prefix, obj_prefix=None, can_disable=False,
|
def addFileSelectItem(self, prefix, obj_prefix=None, can_disable=False,
|
||||||
single_select=False):
|
single_select=False):
|
||||||
|
@ -93,7 +93,6 @@ class CCLIFileImport(SongImport):
|
|||||||
song_count += 1
|
song_count += 1
|
||||||
if self.stop_import_flag:
|
if self.stop_import_flag:
|
||||||
return False
|
return False
|
||||||
return True
|
|
||||||
|
|
||||||
def do_import_usr_file(self, textList):
|
def do_import_usr_file(self, textList):
|
||||||
"""
|
"""
|
||||||
|
@ -75,7 +75,6 @@ class EasiSlidesImport(SongImport):
|
|||||||
return False
|
return False
|
||||||
elif self.commit:
|
elif self.commit:
|
||||||
self.finish()
|
self.finish()
|
||||||
return True
|
|
||||||
|
|
||||||
def _parse_song(self, song):
|
def _parse_song(self, song):
|
||||||
self._success = True
|
self._success = True
|
||||||
|
@ -273,7 +273,8 @@ class EasyWorshipSongImport(SongImport):
|
|||||||
self.import_wizard.incrementProgressBar(u'')
|
self.import_wizard.incrementProgressBar(u'')
|
||||||
db_file.close()
|
db_file.close()
|
||||||
self.memo_file.close()
|
self.memo_file.close()
|
||||||
return success
|
if not success:
|
||||||
|
return False
|
||||||
|
|
||||||
def find_field(self, field_name):
|
def find_field(self, field_name):
|
||||||
return [i for i, x in enumerate(self.field_descs) \
|
return [i for i, x in enumerate(self.field_descs) \
|
||||||
|
@ -131,7 +131,6 @@ class FoilPresenterImport(SongImport):
|
|||||||
log.debug(u'File could not be imported: %s' % file_path)
|
log.debug(u'File could not be imported: %s' % file_path)
|
||||||
except etree.XMLSyntaxError:
|
except etree.XMLSyntaxError:
|
||||||
log.exception(u'XML syntax error in file %s' % file_path)
|
log.exception(u'XML syntax error in file %s' % file_path)
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
class FoilPresenter(object):
|
class FoilPresenter(object):
|
||||||
@ -235,7 +234,6 @@ class FoilPresenter(object):
|
|||||||
self._process_topics(foilpresenterfolie, song)
|
self._process_topics(foilpresenterfolie, song)
|
||||||
clean_song(self.manager, song)
|
clean_song(self.manager, song)
|
||||||
self.manager.save_object(song)
|
self.manager.save_object(song)
|
||||||
return song.id
|
|
||||||
|
|
||||||
def _child(self, element):
|
def _child(self, element):
|
||||||
"""
|
"""
|
||||||
|
@ -32,6 +32,7 @@ import logging
|
|||||||
from chardet.universaldetector import UniversalDetector
|
from chardet.universaldetector import UniversalDetector
|
||||||
import sqlite
|
import sqlite
|
||||||
|
|
||||||
|
from openlp.core.lib import translate
|
||||||
from openlp.core.ui.wizard import WizardStrings
|
from openlp.core.ui.wizard import WizardStrings
|
||||||
from openlp.plugins.songs.lib import retrieve_windows_encoding
|
from openlp.plugins.songs.lib import retrieve_windows_encoding
|
||||||
from songimport import SongImport
|
from songimport import SongImport
|
||||||
@ -62,7 +63,9 @@ class OpenLP1SongImport(SongImport):
|
|||||||
Run the import for an openlp.org 1.x song database.
|
Run the import for an openlp.org 1.x song database.
|
||||||
"""
|
"""
|
||||||
if not self.import_source.endswith(u'.olp'):
|
if not self.import_source.endswith(u'.olp'):
|
||||||
return False
|
return translate('SongsPlugin.OpenLP1SongImport', 'The file you '
|
||||||
|
'were trying to import is not a valid openlp.org 1.x song '
|
||||||
|
'database.')
|
||||||
encoding = self.get_encoding()
|
encoding = self.get_encoding()
|
||||||
if not encoding:
|
if not encoding:
|
||||||
return False
|
return False
|
||||||
|
@ -100,6 +100,9 @@ class OpenLPSongImport(SongImport):
|
|||||||
"""
|
"""
|
||||||
Run the import for an OpenLP version 2 song database.
|
Run the import for an OpenLP version 2 song database.
|
||||||
"""
|
"""
|
||||||
|
if not self.import_source.endswith(u'.sqlite'):
|
||||||
|
return translate('SongsPlugin.OpenLPSongImport', 'The file you were'
|
||||||
|
' trying to import is not a valid OpenLP 2.0 song database.')
|
||||||
engine = create_engine(self.import_source)
|
engine = create_engine(self.import_source)
|
||||||
source_meta = MetaData()
|
source_meta = MetaData()
|
||||||
source_meta.reflect(engine)
|
source_meta.reflect(engine)
|
||||||
@ -217,4 +220,3 @@ class OpenLPSongImport(SongImport):
|
|||||||
if self.stop_import_flag:
|
if self.stop_import_flag:
|
||||||
return False
|
return False
|
||||||
engine.dispose()
|
engine.dispose()
|
||||||
return True
|
|
||||||
|
@ -56,13 +56,11 @@ class OooImport(SongImport):
|
|||||||
self.process_started = False
|
self.process_started = False
|
||||||
|
|
||||||
def do_import(self):
|
def do_import(self):
|
||||||
self.stop_import_flag = False
|
|
||||||
self.import_wizard.progressBar.setMaximum(0)
|
|
||||||
self.start_ooo()
|
self.start_ooo()
|
||||||
|
self.import_wizard.progressBar.setMaximum(self.import_source)
|
||||||
for filename in self.import_source:
|
for filename in self.import_source:
|
||||||
if self.stop_import_flag:
|
if self.stop_import_flag:
|
||||||
self.import_wizard.incrementProgressBar(u'Import cancelled', 0)
|
return False
|
||||||
return
|
|
||||||
filename = unicode(filename)
|
filename = unicode(filename)
|
||||||
if os.path.isfile(filename):
|
if os.path.isfile(filename):
|
||||||
self.open_ooo_file(filename)
|
self.open_ooo_file(filename)
|
||||||
@ -70,9 +68,6 @@ class OooImport(SongImport):
|
|||||||
self.process_ooo_document()
|
self.process_ooo_document()
|
||||||
self.close_ooo_file()
|
self.close_ooo_file()
|
||||||
self.close_ooo()
|
self.close_ooo()
|
||||||
self.import_wizard.progressBar.setMaximum(1)
|
|
||||||
self.import_wizard.incrementProgressBar(u'', 1)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def process_ooo_document(self):
|
def process_ooo_document(self):
|
||||||
"""
|
"""
|
||||||
|
@ -71,4 +71,3 @@ class OpenLyricsImport(SongImport):
|
|||||||
log.debug(u'File could not be imported: %s' % file_path)
|
log.debug(u'File could not be imported: %s' % file_path)
|
||||||
except etree.XMLSyntaxError:
|
except etree.XMLSyntaxError:
|
||||||
log.exception(u'XML syntax error in file %s' % file_path)
|
log.exception(u'XML syntax error in file %s' % file_path)
|
||||||
return True
|
|
||||||
|
@ -163,7 +163,8 @@ class OpenSongImport(SongImport):
|
|||||||
else:
|
else:
|
||||||
success = False
|
success = False
|
||||||
break
|
break
|
||||||
return success
|
if not success:
|
||||||
|
return False
|
||||||
|
|
||||||
def do_import_file(self, file):
|
def do_import_file(self, file):
|
||||||
"""
|
"""
|
||||||
|
@ -89,7 +89,7 @@ class SofImport(OooImport):
|
|||||||
while paragraphs.hasMoreElements():
|
while paragraphs.hasMoreElements():
|
||||||
if self.stop_import_flag:
|
if self.stop_import_flag:
|
||||||
self.import_wizard.incrementProgressBar(u'Import cancelled', 0)
|
self.import_wizard.incrementProgressBar(u'Import cancelled', 0)
|
||||||
return
|
return False
|
||||||
paragraph = paragraphs.nextElement()
|
paragraph = paragraphs.nextElement()
|
||||||
if paragraph.supportsService("com.sun.star.text.Paragraph"):
|
if paragraph.supportsService("com.sun.star.text.Paragraph"):
|
||||||
self.process_paragraph(paragraph)
|
self.process_paragraph(paragraph)
|
||||||
|
@ -131,7 +131,6 @@ class SongBeamerImport(SongImport):
|
|||||||
self.finish()
|
self.finish()
|
||||||
self.import_wizard.incrementProgressBar(
|
self.import_wizard.incrementProgressBar(
|
||||||
WizardStrings.ImportingType % file_name)
|
WizardStrings.ImportingType % file_name)
|
||||||
return True
|
|
||||||
|
|
||||||
def replace_html_tags(self):
|
def replace_html_tags(self):
|
||||||
"""
|
"""
|
||||||
|
@ -107,7 +107,7 @@ class SongShowPlusImport(SongImport):
|
|||||||
self.import_wizard.incrementProgressBar(
|
self.import_wizard.incrementProgressBar(
|
||||||
WizardStrings.ImportingType % file_name, 0)
|
WizardStrings.ImportingType % file_name, 0)
|
||||||
songData = open(file, 'rb')
|
songData = open(file, 'rb')
|
||||||
while (1):
|
while True:
|
||||||
blockKey, = struct.unpack("I", songData.read(4))
|
blockKey, = struct.unpack("I", songData.read(4))
|
||||||
# The file ends with 4 NUL's
|
# The file ends with 4 NUL's
|
||||||
if blockKey == 0:
|
if blockKey == 0:
|
||||||
@ -173,7 +173,6 @@ class SongShowPlusImport(SongImport):
|
|||||||
self.finish()
|
self.finish()
|
||||||
self.import_wizard.incrementProgressBar(
|
self.import_wizard.incrementProgressBar(
|
||||||
WizardStrings.ImportingType % file_name)
|
WizardStrings.ImportingType % file_name)
|
||||||
return True
|
|
||||||
|
|
||||||
def toOpenLPVerseTag(self, verseName, ignoreUnique=False):
|
def toOpenLPVerseTag(self, verseName, ignoreUnique=False):
|
||||||
if verseName.find(" ") != -1:
|
if verseName.find(" ") != -1:
|
||||||
|
@ -156,4 +156,3 @@ class WowImport(SongImport):
|
|||||||
self.finish()
|
self.finish()
|
||||||
self.import_wizard.incrementProgressBar(
|
self.import_wizard.incrementProgressBar(
|
||||||
WizardStrings.ImportingType % file_name)
|
WizardStrings.ImportingType % file_name)
|
||||||
return True
|
|
||||||
|
Loading…
Reference in New Issue
Block a user