Text and Previews for Live

This commit is contained in:
Tim Bentley 2010-07-17 11:25:52 +01:00
parent f45625ac92
commit 996f779602
1 changed files with 13 additions and 2 deletions

View File

@ -294,6 +294,9 @@ class WebViewer(DisplayWidget):
self.frame.evaluateJavaScript("document.getElementById('video').play()") self.frame.evaluateJavaScript("document.getElementById('video').play()")
self.currimage = not self.currimage self.currimage = not self.currimage
def loaded(self):
self.loaded = True
def setup(self): def setup(self):
log.debug(u'Setup %s for %s ' % ( log.debug(u'Setup %s for %s ' % (
self.screens, self.screens.monitor_number)) self.screens, self.screens.monitor_number))
@ -304,6 +307,8 @@ class WebViewer(DisplayWidget):
self.webView.setGeometry(0, 0, self.screen[u'size'].width(), self.screen[u'size'].height()) self.webView.setGeometry(0, 0, self.screen[u'size'].width(), self.screen[u'size'].height())
self.page = self.webView.page() self.page = self.webView.page()
self.frame = self.page.mainFrame() self.frame = self.page.mainFrame()
QtCore.QObject.connect(self.webView,
QtCore.SIGNAL(u'loadFinished(bool)'), self.loaded)
self.frame.setScrollBarPolicy(QtCore.Qt.Vertical, self.frame.setScrollBarPolicy(QtCore.Qt.Vertical,
QtCore.Qt.ScrollBarAlwaysOff) QtCore.Qt.ScrollBarAlwaysOff)
self.frame.setScrollBarPolicy(QtCore.Qt.Horizontal, self.frame.setScrollBarPolicy(QtCore.Qt.Horizontal,
@ -328,6 +333,10 @@ class WebViewer(DisplayWidget):
self.show() self.show()
def preview(self): def preview(self):
# Wait for the screen to update before geting the preview.
# Important otherwise first preview will miss the background
while not self.loaded:
Receiver.send_message(u'openlp_process_events')
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)
@ -335,8 +344,9 @@ class WebViewer(DisplayWidget):
painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setRenderHint(QtGui.QPainter.Antialiasing)
self.frame.render(painter) self.frame.render(painter)
painter.end() painter.end()
#save preview for debugging if log.isEnabledFor(logging.DEBUG):
preview.save("temp.png", "png") #save preview for debugging
preview.save("temp.png", "png")
return preview return preview
def initialDisplay(self, image, video=False): def initialDisplay(self, image, video=False):
@ -349,6 +359,7 @@ class WebViewer(DisplayWidget):
Store the serviceItem and build the new HTML from it. Add the Store the serviceItem and build the new HTML from it. Add the
HTML to the display HTML to the display
""" """
self.loaded = False
self.serviceItem = serviceItem self.serviceItem = serviceItem
html = build_html(self.serviceItem, self.screen, None) html = build_html(self.serviceItem, self.screen, None)
self.webView.setHtml(html) self.webView.setHtml(html)