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
|
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:
|
||||||
|
Loading…
Reference in New Issue
Block a user