From f576e9d83d2141f30813f0ba9cb84424b8fa522b Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 12 Jul 2009 15:56:06 +0100 Subject: [PATCH 1/3] Look a songs Focus issues Fix Bibles footers --- openlp/plugins/bibles/lib/mediaitem.py | 10 +++++-- openlp/plugins/songs/forms/editversedialog.py | 26 +++++++++++++------ openlp/plugins/songs/forms/editverseform.py | 3 ++- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index f5e58f8f0..2217b4e3e 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -363,8 +363,11 @@ class BibleMediaItem(MediaManagerItem): old_chapter = chapter bible_text = bible_text + u' '+ loc + u' '+ text service_item.title = book + u' ' + loc - if len(raw_footer) <= 1: - raw_footer.append(book) + footer = book + u' (' + self.version + u' ' + self.copyright +u')' + try: + raw_footer.index(footer) + except: + raw_footer.append(footer) if len(self.parent.bibles_tab.bible_theme) == 0: service_item.theme = None else: @@ -503,6 +506,9 @@ class BibleMediaItem(MediaManagerItem): 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) else: reply = QtGui.QMessageBox.information(self, translate(u'BibleMediaItem', u'Information'), diff --git a/openlp/plugins/songs/forms/editversedialog.py b/openlp/plugins/songs/forms/editversedialog.py index 8600f675f..21acd17c3 100644 --- a/openlp/plugins/songs/forms/editversedialog.py +++ b/openlp/plugins/songs/forms/editversedialog.py @@ -1,12 +1,22 @@ # -*- 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, -# Form implementation generated from reading ui file '/home/raoul/Projects/openlp-2/resources/forms/editversedialog.ui' -# -# Created: Sat Mar 7 11:11:49 2009 -# by: PyQt4 UI code generator 4.4.4 -# -# WARNING! All changes made in this file will be lost! +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 +""" from PyQt4 import QtCore, QtGui from openlp.core.lib import translate @@ -28,11 +38,11 @@ class Ui_EditVerseDialog(object): self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save) self.ButtonBox.setObjectName(u'ButtonBox') self.DialogLayout.addWidget(self.ButtonBox) - self.retranslateUi(EditVerseDialog) QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), EditVerseDialog.accept) QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'rejected()'), EditVerseDialog.reject) QtCore.QMetaObject.connectSlotsByName(EditVerseDialog) + self.VerseTextEdit.setFocus(QtCore.Qt.OtherFocusReason) def retranslateUi(self, EditVerseDialog): - EditVerseDialog.setWindowTitle(translate(u'EditVerseDialog', u'Dialog')) + EditVerseDialog.setWindowTitle(translate(u'EditVerseDialog', u'Song Verse Edit Dialog')) diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 35f8c110e..1bb269e29 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -3,7 +3,7 @@ """ OpenLP - Open Source Lyrics Projection Copyright (c) 2008 Raoul Snyman -Portions copyright (c) 2008 Martin Thompson, Tim Bentley, +Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, 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 @@ -35,6 +35,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): def setVerse(self, verse): self.VerseTextEdit.setPlainText(verse) + self.VerseTextEdit.setFocus(QtCore.Qt.OtherFocusReason) def getVerse(self): return self.VerseTextEdit.toPlainText() From 6c30e677232ce31de3bb5bcbd760443b80e03c21 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 12 Jul 2009 16:11:57 +0100 Subject: [PATCH 2/3] Fix html ripping bug for bibles --- openlp/plugins/bibles/lib/bibleHTTPimpl.py | 5 +++-- openlp/plugins/bibles/lib/common.py | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/lib/bibleHTTPimpl.py b/openlp/plugins/bibles/lib/bibleHTTPimpl.py index db055ccef..00f5284fc 100644 --- a/openlp/plugins/bibles/lib/bibleHTTPimpl.py +++ b/openlp/plugins/bibles/lib/bibleHTTPimpl.py @@ -116,6 +116,7 @@ class CWExtract(BibleCommon): ## Strip Verse Data from Page and build an array ## #log.debug(u'bible data %s', xml_string) + #print xml_string i= xml_string.find(u'NavCurrentChapter') xml_string = xml_string[i:len(xml_string)] i= xml_string.find(u'', versePos) #log.debug( versePos, i) verse= xml_string[versePos:i] # Got the Chapter - #verse = int(temp) #log.debug( 'Chapter = %s', verse) # move the starting position to begining of the text versePos = i + 8 - # fined the start of the next verse + # find the start of the next verse i = xml_string.find(u'', versePos) if i == -1: i = xml_string.find(u'',versePos) @@ -150,6 +150,7 @@ class CWExtract(BibleCommon): #log.debug( i, versePos) verseText = xml_string[versePos: i] versePos = i + #print verseText bible[verse] = self._clean_text(verseText) #bible[verse] = verseText diff --git a/openlp/plugins/bibles/lib/common.py b/openlp/plugins/bibles/lib/common.py index f8d37649e..73426f8e5 100644 --- a/openlp/plugins/bibles/lib/common.py +++ b/openlp/plugins/bibles/lib/common.py @@ -132,6 +132,11 @@ class BibleCommon(object): end_tag = text.find(u'') text = text[:start_tag] + text[end_tag + 6:len(text)] start_tag = text.find(u'') + start_tag = text.find(u'') + while start_tag > -1: + end_tag = text.find(u'') + text = text[:start_tag] + text[end_tag + 6:len(text)] + start_tag = text.find(u'') # Static Clean ups text = text.replace(u'\n', u'') text = text.replace(u'\r', u'') From 66b683640611521a19394d59c9f6475807db2a5f Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 13 Jul 2009 18:02:38 +0100 Subject: [PATCH 3/3] More bug fixes Bibles have correct footers Songs now save all data and have correct focus --- openlp/plugins/bibles/lib/mediaitem.py | 3 ++- openlp/plugins/songs/forms/editsongform.py | 20 ++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 2217b4e3e..0650c7936 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -350,7 +350,8 @@ class BibleMediaItem(MediaManagerItem): chapter = unicode(self.search_results[0][1]) verse = unicode(self.search_results[0][2]) text = self.search_results[0][3] - if self.parent.bibles_tab.paragraph_style: #Paragraph + #Paragraph style force new line per verse + if self.parent.bibles_tab.paragraph_style: text = text + u'\n\n' if self.parent.bibles_tab.display_style == 1: loc = self.formatVerse(old_chapter, chapter, verse, u'(u', u')') diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 751c58b99..0da4ab942 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -139,6 +139,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.AuthorsListView.clear() self.TopicsListView.clear() self.title_change = False + self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason) def loadSong(self, id): log.debug(u'Load Song') @@ -161,16 +162,19 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.SongbookCombo.setCurrentIndex(id) if len(title) > 1: self.AlternativeEdit.setText(title[1]) - self.CopyrightEditItem.setText(self.song.copyright) + if self.song.copyright is not None: + self.CopyrightEditItem.setText(self.song.copyright) + else: + self.CopyrightEditItem.setText(u'') self.VerseListWidget.clear() if self.song.verse_order is not None: self.VerseOrderEdit.setText(self.song.verse_order) else: self.VerseOrderEdit.setText(u'') if self.song.comments is not None: - self.CommentsEdit.setText(self.song.comments) + self.CommentsEdit.setPlainText(self.song.comments) else: - self.CommentsEdit.setText(u'') + self.CommentsEdit.setPlainText(u'') if self.song.ccli_number is not None: self.CCLNumberEdit.setText(self.song.ccli_number) else: @@ -199,6 +203,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.TopicsListView.addItem(topic_name) self._validate_song() self.title_change = False + self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason) def onAuthorAddtoSongItemClicked(self): item = int(self.AuthorsSelectionComboItem.currentIndex()) @@ -296,6 +301,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.verse_form.setVerse(item.text()) self.verse_form.exec_() item.setText(self.verse_form.getVerse()) + self.VerseListWidget.update() self.EditButton.setEnabled(False) self.DeleteButton.setEnabled(False) @@ -356,7 +362,9 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): return self.song.title = unicode(self.TitleEditItem.displayText()) self.song.copyright = unicode(self.CopyrightEditItem.displayText()) - self.song.search_title = self.TitleEditItem.displayText() + u'@'+ self.AlternativeEdit.displayText() + self.song.search_title = unicode(self.TitleEditItem.displayText()) + u'@'+ unicode(self.AlternativeEdit.displayText()) + self.song.comments = unicode(self.CommentsEdit.toPlainText()) + self.song.ccli_number = unicode(self.CCLNumberEdit.displayText()) self.processLyrics() self.processTitle() self.song.song_book_id = 0 @@ -380,7 +388,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): count += 1 if self.song.verse_order is None: self.song.verse_order = verse_order - text = text.replace("'", u'') + text = text.replace(u'\'', u'') text = text.replace(u',', u'') text = text.replace(u';', u'') text = text.replace(u':', u'') @@ -394,7 +402,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): def processTitle(self): log.debug(u'processTitle') - self.song.search_title = self.song.search_title.replace("'", u'') + self.song.search_title = self.song.search_title.replace(u'\'', u'') self.song.search_title = self.song.search_title.replace(u',', u'') self.song.search_title = self.song.search_title.replace(u';', u'') self.song.search_title = self.song.search_title.replace(u':', u'')