Merge lp:~trb143/openlp/refactorfixes into lp:openlp

Proposed by Tim Bentley
Status: Merged
Approved by: Raoul Snyman
Approved revision: 2787
Merged at revision: 2785
Proposed branch: lp:~trb143/openlp/refactorfixes
Merge into: lp:openlp
Diff against target: 96 lines (+43/-3)
4 files modified
openlp/core/api/endpoint/remote.py (+1/-1)
openlp/core/common/registry.py (+3/-2)
openlp/core/ui/slidecontroller.py (+12/-0)
tests/functional/openlp_core/ui/test_slidecontroller.py (+27/-0)
To merge this branch: bzr merge lp:~trb143/openlp/refactorfixes
Reviewer Review Type Date Requested Status
Raoul Snyman Approve
Review via email: mp+333574@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Raoul Snyman (raoul-snyman) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'openlp/core/api/endpoint/remote.py'
2--- openlp/core/api/endpoint/remote.py 2017-09-26 21:04:39 +0000
3+++ openlp/core/api/endpoint/remote.py 2017-11-11 08:44:18 +0000
4@@ -27,7 +27,7 @@
5
6 log = logging.getLogger(__name__)
7
8-remote_endpoint = Endpoint('remote', template_dir='remotes', static_dir='remotes')
9+remote_endpoint = Endpoint('remote', template_dir='remotes')
10
11
12 @remote_endpoint.route('{view}')
13
14=== modified file 'openlp/core/common/registry.py'
15--- openlp/core/common/registry.py 2017-10-23 22:23:05 +0000
16+++ openlp/core/common/registry.py 2017-11-11 08:44:18 +0000
17@@ -151,8 +151,9 @@
18 trace_error_handler(log)
19 log.exception('Exception for function {function}'.format(function=function))
20 else:
21- trace_error_handler(log)
22- log.exception('Event {event} called but not registered'.format(event=event))
23+ if log.getEffectiveLevel() == logging.DEBUG:
24+ trace_error_handler(log)
25+ log.exception('Event {event} called but not registered'.format(event=event))
26 return results
27
28 def get_flag(self, key):
29
30=== modified file 'openlp/core/ui/slidecontroller.py'
31--- openlp/core/ui/slidecontroller.py 2017-10-23 22:09:57 +0000
32+++ openlp/core/ui/slidecontroller.py 2017-11-11 08:44:18 +0000
33@@ -236,6 +236,9 @@
34 self.hide_menu.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
35 self.hide_menu.setMenu(QtWidgets.QMenu(translate('OpenLP.SlideController', 'Hide'), self.toolbar))
36 self.toolbar.add_toolbar_widget(self.hide_menu)
37+ self.toolbar.add_toolbar_action('goPreview', icon=':/general/general_live.png',
38+ tooltip=translate('OpenLP.SlideController', 'Move to preview.'),
39+ triggers=self.on_go_preview)
40 # The order of the blank to modes in Shortcuts list comes from here.
41 self.desktop_screen_enable = create_action(self, 'desktopScreenEnable',
42 text=translate('OpenLP.SlideController', 'Show Desktop'),
43@@ -1420,6 +1423,15 @@
44 self.live_controller.add_service_manager_item(self.service_item, row)
45 self.live_controller.preview_widget.setFocus()
46
47+ def on_go_preview(self, field=None):
48+ """
49+ If live copy slide item to preview controller from live Controller
50+ """
51+ row = self.preview_widget.current_slide_number()
52+ if -1 < row < self.preview_widget.slide_count():
53+ self.preview_controller.add_service_manager_item(self.service_item, row)
54+ self.preview_controller.preview_widget.setFocus()
55+
56 def on_media_start(self, item):
57 """
58 Respond to the arrival of a media service item
59
60=== modified file 'tests/functional/openlp_core/ui/test_slidecontroller.py'
61--- tests/functional/openlp_core/ui/test_slidecontroller.py 2017-10-29 06:01:25 +0000
62+++ tests/functional/openlp_core/ui/test_slidecontroller.py 2017-11-11 08:44:18 +0000
63@@ -208,6 +208,33 @@
64 mocked_on_theme_display.assert_called_once_with(False)
65 mocked_on_hide_display.assert_called_once_with(False)
66
67+ def test_on_go_live_preview_controller(self):
68+ """
69+ Test that when the on_go_preview() method is called the message is sent to the preview controller and focus is
70+ set correctly.
71+ """
72+ # GIVEN: A new SlideController instance and plugin preview then pressing go live should respond
73+ mocked_display = MagicMock()
74+ mocked_preview_controller = MagicMock()
75+ mocked_preview_widget = MagicMock()
76+ mocked_service_item = MagicMock()
77+ mocked_service_item.from_service = False
78+ mocked_preview_widget.current_slide_number.return_value = 1
79+ mocked_preview_widget.slide_count = MagicMock(return_value=2)
80+ mocked_preview_controller.preview_widget = MagicMock()
81+ Registry.create()
82+ Registry().register('preview_controller', mocked_preview_controller)
83+ slide_controller = SlideController(None)
84+ slide_controller.service_item = mocked_service_item
85+ slide_controller.preview_widget = mocked_preview_widget
86+ slide_controller.display = mocked_display
87+
88+ # WHEN: on_go_live() is called
89+ slide_controller.on_go_preview()
90+
91+ # THEN: the preview controller should have the service item and the focus set to live
92+ mocked_preview_controller.preview_widget.setFocus.assert_called_once_with()
93+
94 def test_on_go_live_live_controller(self):
95 """
96 Test that when the on_go_live() method is called the message is sent to the live controller and focus is