fix bug 825205 - Keep/restore selected book, chapters and verses when changing the bible translation in advanced search

bzr-revno: 1958
Fixes: https://launchpad.net/bugs/825205
This commit is contained in:
Armin Köhler 2012-05-01 13:28:49 +02:00 committed by Andreas Preikschat
commit 43e5d7a9ee
1 changed files with 26 additions and 6 deletions

View File

@ -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'':
@ -432,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)
book_names = BibleStrings().BookNames
for book in book_data:
@ -451,8 +456,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 +613,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())