← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~suutari-olli/openlp/click-slide-to-go-live-from-blank into lp:openlp

 

Azaziah has proposed merging lp:~suutari-olli/openlp/click-slide-to-go-live-from-blank into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)
Related bugs:
  Bug #1531691 in OpenLP: "Song is sent back to live after edit if blanked"
  https://bugs.launchpad.net/openlp/+bug/1531691

For more details, see:
https://code.launchpad.net/~suutari-olli/openlp/click-slide-to-go-live-from-blank/+merge/289026

This branch introduces the functionality of unblanking
display from Blank to Black/Theme/Desktop for:

a) Clicking slide in “Live panel”
b) Next/Previous shortcuts (Green arrows)
c) Go to verse x.
d) When starting automatic playback (To end or Loop)
Also added “Unblank display when changing slide in Live” to advanced
options tab for disabling/enabling this behavior for a-c.

Additionally this branch also includes fix for bug
https://bugs.launchpad.net/openlp/+bug/1531691
Do note that this branch does not fix this for Escape item blanking, 
creating yet an another Escape exclusive bug.

The only reason Escape item has been a good alternative for other 
blank to methods is the functionality of resuming Live by clicking 
slides and the fact it worked in single screen scenarios. 
I can’t see any reason why it should not be removed after this branch
is merged since the single screen issue was already fixed earlier.

Test coverage is not yet increased.
If it must be done, what has to be tested?

--------------------------------
lp:~suutari-olli/openlp/click-slide-to-go-live-from-blank (revision 2630)
[←[1;32mSUCCESS←[1;m] https://ci.openlp.io/job/Branch-01-Pull/1318/
[←[1;32mSUCCESS←[1;m] https://ci.openlp.io/job/Branch-02-Functional-Tests/1240/
[←[1;32mSUCCESS←[1;m] https://ci.openlp.io/job/Branch-03-Interface-Tests/1179/
[←[1;32mSUCCESS←[1;m] https://ci.openlp.io/job/Branch-04a-Windows_Functional_Tests/1014/
[←[1;32mSUCCESS←[1;m] https://ci.openlp.io/job/Branch-04b-Windows_Interface_Tests/605/
[←[1;32mSUCCESS←[1;m] https://ci.openlp.io/job/Branch-05a-Code_Analysis/672/
[←[1;31mFAILURE←[1;m] https://ci.openlp.io/job/Branch-05b-Test_Coverage/540/


-- 
Your team OpenLP Core is requested to review the proposed merge of lp:~suutari-olli/openlp/click-slide-to-go-live-from-blank into lp:openlp.
=== modified file 'openlp/core/common/settings.py'
--- openlp/core/common/settings.py	2016-02-02 21:55:37 +0000
+++ openlp/core/common/settings.py	2016-03-15 09:55:12 +0000
@@ -119,6 +119,7 @@
         'advanced/default service name': UiStrings().DefaultServiceName,
         'advanced/display size': 0,
         'advanced/double click live': False,
+        'advanced/click live slide to unblank': True,
         'advanced/enable exit confirmation': True,
         'advanced/expand service item': False,
         'advanced/hide mouse': True,

=== modified file 'openlp/core/ui/advancedtab.py'
--- openlp/core/ui/advancedtab.py	2015-12-31 22:46:06 +0000
+++ openlp/core/ui/advancedtab.py	2016-03-15 09:55:12 +0000
@@ -73,7 +73,10 @@
         self.ui_layout.addRow(self.media_plugin_check_box)
         self.double_click_live_check_box = QtWidgets.QCheckBox(self.ui_group_box)
         self.double_click_live_check_box.setObjectName('double_click_live_check_box')
+        self.click_live_slide_to_unblank_check_box = QtWidgets.QCheckBox(self.ui_group_box)
+        self.click_live_slide_to_unblank_check_box.setObjectName('click_live_slide_to_unblank_')
         self.ui_layout.addRow(self.double_click_live_check_box)
+        self.ui_layout.addRow(self.click_live_slide_to_unblank_check_box)
         self.single_click_preview_check_box = QtWidgets.QCheckBox(self.ui_group_box)
         self.single_click_preview_check_box.setObjectName('single_click_preview_check_box')
         self.ui_layout.addRow(self.single_click_preview_check_box)
@@ -268,6 +271,8 @@
                                                       'Remember active media manager tab on startup'))
         self.double_click_live_check_box.setText(translate('OpenLP.AdvancedTab',
                                                            'Double-click to send items straight to live'))
+        self.click_live_slide_to_unblank_check_box.setText(translate('OpenLP.AdvancedTab',
+                                                           'Unblank display when changing slide in Live'))
         self.single_click_preview_check_box.setText(translate('OpenLP.AdvancedTab',
                                                               'Preview items when clicked in Media Manager'))
         self.expand_service_item_check_box.setText(translate('OpenLP.AdvancedTab',
@@ -338,6 +343,7 @@
         self.recent_spin_box.setValue(settings.value('recent file count'))
         self.media_plugin_check_box.setChecked(settings.value('save current plugin'))
         self.double_click_live_check_box.setChecked(settings.value('double click live'))
+        self.click_live_slide_to_unblank_check_box.setChecked(settings.value('click live slide to unblank'))
         self.single_click_preview_check_box.setChecked(settings.value('single click preview'))
         self.expand_service_item_check_box.setChecked(settings.value('expand service item'))
         self.enable_auto_close_check_box.setChecked(settings.value('enable exit confirmation'))
@@ -419,6 +425,7 @@
         settings.setValue('recent file count', self.recent_spin_box.value())
         settings.setValue('save current plugin', self.media_plugin_check_box.isChecked())
         settings.setValue('double click live', self.double_click_live_check_box.isChecked())
+        settings.setValue('click live slide to unblank', self.click_live_slide_to_unblank_check_box.isChecked())
         settings.setValue('single click preview', self.single_click_preview_check_box.isChecked())
         settings.setValue('expand service item', self.expand_service_item_check_box.isChecked())
         settings.setValue('enable exit confirmation', self.enable_auto_close_check_box.isChecked())

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2016-02-28 20:33:19 +0000
+++ openlp/core/ui/slidecontroller.py	2016-03-15 09:55:12 +0000
@@ -789,11 +789,27 @@
     def replace_service_manager_item(self, item):
         """
         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, this will update the song and then re-blank the display.
+        As result, lyrics are flashed on screen for a very short time before re-blanking happens. (Bug)
 
         :param item: The current service item
         """
         if item == self.service_item:
-            self._process_item(item, self.preview_widget.current_slide_number())
+            if not self.hide_mode():
+                self._process_item(item, self.preview_widget.current_slide_number())
+            # "isChecked" method is required for checking blanks, on_xx_display(False) does not work.
+            elif self.hide_mode():
+                if self.blank_screen.isChecked():
+                    self._process_item(item, self.preview_widget.current_slide_number())
+                    self.on_blank_display(True)
+                elif self.theme_screen.isChecked():
+                    self._process_item(item, self.preview_widget.current_slide_number())
+                    self.on_theme_display(True)
+                elif self.desktop_screen.isChecked():
+                    self._process_item(item, self.preview_widget.current_slide_number())
+                    self.on_hide_display(True)
+                    self.on_hide_display(True)
 
     def add_service_manager_item(self, item, slide_no):
         """
@@ -1090,6 +1106,8 @@
                 self.log_debug('Could not get lock in slide_selected after waiting %f, skip to avoid deadlock.'
                                % timeout)
             return
+        if self.is_live and Settings().value('advanced/click live slide to unblank'):
+            Registry().execute('slidecontroller_live_unblank')
         row = self.preview_widget.current_slide_number()
         old_selected_row = self.selected_row
         self.selected_row = 0
@@ -1258,6 +1276,7 @@
             self.play_slides_once.setText(UiStrings().PlaySlidesToEnd)
             self.play_slides_menu.setDefaultAction(self.play_slides_loop)
             self.play_slides_once.setChecked(False)
+            Registry().execute('slidecontroller_live_unblank')
         else:
             self.play_slides_loop.setIcon(build_icon(':/media/media_time.png'))
             self.play_slides_loop.setText(UiStrings().PlaySlidesInLoop)
@@ -1281,6 +1300,7 @@
             self.play_slides_loop.setText(UiStrings().PlaySlidesInLoop)
             self.play_slides_menu.setDefaultAction(self.play_slides_once)
             self.play_slides_loop.setChecked(False)
+            Registry().execute('slidecontroller_live_unblank')
         else:
             self.play_slides_once.setIcon(build_icon(':/media/media_time'))
             self.play_slides_once.setText(UiStrings().PlaySlidesToEnd)


Follow ups