forked from openlp/openlp
This fixes the following bugs and issues:
- Bible items cannot be extended any more - Dual and single Bible verses cannot be mixed (Media Manager/Service Manager) - Bible item title in the service manager contains all bible passages (separated by a comma) bug #634533 and bug #609355 - Fixed bug #643783 bzr-revno: 1053
This commit is contained in:
commit
7b47d52eca
@ -126,29 +126,29 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard):
|
|||||||
if self.field(u'osis_location').toString() == u'':
|
if self.field(u'osis_location').toString() == u'':
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Invalid Bible Location'),
|
'Invalid Bible Location'),
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'You need to specify a file to import your '
|
'You need to specify a file to import your '
|
||||||
'Bible from.'))
|
'Bible from.'))
|
||||||
self.OSISLocationEdit.setFocus()
|
self.OSISLocationEdit.setFocus()
|
||||||
return False
|
return False
|
||||||
elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV:
|
elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV:
|
||||||
if self.field(u'csv_booksfile').toString() == u'':
|
if self.field(u'csv_booksfile').toString() == u'':
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Invalid Books File'),
|
'Invalid Books File'),
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'You need to specify a file with books of '
|
'You need to specify a file with books of '
|
||||||
'the Bible to use in the import.'))
|
'the Bible to use in the import.'))
|
||||||
self.BooksLocationEdit.setFocus()
|
self.BooksLocationEdit.setFocus()
|
||||||
return False
|
return False
|
||||||
elif self.field(u'csv_versefile').toString() == u'':
|
elif self.field(u'csv_versefile').toString() == u'':
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Invalid Verse File'),
|
'Invalid Verse File'),
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'You need to specify a file of Bible '
|
'You need to specify a file of Bible '
|
||||||
'verses to import.'))
|
'verses to import.'))
|
||||||
self.CsvVerseLocationEdit.setFocus()
|
self.CsvVerseLocationEdit.setFocus()
|
||||||
return False
|
return False
|
||||||
elif self.field(u'source_format').toInt()[0] == \
|
elif self.field(u'source_format').toInt()[0] == \
|
||||||
@ -156,10 +156,10 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard):
|
|||||||
if self.field(u'opensong_file').toString() == u'':
|
if self.field(u'opensong_file').toString() == u'':
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Invalid OpenSong Bible'),
|
'Invalid OpenSong Bible'),
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'You need to specify an OpenSong Bible '
|
'You need to specify an OpenSong Bible '
|
||||||
'file to import.'))
|
'file to import.'))
|
||||||
self.OpenSongFileEdit.setFocus()
|
self.OpenSongFileEdit.setFocus()
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
@ -171,29 +171,26 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard):
|
|||||||
if license_version == u'':
|
if license_version == u'':
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Empty Version Name'),
|
'Empty Version Name'),
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'You need to specify a version name for your '
|
'You need to specify a version name for your Bible.'))
|
||||||
'Bible.'))
|
|
||||||
self.VersionNameEdit.setFocus()
|
self.VersionNameEdit.setFocus()
|
||||||
return False
|
return False
|
||||||
elif license_copyright == u'':
|
elif license_copyright == u'':
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Empty Copyright'),
|
'Empty Copyright'),
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'You need to set a copyright for your Bible. '
|
'You need to set a copyright for your Bible. '
|
||||||
'Bibles in the Public Domain need to be marked as '
|
'Bibles in the Public Domain need to be marked as such.'))
|
||||||
'such.'))
|
|
||||||
self.CopyrightEdit.setFocus()
|
self.CopyrightEdit.setFocus()
|
||||||
return False
|
return False
|
||||||
elif self.manager.exists(license_version):
|
elif self.manager.exists(license_version):
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
|
translate('BiblesPlugin.ImportWizardForm', 'Bible Exists'),
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Bible Exists'),
|
'This Bible already exists. Please import '
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
'a different Bible or first delete the existing one.'))
|
||||||
'This Bible already exists. Please import '
|
|
||||||
'a different Bible or first delete the existing one.'))
|
|
||||||
self.VersionNameEdit.setFocus()
|
self.VersionNameEdit.setFocus()
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
@ -437,18 +434,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard):
|
|||||||
unicode(self.field(u'proxy_username').toString()),
|
unicode(self.field(u'proxy_username').toString()),
|
||||||
proxy_password=unicode(self.field(u'proxy_password').toString())
|
proxy_password=unicode(self.field(u'proxy_password').toString())
|
||||||
)
|
)
|
||||||
success = importer.do_import()
|
if importer.do_import():
|
||||||
if success:
|
|
||||||
self.manager.save_meta_data(license_version, license_version,
|
self.manager.save_meta_data(license_version, license_version,
|
||||||
license_copyright, license_permission)
|
license_copyright, license_permission)
|
||||||
self.manager.reload_bibles()
|
self.manager.reload_bibles()
|
||||||
self.ImportProgressLabel.setText(
|
self.ImportProgressLabel.setText(
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm', 'Finished import.'))
|
||||||
'Finished import.'))
|
|
||||||
else:
|
else:
|
||||||
self.ImportProgressLabel.setText(
|
self.ImportProgressLabel.setText(
|
||||||
translate('BiblesPlugin.ImportWizardForm',
|
translate('BiblesPlugin.ImportWizardForm',
|
||||||
'Your Bible import failed.'))
|
'Your Bible import failed.'))
|
||||||
delete_database(self.bibleplugin.settingsSection, importer.file)
|
delete_database(self.bibleplugin.settingsSection, importer.file)
|
||||||
|
|
||||||
def postImport(self):
|
def postImport(self):
|
||||||
|
@ -65,12 +65,6 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles)
|
QtCore.SIGNAL(u'bibles_load_list'), self.reloadBibles)
|
||||||
|
|
||||||
def _decodeQtObject(self, listobj, key):
|
|
||||||
obj = listobj[QtCore.QString(key)]
|
|
||||||
if isinstance(obj, QtCore.QVariant):
|
|
||||||
obj = obj.toPyObject()
|
|
||||||
return unicode(obj)
|
|
||||||
|
|
||||||
def requiredIcons(self):
|
def requiredIcons(self):
|
||||||
MediaManagerItem.requiredIcons(self)
|
MediaManagerItem.requiredIcons(self)
|
||||||
self.hasImportIcon = True
|
self.hasImportIcon = True
|
||||||
@ -405,18 +399,28 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
self.reloadBibles()
|
self.reloadBibles()
|
||||||
|
|
||||||
def onAdvancedFromVerse(self):
|
def onAdvancedFromVerse(self):
|
||||||
frm = self.AdvancedFromVerse.currentText()
|
frm = int(self.AdvancedFromVerse.currentText())
|
||||||
self.adjustComboBox(frm, self.verses, self.AdvancedToVerse)
|
chapter_frm = int(self.AdvancedFromChapter.currentText())
|
||||||
|
chapter_to = int(self.AdvancedToChapter.currentText())
|
||||||
def onAdvancedToChapter(self):
|
if chapter_frm == chapter_to:
|
||||||
frm = unicode(self.AdvancedFromChapter.currentText())
|
|
||||||
to = unicode(self.AdvancedToChapter.currentText())
|
|
||||||
if frm != to:
|
|
||||||
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
||||||
book = unicode(self.AdvancedBookComboBox.currentText())
|
book = unicode(self.AdvancedBookComboBox.currentText())
|
||||||
# get the verse count for new chapter
|
verses = self.parent.manager.get_verse_count(bible, book, chapter_to)
|
||||||
verses = self.parent.manager.get_verse_count(bible, book, int(to))
|
self.adjustComboBox(frm, verses, self.AdvancedToVerse)
|
||||||
|
|
||||||
|
def onAdvancedToChapter(self):
|
||||||
|
chapter_frm = int(self.AdvancedFromChapter.currentText())
|
||||||
|
chapter_to = int(self.AdvancedToChapter.currentText())
|
||||||
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
||||||
|
book = unicode(self.AdvancedBookComboBox.currentText())
|
||||||
|
verses = self.parent.manager.get_verse_count(bible, book, chapter_to)
|
||||||
|
if chapter_frm != chapter_to:
|
||||||
self.adjustComboBox(1, verses, self.AdvancedToVerse)
|
self.adjustComboBox(1, verses, self.AdvancedToVerse)
|
||||||
|
else:
|
||||||
|
frm = int(self.AdvancedFromVerse.currentText())
|
||||||
|
to = int(self.AdvancedToVerse.currentText())
|
||||||
|
if to < frm:
|
||||||
|
self.adjustComboBox(frm, verses, self.AdvancedToVerse)
|
||||||
|
|
||||||
def onAdvancedSearchButton(self):
|
def onAdvancedSearchButton(self):
|
||||||
log.debug(u'Advanced Search Button pressed')
|
log.debug(u'Advanced Search Button pressed')
|
||||||
@ -435,32 +439,72 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
dual_bible, versetext)
|
dual_bible, versetext)
|
||||||
if self.ClearAdvancedSearchComboBox.currentIndex() == 0:
|
if self.ClearAdvancedSearchComboBox.currentIndex() == 0:
|
||||||
self.listView.clear()
|
self.listView.clear()
|
||||||
self.displayResults(bible, dual_bible)
|
if self.listView.count() != 0:
|
||||||
|
bitem = self.listView.item(0)
|
||||||
|
item_dual_bible = self._decodeQtObject(bitem, 'dual_bible')
|
||||||
|
if item_dual_bible and dual_bible or not item_dual_bible and \
|
||||||
|
not dual_bible:
|
||||||
|
self.displayResults(bible, dual_bible)
|
||||||
|
elif QtGui.QMessageBox.critical(self,
|
||||||
|
translate('BiblePlugin.MediaItem', 'Error'),
|
||||||
|
translate('BiblePlugin.MediaItem', 'You cannot combine single '
|
||||||
|
'and dual bible verses. Do you want to delete your search '
|
||||||
|
'results and start a new search?'),
|
||||||
|
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No |
|
||||||
|
QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes:
|
||||||
|
self.listView.clear()
|
||||||
|
self.displayResults(bible, dual_bible)
|
||||||
|
else:
|
||||||
|
self.displayResults(bible, dual_bible)
|
||||||
|
|
||||||
def onAdvancedFromChapter(self):
|
def onAdvancedFromChapter(self):
|
||||||
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
||||||
book = unicode(self.AdvancedBookComboBox.currentText())
|
book = unicode(self.AdvancedBookComboBox.currentText())
|
||||||
cf = int(self.AdvancedFromChapter.currentText())
|
chapter_frm = int(self.AdvancedFromChapter.currentText())
|
||||||
self.adjustComboBox(cf, self.chapters_from, self.AdvancedToChapter)
|
self.adjustComboBox(chapter_frm, self.chapters_from,
|
||||||
# get the verse count for new chapter
|
self.AdvancedToChapter)
|
||||||
vse = self.parent.manager.get_verse_count(bible, book, cf)
|
verse = self.parent.manager.get_verse_count(bible, book, chapter_frm)
|
||||||
self.adjustComboBox(1, vse, self.AdvancedFromVerse)
|
self.adjustComboBox(1, verse, self.AdvancedToVerse)
|
||||||
self.adjustComboBox(1, vse, self.AdvancedToVerse)
|
self.adjustComboBox(1, verse, self.AdvancedFromVerse)
|
||||||
|
|
||||||
def onQuickSearchButton(self):
|
def onQuickSearchButton(self):
|
||||||
log.debug(u'Quick Search Button pressed')
|
log.debug(u'Quick Search Button pressed')
|
||||||
bible = unicode(self.QuickVersionComboBox.currentText())
|
bible = unicode(self.QuickVersionComboBox.currentText())
|
||||||
dual_bible = unicode(self.QuickSecondBibleComboBox.currentText())
|
dual_bible = unicode(self.QuickSecondBibleComboBox.currentText())
|
||||||
text = unicode(self.QuickSearchEdit.text())
|
text = unicode(self.QuickSearchEdit.text())
|
||||||
if self.ClearQuickSearchComboBox.currentIndex() == 0:
|
|
||||||
self.listView.clear()
|
|
||||||
self.search_results = self.parent.manager.get_verses(bible, text)
|
self.search_results = self.parent.manager.get_verses(bible, text)
|
||||||
if dual_bible:
|
if dual_bible:
|
||||||
self.dual_search_results = self.parent.manager.get_verses(
|
self.dual_search_results = self.parent.manager.get_verses(
|
||||||
dual_bible, text)
|
dual_bible, text)
|
||||||
if self.search_results:
|
if self.ClearQuickSearchComboBox.currentIndex() == 0:
|
||||||
|
self.listView.clear()
|
||||||
|
if self.listView.count() != 0 and self.search_results:
|
||||||
|
bitem = self.listView.item(0)
|
||||||
|
item_dual_bible = self._decodeQtObject(bitem, 'dual_bible')
|
||||||
|
if item_dual_bible and dual_bible or not item_dual_bible and \
|
||||||
|
not dual_bible:
|
||||||
|
self.displayResults(bible, dual_bible)
|
||||||
|
elif QtGui.QMessageBox.critical(self,
|
||||||
|
translate('BiblePlugin.MediaItem', 'Error'),
|
||||||
|
translate('BiblePlugin.MediaItem', 'You cannot combine single '
|
||||||
|
'and dual bible verses. Do you want to delete your search '
|
||||||
|
'results and start a new search?'),
|
||||||
|
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No |
|
||||||
|
QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes:
|
||||||
|
self.listView.clear()
|
||||||
|
self.displayResults(bible, dual_bible)
|
||||||
|
elif self.search_results:
|
||||||
self.displayResults(bible, dual_bible)
|
self.displayResults(bible, dual_bible)
|
||||||
|
|
||||||
|
def _decodeQtObject(self, bitem, key):
|
||||||
|
reference = bitem.data(QtCore.Qt.UserRole)
|
||||||
|
if isinstance(reference, QtCore.QVariant):
|
||||||
|
reference = reference.toPyObject()
|
||||||
|
obj = reference[QtCore.QString(key)]
|
||||||
|
if isinstance(obj, QtCore.QVariant):
|
||||||
|
obj = obj.toPyObject()
|
||||||
|
return unicode(obj)
|
||||||
|
|
||||||
def generateSlideData(self, service_item, item=None):
|
def generateSlideData(self, service_item, item=None):
|
||||||
"""
|
"""
|
||||||
Generates and formats the slides for the service item as well as the
|
Generates and formats the slides for the service item as well as the
|
||||||
@ -470,67 +514,40 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
items = self.listView.selectedIndexes()
|
items = self.listView.selectedIndexes()
|
||||||
if len(items) == 0:
|
if len(items) == 0:
|
||||||
return False
|
return False
|
||||||
has_dual_bible = False
|
|
||||||
bible_text = u''
|
bible_text = u''
|
||||||
old_chapter = u''
|
old_chapter = u''
|
||||||
raw_footer = []
|
raw_footer = []
|
||||||
raw_slides = []
|
raw_slides = []
|
||||||
|
raw_title = []
|
||||||
|
first_item = True
|
||||||
for item in items:
|
for item in items:
|
||||||
bitem = self.listView.item(item.row())
|
bitem = self.listView.item(item.row())
|
||||||
reference = bitem.data(QtCore.Qt.UserRole)
|
book = self._decodeQtObject(bitem, 'book')
|
||||||
if isinstance(reference, QtCore.QVariant):
|
chapter = int(self._decodeQtObject(bitem, 'chapter'))
|
||||||
reference = reference.toPyObject()
|
verse = int(self._decodeQtObject(bitem, 'verse'))
|
||||||
dual_bible = self._decodeQtObject(reference, 'dual_bible')
|
bible = self._decodeQtObject(bitem, 'bible')
|
||||||
if dual_bible:
|
version = self._decodeQtObject(bitem, 'version')
|
||||||
has_dual_bible = True
|
copyright = self._decodeQtObject(bitem, 'copyright')
|
||||||
break
|
permission = self._decodeQtObject(bitem, 'permission')
|
||||||
# Let's loop through the main lot, and assemble our verses.
|
text = self._decodeQtObject(bitem, 'text')
|
||||||
for item in items:
|
dual_bible = self._decodeQtObject(bitem, 'dual_bible')
|
||||||
bitem = self.listView.item(item.row())
|
dual_version = self._decodeQtObject(bitem, 'dual_version')
|
||||||
reference = bitem.data(QtCore.Qt.UserRole)
|
dual_copyright = self._decodeQtObject(bitem, 'dual_copyright')
|
||||||
if isinstance(reference, QtCore.QVariant):
|
dual_permission = self._decodeQtObject(bitem, 'dual_permission')
|
||||||
reference = reference.toPyObject()
|
dual_text = self._decodeQtObject(bitem, 'dual_text')
|
||||||
book = self._decodeQtObject(reference, 'book')
|
|
||||||
chapter = self._decodeQtObject(reference, 'chapter')
|
|
||||||
verse = self._decodeQtObject(reference, 'verse')
|
|
||||||
bible = self._decodeQtObject(reference, 'bible')
|
|
||||||
version = self._decodeQtObject(reference, 'version')
|
|
||||||
copyright = self._decodeQtObject(reference, 'copyright')
|
|
||||||
permission = self._decodeQtObject(reference, 'permission')
|
|
||||||
text = self._decodeQtObject(reference, 'text')
|
|
||||||
dual_bible = self._decodeQtObject(reference, 'dual_bible')
|
|
||||||
if dual_bible:
|
|
||||||
dual_version = self._decodeQtObject(reference,
|
|
||||||
'dual_version')
|
|
||||||
dual_copyright = self._decodeQtObject(reference,
|
|
||||||
'dual_copyright')
|
|
||||||
dual_permission = self._decodeQtObject(reference,
|
|
||||||
'dual_permission')
|
|
||||||
dual_text = self._decodeQtObject(reference, 'dual_text')
|
|
||||||
verse_text = self.formatVerse(old_chapter, chapter, verse)
|
verse_text = self.formatVerse(old_chapter, chapter, verse)
|
||||||
footer = u'%s (%s %s %s)' % (book, version, copyright, permission)
|
footer = u'%s (%s %s %s)' % (book, version, copyright, permission)
|
||||||
if footer not in raw_footer:
|
if footer not in raw_footer:
|
||||||
raw_footer.append(footer)
|
raw_footer.append(footer)
|
||||||
if has_dual_bible:
|
if dual_bible:
|
||||||
if dual_bible:
|
footer = u'%s (%s %s %s)' % (book, dual_version, dual_copyright,
|
||||||
footer = u'%s (%s %s %s)' % (book, dual_version,
|
dual_permission)
|
||||||
dual_copyright, dual_permission)
|
if footer not in raw_footer:
|
||||||
if footer not in raw_footer:
|
raw_footer.append(footer)
|
||||||
raw_footer.append(footer)
|
bible_text = u'%s %s\n\n%s %s' % (verse_text, text, verse_text,
|
||||||
# If there is an old bible_text we have to add it.
|
dual_text)
|
||||||
if bible_text:
|
raw_slides.append(bible_text)
|
||||||
raw_slides.append(bible_text)
|
bible_text = u''
|
||||||
bible_text = u''
|
|
||||||
bible_text = u'%s %s\n\n%s %s' % (verse_text, text,
|
|
||||||
verse_text, dual_text)
|
|
||||||
raw_slides.append(bible_text)
|
|
||||||
bible_text = u''
|
|
||||||
elif self.parent.settings_tab.layout_style == 0:
|
|
||||||
bible_text = u'%s %s' % (verse_text, text)
|
|
||||||
raw_slides.append(bible_text)
|
|
||||||
bible_text = u''
|
|
||||||
else:
|
|
||||||
bible_text = u'%s %s %s\n' % (bible_text, verse_text, text)
|
|
||||||
# If we are 'Verse Per Slide' then create a new slide.
|
# If we are 'Verse Per Slide' then create a new slide.
|
||||||
elif self.parent.settings_tab.layout_style == 0:
|
elif self.parent.settings_tab.layout_style == 0:
|
||||||
bible_text = u'%s %s' % (verse_text, text)
|
bible_text = u'%s %s' % (verse_text, text)
|
||||||
@ -542,29 +559,31 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
# We have to be 'Continuous'.
|
# We have to be 'Continuous'.
|
||||||
else:
|
else:
|
||||||
bible_text = u'%s %s %s\n' % (bible_text, verse_text, text)
|
bible_text = u'%s %s %s\n' % (bible_text, verse_text, text)
|
||||||
|
if first_item:
|
||||||
|
start_item = item
|
||||||
|
first_item = False
|
||||||
|
elif self.checkTitle(item, old_item):
|
||||||
|
raw_title.append(self.formatTitle(start_item, old_item))
|
||||||
|
start_item = item
|
||||||
|
old_item = item
|
||||||
old_chapter = chapter
|
old_chapter = chapter
|
||||||
|
raw_title.append(self.formatTitle(start_item, item))
|
||||||
# If there are no more items we check whether we have to add bible_text.
|
# If there are no more items we check whether we have to add bible_text.
|
||||||
if bible_text:
|
if bible_text:
|
||||||
raw_slides.append(bible_text)
|
raw_slides.append(bible_text)
|
||||||
bible_text = u''
|
bible_text = u''
|
||||||
# Service Item: Capabilities
|
# Service Item: Capabilities
|
||||||
if self.parent.settings_tab.layout_style == 2 and not has_dual_bible:
|
if self.parent.settings_tab.layout_style == 2 and not dual_bible:
|
||||||
# split the line but do not replace line breaks in renderer
|
# Split the line but do not replace line breaks in renderer.
|
||||||
service_item.add_capability(ItemCapabilities.NoLineBreaks)
|
service_item.add_capability(ItemCapabilities.NoLineBreaks)
|
||||||
service_item.add_capability(ItemCapabilities.AllowsPreview)
|
service_item.add_capability(ItemCapabilities.AllowsPreview)
|
||||||
service_item.add_capability(ItemCapabilities.AllowsLoop)
|
service_item.add_capability(ItemCapabilities.AllowsLoop)
|
||||||
service_item.add_capability(ItemCapabilities.AllowsAdditions)
|
|
||||||
# Service Item: Title
|
# Service Item: Title
|
||||||
if not service_item.title:
|
for title in raw_title:
|
||||||
if dual_bible:
|
if not service_item.title:
|
||||||
service_item.title = u'%s (%s, %s) %s' % (book, version,
|
service_item.title = title
|
||||||
dual_version, verse_text)
|
|
||||||
else:
|
else:
|
||||||
service_item.title = u'%s (%s) %s' % (book, version, verse_text)
|
service_item.title += u', ' + title
|
||||||
elif service_item.title.find(
|
|
||||||
translate('BiblesPlugin.MediaItem', 'etc')) == -1:
|
|
||||||
service_item.title = u'%s, %s' % (service_item.title,
|
|
||||||
translate('BiblesPlugin.MediaItem', 'etc'))
|
|
||||||
# Service Item: Theme
|
# Service Item: Theme
|
||||||
if len(self.parent.settings_tab.bible_theme) == 0:
|
if len(self.parent.settings_tab.bible_theme) == 0:
|
||||||
service_item.theme = None
|
service_item.theme = None
|
||||||
@ -579,12 +598,80 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
service_item.raw_footer = raw_footer
|
service_item.raw_footer = raw_footer
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def formatTitle(self, start_item, old_item):
|
||||||
|
"""
|
||||||
|
This methode is called, when we have to change the title, because
|
||||||
|
we are at the end of a verse range. E. g. if we want to add
|
||||||
|
Genesis 1:1-6 as well as Daniel 2:14.
|
||||||
|
"""
|
||||||
|
old_bitem = self.listView.item(old_item.row())
|
||||||
|
old_chapter = int(self._decodeQtObject(old_bitem, 'chapter'))
|
||||||
|
old_verse = int(self._decodeQtObject(old_bitem, 'verse'))
|
||||||
|
start_bitem = self.listView.item(start_item.row())
|
||||||
|
start_book = self._decodeQtObject(start_bitem, 'book')
|
||||||
|
start_chapter = int(self._decodeQtObject(start_bitem, 'chapter'))
|
||||||
|
start_verse = int(self._decodeQtObject(start_bitem, 'verse'))
|
||||||
|
start_bible = self._decodeQtObject(start_bitem, 'bible')
|
||||||
|
start_dual_bible = self._decodeQtObject(start_bitem, 'dual_bible')
|
||||||
|
if start_dual_bible:
|
||||||
|
if start_verse == old_verse and start_chapter == old_chapter:
|
||||||
|
title = u'%s %s:%s (%s, %s)' % (start_book, start_chapter,
|
||||||
|
start_verse, start_bible, start_dual_bible)
|
||||||
|
elif start_chapter == old_chapter:
|
||||||
|
title = u'%s %s:%s-%s (%s, %s)' % (start_book, start_chapter,
|
||||||
|
start_verse, old_verse, start_bible, start_dual_bible)
|
||||||
|
else:
|
||||||
|
title = u'%s %s:%s-%s:%s (%s, %s)' % (start_book, start_chapter,
|
||||||
|
start_verse, old_chapter, old_verse, start_bible,
|
||||||
|
start_dual_bible)
|
||||||
|
else:
|
||||||
|
if start_verse == old_verse and start_chapter == old_chapter:
|
||||||
|
title = u'%s %s:%s (%s)' % (start_book, start_chapter,
|
||||||
|
start_verse, start_bible)
|
||||||
|
elif start_chapter == old_chapter:
|
||||||
|
title = u'%s %s:%s-%s (%s)' % (start_book, start_chapter,
|
||||||
|
start_verse, old_verse, start_bible)
|
||||||
|
else:
|
||||||
|
title = u'%s %s:%s-%s:%s (%s)' % (start_book, start_chapter,
|
||||||
|
start_verse, old_chapter, old_verse, start_bible)
|
||||||
|
return title
|
||||||
|
|
||||||
|
def checkTitle(self, item, old_item):
|
||||||
|
"""
|
||||||
|
This methode checks if we are at the end of an verse range. If that is
|
||||||
|
the case, we return True, else False. E. g. if we added Genesis 1:1-6,
|
||||||
|
but the next verse is Daniel 2:14.
|
||||||
|
"""
|
||||||
|
bitem = self.listView.item(item.row())
|
||||||
|
book = self._decodeQtObject(bitem, 'book')
|
||||||
|
chapter = int(self._decodeQtObject(bitem, 'chapter'))
|
||||||
|
verse = int(self._decodeQtObject(bitem, 'verse'))
|
||||||
|
bible = self._decodeQtObject(bitem, 'bible')
|
||||||
|
dual_bible = self._decodeQtObject(bitem, 'dual_bible')
|
||||||
|
old_bitem = self.listView.item(old_item.row())
|
||||||
|
old_book = self._decodeQtObject(old_bitem, 'book')
|
||||||
|
old_chapter = int(self._decodeQtObject(old_bitem, 'chapter'))
|
||||||
|
old_verse = int(self._decodeQtObject(old_bitem, 'verse'))
|
||||||
|
old_bible = self._decodeQtObject(old_bitem, 'bible')
|
||||||
|
old_dual_bible = self._decodeQtObject(old_bitem, 'dual_bible')
|
||||||
|
if old_bible != bible or old_dual_bible != dual_bible or \
|
||||||
|
old_book != book:
|
||||||
|
return True
|
||||||
|
elif old_verse + 1 != verse and old_chapter == chapter:
|
||||||
|
return True
|
||||||
|
elif old_chapter + 1 == chapter and (verse != 1 or
|
||||||
|
old_verse != self.parent.manager.get_verse_count(
|
||||||
|
old_bible, old_book, old_chapter)):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
def formatVerse(self, old_chapter, chapter, verse):
|
def formatVerse(self, old_chapter, chapter, verse):
|
||||||
if not self.parent.settings_tab.show_new_chapters or \
|
if not self.parent.settings_tab.show_new_chapters or \
|
||||||
old_chapter != chapter:
|
old_chapter != chapter:
|
||||||
verse_text = chapter + u':' + verse
|
verse_text = u'%s:%s' % (chapter, verse)
|
||||||
else:
|
else:
|
||||||
verse_text = verse
|
verse_text = u'%s' % verse
|
||||||
if self.parent.settings_tab.display_style == 1:
|
if self.parent.settings_tab.display_style == 1:
|
||||||
verse_text = u'{su}(' + verse_text + u'){/su}'
|
verse_text = u'{su}(' + verse_text + u'){/su}'
|
||||||
elif self.parent.settings_tab.display_style == 2:
|
elif self.parent.settings_tab.display_style == 2:
|
||||||
@ -687,14 +774,15 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
'copyright': QtCore.QVariant(copyright.value),
|
'copyright': QtCore.QVariant(copyright.value),
|
||||||
'permission': QtCore.QVariant(permission.value),
|
'permission': QtCore.QVariant(permission.value),
|
||||||
'text': QtCore.QVariant(verse.text),
|
'text': QtCore.QVariant(verse.text),
|
||||||
'dual_bible': QtCore.QVariant(dual_bible)
|
'dual_bible': QtCore.QVariant(u''),
|
||||||
|
'dual_version': QtCore.QVariant(u''),
|
||||||
|
'dual_copyright': QtCore.QVariant(u''),
|
||||||
|
'dual_permission': QtCore.QVariant(u''),
|
||||||
|
'dual_text': QtCore.QVariant(u'')
|
||||||
}
|
}
|
||||||
bible_text = u' %s %d:%d (%s)' % (verse.book.name,
|
bible_text = u' %s %d:%d (%s)' % (verse.book.name,
|
||||||
verse.chapter, verse.verse, version.value)
|
verse.chapter, verse.verse, version.value)
|
||||||
# set the row title
|
|
||||||
bible_verse = QtGui.QListWidgetItem(bible_text)
|
bible_verse = QtGui.QListWidgetItem(bible_text)
|
||||||
#bible_verse.setData(QtCore.Qt.UserRole,
|
|
||||||
# QtCore.QVariant(bible_text))
|
|
||||||
bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict))
|
bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict))
|
||||||
self.listView.addItem(bible_verse)
|
self.listView.addItem(bible_verse)
|
||||||
row = self.listView.setCurrentRow(count + start_count)
|
row = self.listView.setCurrentRow(count + start_count)
|
||||||
|
Loading…
Reference in New Issue
Block a user