From 1dcd0623f12fb2f10385ce7b7cc42cab7d793b57 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 7 Jun 2009 17:33:33 +0100 Subject: [PATCH 1/2] Bug fixes for errors in search Code Cleanups while in the code. --- openlp/core/lib/mediamanageritem.py | 2 +- .../plugins/bibles/forms/bibleimportform.py | 144 ++++++++------ openlp/plugins/bibles/lib/mediaitem.py | 179 +++++++++--------- 3 files changed, 171 insertions(+), 154 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 56f59d1d6..b8217e899 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -92,7 +92,7 @@ class MediaManagerItem(QtGui.QWidget): """ if type(icon) is QtGui.QIcon: ButtonIcon = icon - elif type(icon) is types.StringType: + elif type(icon) is types.StringType or type(icon) is types.UnicodeType: ButtonIcon = QtGui.QIcon() if icon.startswith(u':/'): ButtonIcon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index 2f498538e..3df4154b3 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 -""" +''' OpenLP - Open Source Lyrics Projection Copyright (c) 2008 Raoul Snyman Portions copyright (c) 2008 - 2009 Martin Thompson, Tim Bentley @@ -16,7 +16,7 @@ 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 -""" +''' import sys import os, os.path import sys @@ -31,15 +31,15 @@ from openlp.core.lib import Receiver, translate class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): global log - log=logging.getLogger("BibleImportForm") - log.info("BibleImportForm loaded") - """ + log=logging.getLogger(u'BibleImportForm') + log.info(u'BibleImportForm loaded') + ''' Class documentation goes here. - """ + ''' def __init__(self, config, biblemanager , bibleplugin, parent = None): - """ + ''' Constructor - """ + ''' QtGui.QDialog.__init__(self, parent) self.setupUi(self) self.biblemanager = biblemanager @@ -47,58 +47,72 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.bibleplugin = bibleplugin self.bible_type = None self.barmax = 0 - self.AddressEdit.setText(self.config.get_config("proxy_address", "")) - self.UsernameEdit.setText(self.config.get_config("proxy_username", "")) - self.PasswordEdit.setText(self.config.get_config("proxy_password","")) + self.AddressEdit.setText(self.config.get_config(u'proxy_address', u'')) + self.UsernameEdit.setText(self.config.get_config(u'proxy_username',u'')) + self.PasswordEdit.setText(self.config.get_config(u'proxy_password',u'')) filepath = os.path.split(os.path.abspath(__file__))[0] - filepath = os.path.abspath(os.path.join(filepath, '..', 'resources','crosswalkbooks.csv')) + filepath = os.path.abspath(os.path.join(filepath, u'..', + u'resources',u'crosswalkbooks.csv')) fbibles=open(filepath, 'r') self.bible_versions = {} self.BibleComboBox.clear() - self.BibleComboBox.addItem("") + self.BibleComboBox.addItem(u'') for line in fbibles: - p = line.split(",") - self.bible_versions[p[0]] = p[1].replace('\n', '') + p = line.split(u',') + self.bible_versions[p[0]] = p[1].replace(u'\n', u'') self.BibleComboBox.addItem(str(p[0])) #Combo Boxes - QtCore.QObject.connect(self.LocationComboBox, QtCore.SIGNAL("activated(int)"), self.onLocationComboBoxSelected) - QtCore.QObject.connect(self.BibleComboBox, QtCore.SIGNAL("activated(int)"), self.onBibleComboBoxSelected) + QtCore.QObject.connect(self.LocationComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onLocationComboBoxSelected) + QtCore.QObject.connect(self.BibleComboBox, + QtCore.SIGNAL(u'activated(int)'), self.onBibleComboBoxSelected) #Buttons - QtCore.QObject.connect(self.ImportButton, QtCore.SIGNAL("pressed()"), self.onImportButtonClicked) - QtCore.QObject.connect(self.CancelButton, QtCore.SIGNAL("pressed()"), self.onCancelButtonClicked) - QtCore.QObject.connect(self.VersesFileButton, QtCore.SIGNAL("pressed()"), self.onVersesFileButtonClicked) - QtCore.QObject.connect(self.BooksFileButton, QtCore.SIGNAL("pressed()"), self.onBooksFileButtonClicked) - QtCore.QObject.connect(self.OsisFileButton, QtCore.SIGNAL("pressed()"), self.onOsisFileButtonClicked) + QtCore.QObject.connect(self.ImportButton, + QtCore.SIGNAL(u'pressed()'), self.onImportButtonClicked) + QtCore.QObject.connect(self.CancelButton, + QtCore.SIGNAL(u'pressed()'), self.onCancelButtonClicked) + QtCore.QObject.connect(self.VersesFileButton, + QtCore.SIGNAL(u'pressed()'), self.onVersesFileButtonClicked) + QtCore.QObject.connect(self.BooksFileButton, + QtCore.SIGNAL(u'pressed()'), self.onBooksFileButtonClicked) + QtCore.QObject.connect(self.OsisFileButton, + QtCore.SIGNAL(u'pressed()'), self.onOsisFileButtonClicked) #Lost Focus - QtCore.QObject.connect(self.OSISLocationEdit, QtCore.SIGNAL("lostFocus()"), self.onOSISLocationEditLostFocus) - QtCore.QObject.connect(self.BooksLocationEdit, QtCore.SIGNAL("lostFocus()"),self.onBooksLocationEditLostFocus) - QtCore.QObject.connect(self.VerseLocationEdit, QtCore.SIGNAL("lostFocus()"), self.onVerseLocationEditLostFocus) - QtCore.QObject.connect(self.AddressEdit, QtCore.SIGNAL("lostFocus()"), self.onProxyAddressEditLostFocus) - QtCore.QObject.connect(self.UsernameEdit, QtCore.SIGNAL("lostFocus()"), self.onProxyUsernameEditLostFocus) - QtCore.QObject.connect(self.PasswordEdit, QtCore.SIGNAL("lostFocus()"), self.onProxyPasswordEditLostFocus) + QtCore.QObject.connect(self.OSISLocationEdit, + QtCore.SIGNAL(u'lostFocus()'), self.onOSISLocationEditLostFocus) + QtCore.QObject.connect(self.BooksLocationEdit, + QtCore.SIGNAL(u'lostFocus()'),self.onBooksLocationEditLostFocus) + QtCore.QObject.connect(self.VerseLocationEdit, + QtCore.SIGNAL(u'lostFocus()'), self.onVerseLocationEditLostFocus) + QtCore.QObject.connect(self.AddressEdit, + QtCore.SIGNAL(u'lostFocus()'), self.onProxyAddressEditLostFocus) + QtCore.QObject.connect(self.UsernameEdit, + QtCore.SIGNAL(u'lostFocus()'), self.onProxyUsernameEditLostFocus) + QtCore.QObject.connect(self.PasswordEdit, + QtCore.SIGNAL(u'lostFocus()'), self.onProxyPasswordEditLostFocus) def onVersesFileButtonClicked(self): - filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file',self.config.get_last_dir(1)) - if filename != "": + filename = QtGui.QFileDialog.getOpenFileName(self, u'Open file',self.config.get_last_dir(1)) + if filename != u'': self.VerseLocationEdit.setText(filename) self.config.set_last_dir(filename, 1) self.setCsv() def onBooksFileButtonClicked(self): - filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file',self.config.get_last_dir(2)) - if filename != "": + filename = QtGui.QFileDialog.getOpenFileName(self, u'Open file',self.config.get_last_dir(2)) + if filename != u'': self.BooksLocationEdit.setText(filename) self.config.set_last_dir(filename, 2) self.setCsv() def onOsisFileButtonClicked(self): - filename = QtGui.QFileDialog.getOpenFileName(self, 'Open file',self.config.get_last_dir(3)) - if filename != "": + filename = QtGui.QFileDialog.getOpenFileName(self, u'Open file',self.config.get_last_dir(3)) + if filename != u'': self.OSISLocationEdit.setText(filename) self.config.set_last_dir(filename, 3) self.setOsis() @@ -108,7 +122,7 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.setOsis() else: # Was OSIS and is not any more stops lostFocus running mad - if self.bible_type == "OSIS": + if self.bible_type == u'OSIS': self.bible_type = None self.freeAll() @@ -119,13 +133,13 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.checkOsis() def onProxyAddressEditLostFocus(self): - self.config.set_config("proxy_address", str(self.AddressEdit.displayText())) + self.config.set_config(u'proxy_address', str(self.AddressEdit.displayText())) def onProxyUsernameEditLostFocus(self): - self.config.set_config("proxy_username", str(self.UsernameEdit.displayText())) + self.config.set_config(u'proxy_username', str(self.UsernameEdit.displayText())) def onProxyPasswordEditLostFocus(self): - self.config.set_config("proxy_password", str(self.PasswordEdit.displayText())) + self.config.set_config(u'proxy_password', str(self.PasswordEdit.displayText())) def onLocationComboBoxSelected(self): self.checkHttp() @@ -136,49 +150,51 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): def onCancelButtonClicked(self): # tell import to stop - Receiver().send_message("openlpstopimport") + self.message = u'Bible import stopped' + Receiver().send_message(u'openlpstopimport') # tell bibleplugin to reload the bibles - Receiver().send_message("openlpreloadbibles") + Receiver().send_message(u'openlpreloadbibles') self.close() def onImportButtonClicked(self): + self.message = u'Bible import completed' if self.biblemanager != None: if not self.bible_type == None and len(self.BibleNameEdit.displayText()) > 0: - self.MessageLabel.setText("Import Started") + self.MessageLabel.setText(u'Import Started') self.ProgressBar.setMinimum(0) self.setMax(65) self.ProgressBar.setValue(0) self.biblemanager.process_dialog(self) self.importBible() - self.MessageLabel.setText("Import Complete") + self.MessageLabel.setText(u'Import Complete') self.ProgressBar.setValue(self.barmax) # tell bibleplugin to reload the bibles - Receiver().send_message("openlpreloadbibles") - message = u'Bible import completered' + Receiver().send_message(u'openlpreloadbibles') reply = QtGui.QMessageBox.information(self, translate(u'BibleMediaItem', u'Information'), - translate(u'BibleMediaItem', message)) + translate(u'BibleMediaItem', self.message)) def setMax(self, max): - log.debug("set Max %s", max) + log.debug(u'set Max %s', max) self.barmax = max self.ProgressBar.setMaximum(max) def incrementProgressBar(self, text ): - log.debug("IncrementBar %s", text) - self.MessageLabel.setText("Import processing " + text) + log.debug(u'IncrementBar %s', text) + self.MessageLabel.setText(u'Import processing ' + text) self.ProgressBar.setValue(self.ProgressBar.value()+1) def importBible(self): - log.debug("Import Bible ") - if self.bible_type == "OSIS": + log.debug(u'Import Bible ') + if self.bible_type == u'OSIS': loaded = self.biblemanager.register_osis_file_bible(str(self.BibleNameEdit.displayText()), self.OSISLocationEdit.displayText()) - elif self.bible_type == "CSV": + elif self.bible_type == u'CSV': loaded = self.biblemanager.register_csv_file_bible(str(self.BibleNameEdit.displayText()), self.BooksLocationEdit.displayText(), self.VerseLocationEdit.displayText()) else: - self.setMax(1) # set a value as it will not be needed + # set a value as it will not be needed + self.setMax(1) bible = self.bible_versions[str(self.BibleComboBox.currentText())] loaded = self.biblemanager.register_http_bible(str(self.BibleComboBox.currentText()), \ str(self.LocationComboBox.currentText()), \ @@ -192,15 +208,17 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): str(self.CopyrightEdit.displayText()), str(self.PermisionEdit.displayText())) self.bible_type = None - self.freeAll() # free the screen state restrictions - self.resetAll() # reset all the screen fields + # free the screen state restrictions + self.freeAll() + # reset all the screen fields + self.resetAll() def checkOsis(self): if len(self.BooksLocationEdit.displayText()) > 0 or len(self.VerseLocationEdit.displayText()) > 0: self.setCsv() else: # Was CSV and is not any more stops lostFocus running mad - if self.bible_type == "CSV": + if self.bible_type == u'CSV': self.bible_type = None self.freeAll() @@ -209,7 +227,7 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.setHttp() else: # Was HTTP and is not any more stops lostFocus running mad - if self.bible_type == "HTTP": + if self.bible_type == u'HTTP': self.bible_type = None self.freeAll() @@ -220,7 +238,7 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.VersesFileButton.setEnabled(False) def setCsv(self): - self.bible_type = "CSV" + self.bible_type = u'CSV' self.BooksLocationEdit.setReadOnly(False) self.VerseLocationEdit.setReadOnly(False) self.BooksFileButton.setEnabled(True) @@ -229,7 +247,7 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.blockHttp() def setOsis(self): - self.bible_type = "OSIS" + self.bible_type = 'OSIS' self.OSISLocationEdit.setReadOnly(False) self.OsisFileButton.setEnabled(True) self.blockCsv() @@ -240,7 +258,7 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.OsisFileButton.setEnabled(False) def setHttp(self): - self.bible_type = "HTTP" + self.bible_type = u'HTTP' self.LocationComboBox.setEnabled(True) self.BibleComboBox.setEnabled(True) self.blockCsv() @@ -262,9 +280,9 @@ class BibleImportForm(QtGui.QDialog, Ui_BibleImportDialog): self.BibleComboBox.setEnabled(True) def resetAll(self): - self.BooksLocationEdit.setText("") - self.VerseLocationEdit.setText("") - self.OSISLocationEdit.setText("") - self.BibleNameEdit.setText("") + self.BooksLocationEdit.setText(u'') + self.VerseLocationEdit.setText(u'') + self.OSISLocationEdit.setText(u'') + self.BibleNameEdit.setText(u'') self.LocationComboBox.setCurrentIndex(0) self.BibleComboBox.setCurrentIndex(0) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 8b2440e8c..d287c447e 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -61,7 +61,7 @@ class BibleMediaItem(MediaManagerItem): MediaManagerItem.__init__(self, parent, icon, title) self.search_results = {} # place to store the search results QtCore.QObject.connect(Receiver().get_receiver(), - QtCore.SIGNAL("openlpreloadbibles"), self.reloadBibles) + QtCore.SIGNAL(u'openlpreloadbibles'), self.reloadBibles) def setupUi(self): # Add a toolbar @@ -69,27 +69,27 @@ class BibleMediaItem(MediaManagerItem): # Create buttons for the toolbar ## New Bible Button ## self.addToolbarButton( - translate(u'BibleMediaItem','New Bible'), - translate(u'BibleMediaItem','Register a new Bible'), - ':/themes/theme_import.png', self.onBibleNewClick, 'BibleNewItem') + translate(u'BibleMediaItem',u'New Bible'), + translate(u'BibleMediaItem',u'Register a new Bible'), + u':/themes/theme_import.png', self.onBibleNewClick, u'BibleNewItem') ## Separator Line ## self.addToolbarSeparator() ## Preview Bible Button ## self.addToolbarButton( - translate(u'BibleMediaItem','Preview Bible'), - translate(u'BibleMediaItem','Preview the selected Bible Verse'), - ':/system/system_preview.png', self.onBiblePreviewClick, 'BiblePreviewItem') + translate(u'BibleMediaItem',u'Preview Bible'), + translate(u'BibleMediaItem',u'Preview the selected Bible Verse'), + u':/system/system_preview.png', self.onBiblePreviewClick, u'BiblePreviewItem') ## Live Bible Button ## self.addToolbarButton( - translate(u'BibleMediaItem','Go Live'), - translate(u'BibleMediaItem','Send the selected Bible Verse(s) live'), - ':/system/system_live.png', self.onBibleLiveClick, 'BibleLiveItem') + translate(u'BibleMediaItem',u'Go Live'), + translate(u'BibleMediaItem',u'Send the selected Bible Verse(s) live'), + u':/system/system_live.png', self.onBibleLiveClick, u'BibleLiveItem') ## Add Bible Button ## self.addToolbarButton( - translate(u'BibleMediaItem','Add Bible Verse(s) To Service'), - translate(u'BibleMediaItem','Add the selected Bible(s) to the service'), - ':/system/system_add.png', - self.onBibleAddClick, 'BibleAddItem') + translate(u'BibleMediaItem',u'Add Bible Verse(s) To Service'), + translate(u'BibleMediaItem',u'Add the selected Bible(s) to the service'), + u':/system/system_add.png', + self.onBibleAddClick, u'BibleAddItem') # Create the tab widget self.SearchTabWidget = QtGui.QTabWidget(self) @@ -98,41 +98,41 @@ class BibleMediaItem(MediaManagerItem): sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.SearchTabWidget.sizePolicy().hasHeightForWidth()) self.SearchTabWidget.setSizePolicy(sizePolicy) - self.SearchTabWidget.setObjectName('SearchTabWidget') + self.SearchTabWidget.setObjectName(u'SearchTabWidget') # Add the Quick Search tab self.QuickTab = QtGui.QWidget() - self.QuickTab.setObjectName('QuickTab') + self.QuickTab.setObjectName(u'QuickTab') self.QuickLayout = QtGui.QGridLayout(self.QuickTab) self.QuickLayout.setMargin(8) self.QuickLayout.setSpacing(8) - self.QuickLayout.setObjectName('QuickLayout') + self.QuickLayout.setObjectName(u'QuickLayout') self.QuickVersionLabel = QtGui.QLabel(self.QuickTab) - self.QuickVersionLabel.setObjectName('QuickVersionLabel') + self.QuickVersionLabel.setObjectName(u'QuickVersionLabel') self.QuickLayout.addWidget(self.QuickVersionLabel, 0, 0, 1, 1) self.QuickVersionComboBox = QtGui.QComboBox(self.QuickTab) - self.QuickVersionComboBox.setObjectName('VersionComboBox') + self.QuickVersionComboBox.setObjectName(u'VersionComboBox') self.QuickLayout.addWidget(self.QuickVersionComboBox, 0, 1, 1, 2) self.QuickSearchLabel = QtGui.QLabel(self.QuickTab) - self.QuickSearchLabel.setObjectName('QuickSearchLabel') + self.QuickSearchLabel.setObjectName(u'QuickSearchLabel') self.QuickLayout.addWidget(self.QuickSearchLabel, 1, 0, 1, 1) self.QuickSearchComboBox = QtGui.QComboBox(self.QuickTab) - self.QuickSearchComboBox.setObjectName('SearchComboBox') + self.QuickSearchComboBox.setObjectName(u'SearchComboBox') self.QuickLayout.addWidget(self.QuickSearchComboBox, 1, 1, 1, 2) self.QuickSearchLabel = QtGui.QLabel(self.QuickTab) - self.QuickSearchLabel.setObjectName('QuickSearchLabel') + self.QuickSearchLabel.setObjectName(u'QuickSearchLabel') self.QuickLayout.addWidget(self.QuickSearchLabel, 2, 0, 1, 1) self.QuickSearchEdit = QtGui.QLineEdit(self.QuickTab) - self.QuickSearchEdit.setObjectName('QuickSearchEdit') + self.QuickSearchEdit.setObjectName(u'QuickSearchEdit') self.QuickLayout.addWidget(self.QuickSearchEdit, 2, 1, 1, 2) self.QuickSearchButton = QtGui.QPushButton(self.QuickTab) - self.QuickSearchButton.setObjectName('QuickSearchButton') + self.QuickSearchButton.setObjectName(u'QuickSearchButton') self.QuickLayout.addWidget(self.QuickSearchButton, 3, 2, 1, 1) self.QuickClearLabel = QtGui.QLabel(self.QuickTab) - self.QuickClearLabel.setObjectName('QuickSearchLabel') + self.QuickClearLabel.setObjectName(u'QuickSearchLabel') self.QuickLayout.addWidget(self.QuickClearLabel, 3, 0, 1, 1) self.ClearQuickSearchComboBox = QtGui.QComboBox(self.QuickTab) - self.ClearQuickSearchComboBox.setObjectName('ClearQuickSearchComboBox') + self.ClearQuickSearchComboBox.setObjectName(u'ClearQuickSearchComboBox') self.QuickLayout.addWidget(self.ClearQuickSearchComboBox, 3, 1, 1, 1) self.SearchTabWidget.addTab(self.QuickTab, 'Quick') QuickSpacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, @@ -141,61 +141,61 @@ class BibleMediaItem(MediaManagerItem): # Add the Advanced Search tab self.AdvancedTab = QtGui.QWidget() - self.AdvancedTab.setObjectName('AdvancedTab') + self.AdvancedTab.setObjectName(u'AdvancedTab') self.AdvancedLayout = QtGui.QGridLayout(self.AdvancedTab) self.AdvancedLayout.setMargin(8) self.AdvancedLayout.setSpacing(8) - self.AdvancedLayout.setObjectName('AdvancedLayout') + self.AdvancedLayout.setObjectName(u'AdvancedLayout') self.AdvancedVersionLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedVersionLabel.setObjectName('AdvancedVersionLabel') + self.AdvancedVersionLabel.setObjectName(u'AdvancedVersionLabel') self.AdvancedLayout.addWidget(self.AdvancedVersionLabel, 0, 0, 1, 1) self.AdvancedVersionComboBox = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedVersionComboBox.setObjectName('AdvancedVersionComboBox') + self.AdvancedVersionComboBox.setObjectName(u'AdvancedVersionComboBox') self.AdvancedLayout.addWidget(self.AdvancedVersionComboBox, 0, 2, 1, 2) self.AdvancedBookLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedBookLabel.setObjectName('AdvancedBookLabel') + self.AdvancedBookLabel.setObjectName(u'AdvancedBookLabel') self.AdvancedLayout.addWidget(self.AdvancedBookLabel, 1, 0, 1, 1) self.AdvancedBookComboBox = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedBookComboBox.setObjectName('AdvancedBookComboBox') + self.AdvancedBookComboBox.setObjectName(u'AdvancedBookComboBox') self.AdvancedLayout.addWidget(self.AdvancedBookComboBox, 1, 2, 1, 2) self.AdvancedChapterLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedChapterLabel.setObjectName('AdvancedChapterLabel') + self.AdvancedChapterLabel.setObjectName(u'AdvancedChapterLabel') self.AdvancedLayout.addWidget(self.AdvancedChapterLabel, 2, 2, 1, 1) self.AdvancedVerseLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedVerseLabel.setObjectName('AdvancedVerseLabel') + self.AdvancedVerseLabel.setObjectName(u'AdvancedVerseLabel') self.AdvancedLayout.addWidget(self.AdvancedVerseLabel, 2, 3, 1, 1) self.AdvancedFromLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedFromLabel.setObjectName('AdvancedFromLabel') + self.AdvancedFromLabel.setObjectName(u'AdvancedFromLabel') self.AdvancedLayout.addWidget(self.AdvancedFromLabel, 3, 0, 1, 1) self.AdvancedToLabel = QtGui.QLabel(self.AdvancedTab) - self.AdvancedToLabel.setObjectName('AdvancedToLabel') + self.AdvancedToLabel.setObjectName(u'AdvancedToLabel') self.AdvancedLayout.addWidget(self.AdvancedToLabel, 4, 0, 1, 1) self.AdvancedFromChapter = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedFromChapter.setObjectName('AdvancedFromChapter') + self.AdvancedFromChapter.setObjectName(u'AdvancedFromChapter') self.AdvancedLayout.addWidget(self.AdvancedFromChapter, 3, 2, 1, 1) self.AdvancedFromVerse = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedFromVerse.setObjectName('AdvancedFromVerse') + self.AdvancedFromVerse.setObjectName(u'AdvancedFromVerse') self.AdvancedLayout.addWidget(self.AdvancedFromVerse, 3, 3, 1, 1) self.AdvancedToChapter = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedToChapter.setObjectName('AdvancedToChapter') + self.AdvancedToChapter.setObjectName(u'AdvancedToChapter') self.AdvancedLayout.addWidget(self.AdvancedToChapter, 4, 2, 1, 1) self.AdvancedToVerse = QtGui.QComboBox(self.AdvancedTab) - self.AdvancedToVerse.setObjectName('AdvancedToVerse') + self.AdvancedToVerse.setObjectName(u'AdvancedToVerse') self.AdvancedLayout.addWidget(self.AdvancedToVerse, 4, 3, 1, 1) self.AdvancedClearLabel = QtGui.QLabel(self.QuickTab) - self.AdvancedClearLabel.setObjectName('QuickSearchLabel') + self.AdvancedClearLabel.setObjectName(u'QuickSearchLabel') self.AdvancedLayout.addWidget(self.AdvancedClearLabel, 5, 0, 1, 1) self.ClearAdvancedSearchComboBox = QtGui.QComboBox(self.QuickTab) - self.ClearAdvancedSearchComboBox.setObjectName('ClearAdvancedSearchComboBox') + self.ClearAdvancedSearchComboBox.setObjectName(u'ClearAdvancedSearchComboBox') self.AdvancedLayout.addWidget(self.ClearAdvancedSearchComboBox, 5, 2, 1, 1) self.AdvancedSearchButton = QtGui.QPushButton(self.AdvancedTab) - self.AdvancedSearchButton.setObjectName('AdvancedSearchButton') + self.AdvancedSearchButton.setObjectName(u'AdvancedSearchButton') self.AdvancedLayout.addWidget(self.AdvancedSearchButton, 5, 3, 1, 1) - self.SearchTabWidget.addTab(self.AdvancedTab, 'Advanced') + self.SearchTabWidget.addTab(self.AdvancedTab, u'Advanced') # Add the search tab widget to the page layout self.PageLayout.addWidget(self.SearchTabWidget) @@ -211,31 +211,31 @@ class BibleMediaItem(MediaManagerItem): # Combo Boxes QtCore.QObject.connect(self.AdvancedVersionComboBox, - QtCore.SIGNAL("activated(int)"), self.onAdvancedVersionComboBox) + QtCore.SIGNAL(u'activated(int)'), self.onAdvancedVersionComboBox) QtCore.QObject.connect(self.AdvancedBookComboBox, - QtCore.SIGNAL("activated(int)"), self.onAdvancedBookComboBox) + QtCore.SIGNAL(u'activated(int)'), self.onAdvancedBookComboBox) QtCore.QObject.connect(self.AdvancedFromChapter, - QtCore.SIGNAL("activated(int)"), self.onAdvancedFromChapter) + QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromChapter) QtCore.QObject.connect(self.AdvancedFromVerse, - QtCore.SIGNAL("activated(int)"), self.onAdvancedFromVerse) + QtCore.SIGNAL(u'activated(int)'), self.onAdvancedFromVerse) QtCore.QObject.connect(self.AdvancedToChapter, - QtCore.SIGNAL("activated(int)"), self.onAdvancedToChapter) + QtCore.SIGNAL(u'activated(int)'), self.onAdvancedToChapter) # Buttons QtCore.QObject.connect(self.AdvancedSearchButton, - QtCore.SIGNAL("pressed()"), self.onAdvancedSearchButton) + QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) QtCore.QObject.connect(self.QuickSearchButton, - QtCore.SIGNAL("pressed()"), self.onQuickSearchButton) + QtCore.SIGNAL(u'pressed()'), self.onQuickSearchButton) # Context Menus self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.BibleListView.addAction(self.contextMenuAction( - self.BibleListView, ':/system/system_preview.png', + self.BibleListView, u':/system/system_preview.png', translate(u'BibleMediaItem',u'&Preview Verse'), self.onBiblePreviewClick)) self.BibleListView.addAction(self.contextMenuAction( - self.BibleListView, ':/system/system_live.png', + self.BibleListView, u':/system/system_live.png', translate(u'BibleMediaItem',u'&Show Live'), self.onBibleLiveClick)) self.BibleListView.addAction(self.contextMenuAction( - self.BibleListView, ':/system/system_add.png', + self.BibleListView, u':/system/system_add.png', translate(u'BibleMediaItem',u'&Add to Service'), self.onBibleAddClick)) def retranslateUi(self): @@ -268,25 +268,26 @@ class BibleMediaItem(MediaManagerItem): log.debug(u'Loading Bibles') self.QuickVersionComboBox.clear() self.AdvancedVersionComboBox.clear() - bibles = self.parent.biblemanager.get_bibles(u'full') - - for bible in bibles: # load bibles into the combo boxes + # load bibles into the combo boxes + for bible in bibles: self.QuickVersionComboBox.addItem(bible) - bibles = self.parent.biblemanager.get_bibles(u'partial') # Without HTTP first = True - for bible in bibles: # load bibles into the combo boxes + # load bibles into the combo boxes + for bible in bibles: self.AdvancedVersionComboBox.addItem(bible) if first: first = False - self.initialiseBible(bible) # use the first bible as the trigger + # use the first bible as the trigger + self.initialiseBible(bible) def onAdvancedVersionComboBox(self): - self.initialiseBible(str(self.AdvancedVersionComboBox.currentText())) # reset the bible info + self.initialiseBible(str(self.AdvancedVersionComboBox.currentText())) def onAdvancedBookComboBox(self): - self.initialiseBible(str(self.AdvancedVersionComboBox.currentText())) # reset the bible info + self.initialiseChapterVerse(str(self.AdvancedVersionComboBox.currentText()), + str(self.AdvancedBookComboBox.currentText())) def onBibleNewClick(self): self.bibleimportform = BibleImportForm(self.parent.config, self.parent.biblemanager, self) @@ -324,10 +325,10 @@ class BibleMediaItem(MediaManagerItem): bible = str(self.AdvancedVersionComboBox.currentText()) book = str(self.AdvancedBookComboBox.currentText()) cf = self.AdvancedFromChapter.currentText() - self._adjust_combobox(cf, self.chapters_from, self.AdvancedToChapter) + self.adjustComboBox(cf, self.chapters_from, self.AdvancedToChapter) vse = self.parent.biblemanager.get_book_verse_count(bible, book, int(cf))[0] # get the verse count for new chapter - self._adjust_combobox(1, vse, self.AdvancedFromVerse) - self._adjust_combobox(1, vse, self.AdvancedToVerse) + self.adjustComboBox(1, vse, self.AdvancedFromVerse) + self.adjustComboBox(1, vse, self.AdvancedToVerse) def onQuickSearchButton(self): log.debug(u'Quick Search Button pressed') @@ -344,19 +345,19 @@ class BibleMediaItem(MediaManagerItem): def onBibleLiveClick(self): service_item = ServiceItem(self.parent) - service_item.addIcon( ":/media/media_verse.png") + service_item.addIcon( u':/media/media_verse.png') self.generateSlideData(service_item) self.parent.live_controller.addServiceItem(service_item) def onBibleAddClick(self): service_item = ServiceItem(self.parent) - service_item.addIcon( ":/media/media_verse.png") + service_item.addIcon(u':/media/media_verse.png') self.generateSlideData(service_item) self.parent.service_manager.addServiceItem(service_item) def onBiblePreviewClick(self): service_item = ServiceItem(self.parent) - service_item.addIcon( ":/media/media_verse.png") + service_item.addIcon(u':/media/media_verse.png') self.generateSlideData(service_item) self.parent.preview_controller.addServiceItem(service_item) @@ -369,8 +370,8 @@ class BibleMediaItem(MediaManagerItem): bible_text = u'' for item in items: text = self.BibleListData.getValue(item) - verse = text[:text.find(u'(')] - bible = text[text.find(u'(') + 1:text.find(u')')] + verse = text[:text.find(u'(u')] + bible = text[text.find(u'(u') + 1:text.find(u')')] self.searchByReference(bible, verse) book = self.search_results[0][0] chapter = str(self.search_results[0][1]) @@ -379,7 +380,7 @@ class BibleMediaItem(MediaManagerItem): if self.parent.bibles_tab.paragraph_style: #Paragraph text = text + u'\n\n' if self.parent.bibles_tab.display_style == 1: - loc = self.formatVerse(old_chapter, chapter, verse, u'(', u')') + loc = self.formatVerse(old_chapter, chapter, verse, u'(u', u')') elif self.parent.bibles_tab.display_style == 2: loc = self.formatVerse(old_chapter, chapter, verse, u'{', u'}') elif self.parent.bibles_tab.display_style == 3: @@ -391,7 +392,6 @@ class BibleMediaItem(MediaManagerItem): service_item.title = book + u' ' + loc if len(raw_footer) <= 1: raw_footer.append(book) - if len(self.parent.bibles_tab.bible_theme) == 0: service_item.theme = None else: @@ -417,7 +417,7 @@ class BibleMediaItem(MediaManagerItem): self.loadBibles() def initialiseBible(self, bible): - log.debug(u"initialiseBible %s", bible) + log.debug(u'initialiseBible %s', bible) books = self.parent.biblemanager.get_bible_books(str(bible)) self.AdvancedBookComboBox.clear() first = True @@ -428,7 +428,7 @@ class BibleMediaItem(MediaManagerItem): self.initialiseChapterVerse(bible, book.name) def initialiseChapterVerse(self, bible, book): - log.debug(u"initialiseChapterVerse %s , %s", bible, book) + log.debug(u'initialiseChapterVerse %s , %s', bible, book) self.chapters_from = self.parent.biblemanager.get_book_chapter_count(bible, book)[0] self.verses = self.parent.biblemanager.get_book_verse_count(bible, book, 1)[0] self.adjustComboBox(1, self.chapters_from, self.AdvancedFromChapter) @@ -437,24 +437,24 @@ class BibleMediaItem(MediaManagerItem): self.adjustComboBox(1, self.verses, self.AdvancedToVerse) def adjustComboBox(self, frm, to , combo): - log.debug(u"adjustComboBox %s , %s , %s", combo, frm, to) + log.debug(u'adjustComboBox %s , %s , %s', combo, frm, to) combo.clear() for i in range(int(frm), int(to) + 1): combo.addItem(str(i)) def displayResults(self, bible): for book, chap, vse , txt in self.search_results: - text = str(u" %s %d:%d (%s)"%(book , chap,vse, bible)) + text = str(u' %s %d:%d (%s)'%(book , chap,vse, bible)) self.BibleListData.addRow(0,text) def searchByReference(self, bible, search): - log.debug(u"searchByReference %s ,%s", bible, search) + log.debug(u'searchByReference %s ,%s', bible, search) book = '' start_chapter = '' end_chapter = '' start_verse = '' end_verse = '' - search = search.replace(' ', ' ').strip() + search = search.replace(u' ', ' ').strip() original = search message = None # Remove book @@ -463,18 +463,18 @@ class BibleMediaItem(MediaManagerItem): book = search[:i] search = search[i:] # remove book from string break - search = search.replace('v', ':') # allow V or v for verse instead of : - search = search.replace('V', ':') # allow V or v for verse instead of : + search = search.replace(u'v', ':') # allow V or v for verse instead of : + search = search.replace(u'V', ':') # allow V or v for verse instead of : search = search.strip() - colon = search.find(':') + colon = search.find(u':') if colon == -1: # number : found - i = search.rfind(' ') + i = search.rfind(u' ') if i == -1: chapter = '' else: chapter = search[i:len(search)] - hyphen = chapter.find('-') + hyphen = chapter.find(u'-') if hyphen != -1: start_chapter= chapter[:hyphen] end_chapter= chapter[hyphen + 1:len(chapter)] @@ -483,9 +483,9 @@ class BibleMediaItem(MediaManagerItem): else: # more complex #print search - sp = search.split('-') #find first + sp = search.split(u'-') #find first #print sp, len(sp) - sp1 = sp[0].split(':') + sp1 = sp[0].split(u':') #print sp1, len(sp1) if len(sp1) == 1: start_chapter = sp1[0] @@ -497,7 +497,7 @@ class BibleMediaItem(MediaManagerItem): end_chapter = start_chapter end_verse = start_verse else: - sp1 = sp[1].split(':') + sp1 = sp[1].split(u':') #print sp1, len(sp1) if len(sp1) == 1: end_chapter = sp1[0] @@ -516,10 +516,9 @@ class BibleMediaItem(MediaManagerItem): end_verse = 99 if start_chapter == '': message = u'No chapter found for search' - #print "message = " + str(message) - #print "search = " + str(original) - #print "results = " + str(book) + " @ "+ str(start_chapter)+" @ "+ str(end_chapter)+" @ "+ str(start_verse)+ " @ "+ str(end_verse) - + #print 'message = ' + str(message) + #print 'search = ' + str(original) + #print 'results = ' + str(book) + ' @ '+ str(start_chapter)+' @ '+ str(end_chapter)+' @ '+ str(start_verse)+ ' @ '+ str(end_verse) if message == None: self.search_results = None self.search_results = self.parent.biblemanager.get_verse_text(bible, book, From aabe4e82f3bba2ce9d30c39fe619e36e1980e785 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 7 Jun 2009 19:39:31 +0100 Subject: [PATCH 2/2] Fix problem with single number for set of chapters eg John 1:1-5. Add double click feature to add preview (missing from 1.x) Move formatting cleanups on open classes. --- openlp/plugins/bibles/lib/mediaitem.py | 33 ++++++++++++++--------- openlp/plugins/bibles/lib/textlistdata.py | 31 ++++++++++----------- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index d287c447e..2a5721b92 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -225,9 +225,10 @@ class BibleMediaItem(MediaManagerItem): QtCore.SIGNAL(u'pressed()'), self.onAdvancedSearchButton) QtCore.QObject.connect(self.QuickSearchButton, QtCore.SIGNAL(u'pressed()'), self.onQuickSearchButton) + QtCore.QObject.connect(self.BibleListView, + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onRowSelected) # Context Menus self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) - self.BibleListView.addAction(self.contextMenuAction( self.BibleListView, u':/system/system_preview.png', translate(u'BibleMediaItem',u'&Preview Verse'), self.onBiblePreviewClick)) @@ -238,6 +239,7 @@ class BibleMediaItem(MediaManagerItem): self.BibleListView, u':/system/system_add.png', translate(u'BibleMediaItem',u'&Add to Service'), self.onBibleAddClick)) + def retranslateUi(self): log.debug(u'retranslateUi') self.QuickVersionLabel.setText(translate(u'BibleMediaItem', u'Version:')) @@ -260,6 +262,9 @@ class BibleMediaItem(MediaManagerItem): self.ClearAdvancedSearchComboBox.addItem(translate(u'BibleMediaItem', u'Clear')) self.ClearAdvancedSearchComboBox.addItem(translate(u'BibleMediaItem', u'Keep')) + def onRowSelected(self, row): + self.onBiblePreviewClick() + def initialise(self): log.debug(u'initialise') self.loadBibles() @@ -370,8 +375,8 @@ class BibleMediaItem(MediaManagerItem): bible_text = u'' for item in items: text = self.BibleListData.getValue(item) - verse = text[:text.find(u'(u')] - bible = text[text.find(u'(u') + 1:text.find(u')')] + verse = text[:text.find(u'(')] + bible = text[text.find(u'(') + 1:text.find(u')')] self.searchByReference(bible, verse) book = self.search_results[0][0] chapter = str(self.search_results[0][1]) @@ -380,7 +385,7 @@ class BibleMediaItem(MediaManagerItem): if self.parent.bibles_tab.paragraph_style: #Paragraph text = text + u'\n\n' if self.parent.bibles_tab.display_style == 1: - loc = self.formatVerse(old_chapter, chapter, verse, u'(u', u')') + loc = self.formatVerse(old_chapter, chapter, verse, u'(', u')') elif self.parent.bibles_tab.display_style == 2: loc = self.formatVerse(old_chapter, chapter, verse, u'{', u'}') elif self.parent.bibles_tab.display_style == 3: @@ -457,14 +462,16 @@ class BibleMediaItem(MediaManagerItem): search = search.replace(u' ', ' ').strip() original = search message = None - # Remove book - for i in range (len(search)-1, 0, -1): # 0 index arrays + # Remove book beware 0 index arrays + for i in range (len(search)-1, 0, - 1): if search[i] == ' ': book = search[:i] - search = search[i:] # remove book from string + # remove book from string + search = search[i:] break - search = search.replace(u'v', ':') # allow V or v for verse instead of : - search = search.replace(u'V', ':') # allow V or v for verse instead of : + # allow V or v for verse instead of : + search = search.replace(u'v', ':') + search = search.replace(u'V', ':') search = search.strip() colon = search.find(u':') if colon == -1: @@ -498,13 +505,15 @@ class BibleMediaItem(MediaManagerItem): end_verse = start_verse else: sp1 = sp[1].split(u':') - #print sp1, len(sp1) + #print "2nd details", sp1, len(sp1) if len(sp1) == 1: - end_chapter = sp1[0] - end_verse = 1 + end_chapter = start_chapter + end_verse = sp1[0] else: end_chapter = sp1[0] end_verse = sp1[1] + #print 'search = ' + str(original) + #print 'results = ' + str(book) + ' @ '+ str(start_chapter)+' @ '+ str(end_chapter)+' @ '+ str(start_verse)+ ' @ '+ str(end_verse) if end_chapter == '': end_chapter = start_chapter.rstrip() if start_verse == '': diff --git a/openlp/plugins/bibles/lib/textlistdata.py b/openlp/plugins/bibles/lib/textlistdata.py index 16ef37db5..774a2c9a5 100644 --- a/openlp/plugins/bibles/lib/textlistdata.py +++ b/openlp/plugins/bibles/lib/textlistdata.py @@ -19,21 +19,21 @@ Place, Suite 330, Boston, MA 02111-1307 USA """ import logging -from PyQt4.QtCore import * -from PyQt4.QtGui import * +from PyQt4 import QtCore, QtGui -class TextListData(QAbstractListModel): +class TextListData(QtCore.QAbstractListModel): """ An abstract list of strings """ global log - log=logging.getLogger(u'TextListData') + log = logging.getLogger(u'TextListData') log.info(u'started') def __init__(self): - QAbstractListModel.__init__(self) - self.items = [] # will be a list of (database id , title) tuples + QtCore.QAbstractListModel.__init__(self) + # will be a list of (database id , title) tuples + self.items = [] def resetStore(self): #reset list so can be reloaded @@ -43,8 +43,8 @@ class TextListData(QAbstractListModel): return len(self.items) def insertRow(self, row, id, title): - self.beginInsertRows(QModelIndex(),row,row) - log.debug(u'insert row %d:%s for id %d'%(row,title, id)) + self.beginInsertRows(QtCore.QModelIndex(),row,row) + log.debug(u'insert row %d:%s for id %d' % (row,title, id)) self.items.insert(row, (id, title)) self.endInsertRows() @@ -57,15 +57,16 @@ class TextListData(QAbstractListModel): self.insertRow(len(self.items), id, title) def data(self, index, role): - row=index.row() - if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row! - return QVariant() - if role == Qt.DisplayRole: + row = index.row() + # if the last row is selected and deleted, we then get called with an empty row! + if row > len(self.items): + return QtCore.QVariant() + if role == QtCore.Qt.DisplayRole: retval = self.items[row][1] else: - retval = QVariant() - if type(retval) is not type(QVariant): - return QVariant(retval) + retval = QtCore.QVariant() + if type(retval) is not type(QtCore.QVariant): + return QtCore.QVariant(retval) else: return retval