openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #30049
Re: [Merge] lp:~suutari-olli/openlp/click-slide-to-go-live-from-blank into lp:openlp
I am unable to reproduce this traceback,
need to investigate further.
Fixed the commented stuff.
Thank you for the review.
Diff comments:
>
> === modified file 'openlp/core/lib/mediamanageritem.py'
> --- openlp/core/lib/mediamanageritem.py 2016-05-17 13:15:53 +0000
> +++ openlp/core/lib/mediamanageritem.py 2016-07-16 15:46:57 +0000
> @@ -488,6 +488,8 @@
> 'You must select one or more items to preview.'))
> else:
> log.debug('%s Preview requested' % self.plugin.name)
> + # Reset the flag for: "has doubleclick added item to service" to False.
> + Registry().set_flag('has doubleclick added item to service', False)
Removed it.
> service_item = self.build_service_item()
> if service_item:
> service_item.from_plugin = True
>
> === modified file 'openlp/core/ui/slidecontroller.py'
> --- openlp/core/ui/slidecontroller.py 2016-05-20 16:22:06 +0000
> +++ openlp/core/ui/slidecontroller.py 2016-07-16 15:46:57 +0000
> @@ -797,12 +798,18 @@
>
> def replace_service_manager_item(self, item):
> """
> - Replacement item following a remote edit
> + Replacement item following a remote edit.
> + This action also takes place when a song that is sent to live from Service Manager is edited.
> + If display is blanked, it will get unblanked if automatic unblanking is enabled. We prevent this from happening
Removed parts of it.
Thought it could be helpful in understanding it.
> + by setting a flag to "True" and then to "False" after the processing is done.
> + The flag is also set to "False" on startup so display may be unblanked properly.
>
> :param item: The current service item
> """
> if item == self.service_item:
> + Registry().set_flag('replace service manager item', True)
> self._process_item(item, self.preview_widget.current_slide_number())
> + Registry().set_flag('replace service manager item', False)
>
> def add_service_manager_item(self, item, slide_no):
> """
> @@ -971,9 +978,12 @@
>
> def on_slide_unblank(self):
> """
> - Handle the slidecontroller unblank event
> + Handle the slidecontroller unblank event.
> + If we are re-processing service item, don't unblank the display
> + (Found in def replace_service_manager_item)
Removed it.
> """
> - self.on_blank_display(False)
> + if not Registry().get_flag('replace service manager item') is True:
> + self.on_blank_display(False)
>
> def on_blank_display(self, checked=None):
> """
> @@ -1104,6 +1114,14 @@
> self.log_debug('Could not get lock in slide_selected after waiting %f, skip to avoid deadlock.'
> % timeout)
> return
> + # If "click live slide to unblank" is enabled, unblank the display. And start = Item is sent to Live.
> + # Note: If this if statement is placed at the bottom of this function instead of top slide transitions are lost.
> + if self.is_live and Settings().value('core/click live slide to unblank'):
> + # With this display stays blanked when "auto unblank" setting is not enabled and new item is sent to Live.
> + if not Settings().value('core/auto unblank') and start:
> + ()
# With this display stays blanked when "auto unblank" setting is not enabled and new item is sent to Live.
So basically = Do nothing if case is true.
> + if not start:
> + Registry().execute('slidecontroller_live_unblank')
> row = self.preview_widget.current_slide_number()
> old_selected_row = self.selected_row
> self.selected_row = 0
>
> === modified file 'tests/functional/openlp_core_ui/test_slidecontroller.py'
> --- tests/functional/openlp_core_ui/test_slidecontroller.py 2016-06-01 21:42:54 +0000
> +++ tests/functional/openlp_core_ui/test_slidecontroller.py 2016-07-16 15:46:57 +0000
> @@ -713,6 +713,54 @@
> slide_controller.theme_screen, slide_controller.blank_screen
> ])
>
> + @patch('openlp.core.ui.slidecontroller.Settings')
> + def on_preview_double_click_unblank_display_test(self, MockedSettings):
> + # GIVEN: A slide controller, actions needed, settins set to True.
> + slide_controller = SlideController(None)
> + mocked_settings = MagicMock()
> + mocked_settings.return_value = True
> + MockedSettings.return_value = mocked_settings
> + slide_controller.service_item = MagicMock()
> + slide_controller.service_item.is_media = MagicMock()
> + slide_controller.on_media_close = MagicMock()
> + slide_controller.on_go_live = MagicMock()
> + slide_controller.on_preview_add_to_service = MagicMock()
> + slide_controller.media_reset = MagicMock()
> + Registry.create()
> + reg_value = True
Good point, the sample test in reg tests had it, copied it from there.
Removed it.
> + Registry().set_flag('has doubleclick added item to service', reg_value)
> +
> + # WHEN: on_preview_double_click is called
> + slide_controller.on_preview_double_click()
> +
> + # THEN: The call to addActions should be correct
> + self.assertEqual(1, slide_controller.on_go_live.call_count, 'on_go_live should have been called once.')
> + self.assertEqual(0, slide_controller.on_preview_add_to_service.call_count, 'Should have not been called.')
> +
> + @patch('openlp.core.ui.slidecontroller.Settings')
> + def on_preview_double_click_add_to_service_test(self, MockedSettings):
> + # GIVEN: A slide controller, actions needed, settins set to False.
> + slide_controller = SlideController(None)
> + mocked_settings = MagicMock()
> + mocked_settings.value.return_value = False
> + MockedSettings.return_value = mocked_settings
> + slide_controller.service_item = MagicMock()
> + slide_controller.service_item.is_media = MagicMock()
> + slide_controller.on_media_close = MagicMock()
> + slide_controller.on_go_live = MagicMock()
> + slide_controller.on_preview_add_to_service = MagicMock()
> + slide_controller.media_reset = MagicMock()
> + Registry.create()
> + reg_value = False
> + Registry().set_flag('has doubleclick added item to service', reg_value)
> +
> + # WHEN: on_preview_double_click is called
> + slide_controller.on_preview_double_click()
> +
> + # THEN: The call to addActions should be correct
> + self.assertEqual(0, slide_controller.on_go_live.call_count, 'on_go_live Should have not been called.')
> + self.assertEqual(1, slide_controller.on_preview_add_to_service.call_count, 'Should have been called once.')
> +
> @patch(u'openlp.core.ui.slidecontroller.SlideController.image_manager')
> @patch(u'PyQt5.QtCore.QTimer.singleShot')
> def test_update_preview_live(self, mocked_singleShot, mocked_image_manager):
--
https://code.launchpad.net/~suutari-olli/openlp/click-slide-to-go-live-from-blank/+merge/300257
Your team OpenLP Core is subscribed to branch lp:openlp.
References