From 38a8575989c65eb545353aee3e784039372dc3ed Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 25 Feb 2010 21:09:27 +0000 Subject: [PATCH 1/6] Sort out startup http gets. --- openlp/core/ui/mainwindow.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index df66d5e97..96a089df1 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -52,12 +52,17 @@ media_manager_style = """ } """ class versionThread(QtCore.QThread): - def __init__(self, parent): + def __init__(self, parent, app_version, generalConfig): QtCore.QThread.__init__(self, parent) self.parent = parent + self.app_version = app_version + self.generalConfig = generalConfig def run (self): time.sleep(2) - Receiver.send_message(u'version_check') + version = check_latest_version(self.generalConfig, self.app_version) + #new version has arrived + if version != self.app_version: + Receiver.send_message(u'version_check', u'%s' % version) class Ui_MainWindow(object): @@ -536,20 +541,18 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): log.info(u'Load data from Settings') self.settingsForm.postSetUp() - def versionCheck(self): + def versionCheck(self, version): """ Checks the version of the Application called from openlp.pyw """ app_version = self.applicationVersion[u'full'] - version = check_latest_version(self.generalConfig, app_version) - if app_version != version: - version_text = unicode(self.trUtf8('OpenLP version %s has been updated ' - 'to version %s\n\nYou can obtain the latest version from http://openlp.org')) - QtGui.QMessageBox.question(self, - self.trUtf8('OpenLP Version Updated'), - version_text % (app_version, version), - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok), - QtGui.QMessageBox.Ok) + version_text = unicode(self.trUtf8('OpenLP version %s has been updated ' + 'to version %s\n\nYou can obtain the latest version from http://openlp.org')) + QtGui.QMessageBox.question(self, + self.trUtf8('OpenLP Version Updated'), + version_text % (app_version, version), + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok), + QtGui.QMessageBox.Ok) def getMonitorNumber(self): """ @@ -584,7 +587,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtGui.QMessageBox.Ok) def versionThread(self): - vT = versionThread(self) + app_version = self.applicationVersion[u'full'] + vT = versionThread(self, app_version, self.generalConfig) vT.start() def onHelpAboutItemClicked(self): From d47fc53b7815fd4e7ada91dab5958eca5243717a Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Feb 2010 07:39:47 +0000 Subject: [PATCH 2/6] Add Alternate rows to slide controller --- openlp/core/ui/slidecontroller.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index e88699b71..515fb2d3c 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -144,6 +144,7 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.setEditTriggers( QtGui.QAbstractItemView.NoEditTriggers) self.PreviewListWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) + self.PreviewListWidget.setAlternatingRowColors(True) self.ControllerLayout.addWidget(self.PreviewListWidget) # Build the full toolbar self.Toolbar = OpenLPToolbar(self) From 4a83e572e96de9afd75021b2a914e073cec6cd8e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Feb 2010 09:18:26 +0000 Subject: [PATCH 3/6] Fix bugs in last merge and fix comments --- openlp/plugins/bibles/lib/common.py | 2 -- openlp/plugins/bibles/lib/db.py | 2 +- openlp/plugins/bibles/lib/http.py | 10 +++++----- openlp/plugins/bibles/lib/mediaitem.py | 7 +++---- openlp/plugins/custom/lib/mediaitem.py | 2 +- openlp/plugins/images/lib/mediaitem.py | 2 +- openlp/plugins/media/mediaplugin.py | 1 + 7 files changed, 12 insertions(+), 14 deletions(-) diff --git a/openlp/plugins/bibles/lib/common.py b/openlp/plugins/bibles/lib/common.py index cd9b5cf35..4ba985842 100644 --- a/openlp/plugins/bibles/lib/common.py +++ b/openlp/plugins/bibles/lib/common.py @@ -166,8 +166,6 @@ class BibleCommon(object): """ A common ancestor for bible download sites. """ - global log - log = logging.getLogger(u'BibleCommon') log.info(u'BibleCommon') def _get_web_text(self, urlstring, proxyurl): diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 67c71ca10..be4112a54 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -59,7 +59,7 @@ class BibleDB(QtCore.QObject): ``config`` The configuration object, passed in from the plugin. """ - log.info(u'BibleDBimpl loaded') + log.info(u'BibleDB loaded') QtCore.QObject.__init__(self) if u'path' not in kwargs: raise KeyError(u'Missing keyword argument "path".') diff --git a/openlp/plugins/bibles/lib/http.py b/openlp/plugins/bibles/lib/http.py index 1cf92e4d2..d00c1f88a 100644 --- a/openlp/plugins/bibles/lib/http.py +++ b/openlp/plugins/bibles/lib/http.py @@ -35,6 +35,8 @@ from common import BibleCommon, SearchResults from db import BibleDB from openlp.plugins.bibles.lib.models import Book +log = logging.getLogger(__name__) + class HTTPBooks(object): cursor = None @@ -119,9 +121,7 @@ class HTTPBooks(object): class BGExtract(BibleCommon): - global log - log = logging.getLogger(u'BibleHTTPMgr(BG_extract)') - log.info(u'BG_extract loaded') + log.info(u'%s BGExtract loaded', __name__) def __init__(self, proxyurl=None): log.debug(u'init %s', proxyurl) @@ -184,7 +184,7 @@ class BGExtract(BibleCommon): return SearchResults(bookname, chapter, bible) class CWExtract(BibleCommon): - log.info(u'%s loaded', __name__) + log.info(u'%s CWExtract loaded', __name__) def __init__(self, proxyurl=None): log.debug(u'init %s', proxyurl) @@ -229,7 +229,7 @@ class CWExtract(BibleCommon): class HTTPBible(BibleDB): - log.info(u'%s loaded', __name__) + log.info(u'%s HTTPBible loaded' , __name__) def __init__(self, parent, **kwargs): """ diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 44d37c4c4..c0a3bde35 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -43,7 +43,6 @@ class BibleListView(BaseListWithDnD): def resizeEvent(self, event): self.parent.onListViewResize(event.size().width(), event.size().width()) - class BibleMediaItem(MediaManagerItem): """ This is the custom media manager item for Bibles. @@ -435,7 +434,7 @@ class BibleMediaItem(MediaManagerItem): raw_slides = [] raw_footer = [] bible_text = u'' - self.service_item.autoPreviewAllowed = True + service_item.autoPreviewAllowed = True #If we want to use a 2nd translation / version bible2 = u'' if self.SearchTabWidget.currentIndex() == 0: @@ -471,12 +470,12 @@ class BibleMediaItem(MediaManagerItem): verse_text = self.formatVerse(old_chapter, chapter, verse, u'', u'') old_chapter = chapter footer = u'%s (%s %s)' % (book, version, copyright) - #If not found throws and error so add.s + #If not found add to footer if footer not in raw_footer: raw_footer.append(footer) if bible2: footer = u'%s (%s %s)' % (book, version, copyright) - #If not found throws and error so add.s + #If not found add to footer if footer not in raw_footer: raw_footer.append(footer) bible_text = u'%s %s \n\n %s %s' % \ diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 0750a467e..c4b9ef16a 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -144,7 +144,7 @@ class CustomMediaItem(MediaManagerItem): item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] else: item_id = self.remoteCustom - self.service_item.autoPreviewAllowed = True + service_item.autoPreviewAllowed = True customSlide = self.parent.custommanager.get_custom(item_id) title = customSlide.title credit = customSlide.credits diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index d538c70af..e418ee44e 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -144,7 +144,7 @@ class ImageMediaItem(MediaManagerItem): items = self.ListView.selectedIndexes() if items: service_item.title = self.trUtf8('Image(s)') - self.service_item.autoPreviewAllowed = True + service_item.autoPreviewAllowed = True for item in items: bitem = self.ListView.item(item.row()) filename = unicode((bitem.data(QtCore.Qt.UserRole)).toString()) diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 640de1cb3..532a50410 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -27,6 +27,7 @@ import logging from openlp.core.lib import Plugin, build_icon, PluginStatus from openlp.plugins.media.lib import MediaMediaItem +from PyQt4.phonon import Phonon class MediaPlugin(Plugin): global log From 1979f2450249251620c5f1d1d6acc1b2b9d3004d Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Feb 2010 09:55:44 +0000 Subject: [PATCH 4/6] Fix song editing where text is lost --- openlp/plugins/media/lib/mediaitem.py | 6 +++--- openlp/plugins/media/mediaplugin.py | 9 ++++++--- openlp/plugins/songs/forms/editsongform.py | 6 +++--- openlp/plugins/songs/forms/editverseform.py | 9 +++++++-- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 46b059c01..67f1024a9 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -30,6 +30,8 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon +log = logging.getLogger(__name__) + class MediaListView(BaseListWithDnD): def __init__(self, parent=None): self.PluginName = u'Media' @@ -39,9 +41,7 @@ class MediaMediaItem(MediaManagerItem): """ This is the custom media manager item for Media Slides. """ - global log - log = logging.getLogger(u'MediaMediaItem') - log.info(u'Media Media Item loaded') + log.info(u'%s MediaMediaItem loaded', __name__) def __init__(self, parent, icon, title): self.PluginNameShort = u'Media' diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 532a50410..b403ab0de 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -29,10 +29,10 @@ from openlp.core.lib import Plugin, build_icon, PluginStatus from openlp.plugins.media.lib import MediaMediaItem from PyQt4.phonon import Phonon +log = logging.getLogger(__name__) + class MediaPlugin(Plugin): - global log - log = logging.getLogger(u'MediaPlugin') - log.info(u'Media Plugin loaded') + log.info(u'%s MediaPlugin loaded', __name__) def __init__(self, plugin_helpers): Plugin.__init__(self, u'Media', u'1.9.1', plugin_helpers) @@ -41,6 +41,9 @@ class MediaPlugin(Plugin): # passed with drag and drop messages self.dnd_id = u'Media' self.status = PluginStatus.Active +# print Phonon.BackendCapabilities.availableMimeTypes() +# for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): +# print mimetype def initialise(self): log.info(u'Plugin Initialising') diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 477910108..dd3af03c3 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -33,13 +33,13 @@ from openlp.plugins.songs.forms import EditVerseForm from openlp.plugins.songs.lib.models import Song from editsongdialog import Ui_EditSongDialog +log = logging.getLogger(__name__) + class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): """ Class to manage the editing of a song """ - global log - log = logging.getLogger(u'EditSongForm') - log.info(u'Song Editor loaded') + log.info(u'%s EditSongForm loaded', __name__) def __init__(self, songmanager, parent=None): """ diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 148fd164a..756d2a102 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -77,6 +77,8 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): def setVerse(self, text, verseCount=0, single=False, tag=u'Verse:1'): posVerse = 0 posSub = 0 + if len(text) == 0: + text = u'---[Verse:1]---' if single: id = tag.split(u':') posVerse = self.VerseListComboBox.findText(id[0], QtCore.Qt.MatchExactly) @@ -119,11 +121,14 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): unicode(self.SubVerseListComboBox.currentText()) def getVerseAll(self): - return self.VerseTextEdit.toPlainText() + text = self.VerseTextEdit.toPlainText() + if not text.startsWith(u'---['): + text = u'---[Verse:1]---\n%s' % text + return text def onVerseComboChanged(self, id): if unicode(self.VerseListComboBox.currentText()) == u'Verse': self.SubVerseListComboBox.setEnabled(True) else: self.SubVerseListComboBox.setEnabled(False) - self.SubVerseListComboBox.setCurrentIndex(0) \ No newline at end of file + self.SubVerseListComboBox.setCurrentIndex(0) From 86e03f0c116f58810ee02a1ae918104739cea8bf Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Feb 2010 10:10:03 +0000 Subject: [PATCH 5/6] Move editing to line 2 --- openlp/plugins/songs/forms/editverseform.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 756d2a102..cee84aae5 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -78,7 +78,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): posVerse = 0 posSub = 0 if len(text) == 0: - text = u'---[Verse:1]---' + text = u'---[Verse:1]---\n' if single: id = tag.split(u':') posVerse = self.VerseListComboBox.findText(id[0], QtCore.Qt.MatchExactly) @@ -114,6 +114,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): self.VerseTextEdit.setPlainText(text) self.VerseTextEdit.setFocus(QtCore.Qt.OtherFocusReason) self.onVerseComboChanged(0) + self.VerseTextEdit.moveCursor(QtGui.QTextCursor.Down) def getVerse(self): return self.VerseTextEdit.toPlainText(), \ From 065986c33cae3e2a85a7133a4362fc64b0a7cdf8 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 27 Feb 2010 14:57:33 +0000 Subject: [PATCH 6/6] Automate Media type list from phonon --- openlp/plugins/media/lib/mediaitem.py | 6 +++--- openlp/plugins/media/mediaplugin.py | 22 +++++++++++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 67f1024a9..c91440c5c 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -61,9 +61,9 @@ class MediaMediaItem(MediaManagerItem): def retranslateUi(self): self.OnNewPrompt = self.trUtf8('Select Media') - self.OnNewFileMasks = self.trUtf8('Videos (*.avi *.mpeg *.mpg *.wmv ' - '*.mov *.mp4 *.flv);;Audio (*.ogg *.mp3 *.wma *.wav *.flac)' - ';;All files (*)') + self.OnNewFileMasks = self.trUtf8('Videos (%s);;' + 'Audio (%s);;' + 'All files (*)' % (self.parent.video_list, self.parent.audio_list)) def requiredIcons(self): MediaManagerItem.requiredIcons(self) diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index b403ab0de..096d53aea 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -41,9 +41,25 @@ class MediaPlugin(Plugin): # passed with drag and drop messages self.dnd_id = u'Media' self.status = PluginStatus.Active -# print Phonon.BackendCapabilities.availableMimeTypes() -# for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): -# print mimetype + self.audio_list = u'' + self.video_list = u'' + for mimetype in Phonon.BackendCapabilities.availableMimeTypes(): + mimetype = unicode(mimetype) + type = mimetype.split(u'audio/x-') + self.audio_list, mimetype = self._add_to_list(self.audio_list, type, mimetype) + type = mimetype.split(u'audio/') + self.audio_list, mimetype = self._add_to_list(self.audio_list, type, mimetype) + type = mimetype.split(u'video/x-') + self.video_list, mimetype = self._add_to_list(self.video_list, type, mimetype) + type = mimetype.split(u'video/') + self.video_list, mimetype = self._add_to_list(self.video_list, type, mimetype) + + def _add_to_list(self, list, value, type): + if len(value) == 2: + if list.find(value[1]) == -1: + list += u'*.%s ' % value[1] + type = u'' + return list, type def initialise(self): log.info(u'Plugin Initialising')