Output now on main screen

This commit is contained in:
Tim Bentley 2010-07-12 20:36:42 +01:00
parent 4d69120225
commit 166fabbd5f
6 changed files with 41 additions and 13 deletions

View File

@ -86,6 +86,7 @@ def build_html(theme, screen, alert, image):
build_alert(theme, width, height, alert),
build_image(theme, width, height, alert),
build_image_src(theme, width, height, alert, image))
print html
return html
def build_video(theme, width, height, alert):
@ -119,7 +120,7 @@ def build_image_src(theme, width, height, alert, image):
image_src = """
<img src="data:image/png;base64,%s">";
"""
return str(image_src % image_to_byte(image))
return image_src % image_to_byte(image)
def build_lyrics(theme, width, height, alert):
lyrics = """
@ -130,13 +131,18 @@ def build_lyrics(theme, width, height, alert):
width: 640px;
height: 480px;
z-index:3;
text-shadow: 2px 2px 2px green;
%s;
font-family %s;
font-size: %spx;
}
"""
lyrics_html = u''
shadow = u''
outline = u''
if theme:
lyrics_html = lyrics % theme.font_main_proportion
if theme.display_shadow:
shadow = u'text-shadow: %spx %spx %spx %s' % (theme.display_shadow_size, theme.display_shadow_size, theme.display_shadow_size, theme.display_shadow_color)
lyrics_html = lyrics % (shadow,theme. font_main_name, theme.font_main_proportion)
print lyrics_html
return lyrics_html

View File

@ -181,8 +181,7 @@ class Renderer(object):
old_html_text = temp_text
page.append(shell % old_html_text)
formatted.append(page)
print "ft", formatted
print "st", split_text
log.debug(u'format_slide - End')
#return split_text
return formatted

View File

@ -129,6 +129,7 @@ class RenderManager(object):
self.calculate_default(self.screens.current[u'size'])
self.renderer.set_theme(self.themedata)
self.build_text_rectangle(self.themedata)
return self.renderer.bg_frame
def build_text_rectangle(self, theme):
"""
@ -212,7 +213,7 @@ class RenderManager(object):
self.renderer.set_frame_dest(self.width, self.height)
image = self.previewDisplay.preview(self.renderer.bg_frame,
main_text[0], self.themedata)
return image #self.renderer.generate_frame_from_lines(main_text, footer_text)
return image
def calculate_default(self, screen):
"""

View File

@ -167,10 +167,11 @@ class ServiceItem(object):
has generated by the render method above.
"""
log.debug(u'render individual')
changed = False
if self.theme is None:
self.render_manager.set_override_theme(None)
bg_image = self.render_manager.set_override_theme(None)
else:
self.render_manager.set_override_theme(self.theme)
bg_image = self.render_manager.set_override_theme(self.theme)
raw_html = self._display_frames[row][u'text'].split(u'\n')
if self.cache.get(row):
frame = self.cache[row]
@ -181,7 +182,7 @@ class ServiceItem(object):
else:
frame = self.render_manager.generate_slide(raw_html, u'')
self.cache[row] = frame
return frame, raw_html[0]
return bg_image, frame, raw_html[0]
def add_from_image(self, path, title, image):
"""

View File

@ -104,7 +104,7 @@ class DisplayManager(QtGui.QWidget):
splash_image)
self.mainDisplay.setup()
self.previewDisplay.setup()
self.mainDisplay.newDisplay(self.initialFrame, None, None)
self.mainDisplay.buildHtml(self.initialFrame)
self.mainDisplay.show()
def hideDisplay(self, message):
@ -131,6 +131,18 @@ class DisplayManager(QtGui.QWidget):
"""
self.mainDisplay.addImageWithText(frame)
def buildHtml(self, image=None):
"""
Handles the addition of a background Image to the displays
"""
self.mainDisplay.buildHtml(image)
def text(self, text):
"""
Handles the addition of a background Image to the displays
"""
self.mainDisplay.text(text)
def displayImage(self, frame):
"""
Handles the addition of a background Image to the displays
@ -312,11 +324,18 @@ class WebViewer(DisplayWidget):
preview.save("temp.png", "png")
return preview
def newDisplay(self, image, text, video=None):
def initialDisplay(self, image, video=False):
if not video:
html = build_html(self.parent.renderManager.themedata, self.screen, None, image)
self.webView.setHtml(html)
def buildHtml(self, image=None):
if not image:
html = build_html(self.parent.renderManager.themedata, self.screen, None, self.parent.renderManager.renderer.bg_frame)
else:
html = build_html(self.parent.renderManager.themedata, self.screen, None, image)
self.webView.setHtml(html)
#class DisplayWidget(QtGui.QGraphicsView):
# """
# Customised version of QTableWidget which can respond to keyboard

View File

@ -590,6 +590,7 @@ class SlideController(QtGui.QWidget):
else:
self.PreviewListWidget.selectRow(slideno)
self.enableToolBar(serviceItem)
#Reset the display html
self.onSlideSelected()
self.PreviewListWidget.setFocus()
Receiver.send_message(u'slidecontroller_%s_started' % self.typePrefix,
@ -769,7 +770,7 @@ class SlideController(QtGui.QWidget):
self.updatePreview()
else:
before = time.time()
frame, raw_html = self.serviceItem.get_rendered_frame(row)
changed, frame, raw_html = self.serviceItem.get_rendered_frame(row)
if isinstance(frame, QtGui.QImage):
self.SlidePreview.setPixmap(QtGui.QPixmap.fromImage(frame))
else:
@ -778,7 +779,8 @@ class SlideController(QtGui.QWidget):
15, u'Slide Rendering took %4s' % (time.time() - before))
if self.isLive:
if self.serviceItem.is_text():
self.mainDisplay.text(raw_html)
self.displayManager.buildHtml(changed)
self.displayManager.text(raw_html)
else:
self.displayManager.displayImage(frame)
self.selectedRow = row