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

This commit is contained in:
Armin Köhler 2012-04-22 19:53:48 +02:00
parent 44a7c32baf
commit 7e9c30dfaf
1 changed files with 25 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'':
@ -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())