Merge from shared branch

This commit is contained in:
Raoul Snyman 2018-09-11 22:48:08 -07:00
commit 514f2a16c6
2 changed files with 28 additions and 8 deletions

View File

@ -108,7 +108,7 @@ class DisplayWindow(QtWidgets.QWidget):
from openlp.core.display.webengine import WebEngineView from openlp.core.display.webengine import WebEngineView
self._is_initialised = False self._is_initialised = False
self._fbo = None self._fbo = None
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint) self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool) #| QtCore.Qt.WindowStaysOnTopHint
self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.layout = QtWidgets.QVBoxLayout(self) self.layout = QtWidgets.QVBoxLayout(self)
self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setContentsMargins(0, 0, 0, 0)
@ -122,6 +122,7 @@ class DisplayWindow(QtWidgets.QWidget):
self.webview.page().setWebChannel(self.channel) self.webview.page().setWebChannel(self.channel)
if screen and screen.is_display: if screen and screen.is_display:
self.update_from_screen(screen) self.update_from_screen(screen)
self.show()
def update_from_screen(self, screen): def update_from_screen(self, screen):
""" """

View File

@ -743,12 +743,6 @@ class SlideController(QtWidgets.QWidget, LogMixin, RegistryProperties):
:param item: The current service item :param item: The current service item
""" """
theme_name = item.theme if item.theme else Registry().get('theme_manager').global_theme
self.preview_display.set_theme(Registry().get('theme_manager').get_theme_data(theme_name))
if item.is_text():
self.preview_display.load_verses(item.rendered_slides)
elif item.is_image():
self.preview_display.load_images(item.slides)
slide_no = 0 slide_no = 0
# if self.song_edit: # if self.song_edit:
# slide_no = self.selected_row # slide_no = self.selected_row
@ -813,6 +807,16 @@ class SlideController(QtWidgets.QWidget, LogMixin, RegistryProperties):
Registry().execute( Registry().execute(
'{text}_start'.format(text=service_item.name.lower()), '{text}_start'.format(text=service_item.name.lower()),
[self.service_item, self.is_live, self.hide_mode(), slide_no]) [self.service_item, self.is_live, self.hide_mode(), slide_no])
else:
# Get theme
theme_name = service_item.theme if service_item.theme else Registry().get('theme_manager').global_theme
theme_data = Registry().get('theme_manager').get_theme_data(theme_name)
# Set theme for preview
self.preview_display.set_theme(theme_data)
# Set theme for displays
for display in self.displays:
display.set_theme(theme_data)
# Reset blanking if needed # Reset blanking if needed
if old_item and self.is_live and (old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay) or if old_item and self.is_live and (old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay) or
self.service_item.is_capable(ItemCapabilities.ProvidesOwnDisplay)): self.service_item.is_capable(ItemCapabilities.ProvidesOwnDisplay)):
@ -846,6 +850,9 @@ class SlideController(QtWidgets.QWidget, LogMixin, RegistryProperties):
row = 0 row = 0
width = self.main_window.control_splitter.sizes()[self.split] width = self.main_window.control_splitter.sizes()[self.split]
if self.service_item.is_text(): if self.service_item.is_text():
self.preview_display.load_verses(service_item.rendered_slides)
for display in self.displays:
display.load_verses(service_item.rendered_slides)
for slide_index, slide in enumerate(self.service_item.display_slides): for slide_index, slide in enumerate(self.service_item.display_slides):
if not slide['verse'].isdigit(): if not slide['verse'].isdigit():
# These tags are already translated. # These tags are already translated.
@ -861,6 +868,10 @@ class SlideController(QtWidgets.QWidget, LogMixin, RegistryProperties):
row += 1 row += 1
self.slide_list[str(row)] = row - 1 self.slide_list[str(row)] = row - 1
else: else:
if service_item.is_image():
self.preview_display.load_images(service_item.slides)
for display in self.displays:
display.load_images(service_item.slides)
for slide_index, slide in enumerate(self.service_item.slides): for slide_index, slide in enumerate(self.service_item.slides):
row += 1 row += 1
self.slide_list[str(row)] = row - 1 self.slide_list[str(row)] = row - 1
@ -925,7 +936,15 @@ class SlideController(QtWidgets.QWidget, LogMixin, RegistryProperties):
""" """
Set the preview display's zoom factor based on the size relative to the display size Set the preview display's zoom factor based on the size relative to the display size
""" """
ratio = float(size.width()) / 1920.0 display_with = 0
for screen in self.screens:
if screen.is_display:
display_with = screen.geometry.width()
if display_with == 0:
ratio = 0.25
else:
ratio = float(size.width()) / display_with
# TODO: Find a different scale solution, setZoomFactor only supports 0.25-5.0. Maybe HTML scale?
self.preview_display.webview.setZoomFactor(ratio) self.preview_display.webview.setZoomFactor(ratio)
def main_display_set_background(self): def main_display_set_background(self):