From 5f513a9a1f325e757309437baf45e9ee85972b6d Mon Sep 17 00:00:00 2001 From: suutari-olli Date: Fri, 22 Jan 2016 19:06:35 +0200 Subject: [PATCH 1/5] This simple fix should make blank to desktop, black and theme available during single screen mode --- openlp/core/ui/slidecontroller.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 37c4836b9..64b63083a 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -607,7 +607,10 @@ class SlideController(DisplayController, RegistryProperties): widget.addActions([ self.previous_item, self.next_item, self.previous_service, self.next_service, - self.escape_item]) + self.escape_item, + self.desktop_screen, + self.theme_screen, + self.blank_screen]) def preview_size_changed(self): """ From dee737e3fb38b38d96c99d88e2c5c4233c72fbcb Mon Sep 17 00:00:00 2001 From: suutari-olli Date: Sat, 23 Jan 2016 17:28:16 +0200 Subject: [PATCH 2/5] Added proper comment --- openlp/core/ui/slidecontroller.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 64b63083a..4a3b91b35 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -603,6 +603,9 @@ class SlideController(DisplayController, RegistryProperties): Add actions to the widget specified by `widget` :param widget: The UI widget for the actions + This defines the controls available when Live display has stolen focus. + Examples of this happening: Clicking anything in the live window or certain single screen mode scenarios. + Needles to say, blank to modes should not be removed from here. """ widget.addActions([ self.previous_item, self.next_item, From 6ef2cc8b598eec2e54ed89f158e80d19321a602c Mon Sep 17 00:00:00 2001 From: suutari-olli Date: Fri, 26 Feb 2016 23:28:01 +0200 Subject: [PATCH 3/5] Added test, fixed comment. --- openlp/core/ui/slidecontroller.py | 7 +++-- .../openlp_core_ui/test_slidecontroller.py | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 4a3b91b35..350e3fb59 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -601,11 +601,13 @@ class SlideController(DisplayController, RegistryProperties): def __add_actions_to_widget(self, widget): """ Add actions to the widget specified by `widget` - - :param widget: The UI widget for the actions This defines the controls available when Live display has stolen focus. Examples of this happening: Clicking anything in the live window or certain single screen mode scenarios. Needles to say, blank to modes should not be removed from here. + For some reason this required a test. It may be found in test_slidecontroller.py as + "live_stolen_focus_shortcuts_test. If you want to modify things here, you must also modify them there. (Duh) + + :param widget: The UI widget for the actions """ widget.addActions([ self.previous_item, self.next_item, @@ -983,6 +985,7 @@ class SlideController(DisplayController, RegistryProperties): self.update_preview() self.on_toggle_loop() + def on_theme_display(self, checked=None): """ Handle the Theme screen button diff --git a/tests/functional/openlp_core_ui/test_slidecontroller.py b/tests/functional/openlp_core_ui/test_slidecontroller.py index 7f071a835..af11c00bb 100644 --- a/tests/functional/openlp_core_ui/test_slidecontroller.py +++ b/tests/functional/openlp_core_ui/test_slidecontroller.py @@ -685,6 +685,33 @@ class TestSlideController(TestCase): self.assertEqual('mocked_presentation_item_stop', mocked_execute.call_args_list[1][0][0], 'The presentation should have been stopped.') + def live_stolen_focus_shortcuts_test(self): + """ + Test that all the needed shortcuts are available in scenarios where Live has stolen focus. + These are found under def __add_actions_to_widget(self, widget): in slidecontroller.py + """ + # GIVEN: A slide controller, actions needed + slide_controller = SlideController(None) + mocked_widget = MagicMock() + slide_controller.previous_item = MagicMock() + slide_controller.next_item = MagicMock() + slide_controller.previous_service = MagicMock() + slide_controller.next_service = MagicMock() + slide_controller.escape_item = MagicMock() + slide_controller.desktop_screen = MagicMock() + slide_controller.blank_screen = MagicMock() + slide_controller.theme_screen = MagicMock() + + # WHEN: __add_actions_to_widget is called + slide_controller._SlideController__add_actions_to_widget(mocked_widget) + + # THEN: The call to addActions should be correct + mocked_widget.addActions.assert_called_with([ + slide_controller.previous_item, slide_controller.next_item, + slide_controller.previous_service, slide_controller.next_service, + slide_controller.escape_item, slide_controller.desktop_screen, + slide_controller.theme_screen, slide_controller.blank_screen + ]) class TestInfoLabel(TestCase): From e3c4f53dc4948c06d6597853d9ccff7f87756346 Mon Sep 17 00:00:00 2001 From: suutari-olli Date: Sat, 27 Feb 2016 00:03:32 +0200 Subject: [PATCH 4/5] Seems like I added one empty row at some point... Removing it... --- openlp/core/ui/slidecontroller.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 350e3fb59..45047c100 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -985,7 +985,6 @@ class SlideController(DisplayController, RegistryProperties): self.update_preview() self.on_toggle_loop() - def on_theme_display(self, checked=None): """ Handle the Theme screen button From e5485183314287a592ce0d62561ffcbfc7df0349 Mon Sep 17 00:00:00 2001 From: suutari-olli Date: Sat, 27 Feb 2016 16:25:31 +0200 Subject: [PATCH 5/5] Added 2nd empty row after last test in class. --- tests/functional/openlp_core_ui/test_slidecontroller.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/functional/openlp_core_ui/test_slidecontroller.py b/tests/functional/openlp_core_ui/test_slidecontroller.py index af11c00bb..20e48cbe0 100644 --- a/tests/functional/openlp_core_ui/test_slidecontroller.py +++ b/tests/functional/openlp_core_ui/test_slidecontroller.py @@ -713,6 +713,7 @@ class TestSlideController(TestCase): slide_controller.theme_screen, slide_controller.blank_screen ]) + class TestInfoLabel(TestCase): def paint_event_text_fits_test(self):