forked from openlp/openlp
Use the correct language for Bible booknames if the user requests it
bzr-revno: 1901
This commit is contained in:
commit
6606dfd3f7
@ -34,6 +34,7 @@ import re
|
|||||||
from PyQt4 import QtCore
|
from PyQt4 import QtCore
|
||||||
|
|
||||||
from openlp.core.lib import translate
|
from openlp.core.lib import translate
|
||||||
|
from openlp.plugins.bibles.lib.db import BiblesResourcesDB
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -59,6 +60,122 @@ class DisplayStyle(object):
|
|||||||
Square = 3
|
Square = 3
|
||||||
|
|
||||||
|
|
||||||
|
class LanguageSelection(object):
|
||||||
|
"""
|
||||||
|
An enumeration for bible bookname language.
|
||||||
|
And standard strings for use throughout the bibles plugin.
|
||||||
|
"""
|
||||||
|
Bible = 0
|
||||||
|
Application = 1
|
||||||
|
English = 2
|
||||||
|
|
||||||
|
|
||||||
|
class BibleStrings(object):
|
||||||
|
"""
|
||||||
|
Provide standard strings for objects to use.
|
||||||
|
"""
|
||||||
|
__instance__ = None
|
||||||
|
|
||||||
|
def __new__(cls):
|
||||||
|
"""
|
||||||
|
Override the default object creation method to return a single instance.
|
||||||
|
"""
|
||||||
|
if not cls.__instance__:
|
||||||
|
cls.__instance__ = object.__new__(cls)
|
||||||
|
return cls.__instance__
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
"""
|
||||||
|
These strings should need a good reason to be retranslated elsewhere.
|
||||||
|
"""
|
||||||
|
self.Booknames = {
|
||||||
|
u'Gen': translate('BiblesPlugin', 'Genesis'),
|
||||||
|
u'Exod': translate('BiblesPlugin', 'Exodus'),
|
||||||
|
u'Lev': translate('BiblesPlugin', 'Leviticus'),
|
||||||
|
u'Num': translate('BiblesPlugin', 'Numbers'),
|
||||||
|
u'Deut': translate('BiblesPlugin', 'Deuteronomy'),
|
||||||
|
u'Josh': translate('BiblesPlugin', 'Joshua'),
|
||||||
|
u'Judg': translate('BiblesPlugin', 'Judges'),
|
||||||
|
u'Ruth': translate('BiblesPlugin', 'Ruth'),
|
||||||
|
u'1Sam': translate('BiblesPlugin', '1 Samuel'),
|
||||||
|
u'2Sam': translate('BiblesPlugin', '2 Samuel'),
|
||||||
|
u'1Kgs': translate('BiblesPlugin', '1 Kings'),
|
||||||
|
u'2Kgs': translate('BiblesPlugin', '2 Kings'),
|
||||||
|
u'1Chr': translate('BiblesPlugin', '1 Chronicles'),
|
||||||
|
u'2Chr': translate('BiblesPlugin', '2 Chronicles'),
|
||||||
|
u'Esra': translate('BiblesPlugin', 'Ezra'),
|
||||||
|
u'Neh': translate('BiblesPlugin', 'Nehemiah'),
|
||||||
|
u'Esth': translate('BiblesPlugin', 'Esther'),
|
||||||
|
u'Job': translate('BiblesPlugin', 'Job'),
|
||||||
|
u'Ps': translate('BiblesPlugin', 'Psalms'),
|
||||||
|
u'Prov': translate('BiblesPlugin', 'Proverbs'),
|
||||||
|
u'Eccl': translate('BiblesPlugin', 'Ecclesiastes'),
|
||||||
|
u'Song': translate('BiblesPlugin', 'Song of Solomon'),
|
||||||
|
u'Isa': translate('BiblesPlugin', 'Isaiah'),
|
||||||
|
u'Jer': translate('BiblesPlugin', 'Jeremiah'),
|
||||||
|
u'Lam': translate('BiblesPlugin', 'Lamentations'),
|
||||||
|
u'Ezek': translate('BiblesPlugin', 'Ezekiel'),
|
||||||
|
u'Dan': translate('BiblesPlugin', 'Daniel'),
|
||||||
|
u'Hos': translate('BiblesPlugin', 'Hosea'),
|
||||||
|
u'Joel': translate('BiblesPlugin', 'Joel'),
|
||||||
|
u'Amos': translate('BiblesPlugin', 'Amos'),
|
||||||
|
u'Obad': translate('BiblesPlugin', 'Obadiah'),
|
||||||
|
u'Jonah': translate('BiblesPlugin', 'Jonah'),
|
||||||
|
u'Mic': translate('BiblesPlugin', 'Micah'),
|
||||||
|
u'Nah': translate('BiblesPlugin', 'Nahum'),
|
||||||
|
u'Hab': translate('BiblesPlugin', 'Habakkuk'),
|
||||||
|
u'Zeph': translate('BiblesPlugin', 'Zephaniah'),
|
||||||
|
u'Hag': translate('BiblesPlugin', 'Haggai'),
|
||||||
|
u'Zech': translate('BiblesPlugin', 'Zechariah'),
|
||||||
|
u'Mal': translate('BiblesPlugin', 'Malachi'),
|
||||||
|
u'Matt': translate('BiblesPlugin', 'Matthew'),
|
||||||
|
u'Mark': translate('BiblesPlugin', 'Mark'),
|
||||||
|
u'Luke': translate('BiblesPlugin', 'Luke'),
|
||||||
|
u'John': translate('BiblesPlugin', 'John'),
|
||||||
|
u'Acts': translate('BiblesPlugin', 'Acts'),
|
||||||
|
u'Rom': translate('BiblesPlugin', 'Romans'),
|
||||||
|
u'1Cor': translate('BiblesPlugin', '1 Corinthians'),
|
||||||
|
u'2Cor': translate('BiblesPlugin', '2 Corinthians'),
|
||||||
|
u'Gal': translate('BiblesPlugin', 'Galatians'),
|
||||||
|
u'Eph': translate('BiblesPlugin', 'Ephesians'),
|
||||||
|
u'Phil': translate('BiblesPlugin', 'Philippians'),
|
||||||
|
u'Col': translate('BiblesPlugin', 'Colossians'),
|
||||||
|
u'1Thess': translate('BiblesPlugin', '1 Thessalonians'),
|
||||||
|
u'2Thess': translate('BiblesPlugin', '2 Thessalonians'),
|
||||||
|
u'1Tim': translate('BiblesPlugin', '1 Timothy'),
|
||||||
|
u'2Tim': translate('BiblesPlugin', '2 Timothy'),
|
||||||
|
u'Titus': translate('BiblesPlugin', 'Titus'),
|
||||||
|
u'Phlm': translate('BiblesPlugin', 'Philemon'),
|
||||||
|
u'Heb': translate('BiblesPlugin', 'Hebrews'),
|
||||||
|
u'Jas': translate('BiblesPlugin', 'James'),
|
||||||
|
u'1Pet': translate('BiblesPlugin', '1 Peter'),
|
||||||
|
u'2Pet': translate('BiblesPlugin', '2 Peter'),
|
||||||
|
u'1John': translate('BiblesPlugin', '1 John'),
|
||||||
|
u'2John': translate('BiblesPlugin', '2 John'),
|
||||||
|
u'3John': translate('BiblesPlugin', '3 John'),
|
||||||
|
u'Jude': translate('BiblesPlugin', 'Jude'),
|
||||||
|
u'Rev': translate('BiblesPlugin', 'Revelation'),
|
||||||
|
u'Jdt': translate('BiblesPlugin', 'Judith'),
|
||||||
|
u'Wis': translate('BiblesPlugin', 'Wisdom'),
|
||||||
|
u'Tob': translate('BiblesPlugin', 'Tobit'),
|
||||||
|
u'Sir': translate('BiblesPlugin', 'Sirach'),
|
||||||
|
u'Bar': translate('BiblesPlugin', 'Baruch'),
|
||||||
|
u'1Macc': translate('BiblesPlugin', '1 Maccabees'),
|
||||||
|
u'2Macc': translate('BiblesPlugin', '2 Maccabees'),
|
||||||
|
u'3Macc': translate('BiblesPlugin', '3 Maccabees'),
|
||||||
|
u'4Macc': translate('BiblesPlugin', '4 Maccabees'),
|
||||||
|
u'AddDan': translate('BiblesPlugin', 'Rest of Daniel'),
|
||||||
|
u'AddEsth': translate('BiblesPlugin', 'Rest of Esther'),
|
||||||
|
u'PrMan': translate('BiblesPlugin', 'Prayer of Manasses'),
|
||||||
|
u'LetJer': translate('BiblesPlugin', 'Letter of Jeremiah'),
|
||||||
|
u'PrAza': translate('BiblesPlugin', 'Prayer of Azariah'),
|
||||||
|
u'Sus': translate('BiblesPlugin', 'Susanna'),
|
||||||
|
u'Bel': translate('BiblesPlugin', 'Bel'),
|
||||||
|
u'1Esdr': translate('BiblesPlugin', '1 Esdras'),
|
||||||
|
u'2Esdr': translate('BiblesPlugin', '2 Esdras')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def update_reference_separators():
|
def update_reference_separators():
|
||||||
"""
|
"""
|
||||||
Updates separators and matches for parsing and formating scripture
|
Updates separators and matches for parsing and formating scripture
|
||||||
@ -139,7 +256,7 @@ def get_reference_match(match_type):
|
|||||||
update_reference_separators()
|
update_reference_separators()
|
||||||
return REFERENCE_MATCHES[match_type]
|
return REFERENCE_MATCHES[match_type]
|
||||||
|
|
||||||
def parse_reference(reference):
|
def parse_reference(reference, bible, language_selection, book_ref_id=False):
|
||||||
"""
|
"""
|
||||||
This is the next generation über-awesome function that takes a person's
|
This is the next generation über-awesome function that takes a person's
|
||||||
typed in string and converts it to a list of references to be queried from
|
typed in string and converts it to a list of references to be queried from
|
||||||
@ -148,6 +265,16 @@ def parse_reference(reference):
|
|||||||
``reference``
|
``reference``
|
||||||
A string. The Bible reference to parse.
|
A string. The Bible reference to parse.
|
||||||
|
|
||||||
|
``bible``
|
||||||
|
A object. The Bible database object.
|
||||||
|
|
||||||
|
``language_selection``
|
||||||
|
An int. The language selection the user has choosen in settings
|
||||||
|
section.
|
||||||
|
|
||||||
|
``book_ref_id``
|
||||||
|
A string. The book reference id.
|
||||||
|
|
||||||
Returns ``None`` or a reference list.
|
Returns ``None`` or a reference list.
|
||||||
|
|
||||||
The reference list is a list of tuples, with each tuple structured like
|
The reference list is a list of tuples, with each tuple structured like
|
||||||
@ -232,6 +359,51 @@ def parse_reference(reference):
|
|||||||
if match:
|
if match:
|
||||||
log.debug(u'Matched reference %s' % reference)
|
log.debug(u'Matched reference %s' % reference)
|
||||||
book = match.group(u'book')
|
book = match.group(u'book')
|
||||||
|
if not book_ref_id:
|
||||||
|
booknames = BibleStrings().Booknames
|
||||||
|
# escape reserved characters
|
||||||
|
book_escaped = book
|
||||||
|
for character in u'\\.^$*+?{}[]()':
|
||||||
|
book_escaped = book_escaped.replace(
|
||||||
|
character, u'\\' + character)
|
||||||
|
regex_book = re.compile(u'\s*%s\s*' % u'\s*'.join(
|
||||||
|
book_escaped.split()), re.UNICODE | re.IGNORECASE)
|
||||||
|
if language_selection == LanguageSelection.Bible:
|
||||||
|
db_book = bible.get_book(book)
|
||||||
|
if db_book:
|
||||||
|
book_ref_id = db_book.book_reference_id
|
||||||
|
elif language_selection == LanguageSelection.Application:
|
||||||
|
book_list = []
|
||||||
|
for key, value in booknames.iteritems():
|
||||||
|
if regex_book.match(unicode(value)):
|
||||||
|
book_list.append(key)
|
||||||
|
books = []
|
||||||
|
if book_list:
|
||||||
|
for value in book_list:
|
||||||
|
item = BiblesResourcesDB.get_book(value)
|
||||||
|
if item:
|
||||||
|
books.append(item)
|
||||||
|
if books:
|
||||||
|
for value in books:
|
||||||
|
if bible.get_book_by_book_ref_id(value[u'id']):
|
||||||
|
book_ref_id = value[u'id']
|
||||||
|
break
|
||||||
|
elif language_selection == LanguageSelection.English:
|
||||||
|
books = BiblesResourcesDB.get_books_like(book)
|
||||||
|
if books:
|
||||||
|
book_list = []
|
||||||
|
for value in books:
|
||||||
|
if regex_book.match(value[u'name']):
|
||||||
|
book_list.append(value)
|
||||||
|
if not book_list:
|
||||||
|
book_list = books
|
||||||
|
for value in book_list:
|
||||||
|
if bible.get_book_by_book_ref_id(value[u'id']):
|
||||||
|
book_ref_id = value[u'id']
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
if not bible.get_book_by_book_ref_id(book_ref_id):
|
||||||
|
book_ref_id = False
|
||||||
ranges = match.group(u'ranges')
|
ranges = match.group(u'ranges')
|
||||||
range_list = get_reference_match(u'range_separator').split(ranges)
|
range_list = get_reference_match(u'range_separator').split(ranges)
|
||||||
ref_list = []
|
ref_list = []
|
||||||
@ -277,16 +449,18 @@ def parse_reference(reference):
|
|||||||
if not to_verse:
|
if not to_verse:
|
||||||
to_verse = -1
|
to_verse = -1
|
||||||
if to_chapter > from_chapter:
|
if to_chapter > from_chapter:
|
||||||
ref_list.append((book, from_chapter, from_verse, -1))
|
ref_list.append((book_ref_id, from_chapter, from_verse, -1))
|
||||||
for i in range(from_chapter + 1, to_chapter):
|
for i in range(from_chapter + 1, to_chapter):
|
||||||
ref_list.append((book, i, 1, -1))
|
ref_list.append((book_ref_id, i, 1, -1))
|
||||||
ref_list.append((book, to_chapter, 1, to_verse))
|
ref_list.append((book_ref_id, to_chapter, 1, to_verse))
|
||||||
elif to_verse >= from_verse or to_verse == -1:
|
elif to_verse >= from_verse or to_verse == -1:
|
||||||
ref_list.append((book, from_chapter, from_verse, to_verse))
|
ref_list.append((book_ref_id, from_chapter,
|
||||||
|
from_verse, to_verse))
|
||||||
elif from_verse:
|
elif from_verse:
|
||||||
ref_list.append((book, from_chapter, from_verse, from_verse))
|
ref_list.append((book_ref_id, from_chapter,
|
||||||
|
from_verse, from_verse))
|
||||||
else:
|
else:
|
||||||
ref_list.append((book, from_chapter, 1, -1))
|
ref_list.append((book_ref_id, from_chapter, 1, -1))
|
||||||
return ref_list
|
return ref_list
|
||||||
else:
|
else:
|
||||||
log.debug(u'Invalid reference: %s' % reference)
|
log.debug(u'Invalid reference: %s' % reference)
|
||||||
|
@ -32,7 +32,7 @@ from PyQt4 import QtCore, QtGui
|
|||||||
from openlp.core.lib import Receiver, SettingsTab, translate
|
from openlp.core.lib import Receiver, SettingsTab, translate
|
||||||
from openlp.core.lib.ui import UiStrings, find_and_set_in_combo_box
|
from openlp.core.lib.ui import UiStrings, find_and_set_in_combo_box
|
||||||
from openlp.plugins.bibles.lib import LayoutStyle, DisplayStyle, \
|
from openlp.plugins.bibles.lib import LayoutStyle, DisplayStyle, \
|
||||||
update_reference_separators, get_reference_separator
|
update_reference_separators, get_reference_separator, LanguageSelection
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -140,9 +140,25 @@ class BiblesTab(SettingsTab):
|
|||||||
self.scriptureReferenceLayout.addWidget(self.endSeparatorLineEdit, 3,
|
self.scriptureReferenceLayout.addWidget(self.endSeparatorLineEdit, 3,
|
||||||
1)
|
1)
|
||||||
self.leftLayout.addWidget(self.scriptureReferenceGroupBox)
|
self.leftLayout.addWidget(self.scriptureReferenceGroupBox)
|
||||||
self.leftLayout.addStretch()
|
|
||||||
self.rightColumn.setSizePolicy(
|
self.rightColumn.setSizePolicy(
|
||||||
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
|
||||||
|
self.languageSelectionGroupBox = QtGui.QGroupBox(self.rightColumn)
|
||||||
|
self.languageSelectionGroupBox.setObjectName(
|
||||||
|
u'languageSelectionGroupBox')
|
||||||
|
self.languageSelectionLayout = QtGui.QVBoxLayout(
|
||||||
|
self.languageSelectionGroupBox)
|
||||||
|
self.languageSelectionLabel = QtGui.QLabel(
|
||||||
|
self.languageSelectionGroupBox)
|
||||||
|
self.languageSelectionLabel.setObjectName(u'languageSelectionLabel')
|
||||||
|
self.languageSelectionComboBox = QtGui.QComboBox(
|
||||||
|
self.languageSelectionGroupBox)
|
||||||
|
self.languageSelectionComboBox.setObjectName(
|
||||||
|
u'languageSelectionComboBox')
|
||||||
|
self.languageSelectionComboBox.addItems([u'', u'', u''])
|
||||||
|
self.languageSelectionLayout.addWidget(self.languageSelectionLabel)
|
||||||
|
self.languageSelectionLayout.addWidget(self.languageSelectionComboBox)
|
||||||
|
self.rightLayout.addWidget(self.languageSelectionGroupBox)
|
||||||
|
self.leftLayout.addStretch()
|
||||||
self.rightLayout.addStretch()
|
self.rightLayout.addStretch()
|
||||||
# Signals and slots
|
# Signals and slots
|
||||||
QtCore.QObject.connect(
|
QtCore.QObject.connect(
|
||||||
@ -198,6 +214,9 @@ class BiblesTab(SettingsTab):
|
|||||||
self.onEndSeparatorLineEditFinished)
|
self.onEndSeparatorLineEditFinished)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList)
|
QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList)
|
||||||
|
QtCore.QObject.connect(
|
||||||
|
self.languageSelectionComboBox, QtCore.SIGNAL(u'activated(int)'),
|
||||||
|
self.onLanguageSelectionComboBoxChanged)
|
||||||
|
|
||||||
def retranslateUi(self):
|
def retranslateUi(self):
|
||||||
self.verseDisplayGroupBox.setTitle(
|
self.verseDisplayGroupBox.setTitle(
|
||||||
@ -257,6 +276,23 @@ class BiblesTab(SettingsTab):
|
|||||||
'end marks may be defined.\nThey have to be separated by a '
|
'end marks may be defined.\nThey have to be separated by a '
|
||||||
'vertical bar "|".\nPlease clear this edit line to use the '
|
'vertical bar "|".\nPlease clear this edit line to use the '
|
||||||
'default value.'))
|
'default value.'))
|
||||||
|
self.languageSelectionGroupBox.setTitle(
|
||||||
|
translate('BiblesPlugin.BiblesTab', 'Preferred Bookname Language'))
|
||||||
|
self.languageSelectionLabel.setText(translate('BiblesPlugin.BiblesTab',
|
||||||
|
'Choose the language in which the book names of the\nBible should '
|
||||||
|
'be displayed in the Bible search:'))
|
||||||
|
self.languageSelectionComboBox.setItemText(LanguageSelection.Bible,
|
||||||
|
translate('BiblesPlugin.BiblesTab', 'Bible language'))
|
||||||
|
self.languageSelectionComboBox.setItemText(
|
||||||
|
LanguageSelection.Application,
|
||||||
|
translate('BiblesPlugin.BiblesTab', 'Application language'))
|
||||||
|
self.languageSelectionComboBox.setItemText(LanguageSelection.English,
|
||||||
|
translate('BiblesPlugin.BiblesTab', 'English'))
|
||||||
|
self.languageSelectionComboBox.setToolTip(
|
||||||
|
translate('BiblesPlugin.BiblesTab', 'Multiple options:\n '
|
||||||
|
'Bible language - the language in which the Bible book names '
|
||||||
|
'were imported\n Application language - the language you have '
|
||||||
|
'chosen for OpenLP\n English - always use English book names'))
|
||||||
|
|
||||||
def onBibleThemeComboBoxChanged(self):
|
def onBibleThemeComboBoxChanged(self):
|
||||||
self.bible_theme = self.bibleThemeComboBox.currentText()
|
self.bible_theme = self.bibleThemeComboBox.currentText()
|
||||||
@ -267,6 +303,9 @@ class BiblesTab(SettingsTab):
|
|||||||
def onLayoutStyleComboBoxChanged(self):
|
def onLayoutStyleComboBoxChanged(self):
|
||||||
self.layout_style = self.layoutStyleComboBox.currentIndex()
|
self.layout_style = self.layoutStyleComboBox.currentIndex()
|
||||||
|
|
||||||
|
def onLanguageSelectionComboBoxChanged(self):
|
||||||
|
self.language_selection = self.languageSelectionComboBox.currentIndex()
|
||||||
|
|
||||||
def onNewChaptersCheckBoxChanged(self, check_state):
|
def onNewChaptersCheckBoxChanged(self, check_state):
|
||||||
self.show_new_chapters = False
|
self.show_new_chapters = False
|
||||||
# We have a set value convert to True/False.
|
# We have a set value convert to True/False.
|
||||||
@ -448,6 +487,9 @@ class BiblesTab(SettingsTab):
|
|||||||
self.endSeparatorLineEdit.setPalette(
|
self.endSeparatorLineEdit.setPalette(
|
||||||
self.getGreyTextPalette(False))
|
self.getGreyTextPalette(False))
|
||||||
self.endSeparatorCheckBox.setChecked(True)
|
self.endSeparatorCheckBox.setChecked(True)
|
||||||
|
self.language_selection = settings.value(
|
||||||
|
u'bookname language', QtCore.QVariant(0)).toInt()[0]
|
||||||
|
self.languageSelectionComboBox.setCurrentIndex(self.language_selection)
|
||||||
settings.endGroup()
|
settings.endGroup()
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
@ -459,6 +501,8 @@ class BiblesTab(SettingsTab):
|
|||||||
QtCore.QVariant(self.display_style))
|
QtCore.QVariant(self.display_style))
|
||||||
settings.setValue(u'verse layout style',
|
settings.setValue(u'verse layout style',
|
||||||
QtCore.QVariant(self.layout_style))
|
QtCore.QVariant(self.layout_style))
|
||||||
|
settings.setValue(u'bookname language',
|
||||||
|
QtCore.QVariant(self.language_selection))
|
||||||
settings.setValue(u'second bibles', QtCore.QVariant(self.second_bibles))
|
settings.setValue(u'second bibles', QtCore.QVariant(self.second_bibles))
|
||||||
settings.setValue(u'bible theme', QtCore.QVariant(self.bible_theme))
|
settings.setValue(u'bible theme', QtCore.QVariant(self.bible_theme))
|
||||||
if self.verseSeparatorCheckBox.isChecked():
|
if self.verseSeparatorCheckBox.isChecked():
|
||||||
@ -482,6 +526,7 @@ class BiblesTab(SettingsTab):
|
|||||||
else:
|
else:
|
||||||
settings.remove(u'end separator')
|
settings.remove(u'end separator')
|
||||||
update_reference_separators()
|
update_reference_separators()
|
||||||
|
Receiver.send_message(u'bibles_load_list')
|
||||||
settings.endGroup()
|
settings.endGroup()
|
||||||
|
|
||||||
def updateThemeList(self, theme_list):
|
def updateThemeList(self, theme_list):
|
||||||
|
@ -435,19 +435,19 @@ class BibleDB(QtCore.QObject, Manager):
|
|||||||
else:
|
else:
|
||||||
return count
|
return count
|
||||||
|
|
||||||
def get_verse_count(self, book_id, chapter):
|
def get_verse_count(self, book_ref_id, chapter):
|
||||||
"""
|
"""
|
||||||
Return the number of verses in a chapter.
|
Return the number of verses in a chapter.
|
||||||
|
|
||||||
``book``
|
``book_ref_id``
|
||||||
The book containing the chapter.
|
The book reference id.
|
||||||
|
|
||||||
``chapter``
|
``chapter``
|
||||||
The chapter to get the verse count for.
|
The chapter to get the verse count for.
|
||||||
"""
|
"""
|
||||||
log.debug(u'BibleDB.get_verse_count("%s", "%s")', book_id, chapter)
|
log.debug(u'BibleDB.get_verse_count("%s", "%s")', book_ref_id, chapter)
|
||||||
count = self.session.query(Verse).join(Book)\
|
count = self.session.query(Verse).join(Book)\
|
||||||
.filter(Book.book_reference_id==book_id)\
|
.filter(Book.book_reference_id==book_ref_id)\
|
||||||
.filter(Verse.chapter==chapter)\
|
.filter(Verse.chapter==chapter)\
|
||||||
.count()
|
.count()
|
||||||
if not count:
|
if not count:
|
||||||
@ -595,6 +595,35 @@ class BiblesResourcesDB(QtCore.QObject, Manager):
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_books_like(string):
|
||||||
|
"""
|
||||||
|
Return the books which include string.
|
||||||
|
|
||||||
|
``string``
|
||||||
|
The string to search for in the booknames or abbreviations.
|
||||||
|
"""
|
||||||
|
log.debug(u'BiblesResourcesDB.get_book_like("%s")', string)
|
||||||
|
if not isinstance(string, unicode):
|
||||||
|
name = unicode(string)
|
||||||
|
books = BiblesResourcesDB.run_sql(u'SELECT id, testament_id, name, '
|
||||||
|
u'abbreviation, chapters FROM book_reference WHERE '
|
||||||
|
u'LOWER(name) LIKE ? OR LOWER(abbreviation) LIKE ?',
|
||||||
|
(u'%' + string.lower() + u'%', u'%' + string.lower() + u'%'))
|
||||||
|
if books:
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
u'id': book[0],
|
||||||
|
u'testament_id': book[1],
|
||||||
|
u'name': unicode(book[2]),
|
||||||
|
u'abbreviation': unicode(book[3]),
|
||||||
|
u'chapters': book[4]
|
||||||
|
}
|
||||||
|
for book in books
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_book_by_id(id):
|
def get_book_by_id(id):
|
||||||
"""
|
"""
|
||||||
@ -621,23 +650,23 @@ class BiblesResourcesDB(QtCore.QObject, Manager):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_chapter(book_id, chapter):
|
def get_chapter(book_ref_id, chapter):
|
||||||
"""
|
"""
|
||||||
Return the chapter details for a specific chapter of a book.
|
Return the chapter details for a specific chapter of a book.
|
||||||
|
|
||||||
``book_id``
|
``book_ref_id``
|
||||||
The id of a book.
|
The id of a book.
|
||||||
|
|
||||||
``chapter``
|
``chapter``
|
||||||
The chapter number.
|
The chapter number.
|
||||||
"""
|
"""
|
||||||
log.debug(u'BiblesResourcesDB.get_chapter("%s", "%s")', book_id,
|
log.debug(u'BiblesResourcesDB.get_chapter("%s", "%s")', book_ref_id,
|
||||||
chapter)
|
chapter)
|
||||||
if not isinstance(chapter, int):
|
if not isinstance(chapter, int):
|
||||||
chapter = int(chapter)
|
chapter = int(chapter)
|
||||||
chapters = BiblesResourcesDB.run_sql(u'SELECT id, book_reference_id, '
|
chapters = BiblesResourcesDB.run_sql(u'SELECT id, book_reference_id, '
|
||||||
u'chapter, verse_count FROM chapters WHERE book_reference_id = ?',
|
u'chapter, verse_count FROM chapters WHERE book_reference_id = ?',
|
||||||
(book_id,))
|
(book_ref_id,))
|
||||||
try:
|
try:
|
||||||
return {
|
return {
|
||||||
u'id': chapters[chapter-1][0],
|
u'id': chapters[chapter-1][0],
|
||||||
@ -649,21 +678,21 @@ class BiblesResourcesDB(QtCore.QObject, Manager):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_chapter_count(book_id):
|
def get_chapter_count(book_ref_id):
|
||||||
"""
|
"""
|
||||||
Return the number of chapters in a book.
|
Return the number of chapters in a book.
|
||||||
|
|
||||||
``book_id``
|
``book_ref_id``
|
||||||
The id of the book.
|
The id of the book.
|
||||||
"""
|
"""
|
||||||
log.debug(u'BiblesResourcesDB.get_chapter_count("%s")', book_id)
|
log.debug(u'BiblesResourcesDB.get_chapter_count("%s")', book_ref_id)
|
||||||
details = BiblesResourcesDB.get_book_by_id(book_id)
|
details = BiblesResourcesDB.get_book_by_id(book_ref_id)
|
||||||
if details:
|
if details:
|
||||||
return details[u'chapters']
|
return details[u'chapters']
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_verse_count(book_id, chapter):
|
def get_verse_count(book_ref_id, chapter):
|
||||||
"""
|
"""
|
||||||
Return the number of verses in a chapter.
|
Return the number of verses in a chapter.
|
||||||
|
|
||||||
@ -673,9 +702,9 @@ class BiblesResourcesDB(QtCore.QObject, Manager):
|
|||||||
``chapter``
|
``chapter``
|
||||||
The number of the chapter.
|
The number of the chapter.
|
||||||
"""
|
"""
|
||||||
log.debug(u'BiblesResourcesDB.get_verse_count("%s", "%s")', book_id,
|
log.debug(u'BiblesResourcesDB.get_verse_count("%s", "%s")', book_ref_id,
|
||||||
chapter)
|
chapter)
|
||||||
details = BiblesResourcesDB.get_chapter(book_id, chapter)
|
details = BiblesResourcesDB.get_chapter(book_ref_id, chapter)
|
||||||
if details:
|
if details:
|
||||||
return details[u'verse_count']
|
return details[u'verse_count']
|
||||||
return 0
|
return 0
|
||||||
|
@ -33,7 +33,8 @@ from PyQt4 import QtCore
|
|||||||
from openlp.core.lib import Receiver, SettingsManager, translate
|
from openlp.core.lib import Receiver, SettingsManager, translate
|
||||||
from openlp.core.lib.ui import critical_error_message_box
|
from openlp.core.lib.ui import critical_error_message_box
|
||||||
from openlp.core.utils import AppLocation, delete_file
|
from openlp.core.utils import AppLocation, delete_file
|
||||||
from openlp.plugins.bibles.lib import parse_reference, get_reference_separator
|
from openlp.plugins.bibles.lib import parse_reference, \
|
||||||
|
get_reference_separator, LanguageSelection
|
||||||
from openlp.plugins.bibles.lib.db import BibleDB, BibleMeta
|
from openlp.plugins.bibles.lib.db import BibleDB, BibleMeta
|
||||||
from csvbible import CSVBible
|
from csvbible import CSVBible
|
||||||
from http import HTTPBible
|
from http import HTTPBible
|
||||||
@ -227,6 +228,19 @@ class BibleManager(object):
|
|||||||
for book in self.db_cache[bible].get_books()
|
for book in self.db_cache[bible].get_books()
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_book_by_id(self, bible, id):
|
||||||
|
"""
|
||||||
|
Returns a book object by given id.
|
||||||
|
|
||||||
|
``bible``
|
||||||
|
Unicode. The Bible to get the list of books from.
|
||||||
|
|
||||||
|
``id``
|
||||||
|
Unicode. The book_reference_id to get the book for.
|
||||||
|
"""
|
||||||
|
log.debug(u'BibleManager.get_book_by_id("%s", "%s")', bible, id)
|
||||||
|
return self.db_cache[bible].get_book_by_book_ref_id(id)
|
||||||
|
|
||||||
def get_chapter_count(self, bible, book):
|
def get_chapter_count(self, bible, book):
|
||||||
"""
|
"""
|
||||||
Returns the number of Chapters for a given book.
|
Returns the number of Chapters for a given book.
|
||||||
@ -252,7 +266,16 @@ class BibleManager(object):
|
|||||||
book_ref_id = db_book.book_reference_id
|
book_ref_id = db_book.book_reference_id
|
||||||
return self.db_cache[bible].get_verse_count(book_ref_id, chapter)
|
return self.db_cache[bible].get_verse_count(book_ref_id, chapter)
|
||||||
|
|
||||||
def get_verses(self, bible, versetext, firstbible=False, show_error=True):
|
def get_verse_count_by_book_ref_id(self, bible, book_ref_id, chapter):
|
||||||
|
"""
|
||||||
|
Returns all the number of verses for a given
|
||||||
|
book_ref_id and chapterMaxBibleBookVerses.
|
||||||
|
"""
|
||||||
|
log.debug(u'BibleManager.get_verse_count_by_book_ref_id("%s", "%s", '
|
||||||
|
u'"%s")', bible, book_ref_id, chapter)
|
||||||
|
return self.db_cache[bible].get_verse_count(book_ref_id, chapter)
|
||||||
|
|
||||||
|
def get_verses(self, bible, versetext, book_ref_id=False, show_error=True):
|
||||||
"""
|
"""
|
||||||
Parses a scripture reference, fetches the verses from the Bible
|
Parses a scripture reference, fetches the verses from the Bible
|
||||||
specified, and returns a list of ``Verse`` objects.
|
specified, and returns a list of ``Verse`` objects.
|
||||||
@ -270,6 +293,10 @@ class BibleManager(object):
|
|||||||
- Genesis 1:1-10,15-20
|
- Genesis 1:1-10,15-20
|
||||||
- Genesis 1:1-2:10
|
- Genesis 1:1-2:10
|
||||||
- Genesis 1:1-10,2:1-10
|
- Genesis 1:1-10,2:1-10
|
||||||
|
|
||||||
|
``book_ref_id``
|
||||||
|
Unicode. The book referece id from the book in versetext.
|
||||||
|
For second bible this is necessary.
|
||||||
"""
|
"""
|
||||||
log.debug(u'BibleManager.get_verses("%s", "%s")', bible, versetext)
|
log.debug(u'BibleManager.get_verses("%s", "%s")', bible, versetext)
|
||||||
if not bible:
|
if not bible:
|
||||||
@ -282,30 +309,12 @@ class BibleManager(object):
|
|||||||
'Import Wizard to install one or more Bibles.')
|
'Import Wizard to install one or more Bibles.')
|
||||||
})
|
})
|
||||||
return None
|
return None
|
||||||
reflist = parse_reference(versetext)
|
language_selection = QtCore.QSettings().value(
|
||||||
|
self.settingsSection + u'/bookname language',
|
||||||
|
QtCore.QVariant(0)).toInt()[0]
|
||||||
|
reflist = parse_reference(versetext, self.db_cache[bible],
|
||||||
|
language_selection, book_ref_id)
|
||||||
if reflist:
|
if reflist:
|
||||||
new_reflist = []
|
|
||||||
for item in reflist:
|
|
||||||
if item:
|
|
||||||
if firstbible:
|
|
||||||
db_book = self.db_cache[firstbible].get_book(item[0])
|
|
||||||
db_book = self.db_cache[bible].get_book_by_book_ref_id(
|
|
||||||
db_book.book_reference_id)
|
|
||||||
else:
|
|
||||||
db_book = self.db_cache[bible].get_book(item[0])
|
|
||||||
if db_book:
|
|
||||||
book_id = db_book.book_reference_id
|
|
||||||
log.debug(u'Book name corrected to "%s"', db_book.name)
|
|
||||||
new_reflist.append((book_id, item[1], item[2],
|
|
||||||
item[3]))
|
|
||||||
else:
|
|
||||||
log.debug(u'OpenLP failed to find book %s', item[0])
|
|
||||||
critical_error_message_box(
|
|
||||||
translate('BiblesPlugin', 'No Book Found'),
|
|
||||||
translate('BiblesPlugin', 'No matching book '
|
|
||||||
'could be found in this Bible. Check that you have '
|
|
||||||
'spelled the name of the book correctly.'))
|
|
||||||
reflist = new_reflist
|
|
||||||
return self.db_cache[bible].get_verses(reflist, show_error)
|
return self.db_cache[bible].get_verses(reflist, show_error)
|
||||||
else:
|
else:
|
||||||
if show_error:
|
if show_error:
|
||||||
|
@ -38,7 +38,8 @@ from openlp.core.lib.ui import UiStrings, add_widget_completer, \
|
|||||||
find_and_set_in_combo_box, build_icon
|
find_and_set_in_combo_box, build_icon
|
||||||
from openlp.plugins.bibles.forms import BibleImportForm
|
from openlp.plugins.bibles.forms import BibleImportForm
|
||||||
from openlp.plugins.bibles.lib import LayoutStyle, DisplayStyle, \
|
from openlp.plugins.bibles.lib import LayoutStyle, DisplayStyle, \
|
||||||
VerseReferenceList, get_reference_separator
|
VerseReferenceList, get_reference_separator, LanguageSelection, BibleStrings
|
||||||
|
from openlp.plugins.bibles.lib.db import BiblesResourcesDB
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -424,20 +425,37 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
book_data = book_data_temp
|
book_data = book_data_temp
|
||||||
self.advancedBookComboBox.clear()
|
self.advancedBookComboBox.clear()
|
||||||
first = True
|
first = True
|
||||||
|
language_selection = QtCore.QSettings().value(
|
||||||
|
self.settingsSection + u'/bookname language',
|
||||||
|
QtCore.QVariant(0)).toInt()[0]
|
||||||
|
booknames = BibleStrings().Booknames
|
||||||
for book in book_data:
|
for book in book_data:
|
||||||
row = self.advancedBookComboBox.count()
|
row = self.advancedBookComboBox.count()
|
||||||
self.advancedBookComboBox.addItem(book[u'name'])
|
if language_selection == LanguageSelection.Bible:
|
||||||
|
self.advancedBookComboBox.addItem(book[u'name'])
|
||||||
|
elif language_selection == LanguageSelection.Application:
|
||||||
|
data = BiblesResourcesDB.get_book_by_id(
|
||||||
|
book[u'book_reference_id'])
|
||||||
|
self.advancedBookComboBox.addItem(
|
||||||
|
booknames[data[u'abbreviation']])
|
||||||
|
elif language_selection == LanguageSelection.English:
|
||||||
|
data = BiblesResourcesDB.get_book_by_id(
|
||||||
|
book[u'book_reference_id'])
|
||||||
|
self.advancedBookComboBox.addItem(data[u'name'])
|
||||||
self.advancedBookComboBox.setItemData(
|
self.advancedBookComboBox.setItemData(
|
||||||
row, QtCore.QVariant(book[u'chapters']))
|
row, QtCore.QVariant(book[u'book_reference_id']))
|
||||||
if first:
|
if first:
|
||||||
first = False
|
first = False
|
||||||
self.initialiseChapterVerse(bible, book[u'name'],
|
self.initialiseChapterVerse(bible, book[u'name'],
|
||||||
book[u'chapters'])
|
book[u'book_reference_id'])
|
||||||
|
|
||||||
def initialiseChapterVerse(self, bible, book, chapter_count):
|
def initialiseChapterVerse(self, bible, book, book_ref_id):
|
||||||
log.debug(u'initialiseChapterVerse %s, %s', bible, book)
|
log.debug(u'initialiseChapterVerse %s, %s, %s', bible, book,
|
||||||
self.chapter_count = chapter_count
|
book_ref_id)
|
||||||
verse_count = self.plugin.manager.get_verse_count(bible, book, 1)
|
book = self.plugin.manager.get_book_by_id(bible, book_ref_id)
|
||||||
|
self.chapter_count = self.plugin.manager.get_chapter_count(bible, book)
|
||||||
|
verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(bible,
|
||||||
|
book_ref_id, 1)
|
||||||
if verse_count == 0:
|
if verse_count == 0:
|
||||||
self.advancedSearchButton.setEnabled(False)
|
self.advancedSearchButton.setEnabled(False)
|
||||||
critical_error_message_box(
|
critical_error_message_box(
|
||||||
@ -456,6 +474,7 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
completion depends on the bible. It is only updated when we are doing a
|
completion depends on the bible. It is only updated when we are doing a
|
||||||
reference search, otherwise the auto completion list is removed.
|
reference search, otherwise the auto completion list is removed.
|
||||||
"""
|
"""
|
||||||
|
log.debug(u'updateAutoCompleter')
|
||||||
# Save the current search type to the configuration.
|
# Save the current search type to the configuration.
|
||||||
QtCore.QSettings().setValue(u'%s/last search type' %
|
QtCore.QSettings().setValue(u'%s/last search type' %
|
||||||
self.settingsSection,
|
self.settingsSection,
|
||||||
@ -480,7 +499,22 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
secondbook.book_reference_id:
|
secondbook.book_reference_id:
|
||||||
book_data_temp.append(book)
|
book_data_temp.append(book)
|
||||||
book_data = book_data_temp
|
book_data = book_data_temp
|
||||||
books = [book.name + u' ' for book in book_data]
|
language_selection = QtCore.QSettings().value(
|
||||||
|
self.settingsSection + u'/bookname language',
|
||||||
|
QtCore.QVariant(0)).toInt()[0]
|
||||||
|
if language_selection == LanguageSelection.Bible:
|
||||||
|
books = [book.name + u' ' for book in book_data]
|
||||||
|
elif language_selection == LanguageSelection.Application:
|
||||||
|
booknames = BibleStrings().Booknames
|
||||||
|
for book in book_data:
|
||||||
|
data = BiblesResourcesDB.get_book_by_id(
|
||||||
|
book.book_reference_id)
|
||||||
|
books.append(data[u'name'] + u' ')
|
||||||
|
elif language_selection == LanguageSelection.English:
|
||||||
|
for book in book_data:
|
||||||
|
data = BiblesResourcesDB.get_book_by_id(
|
||||||
|
book.book_reference_id)
|
||||||
|
books.append(data[u'name'] + u' ')
|
||||||
books.sort(cmp=locale.strcoll)
|
books.sort(cmp=locale.strcoll)
|
||||||
add_widget_completer(books, self.quickSearchEdit)
|
add_widget_completer(books, self.quickSearchEdit)
|
||||||
|
|
||||||
@ -547,29 +581,31 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
self.initialiseChapterVerse(
|
self.initialiseChapterVerse(
|
||||||
unicode(self.advancedVersionComboBox.currentText()),
|
unicode(self.advancedVersionComboBox.currentText()),
|
||||||
unicode(self.advancedBookComboBox.currentText()),
|
unicode(self.advancedBookComboBox.currentText()),
|
||||||
self.advancedBookComboBox.itemData(item).toInt()[0])
|
unicode(self.advancedBookComboBox.itemData(item).toString()))
|
||||||
|
|
||||||
def onAdvancedFromVerse(self):
|
def onAdvancedFromVerse(self):
|
||||||
chapter_from = int(self.advancedFromChapter.currentText())
|
chapter_from = int(self.advancedFromChapter.currentText())
|
||||||
chapter_to = int(self.advancedToChapter.currentText())
|
chapter_to = int(self.advancedToChapter.currentText())
|
||||||
if chapter_from == chapter_to:
|
if chapter_from == chapter_to:
|
||||||
bible = unicode(self.advancedVersionComboBox.currentText())
|
bible = unicode(self.advancedVersionComboBox.currentText())
|
||||||
book = unicode(self.advancedBookComboBox.currentText())
|
book_ref_id = unicode(self.advancedBookComboBox.itemData(
|
||||||
|
int(self.advancedBookComboBox.currentIndex())).toString())
|
||||||
verse_from = int(self.advancedFromVerse.currentText())
|
verse_from = int(self.advancedFromVerse.currentText())
|
||||||
verse_count = self.plugin.manager.get_verse_count(bible, book,
|
verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(
|
||||||
chapter_to)
|
bible, book_ref_id, chapter_to)
|
||||||
self.adjustComboBox(verse_from, verse_count,
|
self.adjustComboBox(verse_from, verse_count,
|
||||||
self.advancedToVerse, True)
|
self.advancedToVerse, True)
|
||||||
|
|
||||||
def onAdvancedToChapter(self):
|
def onAdvancedToChapter(self):
|
||||||
bible = unicode(self.advancedVersionComboBox.currentText())
|
bible = unicode(self.advancedVersionComboBox.currentText())
|
||||||
book = unicode(self.advancedBookComboBox.currentText())
|
book_ref_id = unicode(self.advancedBookComboBox.itemData(
|
||||||
|
int(self.advancedBookComboBox.currentIndex())).toString())
|
||||||
chapter_from = int(self.advancedFromChapter.currentText())
|
chapter_from = int(self.advancedFromChapter.currentText())
|
||||||
chapter_to = int(self.advancedToChapter.currentText())
|
chapter_to = int(self.advancedToChapter.currentText())
|
||||||
verse_from = int(self.advancedFromVerse.currentText())
|
verse_from = int(self.advancedFromVerse.currentText())
|
||||||
verse_to = int(self.advancedToVerse.currentText())
|
verse_to = int(self.advancedToVerse.currentText())
|
||||||
verse_count = self.plugin.manager.get_verse_count(bible, book,
|
verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(bible,
|
||||||
chapter_to)
|
book_ref_id, chapter_to)
|
||||||
if chapter_from == chapter_to and verse_from > verse_to:
|
if chapter_from == chapter_to and verse_from > verse_to:
|
||||||
self.adjustComboBox(verse_from, verse_count, self.advancedToVerse)
|
self.adjustComboBox(verse_from, verse_count, self.advancedToVerse)
|
||||||
else:
|
else:
|
||||||
@ -577,11 +613,12 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
|
|
||||||
def onAdvancedFromChapter(self):
|
def onAdvancedFromChapter(self):
|
||||||
bible = unicode(self.advancedVersionComboBox.currentText())
|
bible = unicode(self.advancedVersionComboBox.currentText())
|
||||||
book = unicode(self.advancedBookComboBox.currentText())
|
book_ref_id = unicode(self.advancedBookComboBox.itemData(
|
||||||
|
int(self.advancedBookComboBox.currentIndex())).toString())
|
||||||
chapter_from = int(self.advancedFromChapter.currentText())
|
chapter_from = int(self.advancedFromChapter.currentText())
|
||||||
chapter_to = int(self.advancedToChapter.currentText())
|
chapter_to = int(self.advancedToChapter.currentText())
|
||||||
verse_count = self.plugin.manager.get_verse_count(bible, book,
|
verse_count = self.plugin.manager.get_verse_count_by_book_ref_id(bible,
|
||||||
chapter_from)
|
book_ref_id, chapter_from)
|
||||||
self.adjustComboBox(1, verse_count, self.advancedFromVerse)
|
self.adjustComboBox(1, verse_count, self.advancedFromVerse)
|
||||||
if chapter_from > chapter_to:
|
if chapter_from > chapter_to:
|
||||||
self.adjustComboBox(1, verse_count, self.advancedToVerse)
|
self.adjustComboBox(1, verse_count, self.advancedToVerse)
|
||||||
@ -630,6 +667,8 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
bible = unicode(self.advancedVersionComboBox.currentText())
|
bible = unicode(self.advancedVersionComboBox.currentText())
|
||||||
second_bible = unicode(self.advancedSecondComboBox.currentText())
|
second_bible = unicode(self.advancedSecondComboBox.currentText())
|
||||||
book = unicode(self.advancedBookComboBox.currentText())
|
book = unicode(self.advancedBookComboBox.currentText())
|
||||||
|
book_ref_id = unicode(self.advancedBookComboBox.itemData(
|
||||||
|
int(self.advancedBookComboBox.currentIndex())).toString())
|
||||||
chapter_from = self.advancedFromChapter.currentText()
|
chapter_from = self.advancedFromChapter.currentText()
|
||||||
chapter_to = self.advancedToChapter.currentText()
|
chapter_to = self.advancedToChapter.currentText()
|
||||||
verse_from = self.advancedFromVerse.currentText()
|
verse_from = self.advancedFromVerse.currentText()
|
||||||
@ -640,10 +679,11 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
range_separator + chapter_to + verse_separator + verse_to
|
range_separator + chapter_to + verse_separator + verse_to
|
||||||
versetext = u'%s %s' % (book, verse_range)
|
versetext = u'%s %s' % (book, verse_range)
|
||||||
Receiver.send_message(u'cursor_busy')
|
Receiver.send_message(u'cursor_busy')
|
||||||
self.search_results = self.plugin.manager.get_verses(bible, versetext)
|
self.search_results = self.plugin.manager.get_verses(bible, versetext,
|
||||||
|
book_ref_id)
|
||||||
if second_bible:
|
if second_bible:
|
||||||
self.second_search_results = self.plugin.manager.get_verses(
|
self.second_search_results = self.plugin.manager.get_verses(
|
||||||
second_bible, versetext, bible)
|
second_bible, versetext, book_ref_id)
|
||||||
if not self.advancedLockButton.isChecked():
|
if not self.advancedLockButton.isChecked():
|
||||||
self.listView.clear()
|
self.listView.clear()
|
||||||
if self.listView.count() != 0:
|
if self.listView.count() != 0:
|
||||||
@ -671,7 +711,8 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
self.search_results = self.plugin.manager.get_verses(bible, text)
|
self.search_results = self.plugin.manager.get_verses(bible, text)
|
||||||
if second_bible and self.search_results:
|
if second_bible and self.search_results:
|
||||||
self.second_search_results = self.plugin.manager.get_verses(
|
self.second_search_results = self.plugin.manager.get_verses(
|
||||||
second_bible, text, bible)
|
second_bible, text,
|
||||||
|
self.search_results[0].book.book_reference_id)
|
||||||
else:
|
else:
|
||||||
# We are doing a 'Text Search'.
|
# We are doing a 'Text Search'.
|
||||||
Receiver.send_message(u'cursor_busy')
|
Receiver.send_message(u'cursor_busy')
|
||||||
@ -989,8 +1030,7 @@ class BibleMediaItem(MediaManagerItem):
|
|||||||
Search for some Bible verses (by reference).
|
Search for some Bible verses (by reference).
|
||||||
"""
|
"""
|
||||||
bible = unicode(self.quickVersionComboBox.currentText())
|
bible = unicode(self.quickVersionComboBox.currentText())
|
||||||
search_results = self.plugin.manager.get_verses(bible, string, False,
|
search_results = self.plugin.manager.get_verses(bible, string, False)
|
||||||
False)
|
|
||||||
if search_results:
|
if search_results:
|
||||||
versetext = u' '.join([verse.text for verse in search_results])
|
versetext = u' '.join([verse.text for verse in search_results])
|
||||||
return [[string, versetext]]
|
return [[string, versetext]]
|
||||||
|
Loading…
Reference in New Issue
Block a user