forked from openlp/openlp
More refactoring and improvements
This commit is contained in:
parent
53c6e93d08
commit
443ff3fecd
@ -77,31 +77,32 @@ HTMLSRC = u"""
|
|||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
"""
|
"""
|
||||||
def build_html(theme, screen, alert, image):
|
def build_html(item, screen, alert):
|
||||||
width = screen[u'size'].width()
|
width = screen[u'size'].width()
|
||||||
height = screen[u'size'].height()
|
height = screen[u'size'].height()
|
||||||
html = HTMLSRC % (build_video(theme, width, height, alert),
|
html = HTMLSRC % (build_video(width, height),
|
||||||
build_image(theme, width, height, alert),
|
build_image(width, height),
|
||||||
build_lyrics(theme, width, height, alert),
|
build_lyrics(item, width, height),
|
||||||
build_alert(theme, width, height, alert),
|
build_alert(width, height, alert),
|
||||||
build_image(theme, width, height, alert),
|
build_image(width, height),
|
||||||
build_image_src(theme, width, height, alert, image))
|
build_image_src(item.bg_frame))
|
||||||
return html
|
return html
|
||||||
|
|
||||||
def build_video(theme, width, height, alert):
|
def build_video(width, height):
|
||||||
video = """
|
video = """
|
||||||
#video {
|
#video {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
width: 640px
|
width: %spx
|
||||||
height: 480px;
|
height: %spx;
|
||||||
z-index:1;
|
z-index:1;
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
return video
|
return video % (width, height)
|
||||||
|
|
||||||
def build_image(theme, width, height, alert):
|
|
||||||
|
def build_image(width, height):
|
||||||
image = """
|
image = """
|
||||||
#image {
|
#image {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -114,14 +115,14 @@ def build_image(theme, width, height, alert):
|
|||||||
"""
|
"""
|
||||||
return image % (width, height)
|
return image % (width, height)
|
||||||
|
|
||||||
def build_image_src(theme, width, height, alert, image):
|
def build_image_src(image):
|
||||||
# <img src="" height="480" width="640" />
|
# <img src="" height="480" width="640" />
|
||||||
image_src = """
|
image_src = """
|
||||||
<img src="data:image/png;base64,%s">";
|
<img src="data:image/png;base64,%s">";
|
||||||
"""
|
"""
|
||||||
return image_src % image_to_byte(image)
|
return image_src % image_to_byte(image)
|
||||||
|
|
||||||
def build_lyrics(theme, width, height, alert):
|
def build_lyrics(item, width, height):
|
||||||
lyrics = """
|
lyrics = """
|
||||||
#lyrics {
|
#lyrics {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -136,6 +137,7 @@ def build_lyrics(theme, width, height, alert):
|
|||||||
font-size: %spx;
|
font-size: %spx;
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
theme = item.themedata
|
||||||
lyrics_html = u''
|
lyrics_html = u''
|
||||||
shadow = u''
|
shadow = u''
|
||||||
outline = u''
|
outline = u''
|
||||||
@ -153,7 +155,7 @@ def build_lyrics(theme, width, height, alert):
|
|||||||
print lyrics_html
|
print lyrics_html
|
||||||
return lyrics_html
|
return lyrics_html
|
||||||
|
|
||||||
def build_alert(theme, width, height, alert):
|
def build_alert(width, height, alert):
|
||||||
alert = """
|
alert = """
|
||||||
#alert {
|
#alert {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -130,7 +130,7 @@ class RenderManager(object):
|
|||||||
self.renderer.set_theme(self.themedata)
|
self.renderer.set_theme(self.themedata)
|
||||||
self.build_text_rectangle(self.themedata)
|
self.build_text_rectangle(self.themedata)
|
||||||
self.renderer.set_frame_dest(self.width, self.height)
|
self.renderer.set_frame_dest(self.width, self.height)
|
||||||
return self.renderer.bg_frame
|
return self.renderer._rect, self.renderer._rect_footer
|
||||||
|
|
||||||
def build_text_rectangle(self, theme):
|
def build_text_rectangle(self, theme):
|
||||||
"""
|
"""
|
||||||
|
@ -92,6 +92,7 @@ class ServiceItem(object):
|
|||||||
self.is_valid = True
|
self.is_valid = True
|
||||||
self.cache = {}
|
self.cache = {}
|
||||||
self.icon = None
|
self.icon = None
|
||||||
|
self.themedata = None
|
||||||
|
|
||||||
def add_capability(self, capability):
|
def add_capability(self, capability):
|
||||||
"""
|
"""
|
||||||
@ -136,10 +137,12 @@ class ServiceItem(object):
|
|||||||
self.just_rendered = True
|
self.just_rendered = True
|
||||||
if self.service_item_type == ServiceItemType.Text:
|
if self.service_item_type == ServiceItemType.Text:
|
||||||
log.debug(u'Formatting slides')
|
log.debug(u'Formatting slides')
|
||||||
if self.theme is None:
|
theme = None;
|
||||||
self.render_manager.set_override_theme(None)
|
if not self.theme:
|
||||||
else:
|
theme = self.theme
|
||||||
self.render_manager.set_override_theme(self.theme)
|
self.main, self.footer = self.render_manager.set_override_theme(theme)
|
||||||
|
self.bg_frame = self.render_manager.renderer.bg_frame
|
||||||
|
self.themedata = self.render_manager.themedata
|
||||||
for slide in self._raw_frames:
|
for slide in self._raw_frames:
|
||||||
before = time.time()
|
before = time.time()
|
||||||
formated = self.render_manager.format_slide(slide[u'raw_slide'])
|
formated = self.render_manager.format_slide(slide[u'raw_slide'])
|
||||||
@ -156,8 +159,6 @@ class ServiceItem(object):
|
|||||||
if len(self._display_frames) in self.cache.keys():
|
if len(self._display_frames) in self.cache.keys():
|
||||||
del self.cache[len(self._display_frames)]
|
del self.cache[len(self._display_frames)]
|
||||||
log.log(15, u'Formatting took %4s' % (time.time() - before))
|
log.log(15, u'Formatting took %4s' % (time.time() - before))
|
||||||
self.bg_frame = self.render_manager.renderer.bg_frame
|
|
||||||
self.themedata = self.render_manager.themedata
|
|
||||||
elif self.service_item_type == ServiceItemType.Image:
|
elif self.service_item_type == ServiceItemType.Image:
|
||||||
for slide in self._raw_frames:
|
for slide in self._raw_frames:
|
||||||
slide[u'image'] = resize_image(slide[u'image'],
|
slide[u'image'] = resize_image(slide[u'image'],
|
||||||
@ -182,11 +183,12 @@ class ServiceItem(object):
|
|||||||
# if self.cache.get(row):
|
# if self.cache.get(row):
|
||||||
# frame = self.cache[row]
|
# frame = self.cache[row]
|
||||||
# else:
|
# else:
|
||||||
if raw_html[0]:
|
# if raw_html[0]:
|
||||||
frame = self.render_manager.generate_slide(raw_html,
|
# frame = self.render_manager.generate_slide(raw_html,
|
||||||
self.raw_footer)
|
# self.raw_footer)
|
||||||
else:
|
# else:
|
||||||
frame = self.render_manager.generate_slide(raw_html, u'')
|
# frame = self.render_manager.generate_slide(raw_html, u'')
|
||||||
|
frame = None
|
||||||
self.cache[row] = frame
|
self.cache[row] = frame
|
||||||
return frame, raw_html[0]
|
return frame, raw_html[0]
|
||||||
|
|
||||||
|
@ -36,10 +36,12 @@ class HideMode(object):
|
|||||||
Theme = 2
|
Theme = 2
|
||||||
Screen = 3
|
Screen = 3
|
||||||
|
|
||||||
|
from maindisplay import WebViewer
|
||||||
from slidecontroller import HideMode
|
from slidecontroller import HideMode
|
||||||
from servicenoteform import ServiceNoteForm
|
from servicenoteform import ServiceNoteForm
|
||||||
from serviceitemeditform import ServiceItemEditForm
|
from serviceitemeditform import ServiceItemEditForm
|
||||||
from screen import ScreenList
|
from screen import ScreenList
|
||||||
|
from maindisplay import WebViewer
|
||||||
from maindisplay import DisplayManager
|
from maindisplay import DisplayManager
|
||||||
from amendthemeform import AmendThemeForm
|
from amendthemeform import AmendThemeForm
|
||||||
from slidecontroller import SlideController
|
from slidecontroller import SlideController
|
||||||
|
@ -30,7 +30,7 @@ import time
|
|||||||
from PyQt4 import QtCore, QtGui, QtWebKit
|
from PyQt4 import QtCore, QtGui, QtWebKit
|
||||||
from PyQt4.phonon import Phonon
|
from PyQt4.phonon import Phonon
|
||||||
|
|
||||||
from openlp.core.lib import Receiver, resize_image, build_html
|
from openlp.core.lib import Receiver, resize_image, build_html, ServiceItem
|
||||||
from openlp.core.ui import HideMode
|
from openlp.core.ui import HideMode
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@ -59,6 +59,7 @@ HTMLVIDEO = u"""<html>
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
class DisplayManager(QtGui.QWidget):
|
class DisplayManager(QtGui.QWidget):
|
||||||
|
pass
|
||||||
"""
|
"""
|
||||||
Wrapper class to hold the display widgets.
|
Wrapper class to hold the display widgets.
|
||||||
I will provide API's in future to access the screens allow for
|
I will provide API's in future to access the screens allow for
|
||||||
@ -71,24 +72,24 @@ class DisplayManager(QtGui.QWidget):
|
|||||||
self.screens = screens
|
self.screens = screens
|
||||||
self.audioPlayer = AudioPlayer(self)
|
self.audioPlayer = AudioPlayer(self)
|
||||||
# Live display
|
# Live display
|
||||||
self.mainDisplay = WebViewer(self, screens, True)
|
#self.mainDisplay = WebViewer(self, screens, True)
|
||||||
# Display for Preview and Theme previews
|
# Display for Preview and Theme previews
|
||||||
self.previewDisplay = WebViewer(self, screens, False)
|
#self.previewDisplay = WebViewer(self, screens, False)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
# QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'maindisplay_hide'), self.hideDisplay)
|
# QtCore.SIGNAL(u'maindisplay_hide'), self.hideDisplay)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
# QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'maindisplay_show'), self.showDisplay)
|
# QtCore.SIGNAL(u'maindisplay_show'), self.showDisplay)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
# QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'videodisplay_start'), self.onStartVideo)
|
# QtCore.SIGNAL(u'videodisplay_start'), self.onStartVideo)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
# QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'videodisplay_stop'), self.onStopVideo)
|
# QtCore.SIGNAL(u'videodisplay_stop'), self.onStopVideo)
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
# QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'config_updated'), self.setup)
|
# QtCore.SIGNAL(u'config_updated'), self.setup)
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
log.debug(u'mainDisplay - setup')
|
log.debug(u'mainDisplay - setup')
|
||||||
# let the render manager have the preview display.
|
# let the render manager have the preview display.
|
||||||
self.parent.RenderManager.previewDisplay = self.previewDisplay
|
#self.parent.RenderManager.previewDisplay = self.previewDisplay
|
||||||
#Build the initial frame.
|
#Build the initial frame.
|
||||||
self.initialFrame = QtGui.QImage(
|
self.initialFrame = QtGui.QImage(
|
||||||
self.screens.current[u'size'].width(),
|
self.screens.current[u'size'].width(),
|
||||||
@ -102,77 +103,78 @@ class DisplayManager(QtGui.QWidget):
|
|||||||
(self.screens.current[u'size'].width() - splash_image.width()) / 2,
|
(self.screens.current[u'size'].width() - splash_image.width()) / 2,
|
||||||
(self.screens.current[u'size'].height() - splash_image.height()) / 2,
|
(self.screens.current[u'size'].height() - splash_image.height()) / 2,
|
||||||
splash_image)
|
splash_image)
|
||||||
self.mainDisplay.setup()
|
# self.mainDisplay.setup()
|
||||||
self.previewDisplay.setup()
|
# self.previewDisplay.setup()
|
||||||
self.mainDisplay.buildHtml(self.initialFrame)
|
# if self.isLive
|
||||||
self.mainDisplay.show()
|
# self.mainDisplay.buildHtml(self.initialFrame)
|
||||||
|
# self.mainDisplay.show()
|
||||||
|
|
||||||
def hideDisplay(self, message):
|
# def hideDisplay(self, message):
|
||||||
"""
|
# """
|
||||||
Hide the output displays
|
# Hide the output displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.hideDisplay(message)
|
# self.mainDisplay.hideDisplay(message)
|
||||||
|
#
|
||||||
def showDisplay(self, message):
|
# def showDisplay(self, message):
|
||||||
"""
|
# """
|
||||||
Hide the output displays
|
# Hide the output displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.showDisplay(message)
|
# self.mainDisplay.showDisplay(message)
|
||||||
|
#
|
||||||
def addAlert(self, alertMessage, location):
|
# def addAlert(self, alertMessage, location):
|
||||||
"""
|
# """
|
||||||
Handles the addition of an Alert Message to the Displays
|
# Handles the addition of an Alert Message to the Displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.addAlert(alertMessage, location)
|
# self.mainDisplay.addAlert(alertMessage, location)
|
||||||
|
#
|
||||||
def displayImageWithText(self, frame):
|
# def displayImageWithText(self, frame):
|
||||||
"""
|
# """
|
||||||
Handles the addition of a background Image to the displays
|
# Handles the addition of a background Image to the displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.addImageWithText(frame)
|
# self.mainDisplay.addImageWithText(frame)
|
||||||
|
#
|
||||||
def buildHtml(self, image=None):
|
# def buildHtml(self, image=None):
|
||||||
"""
|
# """
|
||||||
Handles the addition of a background Image to the displays
|
# Handles the addition of a background Image to the displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.buildHtml(image)
|
# self.mainDisplay.buildHtml(image)
|
||||||
|
#
|
||||||
def text(self, text):
|
# def text(self, text):
|
||||||
"""
|
# """
|
||||||
Handles the addition of a background Image to the displays
|
# Handles the addition of a background Image to the displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.text(text)
|
# self.mainDisplay.text(text)
|
||||||
|
#
|
||||||
def displayImage(self, frame):
|
# def displayImage(self, frame):
|
||||||
"""
|
# """
|
||||||
Handles the addition of a background Image to the displays
|
# Handles the addition of a background Image to the displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.displayImage(frame)
|
# self.mainDisplay.displayImage(frame)
|
||||||
|
#
|
||||||
def displayVideo(self, path):
|
# def displayVideo(self, path):
|
||||||
"""
|
# """
|
||||||
Handles the addition of a background Video to the displays
|
# Handles the addition of a background Video to the displays
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.displayVideo(path)
|
# self.mainDisplay.displayVideo(path)
|
||||||
|
#
|
||||||
def onStartVideo(self, item):
|
# def onStartVideo(self, item):
|
||||||
"""
|
# """
|
||||||
Handles the Starting of a Video and Display Management
|
# Handles the Starting of a Video and Display Management
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.setVisible(False)
|
# self.mainDisplay.setVisible(False)
|
||||||
|
#
|
||||||
def onStopVideo(self):
|
# def onStopVideo(self):
|
||||||
"""
|
# """
|
||||||
Handles the Stopping of a Video and Display Management
|
# Handles the Stopping of a Video and Display Management
|
||||||
"""
|
# """
|
||||||
self.mainDisplay.setVisible(True)
|
# self.mainDisplay.setVisible(True)
|
||||||
|
#
|
||||||
def close(self):
|
# def close(self):
|
||||||
"""
|
# """
|
||||||
Handles the closure of the displays
|
# Handles the closure of the displays
|
||||||
"""
|
# """
|
||||||
|
#
|
||||||
self.mainDisplay.close()
|
# self.mainDisplay.close()
|
||||||
|
|
||||||
class DisplayWidget(QtGui.QGraphicsView):
|
class DisplayWidget(QtGui.QGraphicsView):
|
||||||
"""
|
"""
|
||||||
@ -230,6 +232,7 @@ class WebViewer(DisplayWidget):
|
|||||||
DisplayWidget.__init__(self, live, parent=None)
|
DisplayWidget.__init__(self, live, parent=None)
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.screens = screens
|
self.screens = screens
|
||||||
|
self.isLive = live
|
||||||
self.setWindowTitle(u'OpenLP Display')
|
self.setWindowTitle(u'OpenLP Display')
|
||||||
self.setWindowFlags(QtCore.Qt.FramelessWindowHint |
|
self.setWindowFlags(QtCore.Qt.FramelessWindowHint |
|
||||||
QtCore.Qt.WindowStaysOnTopHint)
|
QtCore.Qt.WindowStaysOnTopHint)
|
||||||
@ -266,6 +269,7 @@ class WebViewer(DisplayWidget):
|
|||||||
def text(self, slide):
|
def text(self, slide):
|
||||||
print slide
|
print slide
|
||||||
self.frame.findFirstElement('div#lyrics').setInnerXml(slide)
|
self.frame.findFirstElement('div#lyrics').setInnerXml(slide)
|
||||||
|
return self.preview()
|
||||||
|
|
||||||
def alert(self):
|
def alert(self):
|
||||||
self.frame.findFirstElement('div#alert').setInnerXml(self.alerttext)
|
self.frame.findFirstElement('div#alert').setInnerXml(self.alerttext)
|
||||||
@ -304,12 +308,26 @@ class WebViewer(DisplayWidget):
|
|||||||
QtCore.Qt.ScrollBarAlwaysOff)
|
QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
self.frame.setScrollBarPolicy(QtCore.Qt.Horizontal,
|
self.frame.setScrollBarPolicy(QtCore.Qt.Horizontal,
|
||||||
QtCore.Qt.ScrollBarAlwaysOff)
|
QtCore.Qt.ScrollBarAlwaysOff)
|
||||||
|
if self.isLive:
|
||||||
|
#Build the initial frame.
|
||||||
|
initialFrame = QtGui.QImage(
|
||||||
|
self.screens.current[u'size'].width(),
|
||||||
|
self.screens.current[u'size'].height(),
|
||||||
|
QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||||
|
splash_image = QtGui.QImage(u':/graphics/openlp-splash-screen.png')
|
||||||
|
painter_image = QtGui.QPainter()
|
||||||
|
painter_image.begin(initialFrame)
|
||||||
|
painter_image.fillRect(initialFrame.rect(), QtCore.Qt.white)
|
||||||
|
painter_image.drawImage(
|
||||||
|
(self.screens.current[u'size'].width() - splash_image.width()) / 2,
|
||||||
|
(self.screens.current[u'size'].height() - splash_image.height()) / 2,
|
||||||
|
splash_image)
|
||||||
|
item = ServiceItem()
|
||||||
|
item.bg_frame = initialFrame
|
||||||
|
self.webView.setHtml(build_html(item, self.screen, None))
|
||||||
|
self.show()
|
||||||
|
|
||||||
def preview(self, image, text, theme):
|
def preview(self):
|
||||||
self.setVisible(False)
|
|
||||||
html = build_html(theme, self.screen, None, image)
|
|
||||||
self.webView.setHtml(html)
|
|
||||||
self.frame.findFirstElement('div#lyrics').setInnerXml(text)
|
|
||||||
preview = QtGui.QImage(self.screen[u'size'].width(),
|
preview = QtGui.QImage(self.screen[u'size'].width(),
|
||||||
self.screen[u'size'].height(),
|
self.screen[u'size'].height(),
|
||||||
QtGui.QImage.Format_ARGB32_Premultiplied)
|
QtGui.QImage.Format_ARGB32_Premultiplied)
|
||||||
@ -326,11 +344,13 @@ class WebViewer(DisplayWidget):
|
|||||||
html = build_html(self.parent.renderManager.themedata, self.screen, None, image)
|
html = build_html(self.parent.renderManager.themedata, self.screen, None, image)
|
||||||
self.webView.setHtml(html)
|
self.webView.setHtml(html)
|
||||||
|
|
||||||
def buildHtml(self, image=None):
|
def buildHtml(self, serviceItem):
|
||||||
if not image:
|
"""
|
||||||
html = build_html(self.parent.renderManager.themedata, self.screen, None, self.parent.renderManager.renderer.bg_frame)
|
Store the serviceItem and build the new HTML from it. Add the
|
||||||
else:
|
HTML to the display
|
||||||
html = build_html(self.parent.renderManager.themedata, self.screen, None, image)
|
"""
|
||||||
|
self.serviceItem = serviceItem
|
||||||
|
html = build_html(self.serviceItem, self.screen, None)
|
||||||
self.webView.setHtml(html)
|
self.webView.setHtml(html)
|
||||||
|
|
||||||
#class DisplayWidget(QtGui.QGraphicsView):
|
#class DisplayWidget(QtGui.QGraphicsView):
|
||||||
|
@ -135,8 +135,8 @@ class Ui_MainWindow(object):
|
|||||||
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
||||||
self.MainContentLayout.addWidget(self.ControlSplitter)
|
self.MainContentLayout.addWidget(self.ControlSplitter)
|
||||||
# Create slide controllers
|
# Create slide controllers
|
||||||
self.PreviewController = SlideController(self, self.settingsmanager)
|
self.PreviewController = SlideController(self, self.settingsmanager, self.screens)
|
||||||
self.LiveController = SlideController(self, self.settingsmanager, True)
|
self.LiveController = SlideController(self, self.settingsmanager, self.screens, True)
|
||||||
# Create menu
|
# Create menu
|
||||||
self.MenuBar = QtGui.QMenuBar(MainWindow)
|
self.MenuBar = QtGui.QMenuBar(MainWindow)
|
||||||
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
||||||
@ -692,10 +692,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
Show the main form, as well as the display form
|
Show the main form, as well as the display form
|
||||||
"""
|
"""
|
||||||
QtGui.QWidget.show(self)
|
QtGui.QWidget.show(self)
|
||||||
#screen_number = self.getMonitorNumber()
|
self.LiveController.display.setup()
|
||||||
self.displayManager.setup()
|
if self.LiveController.display.isVisible():
|
||||||
if self.displayManager.mainDisplay.isVisible():
|
self.LiveController.display.setFocus()
|
||||||
self.displayManager.mainDisplay.setFocus()
|
|
||||||
self.activateWindow()
|
self.activateWindow()
|
||||||
if QtCore.QSettings().value(
|
if QtCore.QSettings().value(
|
||||||
self.generalSettingsSection + u'/auto open',
|
self.generalSettingsSection + u'/auto open',
|
||||||
@ -835,8 +834,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.plugin_manager.finalise_plugins()
|
self.plugin_manager.finalise_plugins()
|
||||||
# Save settings
|
# Save settings
|
||||||
self.saveSettings()
|
self.saveSettings()
|
||||||
#Close down the displays
|
#Close down the display
|
||||||
self.displayManager.close()
|
self.LiveController.display.close()
|
||||||
|
|
||||||
def serviceChanged(self, reset=False, serviceName=None):
|
def serviceChanged(self, reset=False, serviceName=None):
|
||||||
"""
|
"""
|
||||||
|
@ -30,7 +30,7 @@ import os
|
|||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
from PyQt4.phonon import Phonon
|
from PyQt4.phonon import Phonon
|
||||||
|
|
||||||
from openlp.core.ui import HideMode
|
from openlp.core.ui import HideMode, WebViewer
|
||||||
from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \
|
from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \
|
||||||
ItemCapabilities, translate
|
ItemCapabilities, translate
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ class SlideController(QtGui.QWidget):
|
|||||||
SlideController is the slide controller widget. This widget is what the
|
SlideController is the slide controller widget. This widget is what the
|
||||||
user uses to control the displaying of verses/slides/etc on the screen.
|
user uses to control the displaying of verses/slides/etc on the screen.
|
||||||
"""
|
"""
|
||||||
def __init__(self, parent, settingsmanager, isLive=False):
|
def __init__(self, parent, settingsmanager, screens, isLive=False):
|
||||||
"""
|
"""
|
||||||
Set up the Slide Controller.
|
Set up the Slide Controller.
|
||||||
"""
|
"""
|
||||||
@ -104,8 +104,9 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.settingsmanager = settingsmanager
|
self.settingsmanager = settingsmanager
|
||||||
self.isLive = isLive
|
self.isLive = isLive
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.mainDisplay = self.parent.displayManager.mainDisplay
|
self.screens = screens
|
||||||
self.displayManager = self.parent.displayManager
|
self.display = WebViewer(self, screens, isLive)
|
||||||
|
#self.displayManager = self.parent.displayManager
|
||||||
self.loopList = [
|
self.loopList = [
|
||||||
u'Start Loop',
|
u'Start Loop',
|
||||||
u'Loop Separator',
|
u'Loop Separator',
|
||||||
@ -599,7 +600,8 @@ class SlideController(QtGui.QWidget):
|
|||||||
else:
|
else:
|
||||||
self.PreviewListWidget.selectRow(slideno)
|
self.PreviewListWidget.selectRow(slideno)
|
||||||
self.enableToolBar(serviceItem)
|
self.enableToolBar(serviceItem)
|
||||||
#Reset the display html
|
# Pass to display for viewing
|
||||||
|
self.display.buildHtml(self.serviceItem)
|
||||||
self.onSlideSelected()
|
self.onSlideSelected()
|
||||||
self.PreviewListWidget.setFocus()
|
self.PreviewListWidget.setFocus()
|
||||||
Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix,
|
Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix,
|
||||||
@ -781,20 +783,17 @@ class SlideController(QtGui.QWidget):
|
|||||||
before = time.time()
|
before = time.time()
|
||||||
if self.serviceItem.just_rendered:
|
if self.serviceItem.just_rendered:
|
||||||
self.serviceItem.just_rendered = False
|
self.serviceItem.just_rendered = False
|
||||||
if self.isLive:
|
|
||||||
self.displayManager.buildHtml(self.serviceItem.bg_frame)
|
|
||||||
frame, raw_html = self.serviceItem.get_rendered_frame(row)
|
frame, raw_html = self.serviceItem.get_rendered_frame(row)
|
||||||
|
if self.serviceItem.is_text():
|
||||||
|
frame = self.display.text(raw_html)
|
||||||
|
else:
|
||||||
|
self.displayManager.displayImage(frame)
|
||||||
if isinstance(frame, QtGui.QImage):
|
if isinstance(frame, QtGui.QImage):
|
||||||
self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame))
|
self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame))
|
||||||
else:
|
else:
|
||||||
self.SlidePreview.setPixmap(QtGui.QPixmap(frame))
|
self.SlidePreview.setPixmap(QtGui.QPixmap(frame))
|
||||||
log.log(
|
log.log(
|
||||||
15, u'Slide Rendering took %4s' % (time.time() - before))
|
15, u'Slide Rendering took %4s' % (time.time() - before))
|
||||||
if self.isLive:
|
|
||||||
if self.serviceItem.is_text():
|
|
||||||
self.displayManager.text(raw_html)
|
|
||||||
else:
|
|
||||||
self.displayManager.displayImage(frame)
|
|
||||||
self.selectedRow = row
|
self.selectedRow = row
|
||||||
Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix,
|
Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix,
|
||||||
row)
|
row)
|
||||||
|
Loading…
Reference in New Issue
Block a user