From 66a22f7711699eeff13adfee99c864d55e7d5493 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 10 Sep 2010 19:09:36 +0200 Subject: [PATCH 01/18] head From 6654a7993ac524742be6b57f91860c7849d19601 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 11 Sep 2010 21:36:47 +0200 Subject: [PATCH 02/18] started to rework bibles (dual/single verses) --- .../plugins/bibles/forms/importwizardform.py | 51 +++++------- openlp/plugins/bibles/lib/mediaitem.py | 83 ++++++++++--------- 2 files changed, 69 insertions(+), 65 deletions(-) diff --git a/openlp/plugins/bibles/forms/importwizardform.py b/openlp/plugins/bibles/forms/importwizardform.py index 67f3756dc..ffee1876a 100644 --- a/openlp/plugins/bibles/forms/importwizardform.py +++ b/openlp/plugins/bibles/forms/importwizardform.py @@ -126,29 +126,29 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): if self.field(u'osis_location').toString() == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid Bible Location'), + 'Invalid Bible Location'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file to import your ' - 'Bible from.')) + 'You need to specify a file to import your ' + 'Bible from.')) self.OSISLocationEdit.setFocus() return False elif self.field(u'source_format').toInt()[0] == BibleFormat.CSV: if self.field(u'csv_booksfile').toString() == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid Books File'), + 'Invalid Books File'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file with books of ' - 'the Bible to use in the import.')) + 'You need to specify a file with books of ' + 'the Bible to use in the import.')) self.BooksLocationEdit.setFocus() return False elif self.field(u'csv_versefile').toString() == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid Verse File'), + 'Invalid Verse File'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a file of Bible ' - 'verses to import.')) + 'You need to specify a file of Bible ' + 'verses to import.')) self.CsvVerseLocationEdit.setFocus() return False 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'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Invalid OpenSong Bible'), + 'Invalid OpenSong Bible'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify an OpenSong Bible ' - 'file to import.')) + 'You need to specify an OpenSong Bible ' + 'file to import.')) self.OpenSongFileEdit.setFocus() return False return True @@ -171,29 +171,26 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): if license_version == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Empty Version Name'), + 'Empty Version Name'), translate('BiblesPlugin.ImportWizardForm', - 'You need to specify a version name for your ' - 'Bible.')) + 'You need to specify a version name for your Bible.')) self.VersionNameEdit.setFocus() return False elif license_copyright == u'': QtGui.QMessageBox.critical(self, translate('BiblesPlugin.ImportWizardForm', - 'Empty Copyright'), + 'Empty Copyright'), translate('BiblesPlugin.ImportWizardForm', - 'You need to set a copyright for your Bible! ' - 'Bibles in the Public Domain need to be marked as ' - 'such.')) + 'You need to set a copyright for your Bible! ' + 'Bibles in the Public Domain need to be marked as such.')) self.CopyrightEdit.setFocus() return False elif self.manager.exists(license_version): QtGui.QMessageBox.critical(self, + translate('BiblesPlugin.ImportWizardForm', 'Bible Exists'), translate('BiblesPlugin.ImportWizardForm', - 'Bible Exists'), - translate('BiblesPlugin.ImportWizardForm', - 'This Bible already exists! Please import ' - '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() return False return True @@ -434,18 +431,16 @@ class ImportWizardForm(QtGui.QWizard, Ui_BibleImportWizard): unicode(self.field(u'proxy_username').toString()), proxy_password=unicode(self.field(u'proxy_password').toString()) ) - success = importer.do_import() - if success: + if importer.do_import(): self.manager.save_meta_data(license_version, license_version, license_copyright, license_permission) self.manager.reload_bibles() self.ImportProgressLabel.setText( - translate('BiblesPlugin.ImportWizardForm', - 'Finished import.')) + translate('BiblesPlugin.ImportWizardForm', 'Finished import.')) else: self.ImportProgressLabel.setText( translate('BiblesPlugin.ImportWizardForm', - 'Your Bible import failed.')) + 'Your Bible import failed.')) delete_database(self.bibleplugin.settingsSection, importer.file) def postImport(self): diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 57e70617a..8047a6d34 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -245,6 +245,10 @@ class BibleMediaItem(MediaManagerItem): QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromVerse) QtCore.QObject.connect(self.AdvancedToChapter, QtCore.SIGNAL(u'activated(int)'), self.onAdvancedToChapter) + QtCore.QObject.connect(self.ClearAdvancedSearchComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onClearAdvancedSearchComboBox) + QtCore.QObject.connect(self.ClearQuickSearchComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onClearQuickSearchComboBox) # Buttons QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) @@ -438,8 +442,21 @@ class BibleMediaItem(MediaManagerItem): dual_bible, versetext) if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.listView.clear() + elif not dual_bible: + self.AdvancedSecondBibleComboBox.setEnabled(False) + else: + self.AdvancedSecondBibleComboBox.setEnabled(True) + if self.AdvancedSecondBibleComboBox.findText(u'') != -1: + self.AdvancedSecondBibleComboBox.removeItem(0) self.displayResults(bible, dual_bible) + def onClearAdvancedSearchComboBox(self): + self.listView.clear() + if self.ClearAdvancedSearchComboBox.currentIndex() == 0: + self.AdvancedSecondBibleComboBox.setEnabled(True) + if self.AdvancedSecondBibleComboBox.findText(u'') == -1: + self.AdvancedSecondBibleComboBox.insertItem(0, u'') + def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) @@ -455,15 +472,28 @@ class BibleMediaItem(MediaManagerItem): bible = unicode(self.QuickVersionComboBox.currentText()) dual_bible = unicode(self.QuickSecondBibleComboBox.currentText()) text = unicode(self.QuickSearchEdit.text()) - if self.ClearQuickSearchComboBox.currentIndex() == 0: - self.listView.clear() self.search_results = self.parent.manager.get_verses(bible, text) if dual_bible: self.dual_search_results = self.parent.manager.get_verses( dual_bible, text) + if self.ClearQuickSearchComboBox.currentIndex() == 0: + self.listView.clear() + elif not dual_bible: + self.QuickSecondBibleComboBox.setEnabled(False) + else: + self.QuickSecondBibleComboBox.setEnabled(True) + if self.QuickSecondBibleComboBox.findText(u'') != -1: + self.QuickSecondBibleComboBox.removeItem(0) if self.search_results: self.displayResults(bible, dual_bible) + def onClearQuickSearchComboBox(self): + self.listView.clear() + if self.ClearQuickSearchComboBox.currentIndex() == 0: + self.QuickSecondBibleComboBox.setEnabled(True) + if self.QuickSecondBibleComboBox.findText(u'') == -1: + self.QuickSecondBibleComboBox.insertItem(0, u'') + def generateSlideData(self, service_item, item=None): """ Generates and formats the slides for the service item as well as the @@ -473,20 +503,10 @@ class BibleMediaItem(MediaManagerItem): items = self.listView.selectedIndexes() if len(items) == 0: return False - has_dual_bible = False bible_text = u'' old_chapter = u'' raw_footer = [] raw_slides = [] - for item in items: - bitem = self.listView.item(item.row()) - reference = bitem.data(QtCore.Qt.UserRole) - if isinstance(reference, QtCore.QVariant): - reference = reference.toPyObject() - dual_bible = self._decodeQtObject(reference, 'dual_bible') - if dual_bible: - has_dual_bible = True - break # Let's loop through the main lot, and assemble our verses. for item in items: bitem = self.listView.item(item.row()) @@ -514,26 +534,15 @@ class BibleMediaItem(MediaManagerItem): footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: raw_footer.append(footer) - if has_dual_bible: - if dual_bible: - footer = u'%s (%s %s %s)' % (book, dual_version, - dual_copyright, dual_permission) - if footer not in raw_footer: - raw_footer.append(footer) - # If there is an old bible_text we have to add it. - if bible_text: - raw_slides.append(bible_text) - 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 dual_bible: + footer = u'%s (%s %s %s)' % (book, dual_version, + dual_copyright, dual_permission) + if footer not in raw_footer: + raw_footer.append(footer) + bible_text = u'%s %s\n\n%s %s' % (verse_text, text, + verse_text, dual_text) + raw_slides.append(bible_text) + bible_text = u'' # If we are 'Verse Per Slide' then create a new slide. elif self.parent.settings_tab.layout_style == 0: bible_text = u'%s %s' % (verse_text, text) @@ -551,19 +560,19 @@ class BibleMediaItem(MediaManagerItem): raw_slides.append(bible_text) bible_text = u'' # 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 service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) - service_item.add_capability(ItemCapabilities.AllowsAdditions) + #service_item.add_capability(ItemCapabilities.AllowsAdditions) # Service Item: Title if not service_item.title: if dual_bible: - service_item.title = u'%s (%s, %s) %s' % (book, version, - dual_version, verse_text) + service_item.title = u'%s %s (%s, %s)' % (book, version, + verse_text, dual_version) else: - service_item.title = u'%s (%s) %s' % (book, version, verse_text) + service_item.title = u'%s %s (%s)' % (book, verse_text, version) elif service_item.title.find( translate('BiblesPlugin.MediaItem', 'etc')) == -1: service_item.title = u'%s, %s' % (service_item.title, From 4aba7e3357c7e1a42d0ca8326a01d20d32dc571e Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 14 Sep 2010 20:07:38 +0200 Subject: [PATCH 03/18] change bible title in service manager (NOT nice) --- openlp/plugins/bibles/lib/mediaitem.py | 120 ++++++++++++++++++++----- 1 file changed, 100 insertions(+), 20 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 8047a6d34..193e9705a 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -507,6 +507,9 @@ class BibleMediaItem(MediaManagerItem): old_chapter = u'' raw_footer = [] raw_slides = [] + raw_title = [] + first_verse = True + append_now = False # Let's loop through the main lot, and assemble our verses. for item in items: bitem = self.listView.item(item.row()) @@ -514,8 +517,8 @@ class BibleMediaItem(MediaManagerItem): if isinstance(reference, QtCore.QVariant): reference = reference.toPyObject() book = self._decodeQtObject(reference, 'book') - chapter = self._decodeQtObject(reference, 'chapter') - verse = self._decodeQtObject(reference, 'verse') + chapter = int(self._decodeQtObject(reference, 'chapter')) + verse = int(self._decodeQtObject(reference, 'verse')) bible = self._decodeQtObject(reference, 'bible') version = self._decodeQtObject(reference, 'version') copyright = self._decodeQtObject(reference, 'copyright') @@ -523,8 +526,7 @@ class BibleMediaItem(MediaManagerItem): text = self._decodeQtObject(reference, 'text') dual_bible = self._decodeQtObject(reference, 'dual_bible') if dual_bible: - dual_version = self._decodeQtObject(reference, - 'dual_version') + dual_version = self._decodeQtObject(reference, 'dual_version') dual_copyright = self._decodeQtObject(reference, 'dual_copyright') dual_permission = self._decodeQtObject(reference, @@ -535,12 +537,12 @@ class BibleMediaItem(MediaManagerItem): if footer not in raw_footer: raw_footer.append(footer) if dual_bible: - footer = u'%s (%s %s %s)' % (book, dual_version, - dual_copyright, dual_permission) + footer = u'%s (%s %s %s)' % (book, dual_version, dual_copyright, + dual_permission) if footer not in raw_footer: raw_footer.append(footer) - bible_text = u'%s %s\n\n%s %s' % (verse_text, text, - verse_text, dual_text) + bible_text = u'%s %s\n\n%s %s' % (verse_text, text, verse_text, + dual_text) raw_slides.append(bible_text) bible_text = u'' # If we are 'Verse Per Slide' then create a new slide. @@ -554,29 +556,107 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) + if first_verse: + start_bible = bible + start_dual_bible = dual_bible + start_book = book + start_verse = verse + start_chapter = chapter + start_version = version + first_verse = False + append_now = False + elif old_bible != bible or old_dual_bible != dual_bible or \ + old_book != book: + append_now = True + elif old_verse + 1 != verse and old_chapter == chapter: + append_now = True + elif old_chapter + 1 == chapter and (verse != 1 or + old_verse != self.parent.manager.get_verse_count( + old_bible, old_book, old_chapter)): + append_now = True + if append_now: + append_now = False + if dual_bible: + if start_verse == old_verse and \ + start_chapter == old_chapter: + raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, + start_chapter, start_verse, start_version, + start_dual_bible)) + elif start_chapter == old_chapter: + raw_title.append(u'%s %s:%s-s (%s, %s)' % (start_book, + start_chapter, start_verse, old_verse, + start_version, start_dual_bible)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % + (start_book, start_chapter, start_verse, + old_chapter, old_verse, start_version, + start_dual_bible)) + else: + if start_verse == old_verse and \ + start_chapter == old_chapter: + raw_title.append(u'%s %s:%s (%s)' % (start_book, + start_chapter, start_verse, start_version)) + elif start_chapter == old_chapter: + raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, + start_chapter, start_verse, old_verse, + start_version)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, + start_chapter, start_verse, old_chapter, old_verse, + start_version)) + start_bible = bible + start_dual_bible = dual_bible + start_book = book + start_verse = verse + start_chapter = chapter + start_version = version + old_verse = verse old_chapter = chapter + old_bible = bible + old_dual_bible = dual_bible + old_book = book + if dual_bible: + if start_verse == verse and start_chapter == chapter: + raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, + start_chapter, start_verse, start_version, + start_dual_bible)) + elif start_chapter == chapter: + raw_title.append(u'%s %s:%s-%s (%s, %s)' % (start_book, + start_chapter, start_verse, verse, start_version, + start_dual_bible)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % (start_book, + start_chapter, start_verse, chapter, verse, start_version, + start_dual_bible)) + else: + if start_verse == verse and start_chapter == chapter: + raw_title.append(u'%s %s:%s (%s)' % (start_book, + start_chapter, start_verse, start_version)) + elif start_chapter == chapter: + raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, + start_chapter, start_verse, verse, start_version)) + else: + raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, + start_chapter, start_verse, chapter, verse, start_version)) # If there are no more items we check whether we have to add bible_text. if bible_text: raw_slides.append(bible_text) bible_text = u'' + print raw_title # Service Item: Capabilities if self.parent.settings_tab.layout_style == 2 and not dual_bible: # split the line but do not replace line breaks in renderer service_item.add_capability(ItemCapabilities.NoLineBreaks) service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) - #service_item.add_capability(ItemCapabilities.AllowsAdditions) # Service Item: Title - if not service_item.title: - if dual_bible: - service_item.title = u'%s %s (%s, %s)' % (book, version, - verse_text, dual_version) + first_verse = True + for title in raw_title: + if first_verse: + first_verse = False + service_item.title = title else: - service_item.title = u'%s %s (%s)' % (book, verse_text, version) - 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.title += u', ' + title # Service Item: Theme if len(self.parent.settings_tab.bible_theme) == 0: service_item.theme = None @@ -594,9 +674,9 @@ class BibleMediaItem(MediaManagerItem): def formatVerse(self, old_chapter, chapter, verse): if not self.parent.settings_tab.show_new_chapters or \ old_chapter != chapter: - verse_text = chapter + u':' + verse + verse_text = u'%s:%s' % (chapter, verse) else: - verse_text = verse + verse_text = u'%s' % verse if self.parent.settings_tab.display_style == 1: verse_text = u'{su}(' + verse_text + u'){/su}' elif self.parent.settings_tab.display_style == 2: From d4ffc72c17987ae23935f8c2999b3cff6eb110b0 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 15 Sep 2010 18:52:22 +0200 Subject: [PATCH 04/18] clean ups --- openlp/plugins/bibles/lib/mediaitem.py | 38 ++++++++++++-------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 193e9705a..828c4d5fc 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -65,12 +65,6 @@ class BibleMediaItem(MediaManagerItem): QtCore.QObject.connect(Receiver.get_receiver(), 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): MediaManagerItem.requiredIcons(self) self.hasImportIcon = True @@ -494,6 +488,14 @@ class BibleMediaItem(MediaManagerItem): if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') + def _decodeQtObject(self, listobj, key): + if isinstance(listobj, QtCore.QVariant): + listobj = listobj.toPyObject() + obj = listobj[QtCore.QString(key)] + if isinstance(obj, QtCore.QVariant): + obj = obj.toPyObject() + return unicode(obj) + def generateSlideData(self, service_item, item=None): """ Generates and formats the slides for the service item as well as the @@ -514,8 +516,6 @@ class BibleMediaItem(MediaManagerItem): for item in items: bitem = self.listView.item(item.row()) reference = bitem.data(QtCore.Qt.UserRole) - if isinstance(reference, QtCore.QVariant): - reference = reference.toPyObject() book = self._decodeQtObject(reference, 'book') chapter = int(self._decodeQtObject(reference, 'chapter')) verse = int(self._decodeQtObject(reference, 'verse')) @@ -525,13 +525,10 @@ class BibleMediaItem(MediaManagerItem): 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') + 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) footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: @@ -564,7 +561,6 @@ class BibleMediaItem(MediaManagerItem): start_chapter = chapter start_version = version first_verse = False - append_now = False elif old_bible != bible or old_dual_bible != dual_bible or \ old_book != book: append_now = True @@ -642,7 +638,6 @@ class BibleMediaItem(MediaManagerItem): if bible_text: raw_slides.append(bible_text) bible_text = u'' - print raw_title # Service Item: Capabilities if self.parent.settings_tab.layout_style == 2 and not dual_bible: # split the line but do not replace line breaks in renderer @@ -778,14 +773,15 @@ class BibleMediaItem(MediaManagerItem): 'copyright': QtCore.QVariant(copyright.value), 'permission': QtCore.QVariant(permission.value), '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, verse.chapter, verse.verse, version.value) - # set the row title 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)) self.listView.addItem(bible_verse) row = self.listView.setCurrentRow(count + start_count) From 6795c04947b2492c18b55ffbec66bfd0ae3c4d91 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 16 Sep 2010 18:22:23 +0200 Subject: [PATCH 05/18] added two methods --- openlp/plugins/bibles/lib/mediaitem.py | 206 +++++++++++++------------ 1 file changed, 105 insertions(+), 101 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 828c4d5fc..d459c8007 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -488,10 +488,12 @@ class BibleMediaItem(MediaManagerItem): if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') - def _decodeQtObject(self, listobj, key): - if isinstance(listobj, QtCore.QVariant): - listobj = listobj.toPyObject() - obj = listobj[QtCore.QString(key)] + def _decodeQtObject(self, item, key): + bitem = self.listView.item(item.row()) + 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) @@ -510,25 +512,22 @@ class BibleMediaItem(MediaManagerItem): raw_footer = [] raw_slides = [] raw_title = [] - first_verse = True - append_now = False + first_item = True # Let's loop through the main lot, and assemble our verses. for item in items: - bitem = self.listView.item(item.row()) - reference = bitem.data(QtCore.Qt.UserRole) - book = self._decodeQtObject(reference, 'book') - chapter = int(self._decodeQtObject(reference, 'chapter')) - verse = int(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') - 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') + book = self._decodeQtObject(item, 'book') + chapter = int(self._decodeQtObject(item, 'chapter')) + verse = int(self._decodeQtObject(item, 'verse')) + bible = self._decodeQtObject(item, 'bible') + version = self._decodeQtObject(item, 'version') + copyright = self._decodeQtObject(item, 'copyright') + permission = self._decodeQtObject(item, 'permission') + text = self._decodeQtObject(item, 'text') + dual_bible = self._decodeQtObject(item, 'dual_bible') + dual_version = self._decodeQtObject(item, 'dual_version') + dual_copyright = self._decodeQtObject(item, 'dual_copyright') + dual_permission = self._decodeQtObject(item, 'dual_permission') + dual_text = self._decodeQtObject(item, 'dual_text') verse_text = self.formatVerse(old_chapter, chapter, verse) footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: @@ -553,87 +552,17 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) - if first_verse: - start_bible = bible - start_dual_bible = dual_bible - start_book = book - start_verse = verse - start_chapter = chapter - start_version = version - first_verse = False - elif old_bible != bible or old_dual_bible != dual_bible or \ - old_book != book: - append_now = True - elif old_verse + 1 != verse and old_chapter == chapter: - append_now = True - elif old_chapter + 1 == chapter and (verse != 1 or - old_verse != self.parent.manager.get_verse_count( - old_bible, old_book, old_chapter)): - append_now = True - if append_now: - append_now = False - if dual_bible: - if start_verse == old_verse and \ - start_chapter == old_chapter: - raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, - start_chapter, start_verse, start_version, - start_dual_bible)) - elif start_chapter == old_chapter: - raw_title.append(u'%s %s:%s-s (%s, %s)' % (start_book, - start_chapter, start_verse, old_verse, - start_version, start_dual_bible)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % - (start_book, start_chapter, start_verse, - old_chapter, old_verse, start_version, - start_dual_bible)) - else: - if start_verse == old_verse and \ - start_chapter == old_chapter: - raw_title.append(u'%s %s:%s (%s)' % (start_book, - start_chapter, start_verse, start_version)) - elif start_chapter == old_chapter: - raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, - start_chapter, start_verse, old_verse, - start_version)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, - start_chapter, start_verse, old_chapter, old_verse, - start_version)) - start_bible = bible - start_dual_bible = dual_bible - start_book = book - start_verse = verse - start_chapter = chapter - start_version = version - old_verse = verse + if first_item: + start_item = item + first_item = False + elif self.checkTitle(item, old_item): + title = self.formatTitle(item, start_item, old_item) + raw_title.append(title) + start_item = item + old_item = item old_chapter = chapter - old_bible = bible - old_dual_bible = dual_bible - old_book = book - if dual_bible: - if start_verse == verse and start_chapter == chapter: - raw_title.append(u'%s %s:%s (%s, %s)' % (start_book, - start_chapter, start_verse, start_version, - start_dual_bible)) - elif start_chapter == chapter: - raw_title.append(u'%s %s:%s-%s (%s, %s)' % (start_book, - start_chapter, start_verse, verse, start_version, - start_dual_bible)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s, %s)' % (start_book, - start_chapter, start_verse, chapter, verse, start_version, - start_dual_bible)) - else: - if start_verse == verse and start_chapter == chapter: - raw_title.append(u'%s %s:%s (%s)' % (start_book, - start_chapter, start_verse, start_version)) - elif start_chapter == chapter: - raw_title.append(u'%s %s:%s-%s (%s)' % (start_book, - start_chapter, start_verse, verse, start_version)) - else: - raw_title.append(u'%s %s:%s-%s:%s (%s)' % (start_book, - start_chapter, start_verse, chapter, verse, start_version)) + title = self.formatTitle(item, start_item, old_item) + raw_title.append(title) # If there are no more items we check whether we have to add bible_text. if bible_text: raw_slides.append(bible_text) @@ -666,6 +595,81 @@ class BibleMediaItem(MediaManagerItem): service_item.raw_footer = raw_footer return True + def formatTitle(self, item, 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 + Genisis 1:1-6 as well as Daniel 2:14. + """ + book = self._decodeQtObject(item, 'book') + chapter = int(self._decodeQtObject(item, 'chapter')) + verse = int(self._decodeQtObject(item, 'verse')) + version = self._decodeQtObject(item, 'version') + bible = self._decodeQtObject(item, 'bible') + dual_bible = self._decodeQtObject(item, 'dual_bible') + old_book = self._decodeQtObject(old_item, 'book') + old_chapter = int(self._decodeQtObject(old_item, 'chapter')) + old_verse = int(self._decodeQtObject(old_item, 'verse')) + old_version = self._decodeQtObject(old_item, 'version') + old_bible = self._decodeQtObject(old_item, 'bible') + old_dual_bible = self._decodeQtObject(old_item, 'dual_bible') + start_book = self._decodeQtObject(start_item, 'book') + start_chapter = int(self._decodeQtObject(start_item, 'chapter')) + start_verse = int(self._decodeQtObject(start_item, 'verse')) + start_version = self._decodeQtObject(start_item, 'version') + start_bible = self._decodeQtObject(start_item, 'bible') + start_dual_bible = self._decodeQtObject(start_item, 'dual_bible') + if 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_version, 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_version, start_dual_bible) + else: + title = u'%s %s:%s-%s:%s (%s, %s)' % (start_book, start_chapter, + start_verse, old_chapter, old_verse, start_version, + 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_version) + elif start_chapter == old_chapter: + title = u'%s %s:%s-%s (%s)' % (start_book, start_chapter, + start_verse, old_verse, start_version) + else: + title = u'%s %s:%s-%s:%s (%s)' % (start_book, start_chapter, + start_verse, old_chapter, old_verse, start_version) + 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 Genisis 1:1-6, + but the next verse is Daniel 2:14. + """ + book = self._decodeQtObject(item, 'book') + chapter = int(self._decodeQtObject(item, 'chapter')) + verse = int(self._decodeQtObject(item, 'verse')) + bible = self._decodeQtObject(item, 'bible') + dual_bible = self._decodeQtObject(item, 'dual_bible') + old_book = self._decodeQtObject(old_item, 'book') + old_chapter = int(self._decodeQtObject(old_item, 'chapter')) + old_verse = int(self._decodeQtObject(old_item, 'verse')) + old_bible = self._decodeQtObject(old_item, 'bible') + old_dual_bible = self._decodeQtObject(old_item, '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): if not self.parent.settings_tab.show_new_chapters or \ old_chapter != chapter: From 30ad1a3eb0a79ace5b2c4b68332b323265518d46 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 16 Sep 2010 18:35:19 +0200 Subject: [PATCH 06/18] whitespace --- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index d459c8007..5dfab4b7c 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -641,7 +641,7 @@ class BibleMediaItem(MediaManagerItem): title = u'%s %s:%s-%s:%s (%s)' % (start_book, start_chapter, start_verse, old_chapter, old_verse, start_version) return title - + def checkTitle(self, item, old_item): """ This methode checks if we are at the end of an verse range. If that is From 5ad41ac45768fbf1b7917175f7d44c55819757cd Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Thu, 16 Sep 2010 18:57:21 +0200 Subject: [PATCH 07/18] tweaked methods --- openlp/plugins/bibles/lib/mediaitem.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 5dfab4b7c..b85faab78 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -556,12 +556,12 @@ class BibleMediaItem(MediaManagerItem): start_item = item first_item = False elif self.checkTitle(item, old_item): - title = self.formatTitle(item, start_item, old_item) + title = self.formatTitle(start_item, old_item) raw_title.append(title) start_item = item old_item = item old_chapter = chapter - title = self.formatTitle(item, start_item, old_item) + title = self.formatTitle(start_item, old_item) raw_title.append(title) # If there are no more items we check whether we have to add bible_text. if bible_text: @@ -595,18 +595,12 @@ class BibleMediaItem(MediaManagerItem): service_item.raw_footer = raw_footer return True - def formatTitle(self, item, start_item, old_item): + 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 Genisis 1:1-6 as well as Daniel 2:14. """ - book = self._decodeQtObject(item, 'book') - chapter = int(self._decodeQtObject(item, 'chapter')) - verse = int(self._decodeQtObject(item, 'verse')) - version = self._decodeQtObject(item, 'version') - bible = self._decodeQtObject(item, 'bible') - dual_bible = self._decodeQtObject(item, 'dual_bible') old_book = self._decodeQtObject(old_item, 'book') old_chapter = int(self._decodeQtObject(old_item, 'chapter')) old_verse = int(self._decodeQtObject(old_item, 'verse')) @@ -619,7 +613,7 @@ class BibleMediaItem(MediaManagerItem): start_version = self._decodeQtObject(start_item, 'version') start_bible = self._decodeQtObject(start_item, 'bible') start_dual_bible = self._decodeQtObject(start_item, 'dual_bible') - if 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_version, start_dual_bible) From 9913754df4cc96c517ca2d5a9f5dd34f01435b8a Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 17 Sep 2010 13:41:52 +0200 Subject: [PATCH 08/18] spelling mistake --- openlp/plugins/bibles/lib/mediaitem.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index b85faab78..1c5e90325 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -599,7 +599,7 @@ class BibleMediaItem(MediaManagerItem): """ 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 - Genisis 1:1-6 as well as Daniel 2:14. + Genesis 1:1-6 as well as Daniel 2:14. """ old_book = self._decodeQtObject(old_item, 'book') old_chapter = int(self._decodeQtObject(old_item, 'chapter')) @@ -639,7 +639,7 @@ class BibleMediaItem(MediaManagerItem): 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 Genisis 1:1-6, + the case, we return True, else False. E. g. if we added Genesis 1:1-6, but the next verse is Daniel 2:14. """ book = self._decodeQtObject(item, 'book') From 194e2785811ad7c92fc9628cad1550050aaabc46 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 17 Sep 2010 14:10:41 +0200 Subject: [PATCH 09/18] fixed bug (forgotten %); removed unused variables --- openlp/plugins/bibles/lib/mediaitem.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 1c5e90325..0994eeb5f 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -561,7 +561,7 @@ class BibleMediaItem(MediaManagerItem): start_item = item old_item = item old_chapter = chapter - title = self.formatTitle(start_item, old_item) + title = self.formatTitle(start_item, item) raw_title.append(title) # If there are no more items we check whether we have to add bible_text. if bible_text: @@ -601,39 +601,34 @@ class BibleMediaItem(MediaManagerItem): 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_book = self._decodeQtObject(old_item, 'book') old_chapter = int(self._decodeQtObject(old_item, 'chapter')) old_verse = int(self._decodeQtObject(old_item, 'verse')) - old_version = self._decodeQtObject(old_item, 'version') - old_bible = self._decodeQtObject(old_item, 'bible') - old_dual_bible = self._decodeQtObject(old_item, 'dual_bible') start_book = self._decodeQtObject(start_item, 'book') start_chapter = int(self._decodeQtObject(start_item, 'chapter')) start_verse = int(self._decodeQtObject(start_item, 'verse')) - start_version = self._decodeQtObject(start_item, 'version') start_bible = self._decodeQtObject(start_item, 'bible') start_dual_bible = self._decodeQtObject(start_item, '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_version, start_dual_bible) + 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_version, start_dual_bible) + 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_version, + 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_version) + 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_version) + 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_version) + start_verse, old_chapter, old_verse, start_bible) return title def checkTitle(self, item, old_item): From bfc3543d395210c8612b589a507d91606fbcc6ec Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 17 Sep 2010 14:17:50 +0200 Subject: [PATCH 10/18] changed/removed variable --- openlp/plugins/bibles/lib/mediaitem.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 0994eeb5f..2980d15f3 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -512,7 +512,7 @@ class BibleMediaItem(MediaManagerItem): raw_footer = [] raw_slides = [] raw_title = [] - first_item = True + first = True # Let's loop through the main lot, and assemble our verses. for item in items: book = self._decodeQtObject(item, 'book') @@ -552,17 +552,15 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) - if first_item: + if first: start_item = item - first_item = False + first = False elif self.checkTitle(item, old_item): - title = self.formatTitle(start_item, old_item) - raw_title.append(title) + raw_title.append(self.formatTitle(start_item, old_item)) start_item = item old_item = item old_chapter = chapter - title = self.formatTitle(start_item, item) - raw_title.append(title) + raw_title.append(self.formatTitle(start_item, item)) # If there are no more items we check whether we have to add bible_text. if bible_text: raw_slides.append(bible_text) @@ -574,10 +572,10 @@ class BibleMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) # Service Item: Title - first_verse = True + first = True for title in raw_title: - if first_verse: - first_verse = False + if first: + first = False service_item.title = title else: service_item.title += u', ' + title From 02b46f051c2ab6988f8a92e7def023e28cdb044b Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 18 Sep 2010 23:29:41 +0200 Subject: [PATCH 11/18] changed combobox behaviour --- openlp/plugins/bibles/lib/mediaitem.py | 92 ++++++++++++++++---------- 1 file changed, 58 insertions(+), 34 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 2980d15f3..8c87dee90 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -445,11 +445,21 @@ class BibleMediaItem(MediaManagerItem): self.displayResults(bible, dual_bible) def onClearAdvancedSearchComboBox(self): - self.listView.clear() if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.AdvancedSecondBibleComboBox.setEnabled(True) if self.AdvancedSecondBibleComboBox.findText(u'') == -1: self.AdvancedSecondBibleComboBox.insertItem(0, u'') + self.listView.clear() + else: + if self.listView.count() != 0: + bitem = self.listView.item(0) + dual_bible = self._decodeQtObject(bitem, 'dual_bible') + if self.AdvancedSecondBibleComboBox.findText(u'') != -1 and \ + dual_bible: + self.AdvancedSecondBibleComboBox.removeItem(0) + else: + self.AdvancedSecondBibleComboBox.setCurrentIndex(0) + self.AdvancedSecondBibleComboBox.setEnabled(False) def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) @@ -482,14 +492,23 @@ class BibleMediaItem(MediaManagerItem): self.displayResults(bible, dual_bible) def onClearQuickSearchComboBox(self): - self.listView.clear() if self.ClearQuickSearchComboBox.currentIndex() == 0: self.QuickSecondBibleComboBox.setEnabled(True) if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') + self.listView.clear() + else: + if self.listView.count() != 0: + bitem = self.listView.item(0) + dual_bible = self._decodeQtObject(bitem, 'dual_bible') + if self.QuickSecondBibleComboBox.findText(u'') != -1 and \ + dual_bible: + self.QuickSecondBibleComboBox.removeItem(0) + else: + self.QuickSecondBibleComboBox.setCurrentIndex(0) + self.QuickSecondBibleComboBox.setEnabled(False) - def _decodeQtObject(self, item, key): - bitem = self.listView.item(item.row()) + def _decodeQtObject(self, bitem, key): reference = bitem.data(QtCore.Qt.UserRole) if isinstance(reference, QtCore.QVariant): reference = reference.toPyObject() @@ -515,19 +534,20 @@ class BibleMediaItem(MediaManagerItem): first = True # Let's loop through the main lot, and assemble our verses. for item in items: - book = self._decodeQtObject(item, 'book') - chapter = int(self._decodeQtObject(item, 'chapter')) - verse = int(self._decodeQtObject(item, 'verse')) - bible = self._decodeQtObject(item, 'bible') - version = self._decodeQtObject(item, 'version') - copyright = self._decodeQtObject(item, 'copyright') - permission = self._decodeQtObject(item, 'permission') - text = self._decodeQtObject(item, 'text') - dual_bible = self._decodeQtObject(item, 'dual_bible') - dual_version = self._decodeQtObject(item, 'dual_version') - dual_copyright = self._decodeQtObject(item, 'dual_copyright') - dual_permission = self._decodeQtObject(item, 'dual_permission') - dual_text = self._decodeQtObject(item, 'dual_text') + 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') + version = self._decodeQtObject(bitem, 'version') + copyright = self._decodeQtObject(bitem, 'copyright') + permission = self._decodeQtObject(bitem, 'permission') + text = self._decodeQtObject(bitem, 'text') + dual_bible = self._decodeQtObject(bitem, 'dual_bible') + dual_version = self._decodeQtObject(bitem, 'dual_version') + dual_copyright = self._decodeQtObject(bitem, 'dual_copyright') + dual_permission = self._decodeQtObject(bitem, 'dual_permission') + dual_text = self._decodeQtObject(bitem, 'dual_text') verse_text = self.formatVerse(old_chapter, chapter, verse) footer = u'%s (%s %s %s)' % (book, version, copyright, permission) if footer not in raw_footer: @@ -599,13 +619,15 @@ class BibleMediaItem(MediaManagerItem): 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_chapter = int(self._decodeQtObject(old_item, 'chapter')) - old_verse = int(self._decodeQtObject(old_item, 'verse')) - start_book = self._decodeQtObject(start_item, 'book') - start_chapter = int(self._decodeQtObject(start_item, 'chapter')) - start_verse = int(self._decodeQtObject(start_item, 'verse')) - start_bible = self._decodeQtObject(start_item, 'bible') - start_dual_bible = self._decodeQtObject(start_item, 'dual_bible') + 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, @@ -635,16 +657,18 @@ class BibleMediaItem(MediaManagerItem): the case, we return True, else False. E. g. if we added Genesis 1:1-6, but the next verse is Daniel 2:14. """ - book = self._decodeQtObject(item, 'book') - chapter = int(self._decodeQtObject(item, 'chapter')) - verse = int(self._decodeQtObject(item, 'verse')) - bible = self._decodeQtObject(item, 'bible') - dual_bible = self._decodeQtObject(item, 'dual_bible') - old_book = self._decodeQtObject(old_item, 'book') - old_chapter = int(self._decodeQtObject(old_item, 'chapter')) - old_verse = int(self._decodeQtObject(old_item, 'verse')) - old_bible = self._decodeQtObject(old_item, 'bible') - old_dual_bible = self._decodeQtObject(old_item, 'dual_bible') + 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 From 17b4335ee4167e627579b17107348e92af4beea1 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 19 Sep 2010 18:51:52 +0200 Subject: [PATCH 12/18] do not delete results when changing from keep to clear --- openlp/plugins/bibles/lib/mediaitem.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index b52fd051f..ed1bb629d 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -449,7 +449,6 @@ class BibleMediaItem(MediaManagerItem): self.AdvancedSecondBibleComboBox.setEnabled(True) if self.AdvancedSecondBibleComboBox.findText(u'') == -1: self.AdvancedSecondBibleComboBox.insertItem(0, u'') - self.listView.clear() else: if self.listView.count() != 0: bitem = self.listView.item(0) @@ -496,7 +495,6 @@ class BibleMediaItem(MediaManagerItem): self.QuickSecondBibleComboBox.setEnabled(True) if self.QuickSecondBibleComboBox.findText(u'') == -1: self.QuickSecondBibleComboBox.insertItem(0, u'') - self.listView.clear() else: if self.listView.count() != 0: bitem = self.listView.item(0) From 137fb7417e6cddac3a12b995371192af1e8eaa0e Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 20 Sep 2010 20:38:18 +0200 Subject: [PATCH 13/18] removed code and added a dialog --- openlp/plugins/bibles/lib/mediaitem.py | 185 +++++++++++-------------- 1 file changed, 84 insertions(+), 101 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index ed1bb629d..1a18d2ed7 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -239,10 +239,6 @@ class BibleMediaItem(MediaManagerItem): QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromVerse) QtCore.QObject.connect(self.AdvancedToChapter, QtCore.SIGNAL(u'activated(int)'), self.onAdvancedToChapter) - QtCore.QObject.connect(self.ClearAdvancedSearchComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onClearAdvancedSearchComboBox) - QtCore.QObject.connect(self.ClearQuickSearchComboBox, - QtCore.SIGNAL(u'activated(int)'), self.onClearQuickSearchComboBox) # Buttons QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) @@ -436,29 +432,23 @@ class BibleMediaItem(MediaManagerItem): dual_bible, versetext) if self.ClearAdvancedSearchComboBox.currentIndex() == 0: self.listView.clear() - elif not dual_bible: - self.AdvancedSecondBibleComboBox.setEnabled(False) + 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.AdvancedSecondBibleComboBox.setEnabled(True) - if self.AdvancedSecondBibleComboBox.findText(u'') != -1: - self.AdvancedSecondBibleComboBox.removeItem(0) - self.displayResults(bible, dual_bible) - - def onClearAdvancedSearchComboBox(self): - if self.ClearAdvancedSearchComboBox.currentIndex() == 0: - self.AdvancedSecondBibleComboBox.setEnabled(True) - if self.AdvancedSecondBibleComboBox.findText(u'') == -1: - self.AdvancedSecondBibleComboBox.insertItem(0, u'') - else: - if self.listView.count() != 0: - bitem = self.listView.item(0) - dual_bible = self._decodeQtObject(bitem, 'dual_bible') - if self.AdvancedSecondBibleComboBox.findText(u'') != -1 and \ - dual_bible: - self.AdvancedSecondBibleComboBox.removeItem(0) - else: - self.AdvancedSecondBibleComboBox.setCurrentIndex(0) - self.AdvancedSecondBibleComboBox.setEnabled(False) + self.displayResults(bible, dual_bible) def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) @@ -481,31 +471,24 @@ class BibleMediaItem(MediaManagerItem): dual_bible, text) if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() - elif not dual_bible: - self.QuickSecondBibleComboBox.setEnabled(False) + 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 ' + 'resutls 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.QuickSecondBibleComboBox.setEnabled(True) - if self.QuickSecondBibleComboBox.findText(u'') != -1: - self.QuickSecondBibleComboBox.removeItem(0) - if self.search_results: self.displayResults(bible, dual_bible) - def onClearQuickSearchComboBox(self): - if self.ClearQuickSearchComboBox.currentIndex() == 0: - self.QuickSecondBibleComboBox.setEnabled(True) - if self.QuickSecondBibleComboBox.findText(u'') == -1: - self.QuickSecondBibleComboBox.insertItem(0, u'') - else: - if self.listView.count() != 0: - bitem = self.listView.item(0) - dual_bible = self._decodeQtObject(bitem, 'dual_bible') - if self.QuickSecondBibleComboBox.findText(u'') != -1 and \ - dual_bible: - self.QuickSecondBibleComboBox.removeItem(0) - else: - self.QuickSecondBibleComboBox.setCurrentIndex(0) - self.QuickSecondBibleComboBox.setEnabled(False) - def _decodeQtObject(self, bitem, key): reference = bitem.data(QtCore.Qt.UserRole) if isinstance(reference, QtCore.QVariant): @@ -529,7 +512,7 @@ class BibleMediaItem(MediaManagerItem): raw_footer = [] raw_slides = [] raw_title = [] - first = True + first_item = True # Let's loop through the main lot, and assemble our verses. for item in items: bitem = self.listView.item(item.row()) @@ -570,9 +553,9 @@ class BibleMediaItem(MediaManagerItem): # We have to be 'Continuous'. else: bible_text = u'%s %s %s\n' % (bible_text, verse_text, text) - if first: + if first_item: start_item = item - first = False + first_item = False elif self.checkTitle(item, old_item): raw_title.append(self.formatTitle(start_item, old_item)) start_item = item @@ -590,10 +573,8 @@ class BibleMediaItem(MediaManagerItem): service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) # Service Item: Title - first = True for title in raw_title: - if first: - first = False + if not service_item.title: service_item.title = title else: service_item.title += u', ' + title @@ -756,50 +737,52 @@ class BibleMediaItem(MediaManagerItem): dual_permission = u'' # We count the number of rows which are maybe already present. start_count = self.listView.count() - for count, verse in enumerate(self.search_results): - if dual_bible: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(dual_bible), - 'dual_version': QtCore.QVariant(dual_version.value), - 'dual_copyright': QtCore.QVariant(dual_copyright.value), - 'dual_permission': QtCore.QVariant(dual_permission.value), - 'dual_text': QtCore.QVariant( - self.dual_search_results[count].text) - } - bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, - verse.chapter, verse.verse, version.value, - dual_version.value) - else: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - '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, - verse.chapter, verse.verse, version.value) - bible_verse = QtGui.QListWidgetItem(bible_text) - bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) - self.listView.addItem(bible_verse) - row = self.listView.setCurrentRow(count + start_count) - if row: - row.setSelected(True) - self.search_results = {} - self.dual_search_results = {} + if self.search_results: + for count, verse in enumerate(self.search_results): + if dual_bible: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + 'dual_bible': QtCore.QVariant(dual_bible), + 'dual_version': QtCore.QVariant(dual_version.value), + 'dual_copyright': QtCore.QVariant(dual_copyright.value), + 'dual_permission': QtCore.QVariant( + dual_permission.value), + 'dual_text': QtCore.QVariant( + self.dual_search_results[count].text) + } + bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, + verse.chapter, verse.verse, version.value, + dual_version.value) + else: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + '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, + verse.chapter, verse.verse, version.value) + bible_verse = QtGui.QListWidgetItem(bible_text) + bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) + self.listView.addItem(bible_verse) + row = self.listView.setCurrentRow(count + start_count) + if row: + row.setSelected(True) + self.search_results = {} + self.dual_search_results = {} From 8b6e90ab44e9dd8dac5dfaea0da9cc21a429a6ff Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 20 Sep 2010 20:55:14 +0200 Subject: [PATCH 14/18] tweak --- openlp/plugins/bibles/lib/mediaitem.py | 100 ++++++++++++------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 1a18d2ed7..fb4d5cb08 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -471,7 +471,7 @@ class BibleMediaItem(MediaManagerItem): dual_bible, text) if self.ClearQuickSearchComboBox.currentIndex() == 0: self.listView.clear() - if self.listView.count() != 0: + 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 \ @@ -486,7 +486,7 @@ class BibleMediaItem(MediaManagerItem): QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: self.listView.clear() self.displayResults(bible, dual_bible) - else: + elif self.search_results: self.displayResults(bible, dual_bible) def _decodeQtObject(self, bitem, key): @@ -737,52 +737,50 @@ class BibleMediaItem(MediaManagerItem): dual_permission = u'' # We count the number of rows which are maybe already present. start_count = self.listView.count() - if self.search_results: - for count, verse in enumerate(self.search_results): - if dual_bible: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - 'dual_bible': QtCore.QVariant(dual_bible), - 'dual_version': QtCore.QVariant(dual_version.value), - 'dual_copyright': QtCore.QVariant(dual_copyright.value), - 'dual_permission': QtCore.QVariant( - dual_permission.value), - 'dual_text': QtCore.QVariant( - self.dual_search_results[count].text) - } - bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, - verse.chapter, verse.verse, version.value, - dual_version.value) - else: - vdict = { - 'book': QtCore.QVariant(verse.book.name), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version.value), - 'copyright': QtCore.QVariant(copyright.value), - 'permission': QtCore.QVariant(permission.value), - 'text': QtCore.QVariant(verse.text), - '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, - verse.chapter, verse.verse, version.value) - bible_verse = QtGui.QListWidgetItem(bible_text) - bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) - self.listView.addItem(bible_verse) - row = self.listView.setCurrentRow(count + start_count) - if row: - row.setSelected(True) - self.search_results = {} - self.dual_search_results = {} + for count, verse in enumerate(self.search_results): + if dual_bible: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + 'dual_bible': QtCore.QVariant(dual_bible), + 'dual_version': QtCore.QVariant(dual_version.value), + 'dual_copyright': QtCore.QVariant(dual_copyright.value), + 'dual_permission': QtCore.QVariant(dual_permission.value), + 'dual_text': QtCore.QVariant( + self.dual_search_results[count].text) + } + bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, + verse.chapter, verse.verse, version.value, + dual_version.value) + else: + vdict = { + 'book': QtCore.QVariant(verse.book.name), + 'chapter': QtCore.QVariant(verse.chapter), + 'verse': QtCore.QVariant(verse.verse), + 'bible': QtCore.QVariant(bible), + 'version': QtCore.QVariant(version.value), + 'copyright': QtCore.QVariant(copyright.value), + 'permission': QtCore.QVariant(permission.value), + 'text': QtCore.QVariant(verse.text), + '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, + verse.chapter, verse.verse, version.value) + bible_verse = QtGui.QListWidgetItem(bible_text) + bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(vdict)) + self.listView.addItem(bible_verse) + row = self.listView.setCurrentRow(count + start_count) + if row: + row.setSelected(True) + self.search_results = {} + self.dual_search_results = {} From a22dec796ee8a05de74b8b259c3314f4c7575086 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 21 Sep 2010 07:57:23 +0200 Subject: [PATCH 15/18] typing error --- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index fb4d5cb08..0cd4866a8 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -481,7 +481,7 @@ class BibleMediaItem(MediaManagerItem): translate('BiblePlugin.MediaItem', 'Error'), translate('BiblePlugin.MediaItem', 'You cannot combine single ' 'and dual bible verses. Do you want to delete your search ' - 'resutls and start a new search?'), + 'results and start a new search?'), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.Yes: self.listView.clear() From 2a4e64c9db69276a6d5efef5bee6307986c6ee1d Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 21 Sep 2010 20:44:48 +0200 Subject: [PATCH 16/18] fix for Bug #643783 --- openlp/plugins/bibles/lib/mediaitem.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 0cd4866a8..437d499f2 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -403,7 +403,10 @@ class BibleMediaItem(MediaManagerItem): def onAdvancedFromVerse(self): frm = self.AdvancedFromVerse.currentText() - self.adjustComboBox(frm, self.verses, self.AdvancedToVerse) + chapter_frm = unicode(self.AdvancedFromChapter.currentText()) + chapter_to = unicode(self.AdvancedToChapter.currentText()) + if chapter_frm == chapter_to: + self.adjustComboBox(frm, self.verses, self.AdvancedToVerse) def onAdvancedToChapter(self): frm = unicode(self.AdvancedFromChapter.currentText()) From 15378611d8f4b295014ba455a9c835002540fcd5 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 22 Sep 2010 20:46:02 +0200 Subject: [PATCH 17/18] different fixes --- openlp/plugins/bibles/lib/mediaitem.py | 43 ++++++++++++++++---------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 437d499f2..e3c7de2cd 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -402,21 +402,29 @@ class BibleMediaItem(MediaManagerItem): self.reloadBibles() def onAdvancedFromVerse(self): - frm = self.AdvancedFromVerse.currentText() - chapter_frm = unicode(self.AdvancedFromChapter.currentText()) - chapter_to = unicode(self.AdvancedToChapter.currentText()) + frm = int(self.AdvancedFromVerse.currentText()) + chapter_frm = int(self.AdvancedFromChapter.currentText()) + chapter_to = int(self.AdvancedToChapter.currentText()) if chapter_frm == chapter_to: - self.adjustComboBox(frm, self.verses, self.AdvancedToVerse) - - def onAdvancedToChapter(self): - frm = unicode(self.AdvancedFromChapter.currentText()) - to = unicode(self.AdvancedToChapter.currentText()) - if frm != to: bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) # get the verse count for new chapter - verses = self.parent.manager.get_verse_count(bible, book, int(to)) + verses = self.parent.manager.get_verse_count(bible, book, chapter_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) + else: + frm = int(self.AdvancedFromVerse.currentText()) + to = int(self.AdvancedToVerse.currentText()) + if to < frm: + self.adjustComboBox(frm, verses, self.AdvancedToVerse) def onAdvancedSearchButton(self): log.debug(u'Advanced Search Button pressed') @@ -456,12 +464,14 @@ class BibleMediaItem(MediaManagerItem): def onAdvancedFromChapter(self): bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) - cf = int(self.AdvancedFromChapter.currentText()) - self.adjustComboBox(cf, self.chapters_from, self.AdvancedToChapter) + chapter_frm = int(self.AdvancedFromChapter.currentText()) + chapter_to = int(self.AdvancedToChapter.currentText()) # get the verse count for new chapter - vse = self.parent.manager.get_verse_count(bible, book, cf) - self.adjustComboBox(1, vse, self.AdvancedFromVerse) - self.adjustComboBox(1, vse, self.AdvancedToVerse) + verse = self.parent.manager.get_verse_count(bible, book, chapter_frm) + self.adjustComboBox(chapter_frm, self.chapters_from, + self.AdvancedToChapter) + self.adjustComboBox(1, verse, self.AdvancedToVerse) + self.adjustComboBox(1, verse, self.AdvancedFromVerse) def onQuickSearchButton(self): log.debug(u'Quick Search Button pressed') @@ -516,7 +526,6 @@ class BibleMediaItem(MediaManagerItem): raw_slides = [] raw_title = [] first_item = True - # Let's loop through the main lot, and assemble our verses. for item in items: bitem = self.listView.item(item.row()) book = self._decodeQtObject(bitem, 'book') @@ -571,7 +580,7 @@ class BibleMediaItem(MediaManagerItem): bible_text = u'' # Service Item: Capabilities 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.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsLoop) From 6c39c3d1af79ef6b375148e1e933471425fdb0bf Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 22 Sep 2010 20:56:42 +0200 Subject: [PATCH 18/18] clean up --- openlp/plugins/bibles/lib/mediaitem.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index e3c7de2cd..6a2bd76b7 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -408,7 +408,6 @@ class BibleMediaItem(MediaManagerItem): if chapter_frm == chapter_to: bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) - # get the verse count for new chapter verses = self.parent.manager.get_verse_count(bible, book, chapter_to) self.adjustComboBox(frm, verses, self.AdvancedToVerse) @@ -465,11 +464,9 @@ class BibleMediaItem(MediaManagerItem): bible = unicode(self.AdvancedVersionComboBox.currentText()) book = unicode(self.AdvancedBookComboBox.currentText()) chapter_frm = int(self.AdvancedFromChapter.currentText()) - chapter_to = int(self.AdvancedToChapter.currentText()) - # get the verse count for new chapter - verse = self.parent.manager.get_verse_count(bible, book, chapter_frm) self.adjustComboBox(chapter_frm, self.chapters_from, self.AdvancedToChapter) + verse = self.parent.manager.get_verse_count(bible, book, chapter_frm) self.adjustComboBox(1, verse, self.AdvancedToVerse) self.adjustComboBox(1, verse, self.AdvancedFromVerse)