2009-03-02 21:57:49 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
|
2009-07-13 20:11:36 +00:00
|
|
|
|
2009-09-08 19:58:05 +00:00
|
|
|
###############################################################################
|
|
|
|
# OpenLP - Open Source Lyrics Projection #
|
|
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
# Copyright (c) 2008-2009 Raoul Snyman #
|
2009-11-30 20:29:26 +00:00
|
|
|
# Portions copyright (c) 2008-2009 Tim Bentley, Jonathan Corwin, Michael #
|
|
|
|
# Gorven, Scott Guerrieri, Maikel Stuivenberg, Martin Thompson, Jon Tibble, #
|
|
|
|
# Carsten Tinggaard #
|
2009-09-08 19:58:05 +00:00
|
|
|
# --------------------------------------------------------------------------- #
|
|
|
|
# This program is free software; you can redistribute it and/or modify it #
|
|
|
|
# under the terms of the GNU General Public License as published by the Free #
|
|
|
|
# Software Foundation; version 2 of the License. #
|
|
|
|
# #
|
|
|
|
# This program is distributed in the hope that it will be useful, but WITHOUT #
|
|
|
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
|
|
|
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
|
|
|
|
# more details. #
|
|
|
|
# #
|
|
|
|
# You should have received a copy of the GNU General Public License along #
|
|
|
|
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
|
|
|
|
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
|
|
|
###############################################################################
|
2009-07-13 20:11:36 +00:00
|
|
|
|
2009-03-02 21:57:49 +00:00
|
|
|
import logging
|
2009-08-05 17:59:37 +00:00
|
|
|
import time
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
from PyQt4 import QtCore, QtGui
|
|
|
|
|
2009-10-24 16:40:36 +00:00
|
|
|
from openlp.core.lib import MediaManagerItem, Receiver, str_to_bool, \
|
|
|
|
BaseListWithDnD
|
2009-12-24 17:54:39 +00:00
|
|
|
from openlp.plugins.bibles.forms import ImportWizardForm
|
2009-07-13 20:08:43 +00:00
|
|
|
from openlp.plugins.bibles.lib.manager import BibleMode
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-08-15 11:02:24 +00:00
|
|
|
class BibleListView(BaseListWithDnD):
|
|
|
|
def __init__(self, parent=None):
|
|
|
|
self.PluginName = u'Bibles'
|
|
|
|
BaseListWithDnD.__init__(self, parent)
|
2009-05-12 21:06:35 +00:00
|
|
|
|
2009-03-02 21:57:49 +00:00
|
|
|
class BibleMediaItem(MediaManagerItem):
|
|
|
|
"""
|
|
|
|
This is the custom media manager item for Bibles.
|
|
|
|
"""
|
|
|
|
global log
|
2009-05-22 19:36:16 +00:00
|
|
|
log = logging.getLogger(u'BibleMediaItem')
|
2009-03-16 17:33:51 +00:00
|
|
|
log.info(u'Bible Media Item loaded')
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-03-02 22:12:14 +00:00
|
|
|
def __init__(self, parent, icon, title):
|
2009-10-28 01:36:24 +00:00
|
|
|
self.PluginNameShort = u'Bible'
|
2009-10-30 17:44:16 +00:00
|
|
|
self.ConfigSection = title
|
2009-09-26 09:11:39 +00:00
|
|
|
self.IconPath = u'songs/song'
|
|
|
|
self.ListViewWithDnD_class = BibleListView
|
|
|
|
self.servicePath = None
|
2009-03-02 22:12:14 +00:00
|
|
|
MediaManagerItem.__init__(self, parent, icon, title)
|
2009-10-12 10:18:54 +00:00
|
|
|
# place to store the search results
|
|
|
|
self.search_results = {}
|
2009-11-13 21:24:59 +00:00
|
|
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'openlpreloadbibles'), self.reloadBibles)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-10-29 01:48:43 +00:00
|
|
|
def initPluginNameVisible(self):
|
2009-11-26 18:43:49 +00:00
|
|
|
self.PluginNameVisible = self.trUtf8('Bible')
|
2009-10-29 01:48:43 +00:00
|
|
|
|
2009-09-26 09:11:39 +00:00
|
|
|
def requiredIcons(self):
|
|
|
|
MediaManagerItem.requiredIcons(self)
|
|
|
|
self.hasEditIcon = False
|
|
|
|
self.hasDeleteIcon = False
|
|
|
|
|
|
|
|
def addEndHeaderBar(self):
|
2009-03-02 21:57:49 +00:00
|
|
|
self.SearchTabWidget = QtGui.QTabWidget(self)
|
2009-09-15 18:56:56 +00:00
|
|
|
sizePolicy = QtGui.QSizePolicy(
|
|
|
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
2009-03-02 21:57:49 +00:00
|
|
|
sizePolicy.setHorizontalStretch(0)
|
|
|
|
sizePolicy.setVerticalStretch(0)
|
2009-09-15 18:56:56 +00:00
|
|
|
sizePolicy.setHeightForWidth(
|
|
|
|
self.SearchTabWidget.sizePolicy().hasHeightForWidth())
|
2009-03-02 21:57:49 +00:00
|
|
|
self.SearchTabWidget.setSizePolicy(sizePolicy)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.SearchTabWidget.setObjectName(u'SearchTabWidget')
|
2009-03-02 21:57:49 +00:00
|
|
|
# Add the Quick Search tab
|
|
|
|
self.QuickTab = QtGui.QWidget()
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickTab.setObjectName(u'QuickTab')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout = QtGui.QGridLayout(self.QuickTab)
|
|
|
|
self.QuickLayout.setMargin(2)
|
2009-09-15 18:56:56 +00:00
|
|
|
self.QuickLayout.setSpacing(4)
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.setVerticalSpacing(4)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickLayout.setObjectName(u'QuickLayout')
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickVersionLabel = QtGui.QLabel(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickVersionLabel.setObjectName(u'QuickVersionLabel')
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickVersionLabel, 0, 0, 1, 1)
|
2009-03-05 10:52:55 +00:00
|
|
|
self.QuickVersionComboBox = QtGui.QComboBox(self.QuickTab)
|
2009-10-30 17:44:16 +00:00
|
|
|
self.QuickVersionComboBox.setSizeAdjustPolicy(
|
|
|
|
QtGui.QComboBox.AdjustToMinimumContentsLength)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickVersionComboBox.setObjectName(u'VersionComboBox')
|
2009-03-05 10:52:55 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickVersionComboBox, 0, 1, 1, 2)
|
2009-10-21 16:54:59 +00:00
|
|
|
self.QuickSecondVersionLabel = QtGui.QLabel(self.QuickTab)
|
|
|
|
self.QuickSecondVersionLabel.setObjectName(u'QuickSecondVersionLabel')
|
|
|
|
self.QuickLayout.addWidget(self.QuickSecondVersionLabel, 1, 0, 1, 1)
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickSecondBibleComboBox = QtGui.QComboBox(self.QuickTab)
|
2009-10-30 17:44:16 +00:00
|
|
|
self.QuickSecondBibleComboBox.setSizeAdjustPolicy(
|
|
|
|
QtGui.QComboBox.AdjustToMinimumContentsLength)
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickSecondBibleComboBox.setObjectName(u'SecondBible')
|
|
|
|
self.QuickLayout.addWidget(self.QuickSecondBibleComboBox, 1, 1, 1, 2)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickSearchLabel = QtGui.QLabel(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickSearchLabel.setObjectName(u'QuickSearchLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickSearchLabel, 2, 0, 1, 1)
|
2009-03-05 10:52:55 +00:00
|
|
|
self.QuickSearchComboBox = QtGui.QComboBox(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickSearchComboBox.setObjectName(u'SearchComboBox')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickSearchComboBox, 2, 1, 1, 2)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickSearchLabel = QtGui.QLabel(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickSearchLabel.setObjectName(u'QuickSearchLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickSearchLabel, 3, 0, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickSearchEdit = QtGui.QLineEdit(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickSearchEdit.setObjectName(u'QuickSearchEdit')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickSearchEdit, 3, 1, 1, 2)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickClearLabel = QtGui.QLabel(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.QuickClearLabel.setObjectName(u'QuickSearchLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickClearLabel, 4, 0, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.ClearQuickSearchComboBox = QtGui.QComboBox(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.ClearQuickSearchComboBox.setObjectName(u'ClearQuickSearchComboBox')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.addWidget(self.ClearQuickSearchComboBox, 4, 1, 1, 2)
|
|
|
|
self.QuickSearchButtonLayout = QtGui.QHBoxLayout()
|
|
|
|
self.QuickSearchButtonLayout.setMargin(0)
|
|
|
|
self.QuickSearchButtonLayout.setSpacing(0)
|
|
|
|
self.QuickSearchButtonLayout.setObjectName(u'QuickSearchButtonLayout')
|
|
|
|
self.QuickSearchButtonSpacer = QtGui.QSpacerItem(40, 20,
|
|
|
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
|
|
|
self.QuickSearchButtonLayout.addItem(self.QuickSearchButtonSpacer)
|
|
|
|
self.QuickSearchButton = QtGui.QPushButton(self.QuickTab)
|
|
|
|
self.QuickSearchButton.setObjectName(u'QuickSearchButton')
|
|
|
|
self.QuickSearchButtonLayout.addWidget(self.QuickSearchButton)
|
|
|
|
self.QuickLayout.addLayout(self.QuickSearchButtonLayout, 5, 0, 1, 3)
|
2009-09-27 07:22:23 +00:00
|
|
|
self.QuickMessage = QtGui.QLabel(self.QuickTab)
|
|
|
|
self.QuickMessage.setObjectName(u'QuickMessage')
|
2009-10-21 16:54:59 +00:00
|
|
|
self.QuickLayout.addWidget(self.QuickMessage, 6, 0, 1, 3)
|
2009-11-26 18:43:49 +00:00
|
|
|
self.SearchTabWidget.addTab(self.QuickTab, self.trUtf8('Quick'))
|
2009-10-09 17:57:15 +00:00
|
|
|
QuickSpacerItem = QtGui.QSpacerItem(20, 35, QtGui.QSizePolicy.Minimum,
|
2009-03-08 12:41:07 +00:00
|
|
|
QtGui.QSizePolicy.Expanding)
|
2009-10-18 18:15:20 +00:00
|
|
|
self.QuickLayout.addItem(QuickSpacerItem, 6, 2, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
# Add the Advanced Search tab
|
|
|
|
self.AdvancedTab = QtGui.QWidget()
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedTab.setObjectName(u'AdvancedTab')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout = QtGui.QGridLayout(self.AdvancedTab)
|
|
|
|
self.AdvancedLayout.setMargin(2)
|
2009-09-15 18:56:56 +00:00
|
|
|
self.AdvancedLayout.setSpacing(4)
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.setVerticalSpacing(4)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedLayout.setObjectName(u'AdvancedLayout')
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedVersionLabel = QtGui.QLabel(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedVersionLabel.setObjectName(u'AdvancedVersionLabel')
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedVersionLabel, 0, 0, 1, 1)
|
|
|
|
self.AdvancedVersionComboBox = QtGui.QComboBox(self.AdvancedTab)
|
2009-10-30 17:44:16 +00:00
|
|
|
self.AdvancedVersionComboBox.setSizeAdjustPolicy(
|
|
|
|
QtGui.QComboBox.AdjustToMinimumContentsLength)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedVersionComboBox.setObjectName(u'AdvancedVersionComboBox')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedVersionComboBox, 0, 1, 1, 2)
|
|
|
|
self.AdvancedSecondBibleLabel = QtGui.QLabel(self.AdvancedTab)
|
|
|
|
self.AdvancedSecondBibleLabel.setObjectName(u'AdvancedSecondBibleLabel')
|
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedSecondBibleLabel, 1, 0, 1, 1)
|
|
|
|
self.AdvancedSecondBibleComboBox = QtGui.QComboBox(self.AdvancedTab)
|
2009-10-30 17:44:16 +00:00
|
|
|
self.AdvancedSecondBibleComboBox.setSizeAdjustPolicy(
|
|
|
|
QtGui.QComboBox.AdjustToMinimumContentsLength)
|
|
|
|
self.AdvancedSecondBibleComboBox.setObjectName(
|
|
|
|
u'AdvancedSecondBibleComboBox')
|
|
|
|
self.AdvancedLayout.addWidget(
|
|
|
|
self.AdvancedSecondBibleComboBox, 1, 1, 1, 2)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedBookLabel = QtGui.QLabel(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedBookLabel.setObjectName(u'AdvancedBookLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedBookLabel, 2, 0, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedBookComboBox = QtGui.QComboBox(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedBookComboBox.setObjectName(u'AdvancedBookComboBox')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedBookComboBox, 2, 1, 1, 2)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedChapterLabel = QtGui.QLabel(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedChapterLabel.setObjectName(u'AdvancedChapterLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedChapterLabel, 3, 1, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedVerseLabel = QtGui.QLabel(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedVerseLabel.setObjectName(u'AdvancedVerseLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedVerseLabel, 3, 2, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedFromLabel = QtGui.QLabel(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedFromLabel.setObjectName(u'AdvancedFromLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedFromLabel, 4, 0, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedFromChapter = QtGui.QComboBox(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedFromChapter.setObjectName(u'AdvancedFromChapter')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedFromChapter, 4, 1, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedFromVerse = QtGui.QComboBox(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedFromVerse.setObjectName(u'AdvancedFromVerse')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedFromVerse, 4, 2, 1, 1)
|
|
|
|
self.AdvancedToLabel = QtGui.QLabel(self.AdvancedTab)
|
|
|
|
self.AdvancedToLabel.setObjectName(u'AdvancedToLabel')
|
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedToLabel, 5, 0, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedToChapter = QtGui.QComboBox(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedToChapter.setObjectName(u'AdvancedToChapter')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedToChapter, 5, 1, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedToVerse = QtGui.QComboBox(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedToVerse.setObjectName(u'AdvancedToVerse')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedToVerse, 5, 2, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedClearLabel = QtGui.QLabel(self.QuickTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedClearLabel.setObjectName(u'QuickSearchLabel')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedClearLabel, 6, 0, 1, 1)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.ClearAdvancedSearchComboBox = QtGui.QComboBox(self.QuickTab)
|
2009-09-15 18:56:56 +00:00
|
|
|
self.ClearAdvancedSearchComboBox.setObjectName(
|
|
|
|
u'ClearAdvancedSearchComboBox')
|
|
|
|
self.AdvancedLayout.addWidget(
|
2009-10-18 18:15:20 +00:00
|
|
|
self.ClearAdvancedSearchComboBox, 6, 1, 1, 2)
|
|
|
|
self.AdvancedSearchButtonLayout = QtGui.QHBoxLayout()
|
|
|
|
self.AdvancedSearchButtonLayout.setMargin(0)
|
|
|
|
self.AdvancedSearchButtonLayout.setSpacing(0)
|
2009-10-30 17:44:16 +00:00
|
|
|
self.AdvancedSearchButtonLayout.setObjectName(
|
|
|
|
u'AdvancedSearchButtonLayout')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedSearchButtonSpacer = QtGui.QSpacerItem(40, 20,
|
|
|
|
QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
|
|
|
self.AdvancedSearchButtonLayout.addItem(self.AdvancedSearchButtonSpacer)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedSearchButton = QtGui.QPushButton(self.AdvancedTab)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.AdvancedSearchButton.setObjectName(u'AdvancedSearchButton')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedSearchButtonLayout.addWidget(self.AdvancedSearchButton)
|
2009-10-30 17:44:16 +00:00
|
|
|
self.AdvancedLayout.addLayout(
|
|
|
|
self.AdvancedSearchButtonLayout, 7, 0, 1, 3)
|
2009-10-21 16:54:59 +00:00
|
|
|
self.AdvancedMessage = QtGui.QLabel(self.AdvancedTab)
|
2009-10-12 06:21:17 +00:00
|
|
|
self.AdvancedMessage.setObjectName(u'AdvancedMessage')
|
2009-10-18 18:15:20 +00:00
|
|
|
self.AdvancedLayout.addWidget(self.AdvancedMessage, 8, 0, 1, 3)
|
2009-11-26 18:43:49 +00:00
|
|
|
self.SearchTabWidget.addTab(self.AdvancedTab, self.trUtf8('Advanced'))
|
2009-03-02 21:57:49 +00:00
|
|
|
# Add the search tab widget to the page layout
|
|
|
|
self.PageLayout.addWidget(self.SearchTabWidget)
|
|
|
|
# Combo Boxes
|
2009-03-02 22:12:14 +00:00
|
|
|
QtCore.QObject.connect(self.AdvancedVersionComboBox,
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'activated(int)'), self.onAdvancedVersionComboBox)
|
2009-03-02 22:12:14 +00:00
|
|
|
QtCore.QObject.connect(self.AdvancedBookComboBox,
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'activated(int)'), self.onAdvancedBookComboBox)
|
2009-03-02 22:12:14 +00:00
|
|
|
QtCore.QObject.connect(self.AdvancedFromChapter,
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromChapter)
|
2009-03-02 22:12:14 +00:00
|
|
|
QtCore.QObject.connect(self.AdvancedFromVerse,
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromVerse)
|
2009-03-02 22:12:14 +00:00
|
|
|
QtCore.QObject.connect(self.AdvancedToChapter,
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'activated(int)'), self.onAdvancedToChapter)
|
2009-03-02 21:57:49 +00:00
|
|
|
# Buttons
|
2009-03-02 22:12:14 +00:00
|
|
|
QtCore.QObject.connect(self.AdvancedSearchButton,
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton)
|
2009-03-02 22:12:14 +00:00
|
|
|
QtCore.QObject.connect(self.QuickSearchButton,
|
2009-06-07 16:33:33 +00:00
|
|
|
QtCore.SIGNAL(u'pressed()'), self.onQuickSearchButton)
|
2009-10-17 06:12:38 +00:00
|
|
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
|
|
|
QtCore.SIGNAL(u'config_updated'), self.configUpdated)
|
|
|
|
|
|
|
|
def configUpdated(self):
|
|
|
|
if str_to_bool(
|
2009-10-18 06:26:36 +00:00
|
|
|
self.parent.config.get_config(u'dual bibles', u'False')):
|
2009-10-21 16:54:59 +00:00
|
|
|
self.AdvancedSecondBibleLabel.setVisible(True)
|
2009-10-17 06:12:38 +00:00
|
|
|
self.AdvancedSecondBibleComboBox.setVisible(True)
|
2009-10-21 16:54:59 +00:00
|
|
|
self.QuickSecondVersionLabel.setVisible(True)
|
2009-10-17 06:12:38 +00:00
|
|
|
self.QuickSecondBibleComboBox.setVisible(True)
|
|
|
|
else:
|
2009-10-21 16:54:59 +00:00
|
|
|
self.AdvancedSecondBibleLabel.setVisible(False)
|
2009-10-17 06:12:38 +00:00
|
|
|
self.AdvancedSecondBibleComboBox.setVisible(False)
|
2009-10-21 16:54:59 +00:00
|
|
|
self.QuickSecondVersionLabel.setVisible(False)
|
2009-10-17 06:12:38 +00:00
|
|
|
self.QuickSecondBibleComboBox.setVisible(False)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def retranslateUi(self):
|
2009-04-25 06:11:15 +00:00
|
|
|
log.debug(u'retranslateUi')
|
2009-11-26 18:43:49 +00:00
|
|
|
self.QuickVersionLabel.setText(self.trUtf8('Version:'))
|
|
|
|
self.QuickSecondVersionLabel.setText(self.trUtf8('Dual:'))
|
|
|
|
self.QuickSearchLabel.setText(self.trUtf8('Search Type:'))
|
|
|
|
self.QuickSearchLabel.setText(self.trUtf8('Find:'))
|
|
|
|
self.QuickSearchButton.setText(self.trUtf8('Search'))
|
|
|
|
self.QuickClearLabel.setText(self.trUtf8('Results:'))
|
|
|
|
self.AdvancedVersionLabel.setText(self.trUtf8('Version:'))
|
|
|
|
self.AdvancedSecondBibleLabel.setText(self.trUtf8('Dual:'))
|
|
|
|
self.AdvancedBookLabel.setText(self.trUtf8('Book:'))
|
|
|
|
self.AdvancedChapterLabel.setText(self.trUtf8('Chapter:'))
|
|
|
|
self.AdvancedVerseLabel.setText(self.trUtf8('Verse:'))
|
|
|
|
self.AdvancedFromLabel.setText(self.trUtf8('From:'))
|
|
|
|
self.AdvancedToLabel.setText(self.trUtf8('To:'))
|
|
|
|
self.AdvancedClearLabel.setText(self.trUtf8('Results:'))
|
|
|
|
self.AdvancedSearchButton.setText(self.trUtf8('Search'))
|
|
|
|
self.QuickSearchComboBox.addItem(self.trUtf8('Verse Search'))
|
|
|
|
self.QuickSearchComboBox.addItem(self.trUtf8('Text Search'))
|
|
|
|
self.ClearQuickSearchComboBox.addItem(self.trUtf8('Clear'))
|
|
|
|
self.ClearQuickSearchComboBox.addItem(self.trUtf8('Keep'))
|
|
|
|
self.ClearAdvancedSearchComboBox.addItem(self.trUtf8('Clear'))
|
|
|
|
self.ClearAdvancedSearchComboBox.addItem(self.trUtf8('Keep'))
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def initialise(self):
|
2009-10-08 05:02:39 +00:00
|
|
|
log.debug(u'bible manager initialise')
|
2009-10-27 20:52:30 +00:00
|
|
|
self.parent.biblemanager.media = self
|
2009-11-27 21:54:37 +00:00
|
|
|
self.loadBibles()
|
2009-10-17 06:12:38 +00:00
|
|
|
self.configUpdated()
|
2009-10-08 05:02:39 +00:00
|
|
|
log.debug(u'bible manager initialise complete')
|
2009-08-02 13:44:41 +00:00
|
|
|
|
2009-09-27 07:22:23 +00:00
|
|
|
def setQuickMessage(self, text):
|
2009-10-23 13:17:43 +00:00
|
|
|
self.QuickMessage.setText(text)
|
|
|
|
self.AdvancedMessage.setText(text)
|
2009-11-13 21:24:59 +00:00
|
|
|
Receiver.send_message(u'process_events')
|
2009-08-05 17:59:37 +00:00
|
|
|
#minor delay to get the events processed
|
2009-09-27 07:22:23 +00:00
|
|
|
time.sleep(0.1)
|
2009-03-02 22:12:14 +00:00
|
|
|
|
2009-03-16 17:33:51 +00:00
|
|
|
def loadBibles(self):
|
2009-04-25 06:11:15 +00:00
|
|
|
log.debug(u'Loading Bibles')
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickVersionComboBox.clear()
|
2009-10-09 17:57:15 +00:00
|
|
|
self.QuickSecondBibleComboBox.clear()
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedVersionComboBox.clear()
|
2009-10-09 17:57:15 +00:00
|
|
|
self.AdvancedSecondBibleComboBox.clear()
|
|
|
|
self.QuickSecondBibleComboBox.addItem(u'')
|
|
|
|
self.AdvancedSecondBibleComboBox.addItem(u'')
|
2009-07-13 20:08:43 +00:00
|
|
|
bibles = self.parent.biblemanager.get_bibles(BibleMode.Full)
|
2009-06-07 16:33:33 +00:00
|
|
|
# load bibles into the combo boxes
|
|
|
|
for bible in bibles:
|
2009-03-02 21:57:49 +00:00
|
|
|
self.QuickVersionComboBox.addItem(bible)
|
2009-10-09 17:57:15 +00:00
|
|
|
self.QuickSecondBibleComboBox.addItem(bible)
|
2009-07-13 20:08:43 +00:00
|
|
|
# Without HTTP
|
|
|
|
bibles = self.parent.biblemanager.get_bibles(BibleMode.Partial)
|
2009-03-02 21:57:49 +00:00
|
|
|
first = True
|
2009-06-07 16:33:33 +00:00
|
|
|
# load bibles into the combo boxes
|
|
|
|
for bible in bibles:
|
2009-03-02 21:57:49 +00:00
|
|
|
self.AdvancedVersionComboBox.addItem(bible)
|
2009-10-09 17:57:15 +00:00
|
|
|
self.AdvancedSecondBibleComboBox.addItem(bible)
|
2009-03-02 21:57:49 +00:00
|
|
|
if first:
|
|
|
|
first = False
|
2009-06-07 16:33:33 +00:00
|
|
|
# use the first bible as the trigger
|
|
|
|
self.initialiseBible(bible)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def onAdvancedVersionComboBox(self):
|
2009-09-15 18:56:56 +00:00
|
|
|
self.initialiseBible(
|
|
|
|
unicode(self.AdvancedVersionComboBox.currentText()))
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def onAdvancedBookComboBox(self):
|
2009-10-12 10:18:54 +00:00
|
|
|
item = int(self.AdvancedBookComboBox.currentIndex())
|
2009-09-15 18:56:56 +00:00
|
|
|
self.initialiseChapterVerse(
|
|
|
|
unicode(self.AdvancedVersionComboBox.currentText()),
|
2009-10-12 10:18:54 +00:00
|
|
|
unicode(self.AdvancedBookComboBox.currentText()),
|
|
|
|
self.AdvancedBookComboBox.itemData(item).toInt()[0])
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-09-26 09:11:39 +00:00
|
|
|
def onNewClick(self):
|
2009-12-15 19:37:56 +00:00
|
|
|
#self.bibleimportform = BibleImportForm(
|
|
|
|
# self.parent.config, self.parent.biblemanager, self)
|
|
|
|
#self.bibleimportform.exec_()
|
|
|
|
self.bibleimportform = ImportWizardForm(self, self.parent.config,
|
|
|
|
self.parent.biblemanager, self.parent)
|
2009-03-02 21:57:49 +00:00
|
|
|
self.bibleimportform.exec_()
|
2009-06-05 05:00:26 +00:00
|
|
|
self.reloadBibles()
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def onAdvancedFromVerse(self):
|
|
|
|
frm = self.AdvancedFromVerse.currentText()
|
|
|
|
self.adjustComboBox(frm, self.verses, self.AdvancedToVerse)
|
|
|
|
|
|
|
|
def onAdvancedToChapter(self):
|
2009-10-14 05:08:36 +00:00
|
|
|
text1 = unicode(self.AdvancedFromChapter.currentText())
|
|
|
|
text2 = unicode(self.AdvancedToChapter.currentText())
|
2009-09-25 23:06:54 +00:00
|
|
|
if text1 != text2:
|
2009-06-16 18:21:24 +00:00
|
|
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
|
|
|
book = unicode(self.AdvancedBookComboBox.currentText())
|
2009-06-17 05:11:16 +00:00
|
|
|
# get the verse count for new chapter
|
2009-09-15 18:56:56 +00:00
|
|
|
verses = self.parent.biblemanager.get_book_verse_count(
|
2009-10-14 05:08:36 +00:00
|
|
|
bible, book, int(text2))
|
2009-09-15 18:56:56 +00:00
|
|
|
self.adjustComboBox(1, verses, self.AdvancedToVerse)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def onAdvancedSearchButton(self):
|
2009-03-16 17:33:51 +00:00
|
|
|
log.debug(u'Advanced Search Button pressed')
|
2009-06-16 18:21:24 +00:00
|
|
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
|
|
|
book = unicode(self.AdvancedBookComboBox.currentText())
|
2009-09-21 17:56:36 +00:00
|
|
|
chapter_from = int(self.AdvancedFromChapter.currentText())
|
|
|
|
chapter_to = int(self.AdvancedToChapter.currentText())
|
|
|
|
verse_from = int(self.AdvancedFromVerse.currentText())
|
|
|
|
verse_to = int(self.AdvancedToVerse.currentText())
|
2009-09-15 18:56:56 +00:00
|
|
|
self.search_results = self.parent.biblemanager.get_verse_text(
|
|
|
|
bible, book, chapter_from, chapter_to, verse_from, verse_to)
|
2009-03-02 21:57:49 +00:00
|
|
|
if self.ClearAdvancedSearchComboBox.currentIndex() == 0:
|
2009-06-27 19:55:55 +00:00
|
|
|
self.ListView.clear()
|
2009-06-17 05:11:16 +00:00
|
|
|
self.displayResults(bible)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def onAdvancedFromChapter(self):
|
2009-06-16 18:21:24 +00:00
|
|
|
bible = unicode(self.AdvancedVersionComboBox.currentText())
|
|
|
|
book = unicode(self.AdvancedBookComboBox.currentText())
|
2009-10-14 05:08:36 +00:00
|
|
|
cf = int(self.AdvancedFromChapter.currentText())
|
2009-06-07 16:33:33 +00:00
|
|
|
self.adjustComboBox(cf, self.chapters_from, self.AdvancedToChapter)
|
2009-06-17 05:11:16 +00:00
|
|
|
# get the verse count for new chapter
|
2009-10-14 05:08:36 +00:00
|
|
|
vse = self.parent.biblemanager.get_book_verse_count(bible, book, cf)
|
2009-06-07 16:33:33 +00:00
|
|
|
self.adjustComboBox(1, vse, self.AdvancedFromVerse)
|
|
|
|
self.adjustComboBox(1, vse, self.AdvancedToVerse)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def onQuickSearchButton(self):
|
2009-03-16 17:33:51 +00:00
|
|
|
log.debug(u'Quick Search Button pressed')
|
2009-06-16 18:21:24 +00:00
|
|
|
bible = unicode(self.QuickVersionComboBox.currentText())
|
|
|
|
text = unicode(self.QuickSearchEdit.displayText())
|
2009-03-02 21:57:49 +00:00
|
|
|
if self.ClearQuickSearchComboBox.currentIndex() == 0:
|
2009-06-27 19:55:55 +00:00
|
|
|
self.ListView.clear()
|
2009-03-06 07:18:30 +00:00
|
|
|
if self.QuickSearchComboBox.currentIndex() == 1:
|
2009-09-06 13:57:32 +00:00
|
|
|
self.search_results = self.parent.biblemanager.get_verse_from_text(
|
|
|
|
bible, text)
|
2009-03-02 21:57:49 +00:00
|
|
|
else:
|
|
|
|
self.searchByReference(bible, text)
|
2009-11-03 19:01:53 +00:00
|
|
|
if self.search_results:
|
2009-03-02 21:57:49 +00:00
|
|
|
self.displayResults(bible)
|
|
|
|
|
2009-05-02 18:56:27 +00:00
|
|
|
def generateSlideData(self, service_item):
|
2009-06-08 05:04:06 +00:00
|
|
|
log.debug(u'generating slide data')
|
2009-06-27 19:55:55 +00:00
|
|
|
items = self.ListView.selectedIndexes()
|
2009-09-06 13:57:32 +00:00
|
|
|
if len(items) == 0:
|
2009-08-31 21:53:35 +00:00
|
|
|
return False
|
2009-05-17 15:24:02 +00:00
|
|
|
old_chapter = u''
|
2009-08-31 18:27:36 +00:00
|
|
|
raw_slides = []
|
2009-05-02 18:56:27 +00:00
|
|
|
raw_footer = []
|
2009-05-17 15:24:02 +00:00
|
|
|
bible_text = u''
|
2009-03-02 21:57:49 +00:00
|
|
|
for item in items:
|
2009-09-21 17:56:36 +00:00
|
|
|
bitem = self.ListView.item(item.row())
|
2009-06-17 05:11:16 +00:00
|
|
|
text = unicode((bitem.data(QtCore.Qt.UserRole)).toString())
|
2009-10-09 17:57:15 +00:00
|
|
|
search_verse = text[:text.find(u'(')]
|
2009-07-13 20:08:43 +00:00
|
|
|
bible = text[text.find(u'(') + 1:-1]
|
2009-10-09 17:57:15 +00:00
|
|
|
self.searchByReference(bible, search_verse)
|
2009-07-13 20:08:43 +00:00
|
|
|
book = self.search_results[0].book.name
|
|
|
|
chapter = unicode(self.search_results[0].chapter)
|
|
|
|
verse = unicode(self.search_results[0].verse)
|
|
|
|
text = self.search_results[0].text
|
2009-10-09 12:48:22 +00:00
|
|
|
if self.parent.settings_tab.display_style == 1:
|
2009-06-16 18:21:24 +00:00
|
|
|
loc = self.formatVerse(old_chapter, chapter, verse, u'(u', u')')
|
2009-10-09 12:48:22 +00:00
|
|
|
elif self.parent.settings_tab.display_style == 2:
|
2009-03-06 07:18:30 +00:00
|
|
|
loc = self.formatVerse(old_chapter, chapter, verse, u'{', u'}')
|
2009-10-09 12:48:22 +00:00
|
|
|
elif self.parent.settings_tab.display_style == 3:
|
2009-03-06 07:18:30 +00:00
|
|
|
loc = self.formatVerse(old_chapter, chapter, verse, u'[', u']')
|
2009-03-02 21:57:49 +00:00
|
|
|
else:
|
2009-03-06 07:18:30 +00:00
|
|
|
loc = self.formatVerse(old_chapter, chapter, verse, u'', u'')
|
|
|
|
old_chapter = chapter
|
2009-10-09 17:57:15 +00:00
|
|
|
footer = u'%s (%s %s)' % (book, self.version, self.copyright)
|
2009-07-23 05:17:26 +00:00
|
|
|
#If not found throws and error so add.s
|
2009-07-12 14:56:06 +00:00
|
|
|
try:
|
|
|
|
raw_footer.index(footer)
|
|
|
|
except:
|
|
|
|
raw_footer.append(footer)
|
2009-10-09 17:57:15 +00:00
|
|
|
#If we want to use a 2nd translation / version
|
|
|
|
bible2 = u''
|
|
|
|
if self.SearchTabWidget.currentIndex() == 0:
|
|
|
|
bible2 = unicode(self.QuickSecondBibleComboBox.currentText())
|
|
|
|
else:
|
|
|
|
bible2 = unicode(self.AdvancedSecondBibleComboBox.currentText())
|
|
|
|
if len(bible2) > 0:
|
|
|
|
self.searchByReference(bible2, search_verse)
|
|
|
|
footer = u'%s (%s %s)' % (book, self.version, self.copyright)
|
|
|
|
#If not found throws and error so add.s
|
|
|
|
try:
|
|
|
|
raw_footer.index(footer)
|
|
|
|
except:
|
|
|
|
raw_footer.append(footer)
|
|
|
|
bible_text = u'%s %s \n\n\n %s %s)' % \
|
|
|
|
(loc, text, loc, self.search_results[0].text)
|
|
|
|
raw_slides.append(bible_text)
|
|
|
|
bible_text = u''
|
|
|
|
else:
|
|
|
|
#Paragraph style force new line per verse
|
|
|
|
if self.parent.settings_tab.layout_style == 1:
|
|
|
|
text = text + u'\n\n'
|
|
|
|
bible_text = u'%s %s %s' % (bible_text, loc, text)
|
|
|
|
#if we are verse per slide then create slide
|
|
|
|
if self.parent.settings_tab.layout_style == 0:
|
|
|
|
raw_slides.append(bible_text)
|
|
|
|
bible_text = u''
|
|
|
|
service_item.title = u'%s %s' % (book, loc)
|
|
|
|
|
2009-10-09 12:48:22 +00:00
|
|
|
if len(self.parent.settings_tab.bible_theme) == 0:
|
2009-05-18 16:11:59 +00:00
|
|
|
service_item.theme = None
|
|
|
|
else:
|
2009-10-09 12:48:22 +00:00
|
|
|
service_item.theme = self.parent.settings_tab.bible_theme
|
2009-07-23 05:17:26 +00:00
|
|
|
#if we are verse per slide we have already been added
|
2009-10-09 12:48:22 +00:00
|
|
|
if self.parent.settings_tab.layout_style != 0:
|
2009-07-23 05:17:26 +00:00
|
|
|
raw_slides.append(bible_text)
|
2009-06-05 19:00:57 +00:00
|
|
|
for slide in raw_slides:
|
|
|
|
service_item.add_from_text(slide[:30], slide)
|
2009-05-17 15:24:02 +00:00
|
|
|
service_item.raw_footer = raw_footer
|
2009-08-31 21:53:35 +00:00
|
|
|
return True
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-03-06 07:18:30 +00:00
|
|
|
def formatVerse(self, old_chapter, chapter, verse, opening, closing):
|
2009-03-02 21:57:49 +00:00
|
|
|
loc = opening
|
2009-03-06 18:00:52 +00:00
|
|
|
if old_chapter != chapter:
|
|
|
|
loc += chapter + u':'
|
2009-10-09 12:48:22 +00:00
|
|
|
elif not self.parent.settings_tab.show_new_chapters:
|
2009-04-25 06:11:15 +00:00
|
|
|
loc += chapter + u':'
|
2009-03-02 21:57:49 +00:00
|
|
|
loc += verse
|
|
|
|
loc += closing
|
|
|
|
return loc
|
|
|
|
|
|
|
|
def reloadBibles(self):
|
2009-03-16 17:33:51 +00:00
|
|
|
log.debug(u'Reloading Bibles')
|
2009-03-02 22:12:14 +00:00
|
|
|
self.parent.biblemanager.reload_bibles()
|
2009-03-07 06:59:08 +00:00
|
|
|
self.loadBibles()
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def initialiseBible(self, bible):
|
2009-06-07 16:33:33 +00:00
|
|
|
log.debug(u'initialiseBible %s', bible)
|
2009-10-12 10:18:54 +00:00
|
|
|
book_data = self.parent.biblemanager.get_bible_books()
|
2009-06-05 05:00:26 +00:00
|
|
|
self.AdvancedBookComboBox.clear()
|
|
|
|
first = True
|
2009-10-12 10:18:54 +00:00
|
|
|
for book in book_data:
|
|
|
|
row = self.AdvancedBookComboBox.count()
|
|
|
|
self.AdvancedBookComboBox.addItem(book[u'book'])
|
2009-10-30 17:44:16 +00:00
|
|
|
self.AdvancedBookComboBox.setItemData(
|
|
|
|
row, QtCore.QVariant(book[u'total']))
|
2009-06-05 05:00:26 +00:00
|
|
|
if first:
|
|
|
|
first = False
|
2009-10-30 17:44:16 +00:00
|
|
|
self.initialiseChapterVerse(
|
|
|
|
bible, book[u'book'], book[u'total'])
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-10-12 10:18:54 +00:00
|
|
|
def initialiseChapterVerse(self, bible, book, chapters):
|
2009-09-21 23:11:50 +00:00
|
|
|
log.debug(u'initialiseChapterVerse %s, %s', bible, book)
|
2009-10-12 10:18:54 +00:00
|
|
|
self.chapters_from = chapters
|
2009-09-06 13:57:32 +00:00
|
|
|
self.verses = self.parent.biblemanager.get_book_verse_count(bible,
|
|
|
|
book, 1)
|
2009-10-12 10:18:54 +00:00
|
|
|
if self.verses == 0:
|
|
|
|
self.AdvancedSearchButton.setEnabled(False)
|
2009-11-26 18:43:49 +00:00
|
|
|
self.AdvancedMessage.setText(self.trUtf8('Bible not fully loaded'))
|
2009-10-12 10:18:54 +00:00
|
|
|
else:
|
|
|
|
self.AdvancedSearchButton.setEnabled(True)
|
|
|
|
self.AdvancedMessage.setText(u'')
|
|
|
|
self.adjustComboBox(1, self.chapters_from, self.AdvancedFromChapter)
|
|
|
|
self.adjustComboBox(1, self.chapters_from, self.AdvancedToChapter)
|
|
|
|
self.adjustComboBox(1, self.verses, self.AdvancedFromVerse)
|
|
|
|
self.adjustComboBox(1, self.verses, self.AdvancedToVerse)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-10-12 10:18:54 +00:00
|
|
|
def adjustComboBox(self, range_from, range_to, combo):
|
|
|
|
log.debug(u'adjustComboBox %s, %s, %s', combo, range_from, range_to)
|
2009-03-02 21:57:49 +00:00
|
|
|
combo.clear()
|
2009-10-12 10:18:54 +00:00
|
|
|
for i in range(int(range_from), int(range_to) + 1):
|
2009-06-16 18:21:24 +00:00
|
|
|
combo.addItem(unicode(i))
|
2009-03-02 21:57:49 +00:00
|
|
|
|
|
|
|
def displayResults(self, bible):
|
2009-09-21 17:56:36 +00:00
|
|
|
for count, verse in enumerate(self.search_results):
|
2009-07-13 20:08:43 +00:00
|
|
|
bible_text = u' %s %d:%d (%s)' % (verse.book.name,
|
|
|
|
verse.chapter, verse.verse, bible)
|
2009-06-17 05:11:16 +00:00
|
|
|
bible_verse = QtGui.QListWidgetItem(bible_text)
|
2009-07-13 20:08:43 +00:00
|
|
|
bible_verse.setData(QtCore.Qt.UserRole,
|
|
|
|
QtCore.QVariant(bible_text))
|
2009-06-27 19:55:55 +00:00
|
|
|
self.ListView.addItem(bible_verse)
|
2009-11-03 19:01:53 +00:00
|
|
|
row = self.ListView.setCurrentRow(count)
|
|
|
|
if row:
|
|
|
|
row.setSelected(True)
|
2009-03-02 21:57:49 +00:00
|
|
|
|
2009-09-21 17:56:36 +00:00
|
|
|
def searchByReference(self, bible, search):
|
2009-09-21 23:11:50 +00:00
|
|
|
log.debug(u'searchByReference %s, %s', bible, search)
|
2009-08-31 18:27:36 +00:00
|
|
|
book = u''
|
|
|
|
start_chapter = u''
|
|
|
|
end_chapter = u''
|
|
|
|
start_verse = u''
|
|
|
|
end_verse = u''
|
2009-06-08 05:04:06 +00:00
|
|
|
search = search.replace(u' ', u' ').strip()
|
2009-09-25 23:06:54 +00:00
|
|
|
#original = search
|
2009-03-02 21:57:49 +00:00
|
|
|
message = None
|
2009-06-07 18:39:31 +00:00
|
|
|
# Remove book beware 0 index arrays
|
|
|
|
for i in range (len(search)-1, 0, - 1):
|
2009-08-31 18:27:36 +00:00
|
|
|
if search[i] == u' ':
|
2009-03-02 21:57:49 +00:00
|
|
|
book = search[:i]
|
2009-06-07 18:39:31 +00:00
|
|
|
# remove book from string
|
|
|
|
search = search[i:]
|
2009-03-02 21:57:49 +00:00
|
|
|
break
|
2009-06-07 18:39:31 +00:00
|
|
|
# allow V or v for verse instead of :
|
|
|
|
search = search.replace(u'v', ':')
|
|
|
|
search = search.replace(u'V', ':')
|
2009-03-02 21:57:49 +00:00
|
|
|
search = search.strip()
|
2009-06-07 16:33:33 +00:00
|
|
|
colon = search.find(u':')
|
2009-03-02 21:57:49 +00:00
|
|
|
if colon == -1:
|
|
|
|
# number : found
|
2009-06-07 16:33:33 +00:00
|
|
|
i = search.rfind(u' ')
|
2009-03-02 21:57:49 +00:00
|
|
|
if i == -1:
|
2009-08-31 18:27:36 +00:00
|
|
|
chapter = u''
|
2009-03-02 21:57:49 +00:00
|
|
|
else:
|
|
|
|
chapter = search[i:len(search)]
|
2009-06-07 16:33:33 +00:00
|
|
|
hyphen = chapter.find(u'-')
|
2009-03-02 21:57:49 +00:00
|
|
|
if hyphen != -1:
|
|
|
|
start_chapter= chapter[:hyphen]
|
|
|
|
end_chapter= chapter[hyphen + 1:len(chapter)]
|
|
|
|
else:
|
|
|
|
start_chapter = chapter
|
|
|
|
else:
|
|
|
|
# more complex
|
2009-06-07 16:33:33 +00:00
|
|
|
sp = search.split(u'-') #find first
|
|
|
|
sp1 = sp[0].split(u':')
|
2009-03-02 21:57:49 +00:00
|
|
|
if len(sp1) == 1:
|
|
|
|
start_chapter = sp1[0]
|
|
|
|
start_verse = 1
|
|
|
|
else:
|
|
|
|
start_chapter = sp1[0]
|
|
|
|
start_verse = sp1[1]
|
|
|
|
if len(sp)== 1:
|
|
|
|
end_chapter = start_chapter
|
|
|
|
end_verse = start_verse
|
|
|
|
else:
|
2009-06-07 16:33:33 +00:00
|
|
|
sp1 = sp[1].split(u':')
|
2009-03-02 21:57:49 +00:00
|
|
|
if len(sp1) == 1:
|
2009-06-07 18:39:31 +00:00
|
|
|
end_chapter = start_chapter
|
2009-09-21 17:56:36 +00:00
|
|
|
end_verse = sp1[0]
|
2009-03-02 21:57:49 +00:00
|
|
|
else:
|
|
|
|
end_chapter = sp1[0]
|
|
|
|
end_verse = sp1[1]
|
2009-08-31 18:27:36 +00:00
|
|
|
if end_chapter == u'':
|
2009-03-02 21:57:49 +00:00
|
|
|
end_chapter = start_chapter.rstrip()
|
2009-08-31 18:27:36 +00:00
|
|
|
if start_verse == u'':
|
|
|
|
if end_verse == u'':
|
2009-03-02 21:57:49 +00:00
|
|
|
start_verse = 1
|
|
|
|
else:
|
|
|
|
start_verse = end_verse
|
2009-08-31 18:27:36 +00:00
|
|
|
if end_verse == u'':
|
2009-03-02 21:57:49 +00:00
|
|
|
end_verse = 99
|
2009-08-31 18:27:36 +00:00
|
|
|
if start_chapter == u'':
|
2009-11-26 18:43:49 +00:00
|
|
|
message = self.trUtf8('No chapter found for search criteria')
|
2009-08-31 18:27:36 +00:00
|
|
|
log.debug(u'results = %s @ %s : %s @ %s : %s'% \
|
2009-09-06 13:57:32 +00:00
|
|
|
(unicode(book), unicode(start_chapter), unicode(end_chapter),
|
|
|
|
unicode(start_verse), unicode(end_verse)))
|
2009-09-25 23:06:54 +00:00
|
|
|
if message is None:
|
2009-03-02 21:57:49 +00:00
|
|
|
self.search_results = None
|
2009-09-06 13:57:32 +00:00
|
|
|
self.search_results = self.parent.biblemanager.get_verse_text(
|
|
|
|
bible, book, int(start_chapter), int(end_chapter),
|
|
|
|
int(start_verse), int(end_verse))
|
|
|
|
self.copyright = unicode(self.parent.biblemanager.get_meta_data(
|
|
|
|
bible, u'Copyright').value)
|
|
|
|
self.permissions = unicode(self.parent.biblemanager.get_meta_data(
|
|
|
|
bible, u'Permissions').value)
|
|
|
|
self.version = unicode(self.parent.biblemanager.get_meta_data(
|
|
|
|
bible, u'Version').value)
|
2009-03-02 21:57:49 +00:00
|
|
|
else:
|
2009-10-23 13:17:43 +00:00
|
|
|
QtGui.QMessageBox.information(
|
2009-11-26 18:43:49 +00:00
|
|
|
self, self.trUtf8('Information'), message)
|