diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py
index 0521b0272..ce0489dc0 100644
--- a/openlp/core/lib/htmlbuilder.py
+++ b/openlp/core/lib/htmlbuilder.py
@@ -123,7 +123,7 @@ def build_image_src(theme, width, height, alert, image):
def build_lyrics(theme, width, height, alert):
lyrics = """
- .lyrics {
+ #lyrics {
position: absolute;
left: 0px;
top: 0px;
@@ -131,10 +131,14 @@ def build_lyrics(theme, width, height, alert):
height: 480px;
z-index:3;
text-shadow: 2px 2px 2px green;
- font-size: 40px;
+ font-size: %spx;
}
"""
- return lyrics
+ lyrics_html = u''
+ if theme:
+ lyrics_html = lyrics % theme.font_main_proportion
+ print lyrics_html
+ return lyrics_html
def build_alert(theme, width, height, alert):
alert = """
diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py
index c529d44f9..c8c9983c2 100644
--- a/openlp/core/lib/rendermanager.py
+++ b/openlp/core/lib/rendermanager.py
@@ -98,9 +98,11 @@ class RenderManager(object):
def set_override_theme(self, theme):
"""
Set the appropriate theme depending on the theme level.
+ Called by the service item when building a display frame
``theme``
- The name of the song-level theme.
+ The name of the song-level theme. None means the service
+ item wants to use the given value.
"""
log.debug(u'set override theme to %s', theme)
if self.theme_level == ThemeLevel.Global:
@@ -180,8 +182,9 @@ class RenderManager(object):
footer.append(u'CCLI 123456')
formatted = self.renderer.format_slide(verse, False)
#Only Render the first slide page returned
- return self.renderer.generate_frame_from_lines(formatted[0],
- footer)[u'main']
+ image = self.previewDisplay.preview(self.renderer.bg_frame, main_text[0])
+ return image #self.renderer.generate_frame_from_lines(formatted[0],
+ #footer)[u'main']
def format_slide(self, words):
"""
@@ -205,9 +208,10 @@ class RenderManager(object):
The text for the slide footer.
"""
log.debug(u'generate slide')
- #self.build_text_rectangle(self.themedata)
- #self.renderer.set_frame_dest(self.width, self.height)
- image = self.previewDisplay.preview(self.renderer.bg_image, main_text[0])
+ self.build_text_rectangle(self.themedata)
+ 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)
def calculate_default(self, screen):
diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py
index 1a7f3eba8..c24dc994c 100644
--- a/openlp/core/lib/serviceitem.py
+++ b/openlp/core/lib/serviceitem.py
@@ -370,7 +370,7 @@ class ServiceItem(object):
if self.service_item_type == ServiceItemType.Text:
return self.render_individual(row)
else:
- return {u'main':self._raw_frames[row][u'image'], u'trans':None}
+ return self._raw_frames[row][u'image']
def get_frame_title(self, row=0):
"""
diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py
index 30d5d954f..a99e393df 100644
--- a/openlp/core/ui/maindisplay.py
+++ b/openlp/core/ui/maindisplay.py
@@ -70,7 +70,9 @@ class DisplayManager(QtGui.QWidget):
self.parent = parent
self.screens = screens
self.audioPlayer = AudioPlayer(self)
+ # Live display
self.mainDisplay = WebViewer(self, screens, True)
+ # Display for Preview and Theme previews
self.previewDisplay = WebViewer(self, screens, False)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'maindisplay_hide'), self.hideDisplay)
@@ -85,6 +87,7 @@ class DisplayManager(QtGui.QWidget):
def setup(self):
log.debug(u'mainDisplay - setup')
+ # let the render manager have the preview display.
self.parent.RenderManager.previewDisplay = self.previewDisplay
#Build the initial frame.
self.initialFrame = QtGui.QImage(
@@ -213,6 +216,7 @@ class WebViewer(DisplayWidget):
def __init__(self, parent, screens, live):
DisplayWidget.__init__(self, live, parent=None)
+ self.parent = parent
self.screens = screens
self.setWindowTitle(u'OpenLP Display')
self.setWindowFlags(QtCore.Qt.FramelessWindowHint |
@@ -251,6 +255,7 @@ class WebViewer(DisplayWidget):
self.currslide = not self.currslide
def text(self, slide):
+ print slide
self.frame.findFirstElement('div#lyrics').setInnerXml(slide)
def alert(self):
@@ -291,9 +296,9 @@ class WebViewer(DisplayWidget):
self.frame.setScrollBarPolicy(QtCore.Qt.Horizontal,
QtCore.Qt.ScrollBarAlwaysOff)
- def preview(self, image, text):
+ def preview(self, image, text, theme):
self.setVisible(False)
- html = build_html(text, self.screen, None, image)
+ 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(),
@@ -309,7 +314,7 @@ class WebViewer(DisplayWidget):
def newDisplay(self, image, text, video=None):
if not video:
- html = build_html(None, self.screen, None, image)
+ html = build_html(self.parent.renderManager.themedata, self.screen, None, image)
self.webView.setHtml(html)
#class DisplayWidget(QtGui.QGraphicsView):