From 7e9c30dfaf391ebb299381d6077644870c227853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20K=C3=B6hler?= Date: Sun, 22 Apr 2012 19:53:48 +0200 Subject: [PATCH 1/2] fix bug 825205 - Keep/restore selected book, chapters and verses when changing the bible translation in advanced search --- openlp/plugins/bibles/lib/mediaitem.py | 31 +++++++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index bca73fc70..c36ffa2bf 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -408,7 +408,7 @@ class BibleMediaItem(MediaManagerItem): self.plugin.appStartup() self.updateAutoCompleter() - def initialiseAdvancedBible(self, bible): + def initialiseAdvancedBible(self, bible, last_book_id=None): """ This initialises the given bible, which means that its book names and their chapter numbers is added to the combo boxes on the @@ -417,8 +417,12 @@ class BibleMediaItem(MediaManagerItem): ``bible`` The bible to initialise (unicode). + + ``last_book_id`` + The "book reference id" of the book which is choosen at the moment. + (int) """ - log.debug(u'initialiseAdvancedBible %s', bible) + log.debug(u'initialiseAdvancedBible %s, %s', bible, last_book_id) book_data = self.plugin.manager.get_books(bible) secondbible = unicode(self.advancedSecondComboBox.currentText()) if secondbible != u'': @@ -451,8 +455,19 @@ class BibleMediaItem(MediaManagerItem): row, QtCore.QVariant(book[u'book_reference_id'])) if first: first = False - self.initialiseChapterVerse(bible, book[u'name'], - book[u'book_reference_id']) + first_book = book + initialise_chapter_verse = True + if last_book_id and last_book_id == int(book[u'book_reference_id']): + index = self.advancedBookComboBox.findData( + QtCore.QVariant(book[u'book_reference_id'])) + if index == -1: + # Not Found. + index = 0 + self.advancedBookComboBox.setCurrentIndex(index) + initialise_chapter_verse = False + if initialise_chapter_verse: + self.initialiseChapterVerse(bible, first_book[u'name'], + first_book[u'book_reference_id']) def initialiseChapterVerse(self, bible, book, book_ref_id): log.debug(u'initialiseChapterVerse %s, %s, %s', bible, book, @@ -597,11 +612,15 @@ class BibleMediaItem(MediaManagerItem): QtCore.QSettings().setValue(self.settingsSection + u'/advanced bible', QtCore.QVariant(self.advancedVersionComboBox.currentText())) self.initialiseAdvancedBible( - unicode(self.advancedVersionComboBox.currentText())) + unicode(self.advancedVersionComboBox.currentText()), + self.advancedBookComboBox.itemData( + int(self.advancedBookComboBox.currentIndex()))) def onAdvancedSecondComboBox(self): self.initialiseAdvancedBible( - unicode(self.advancedVersionComboBox.currentText())) + unicode(self.advancedVersionComboBox.currentText()), + self.advancedBookComboBox.itemData( + int(self.advancedBookComboBox.currentIndex()))) def onAdvancedBookComboBox(self): item = int(self.advancedBookComboBox.currentIndex()) From 19ea43ead86413458e8d9970b124431ad0f480d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20K=C3=B6hler?= Date: Mon, 23 Apr 2012 22:21:38 +0200 Subject: [PATCH 2/2] fixes --- openlp/plugins/bibles/lib/mediaitem.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index c36ffa2bf..8afb933dd 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -436,6 +436,7 @@ class BibleMediaItem(MediaManagerItem): book_data = book_data_temp self.advancedBookComboBox.clear() first = True + initialise_chapter_verse = False language_selection = self.plugin.manager.get_language_selection(bible) booknames = BibleStrings().Booknames for book in book_data: @@ -614,13 +615,13 @@ class BibleMediaItem(MediaManagerItem): self.initialiseAdvancedBible( unicode(self.advancedVersionComboBox.currentText()), self.advancedBookComboBox.itemData( - int(self.advancedBookComboBox.currentIndex()))) + int(self.advancedBookComboBox.currentIndex()))) def onAdvancedSecondComboBox(self): self.initialiseAdvancedBible( unicode(self.advancedVersionComboBox.currentText()), self.advancedBookComboBox.itemData( - int(self.advancedBookComboBox.currentIndex()))) + int(self.advancedBookComboBox.currentIndex()))) def onAdvancedBookComboBox(self): item = int(self.advancedBookComboBox.currentIndex())