From 2d26110f223e71b1718e4e28e297afeb7e17b819 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 12 Mar 2013 09:00:48 +0100 Subject: [PATCH 1/9] fixed regression bugs --- openlp/core/ui/media/mediacontroller.py | 2 +- openlp/core/ui/media/webkitplayer.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/media/mediacontroller.py b/openlp/core/ui/media/mediacontroller.py index cc39cb5f8..c6df532e4 100644 --- a/openlp/core/ui/media/mediacontroller.py +++ b/openlp/core/ui/media/mediacontroller.py @@ -440,7 +440,7 @@ class MediaController(object): controller.media_info = MediaInfo() controller.media_info.volume = 0 controller.media_info.file_info = QtCore.QFileInfo(service_item.get_frame_path()) - display = controller._display + display = controller.preview_display if not self._check_file_type(controller, display, service_item): # Media could not be loaded correctly critical_error_message_box(translate('MediaPlugin.MediaItem', 'Unsupported File'), diff --git a/openlp/core/ui/media/webkitplayer.py b/openlp/core/ui/media/webkitplayer.py index 7262622bb..80369b17a 100644 --- a/openlp/core/ui/media/webkitplayer.py +++ b/openlp/core/ui/media/webkitplayer.py @@ -450,7 +450,7 @@ class WebkitPlayer(MediaPlayer): currentTime = display.frame.evaluateJavaScript(u'show_flash("currentTime");') length = display.frame.evaluateJavaScript(u'show_flash("length");') else: - if display.frame.evaluateJavaScript(u'show_video("isEnded");') == 'true': + if display.frame.evaluateJavaScript(u'show_video("isEnded");'): self.stop(display) currentTime = display.frame.evaluateJavaScript(u'show_video("currentTime");') # check if conversion was ok and value is not 'NaN' From 48e8838289ecd712508a66f672b836d72997aabd Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 12 Mar 2013 09:19:47 +0100 Subject: [PATCH 2/9] added image_manager get_image_bytes() test --- tests/functional/openlp_core_lib/test_image_manager.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/functional/openlp_core_lib/test_image_manager.py b/tests/functional/openlp_core_lib/test_image_manager.py index 3256ef86f..81098eb89 100644 --- a/tests/functional/openlp_core_lib/test_image_manager.py +++ b/tests/functional/openlp_core_lib/test_image_manager.py @@ -5,7 +5,7 @@ import os from unittest import TestCase -from PyQt4 import QtGui +from PyQt4 import QtCore, QtGui from openlp.core.lib import Registry, ImageManager, ScreenList @@ -43,6 +43,12 @@ class TestImageManager(TestCase): # THEN returned record is a type of image self.assertEqual(isinstance(image, QtGui.QImage), True, u'The returned object should be a QImage') + # WHEN: The image bytes are requested. + byte_array = self.image_manager.get_image_bytes(TEST_PATH, u'church.jpg') + + # THEN: Type should be a byte array. + self.assertEqual(isinstance(byte_array, QtCore.QByteArray), True, u'The returned object should be a QByteArray') + # WHEN the image is retrieved has not been loaded # THEN a KeyError is thrown with self.assertRaises(KeyError) as context: From 7fa359dd48726a0756a1e219ca5f1355650c14fd Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 12 Mar 2013 09:44:54 +0100 Subject: [PATCH 3/9] disalbe patching; create 'broken' resources.py --- scripts/generate_resources.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_resources.sh b/scripts/generate_resources.sh index d1717507d..47801da6e 100755 --- a/scripts/generate_resources.sh +++ b/scripts/generate_resources.sh @@ -51,7 +51,7 @@ cat openlp/core/resources.py.new | sed '/# Created: /d;/# by: /d' \ > openlp/core/resources.py # Patch resources.py to OpenLP coding style -patch --posix -s openlp/core/resources.py scripts/resources.patch +#patch --posix -s openlp/core/resources.py scripts/resources.patch # Remove temporary file rm openlp/core/resources.py.new From 7bf8c45f353893329fbd2ee9dff0af7c414c09e6 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 12 Mar 2013 09:46:00 +0100 Subject: [PATCH 4/9] reverted resources.py changes; updated patch --- scripts/resources.patch | 97 ++++++++++++++++++++++++++++++++++------- 1 file changed, 82 insertions(+), 15 deletions(-) diff --git a/scripts/resources.patch b/scripts/resources.patch index 19334a780..d2f0c73a7 100644 --- a/scripts/resources.patch +++ b/scripts/resources.patch @@ -1,14 +1,16 @@ ---- openlp/core/resources.py.old Mon Jun 21 23:16:19 2010 -+++ openlp/core/resources.py Mon Jun 21 23:27:48 2010 +=== modified file 'openlp/core/resources.py' +--- openlp/core/resources.py 2013-03-12 08:44:54 +0000 ++++ openlp/core/resources.py 2013-03-12 08:45:42 +0000 @@ -1,10 +1,35 @@ # -*- coding: utf-8 -*- -+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 - +- -# Resource object code -# -# -# WARNING! All changes made in this file will be lost! - ++# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 ++ +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # @@ -39,25 +41,90 @@ +store for use by OpenLP. +""" from PyQt4 import QtCore - + qt_resource_data = "\ -@@ -48643,9 +48664,16 @@ +@@ -71953,9 +71978,14 @@ " - + def qInitResources(): -- QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + """ + Initialise OpenLP resources at application startup. + """ -+ QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, -+ qt_resource_data) - + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + def qCleanupResources(): -- QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + """ + Cleanup OpenLP resources when the application shuts down. + """ -+ QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, -+ qt_resource_data) - + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + -qInitResources() + +=== modified file 'scripts/resources.patch' +--- scripts/resources.patch 2012-12-29 20:56:56 +0000 ++++ scripts/resources.patch 2013-03-12 08:45:44 +0000 +@@ -1,63 +0,0 @@ +---- openlp/core/resources.py.old Mon Jun 21 23:16:19 2010 +-+++ openlp/core/resources.py Mon Jun 21 23:27:48 2010 +-@@ -1,10 +1,35 @@ +- # -*- coding: utf-8 -*- +-+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 +- +--# Resource object code +--# +--# +--# WARNING! All changes made in this file will be lost! +-- +-+############################################################################### +-+# OpenLP - Open Source Lyrics Projection # +-+# --------------------------------------------------------------------------- # +-+# Copyright (c) 2008-2013 Raoul Snyman # +-+# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan # +-+# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, # +-+# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. # +-+# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, # +-+# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # +-+# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, # +-+# Frode Woldsund, Martin Zibricky, Patrick Zimmermann # +-+# --------------------------------------------------------------------------- # +-+# 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 # +-+############################################################################### +-+""" +-+The :mod:`resources` module provides application images and icons in a central +-+store for use by OpenLP. +-+""" +- from PyQt4 import QtCore +- +- qt_resource_data = "\ +-@@ -48643,9 +48664,16 @@ +- " +- +- def qInitResources(): +-- QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) +-+ """ +-+ Initialise OpenLP resources at application startup. +-+ """ +-+ QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, +-+ qt_resource_data) +- +- def qCleanupResources(): +-- QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) +-+ """ +-+ Cleanup OpenLP resources when the application shuts down. +-+ """ +-+ QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, +-+ qt_resource_data) +- +--qInitResources() + From 312d6a3ff9ccc65f35fbf18a434a3a736bde5cab Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 12 Mar 2013 09:46:28 +0100 Subject: [PATCH 5/9] enable patching again --- scripts/generate_resources.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_resources.sh b/scripts/generate_resources.sh index 47801da6e..d1717507d 100755 --- a/scripts/generate_resources.sh +++ b/scripts/generate_resources.sh @@ -51,7 +51,7 @@ cat openlp/core/resources.py.new | sed '/# Created: /d;/# by: /d' \ > openlp/core/resources.py # Patch resources.py to OpenLP coding style -#patch --posix -s openlp/core/resources.py scripts/resources.patch +patch --posix -s openlp/core/resources.py scripts/resources.patch # Remove temporary file rm openlp/core/resources.py.new From f6457956becd9fb7742869d1c477ce7d4404eddd Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 12 Mar 2013 09:53:50 +0100 Subject: [PATCH 7/9] cleaned patch --- scripts/resources.patch | 79 ++++------------------------------------- 1 file changed, 6 insertions(+), 73 deletions(-) diff --git a/scripts/resources.patch b/scripts/resources.patch index d2f0c73a7..020d2075c 100644 --- a/scripts/resources.patch +++ b/scripts/resources.patch @@ -1,6 +1,6 @@ === modified file 'openlp/core/resources.py' ---- openlp/core/resources.py 2013-03-12 08:44:54 +0000 -+++ openlp/core/resources.py 2013-03-12 08:45:42 +0000 +--- openlp/core/resources.py 2013-03-12 08:44:54 +0000 ++++ openlp/core/resources.py 2013-03-12 08:45:42 +0000 @@ -1,10 +1,35 @@ # -*- coding: utf-8 -*- - @@ -41,90 +41,23 @@ +store for use by OpenLP. +""" from PyQt4 import QtCore - + qt_resource_data = "\ @@ -71953,9 +71978,14 @@ " - + def qInitResources(): + """ + Initialise OpenLP resources at application startup. + """ QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) - + def qCleanupResources(): + """ + Cleanup OpenLP resources when the application shuts down. + """ QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) - + -qInitResources() -=== modified file 'scripts/resources.patch' ---- scripts/resources.patch 2012-12-29 20:56:56 +0000 -+++ scripts/resources.patch 2013-03-12 08:45:44 +0000 -@@ -1,63 +0,0 @@ ----- openlp/core/resources.py.old Mon Jun 21 23:16:19 2010 --+++ openlp/core/resources.py Mon Jun 21 23:27:48 2010 --@@ -1,10 +1,35 @@ -- # -*- coding: utf-8 -*- --+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 -- ---# Resource object code ---# ---# ---# WARNING! All changes made in this file will be lost! --- --+############################################################################### --+# OpenLP - Open Source Lyrics Projection # --+# --------------------------------------------------------------------------- # --+# Copyright (c) 2008-2013 Raoul Snyman # --+# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan # --+# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, # --+# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. # --+# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, # --+# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # --+# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, # --+# Frode Woldsund, Martin Zibricky, Patrick Zimmermann # --+# --------------------------------------------------------------------------- # --+# 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 # --+############################################################################### --+""" --+The :mod:`resources` module provides application images and icons in a central --+store for use by OpenLP. --+""" -- from PyQt4 import QtCore -- -- qt_resource_data = "\ --@@ -48643,9 +48664,16 @@ -- " -- -- def qInitResources(): --- QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) --+ """ --+ Initialise OpenLP resources at application startup. --+ """ --+ QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, --+ qt_resource_data) -- -- def qCleanupResources(): --- QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) --+ """ --+ Cleanup OpenLP resources when the application shuts down. --+ """ --+ QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, --+ qt_resource_data) -- ---qInitResources() From 841549ad5940946dff40ef54d38ce9fe028cbf64 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Tue, 12 Mar 2013 10:00:22 +0100 Subject: [PATCH 8/9] make transitions a bit more fluent --- openlp/core/lib/htmlbuilder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py index 35b7bd9e2..6496aeef1 100644 --- a/openlp/core/lib/htmlbuilder.py +++ b/openlp/core/lib/htmlbuilder.py @@ -164,8 +164,8 @@ sup { text.innerHTML = new_text; return; } - // Fade text out. 0.2 to minimize the time "nothing" is shown on the screen. - text.style.opacity = '0.2'; + // Fade text out. 0.1 to minimize the time "nothing" is shown on the screen. + text.style.opacity = '0.1'; // Fade new text in after the old text has finished fading out. timer = window.setTimeout(function(){_show_text(text, new_text)}, 400); } From 3a9e6c8ec08b6cef61656105c03347f02aaa2e56 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 13 Mar 2013 14:43:28 +0100 Subject: [PATCH 9/9] do not continue when an invalid service is loaded --- openlp/core/lib/serviceitem.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 8e850f78d..3aadabb55 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -636,14 +636,17 @@ class ServiceItem(object): for frame in self._raw_frames: if self.is_image() and not os.path.exists(frame[u'path']): self.is_valid = False + break elif self.is_command(): file_name = os.path.join(frame[u'path'], frame[u'title']) if not os.path.exists(file_name): self.is_valid = False + break if suffix_list and not self.is_text(): file_suffix = frame[u'title'].split(u'.')[-1] if file_suffix.lower() not in suffix_list: self.is_valid = False + break def _get_renderer(self): """