forked from openlp/openlp
When going from a theme-blanked item to item which doesn't support theme-blanking, switch to black-blank.
This commit is contained in:
parent
335d8d2d17
commit
54fbaf3a4f
@ -826,8 +826,10 @@ class SlideController(DisplayController, RegistryProperties):
|
||||
old_item = self.service_item
|
||||
# take a copy not a link to the servicemanager copy.
|
||||
self.service_item = copy.copy(service_item)
|
||||
if old_item and self.is_live and old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay):
|
||||
self._reset_blank()
|
||||
# Reset blanking if needed
|
||||
if old_item and self.is_live and (old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay) or \
|
||||
self.service_item.is_capable(ItemCapabilities.ProvidesOwnDisplay)):
|
||||
self._reset_blank(self.service_item.is_capable(ItemCapabilities.ProvidesOwnDisplay))
|
||||
if service_item.is_command():
|
||||
Registry().execute(
|
||||
'%s_start' % service_item.name.lower(), [self.service_item, self.is_live, self.hide_mode(), slide_no])
|
||||
@ -1347,7 +1349,11 @@ class SlideController(DisplayController, RegistryProperties):
|
||||
|
||||
:param item: The service item to be processed
|
||||
"""
|
||||
self.media_controller.video(self.controller_type, item, self.hide_mode())
|
||||
if self.is_live and self.hide_mode() == HideMode.Theme:
|
||||
self.media_controller.video(self.controller_type, item, HideMode.Blank)
|
||||
self.on_blank_display(True)
|
||||
else:
|
||||
self.media_controller.video(self.controller_type, item, self.hide_mode())
|
||||
if not self.is_live:
|
||||
self.preview_display.show()
|
||||
self.slide_preview.hide()
|
||||
@ -1360,16 +1366,22 @@ class SlideController(DisplayController, RegistryProperties):
|
||||
self.preview_display.hide()
|
||||
self.slide_preview.show()
|
||||
|
||||
def _reset_blank(self):
|
||||
def _reset_blank(self, no_theme):
|
||||
"""
|
||||
Used by command items which provide their own displays to reset the
|
||||
screen hide attributes
|
||||
|
||||
:param no_theme: Does the new item support theme-blanking.
|
||||
"""
|
||||
hide_mode = self.hide_mode()
|
||||
if hide_mode == HideMode.Blank:
|
||||
self.on_blank_display(True)
|
||||
elif hide_mode == HideMode.Theme:
|
||||
self.on_theme_display(True)
|
||||
# The new item-type doesn't support theme-blanking, so 'switch' to normal blanking.
|
||||
if no_theme:
|
||||
self.on_blank_display(True)
|
||||
else:
|
||||
self.on_theme_display(True)
|
||||
elif hide_mode == HideMode.Screen:
|
||||
self.on_hide_display(True)
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user