← Back to team overview

openlp-core team mailing list archive

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

 

Tim Bentley has proposed merging lp:~trb143/openlp/refactorfixes into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)
Related bugs:
  Bug #1668652 in OpenLP: "Error trace triggers each time a event runs and no handler defined"
  https://bugs.launchpad.net/openlp/+bug/1668652
  Bug #1730448 in OpenLP: "Add a "Send to Preview" button to the live slide controller"
  https://bugs.launchpad.net/openlp/+bug/1730448

For more details, see:
https://code.launchpad.net/~trb143/openlp/refactorfixes/+merge/333574

fix a couple of small issues

lp:~trb143/openlp/refactorfixes (revision 2787)
https://ci.openlp.io/job/Branch-01-Pull/2278/                          [SUCCESS]
https://ci.openlp.io/job/Branch-02-Functional-Tests/2180/              [SUCCESS]
https://ci.openlp.io/job/Branch-03-Interface-Tests/2061/               [SUCCESS]
https://ci.openlp.io/job/Branch-04a-Code_Analysis/1391/                [SUCCESS]
https://ci.openlp.io/job/Branch-04b-Test_Coverage/1216/                [SUCCESS]
https://ci.openlp.io/job/Branch-04c-Code_Analysis2/346/                [SUCCESS]
https://ci.openlp.io/job/Branch-05-AppVeyor-Tests/180/                 [FAILURE]
Stopping after failure, see https://ci.openlp.io/job/Branch-05-AppVeyor-Tests/180/console for more details

-- 
Your team OpenLP Core is requested to review the proposed merge of lp:~trb143/openlp/refactorfixes into lp:openlp.
=== modified file 'openlp/core/api/endpoint/remote.py'
--- openlp/core/api/endpoint/remote.py	2017-09-26 21:04:39 +0000
+++ openlp/core/api/endpoint/remote.py	2017-11-11 08:44:18 +0000
@@ -27,7 +27,7 @@
 
 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}')

=== modified file 'openlp/core/common/registry.py'
--- openlp/core/common/registry.py	2017-10-23 22:23:05 +0000
+++ openlp/core/common/registry.py	2017-11-11 08:44:18 +0000
@@ -151,8 +151,9 @@
                     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 log.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):

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2017-10-23 22:09:57 +0000
+++ openlp/core/ui/slidecontroller.py	2017-11-11 08:44:18 +0000
@@ -236,6 +236,9 @@
             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,15 @@
                 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():
+            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

=== modified file 'tests/functional/openlp_core/ui/test_slidecontroller.py'
--- tests/functional/openlp_core/ui/test_slidecontroller.py	2017-10-29 06:01:25 +0000
+++ tests/functional/openlp_core/ui/test_slidecontroller.py	2017-11-11 08:44:18 +0000
@@ -208,6 +208,33 @@
         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


Follow ups