From 1a0a828ad3bd7d68a61fc952f819a1cac3175a27 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 9 Nov 2017 19:25:26 +0000 Subject: [PATCH 1/4] fix errors --- openlp/core/api/endpoint/remote.py | 2 +- openlp/core/common/registry.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/openlp/core/api/endpoint/remote.py b/openlp/core/api/endpoint/remote.py index 4741ada15..3a408f74e 100644 --- a/openlp/core/api/endpoint/remote.py +++ b/openlp/core/api/endpoint/remote.py @@ -27,7 +27,7 @@ from openlp.core.api.endpoint.core import TRANSLATED_STRINGS log = logging.getLogger(__name__) -remote_endpoint = Endpoint('remote', template_dir='remotes', static_dir='remotes') +remote_endpoint = Endpoint('remote', template_dir='remotes') @remote_endpoint.route('{view}') diff --git a/openlp/core/common/registry.py b/openlp/core/common/registry.py index 252274d4d..c3f9011ad 100644 --- a/openlp/core/common/registry.py +++ b/openlp/core/common/registry.py @@ -151,8 +151,9 @@ class Registry(object): trace_error_handler(log) log.exception('Exception for function {function}'.format(function=function)) else: - trace_error_handler(log) - log.exception('Event {event} called but not registered'.format(event=event)) + if self._logger.getEffectiveLevel() == logging.DEBUG: + trace_error_handler(log) + log.exception('Event {event} called but not registered'.format(event=event)) return results def get_flag(self, key): From 0d1bbe3417029c097ec71d057869cbec701b56c6 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 9 Nov 2017 19:42:30 +0000 Subject: [PATCH 2/4] add preview to live --- openlp/core/ui/slidecontroller.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 80eb155e0..c6db1f1de 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -236,6 +236,9 @@ class SlideController(DisplayController, LogMixin, RegistryProperties): self.hide_menu.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup) self.hide_menu.setMenu(QtWidgets.QMenu(translate('OpenLP.SlideController', 'Hide'), self.toolbar)) self.toolbar.add_toolbar_widget(self.hide_menu) + self.toolbar.add_toolbar_action('goPreview', icon=':/general/general_live.png', + tooltip=translate('OpenLP.SlideController', 'Move to preview.'), + triggers=self.on_go_preview) # The order of the blank to modes in Shortcuts list comes from here. self.desktop_screen_enable = create_action(self, 'desktopScreenEnable', text=translate('OpenLP.SlideController', 'Show Desktop'), @@ -1420,6 +1423,18 @@ class SlideController(DisplayController, LogMixin, RegistryProperties): self.live_controller.add_service_manager_item(self.service_item, row) self.live_controller.preview_widget.setFocus() + def on_go_preview(self, field=None): + """ + If live copy slide item to preview controller from live Controller + """ + row = self.preview_widget.current_slide_number() + if -1 < row < self.preview_widget.slide_count(): + if self.service_item.from_service: + self.service_manager.preview_live(self.service_item.unique_identifier, row) + else: + self.preview_controller.add_service_manager_item(self.service_item, row) + self.preview_controller.preview_widget.setFocus() + def on_media_start(self, item): """ Respond to the arrival of a media service item From 7a345d577013e7661105acb24326bb5042df3d67 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 9 Nov 2017 19:55:01 +0000 Subject: [PATCH 3/4] fix code --- openlp/core/ui/slidecontroller.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index c6db1f1de..5b9872082 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -1429,10 +1429,7 @@ class SlideController(DisplayController, LogMixin, RegistryProperties): """ row = self.preview_widget.current_slide_number() if -1 < row < self.preview_widget.slide_count(): - if self.service_item.from_service: - self.service_manager.preview_live(self.service_item.unique_identifier, row) - else: - self.preview_controller.add_service_manager_item(self.service_item, row) + self.preview_controller.add_service_manager_item(self.service_item, row) self.preview_controller.preview_widget.setFocus() def on_media_start(self, item): From e0341ab3eb9590cf2ff294169ecfac94d1c2fff0 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 9 Nov 2017 21:24:38 +0000 Subject: [PATCH 4/4] fix tests --- openlp/core/common/registry.py | 2 +- .../openlp_core/ui/test_slidecontroller.py | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/openlp/core/common/registry.py b/openlp/core/common/registry.py index c3f9011ad..4c9e92108 100644 --- a/openlp/core/common/registry.py +++ b/openlp/core/common/registry.py @@ -151,7 +151,7 @@ class Registry(object): trace_error_handler(log) log.exception('Exception for function {function}'.format(function=function)) else: - if self._logger.getEffectiveLevel() == logging.DEBUG: + if log.getEffectiveLevel() == logging.DEBUG: trace_error_handler(log) log.exception('Event {event} called but not registered'.format(event=event)) return results diff --git a/tests/functional/openlp_core/ui/test_slidecontroller.py b/tests/functional/openlp_core/ui/test_slidecontroller.py index b5f0d99ee..bc13f6db8 100644 --- a/tests/functional/openlp_core/ui/test_slidecontroller.py +++ b/tests/functional/openlp_core/ui/test_slidecontroller.py @@ -208,6 +208,33 @@ class TestSlideController(TestCase): mocked_on_theme_display.assert_called_once_with(False) mocked_on_hide_display.assert_called_once_with(False) + def test_on_go_live_preview_controller(self): + """ + Test that when the on_go_preview() method is called the message is sent to the preview controller and focus is + set correctly. + """ + # GIVEN: A new SlideController instance and plugin preview then pressing go live should respond + mocked_display = MagicMock() + mocked_preview_controller = MagicMock() + mocked_preview_widget = MagicMock() + mocked_service_item = MagicMock() + mocked_service_item.from_service = False + mocked_preview_widget.current_slide_number.return_value = 1 + mocked_preview_widget.slide_count = MagicMock(return_value=2) + mocked_preview_controller.preview_widget = MagicMock() + Registry.create() + Registry().register('preview_controller', mocked_preview_controller) + slide_controller = SlideController(None) + slide_controller.service_item = mocked_service_item + slide_controller.preview_widget = mocked_preview_widget + slide_controller.display = mocked_display + + # WHEN: on_go_live() is called + slide_controller.on_go_preview() + + # THEN: the preview controller should have the service item and the focus set to live + mocked_preview_controller.preview_widget.setFocus.assert_called_once_with() + def test_on_go_live_live_controller(self): """ Test that when the on_go_live() method is called the message is sent to the live controller and focus is