diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py
index ce0489dc0..b9152c9ec 100644
--- a/openlp/core/lib/htmlbuilder.py
+++ b/openlp/core/lib/htmlbuilder.py
@@ -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 = """
";
"""
- 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
diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py
index ab4ce3d74..57dbdd602 100644
--- a/openlp/core/lib/renderer.py
+++ b/openlp/core/lib/renderer.py
@@ -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
diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py
index c8c9983c2..a08a1ac77 100644
--- a/openlp/core/lib/rendermanager.py
+++ b/openlp/core/lib/rendermanager.py
@@ -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):
"""
diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py
index c24dc994c..1818de7f1 100644
--- a/openlp/core/lib/serviceitem.py
+++ b/openlp/core/lib/serviceitem.py
@@ -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):
"""
diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py
index a99e393df..0e2f9475a 100644
--- a/openlp/core/ui/maindisplay.py
+++ b/openlp/core/ui/maindisplay.py
@@ -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
diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py
index 593964b25..f8e9f2fae 100644
--- a/openlp/core/ui/slidecontroller.py
+++ b/openlp/core/ui/slidecontroller.py
@@ -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