implemented 'text search' for bibles

This commit is contained in:
Andreas Preikschat 2010-09-30 20:40:10 +02:00
parent 0872cefacf
commit 74752da694
3 changed files with 38 additions and 12 deletions

View File

@ -240,7 +240,7 @@ class BibleDB(QtCore.QObject, Manager):
and the value is the verse text.
"""
log.debug(u'create_chapter %s,%s', book_id, chapter)
#text list has book and chapter as first two elements of the array
# text list has book and chapter as first two elements of the array
for verse_number, verse_text in textlist.iteritems():
verse = Verse.populate(
book_id = book_id,
@ -353,9 +353,9 @@ class BibleDB(QtCore.QObject, Manager):
QtGui.QMessageBox.information(self.bible_plugin.mediaItem,
translate('BiblesPlugin.BibleDB', 'Book not found'),
translate('BiblesPlugin.BibleDB', 'The book you requested '
'could not be found in this bible. Please check your '
'spelling and that this is a complete bible not just '
'one testament.'))
'could not be found in this bible. Please check your '
'spelling and that this is a complete bible not just '
'one testament.'))
return verse_list
def verse_search(self, text):

View File

@ -254,9 +254,29 @@ class BibleManager(object):
'Book Chapter:Verse-Verse\n'
'Book Chapter:Verse-Verse,Verse-Verse\n'
'Book Chapter:Verse-Verse,Chapter:Verse-Verse\n'
'Book Chapter:Verse-Chapter:Verse\n'))
'Book Chapter:Verse-Chapter:Verse'))
return None
def verse_search(self, bible, text):
"""
``bible``
The bible to seach in.
``text``
The text to search for.
"""
log.debug(u'BibleManager.verse_search("%s", "%s")', bible, text)
if text:
return self.db_cache[bible].verse_search(text)
else:
QtGui.QMessageBox.information(self.parent.mediaItem,
translate('BiblesPlugin.BibleManager',
'Scripture Reference Error'),
translate('BiblesPlugin.BibleManager', 'Your scripture '
'reference is not valid. Make sure to state a keyword to search'
' for. Keywords separated by a comma will be treated as OR.'))
return None
def save_meta_data(self, bible, version, copyright, permissions):
"""
Saves the bibles meta data

View File

@ -535,10 +535,19 @@ class BibleMediaItem(MediaManagerItem):
bible = unicode(self.QuickVersionComboBox.currentText())
dual_bible = unicode(self.QuickSecondBibleComboBox.currentText())
text = unicode(self.QuickSearchEdit.text())
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.QuickSearchComboBox.currentIndex() == 0: # Verse Search
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)
else: # Text Search
self.search_results = self.parent.manager.verse_search(bible, text)
if dual_bible:
for count, verse in enumerate(self.search_results):
text = u'%s %s:%s' % (verse.book.name, verse.chapter,
verse.verse)
self.dual_search_results[count] = self.parent.manager.\
get_verses(dual_bible, text)[0]
if self.ClearQuickSearchComboBox.currentIndex() == 0:
self.listView.clear()
if self.listView.count() != 0 and self.search_results:
@ -702,19 +711,16 @@ class BibleMediaItem(MediaManagerItem):
if bible_text:
raw_slides.append(bible_text)
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.
service_item.add_capability(ItemCapabilities.NoLineBreaks)
service_item.add_capability(ItemCapabilities.AllowsPreview)
service_item.add_capability(ItemCapabilities.AllowsLoop)
# Service Item: Title
for title in raw_title:
if not service_item.title:
service_item.title = title
else:
service_item.title += u', ' + title
# Service Item: Theme
if len(self.parent.settings_tab.bible_theme) == 0:
service_item.theme = None
else: