When going from a theme-blanked item to item which doesn't support theme-blanking, switch to black-blank.

This commit is contained in:
Tomas Groth 2015-04-30 14:37:13 +02:00
parent 335d8d2d17
commit 54fbaf3a4f
1 changed files with 17 additions and 5 deletions

View File

@ -826,8 +826,10 @@ class SlideController(DisplayController, RegistryProperties):
old_item = self.service_item old_item = self.service_item
# take a copy not a link to the servicemanager copy. # take a copy not a link to the servicemanager copy.
self.service_item = copy.copy(service_item) self.service_item = copy.copy(service_item)
if old_item and self.is_live and old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay): # Reset blanking if needed
self._reset_blank() 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(): if service_item.is_command():
Registry().execute( Registry().execute(
'%s_start' % service_item.name.lower(), [self.service_item, self.is_live, self.hide_mode(), slide_no]) '%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 :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: if not self.is_live:
self.preview_display.show() self.preview_display.show()
self.slide_preview.hide() self.slide_preview.hide()
@ -1360,16 +1366,22 @@ class SlideController(DisplayController, RegistryProperties):
self.preview_display.hide() self.preview_display.hide()
self.slide_preview.show() 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 Used by command items which provide their own displays to reset the
screen hide attributes screen hide attributes
:param no_theme: Does the new item support theme-blanking.
""" """
hide_mode = self.hide_mode() hide_mode = self.hide_mode()
if hide_mode == HideMode.Blank: if hide_mode == HideMode.Blank:
self.on_blank_display(True) self.on_blank_display(True)
elif hide_mode == HideMode.Theme: 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: elif hide_mode == HideMode.Screen:
self.on_hide_display(True) self.on_hide_display(True)
else: else: