forked from openlp/openlp
implemented 'text search' for bibles
This commit is contained in:
parent
0872cefacf
commit
74752da694
@ -240,7 +240,7 @@ class BibleDB(QtCore.QObject, Manager):
|
|||||||
and the value is the verse text.
|
and the value is the verse text.
|
||||||
"""
|
"""
|
||||||
log.debug(u'create_chapter %s,%s', book_id, chapter)
|
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():
|
for verse_number, verse_text in textlist.iteritems():
|
||||||
verse = Verse.populate(
|
verse = Verse.populate(
|
||||||
book_id = book_id,
|
book_id = book_id,
|
||||||
|
@ -254,7 +254,27 @@ class BibleManager(object):
|
|||||||
'Book Chapter:Verse-Verse\n'
|
'Book Chapter:Verse-Verse\n'
|
||||||
'Book Chapter:Verse-Verse,Verse-Verse\n'
|
'Book Chapter:Verse-Verse,Verse-Verse\n'
|
||||||
'Book Chapter:Verse-Verse,Chapter: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
|
return None
|
||||||
|
|
||||||
def save_meta_data(self, bible, version, copyright, permissions):
|
def save_meta_data(self, bible, version, copyright, permissions):
|
||||||
|
@ -535,10 +535,19 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
bible = unicode(self.QuickVersionComboBox.currentText())
|
bible = unicode(self.QuickVersionComboBox.currentText())
|
||||||
dual_bible = unicode(self.QuickSecondBibleComboBox.currentText())
|
dual_bible = unicode(self.QuickSecondBibleComboBox.currentText())
|
||||||
text = unicode(self.QuickSearchEdit.text())
|
text = unicode(self.QuickSearchEdit.text())
|
||||||
|
if self.QuickSearchComboBox.currentIndex() == 0: # Verse Search
|
||||||
self.search_results = self.parent.manager.get_verses(bible, text)
|
self.search_results = self.parent.manager.get_verses(bible, text)
|
||||||
if dual_bible:
|
if dual_bible:
|
||||||
self.dual_search_results = self.parent.manager.get_verses(
|
self.dual_search_results = self.parent.manager.get_verses(
|
||||||
dual_bible, text)
|
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:
|
if self.ClearQuickSearchComboBox.currentIndex() == 0:
|
||||||
self.listView.clear()
|
self.listView.clear()
|
||||||
if self.listView.count() != 0 and self.search_results:
|
if self.listView.count() != 0 and self.search_results:
|
||||||
@ -702,19 +711,16 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
if bible_text:
|
if bible_text:
|
||||||
raw_slides.append(bible_text)
|
raw_slides.append(bible_text)
|
||||||
bible_text = u''
|
bible_text = u''
|
||||||
# Service Item: Capabilities
|
|
||||||
if self.parent.settings_tab.layout_style == 2 and not 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.
|
# Split the line but do not replace line breaks in renderer.
|
||||||
service_item.add_capability(ItemCapabilities.NoLineBreaks)
|
service_item.add_capability(ItemCapabilities.NoLineBreaks)
|
||||||
service_item.add_capability(ItemCapabilities.AllowsPreview)
|
service_item.add_capability(ItemCapabilities.AllowsPreview)
|
||||||
service_item.add_capability(ItemCapabilities.AllowsLoop)
|
service_item.add_capability(ItemCapabilities.AllowsLoop)
|
||||||
# Service Item: Title
|
|
||||||
for title in raw_title:
|
for title in raw_title:
|
||||||
if not service_item.title:
|
if not service_item.title:
|
||||||
service_item.title = title
|
service_item.title = title
|
||||||
else:
|
else:
|
||||||
service_item.title += u', ' + title
|
service_item.title += u', ' + title
|
||||||
# Service Item: Theme
|
|
||||||
if len(self.parent.settings_tab.bible_theme) == 0:
|
if len(self.parent.settings_tab.bible_theme) == 0:
|
||||||
service_item.theme = None
|
service_item.theme = None
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user