diff --git a/openlp/core/common/settings.py b/openlp/core/common/settings.py index ea554e6a3..cca78bd2d 100644 --- a/openlp/core/common/settings.py +++ b/openlp/core/common/settings.py @@ -119,7 +119,6 @@ class Settings(QtCore.QSettings): '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, @@ -141,6 +140,7 @@ class Settings(QtCore.QSettings): 'core/auto preview': False, 'core/audio start paused': True, 'core/auto unblank': False, + 'core/click live slide to unblank': False, 'core/blank warning': False, 'core/ccli number': '', 'core/has run wizard': False, diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index d63c7385a..4421b432f 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -73,10 +73,7 @@ class AdvancedTab(SettingsTab): 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) @@ -271,8 +268,6 @@ class AdvancedTab(SettingsTab): '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', @@ -343,7 +338,6 @@ class AdvancedTab(SettingsTab): 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')) @@ -425,7 +419,6 @@ class AdvancedTab(SettingsTab): 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()) diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index 8ed8b3edf..da60f8311 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -173,6 +173,9 @@ class GeneralTab(SettingsTab): self.auto_unblank_check_box = QtWidgets.QCheckBox(self.settings_group_box) self.auto_unblank_check_box.setObjectName('auto_unblank_check_box') self.settings_layout.addRow(self.auto_unblank_check_box) + self.click_live_slide_to_unblank_check_box = QtWidgets.QCheckBox(self.settings_group_box) + self.click_live_slide_to_unblank_check_box.setObjectName('click_live_slide_to_unblank_') + self.settings_layout.addRow(self.click_live_slide_to_unblank_check_box) self.auto_preview_check_box = QtWidgets.QCheckBox(self.settings_group_box) self.auto_preview_check_box.setObjectName('auto_preview_check_box') self.settings_layout.addRow(self.auto_preview_check_box) @@ -217,6 +220,8 @@ class GeneralTab(SettingsTab): self.save_check_service_check_box.setText(translate('OpenLP.GeneralTab', 'Prompt to save before starting a new service')) self.auto_unblank_check_box.setText(translate('OpenLP.GeneralTab', 'Unblank display when adding new live item')) + self.click_live_slide_to_unblank_check_box.setText(translate('OpenLP.GeneralTab', + 'Unblank display when changing slide in Live')) self.auto_preview_check_box.setText(translate('OpenLP.GeneralTab', 'Automatically preview next item in service')) self.timeout_label.setText(translate('OpenLP.GeneralTab', 'Timed slide interval:')) @@ -250,6 +255,7 @@ class GeneralTab(SettingsTab): self.password_edit.setText(settings.value('songselect password')) self.save_check_service_check_box.setChecked(settings.value('save prompt')) self.auto_unblank_check_box.setChecked(settings.value('auto unblank')) + self.click_live_slide_to_unblank_check_box.setChecked(settings.value('click live slide to unblank')) self.display_on_monitor_check.setChecked(self.screens.display) self.warning_check_box.setChecked(settings.value('blank warning')) self.auto_open_check_box.setChecked(settings.value('auto open')) @@ -287,6 +293,7 @@ class GeneralTab(SettingsTab): settings.setValue('update check', self.check_for_updates_check_box.isChecked()) settings.setValue('save prompt', self.save_check_service_check_box.isChecked()) settings.setValue('auto unblank', self.auto_unblank_check_box.isChecked()) + settings.setValue('click live slide to unblank', self.click_live_slide_to_unblank_check_box.isChecked()) settings.setValue('auto preview', self.auto_preview_check_box.isChecked()) settings.setValue('loop delay', self.timeout_spin_box.value()) settings.setValue('ccli number', self.number_edit.displayText()) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index fac67437f..d8df7d305 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -792,6 +792,8 @@ class SlideController(DisplayController, RegistryProperties): 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) + This happens only when Automatic unblanking is enabled when new item is sen to Live, + if it's not enabled they won't flash. :param item: The current service item """ @@ -1105,8 +1107,14 @@ class SlideController(DisplayController, RegistryProperties): 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') + # If "click live slide to unblank" is enabled, unblank the display. + # 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: + () + else: + Registry().execute('slidecontroller_live_unblank') row = self.preview_widget.current_slide_number() old_selected_row = self.selected_row self.selected_row = 0 @@ -1275,7 +1283,8 @@ class SlideController(DisplayController, RegistryProperties): 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') + if Settings().value('core/click live slide to unblank'): + Registry().execute('slidecontroller_live_unblank') else: self.play_slides_loop.setIcon(build_icon(':/media/media_time.png')) self.play_slides_loop.setText(UiStrings().PlaySlidesInLoop) @@ -1299,7 +1308,8 @@ class SlideController(DisplayController, RegistryProperties): 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') + if Settings().value('core/click live slide to unblank'): + Registry().execute('slidecontroller_live_unblank') else: self.play_slides_once.setIcon(build_icon(':/media/media_time')) self.play_slides_once.setText(UiStrings().PlaySlidesToEnd) @@ -1361,7 +1371,8 @@ class SlideController(DisplayController, RegistryProperties): Registry().execute('%s_stop' % self.service_item.name.lower(), [self.service_item, self.is_live]) if self.service_item.is_media(): self.on_media_close() - self.on_go_live() + if Settings().value('core/auto unblank'): + self.on_go_live() else: self.on_preview_add_to_service()