More updates

This commit is contained in:
Tim Bentley 2010-07-12 17:49:38 +01:00
parent 19400843d4
commit 5989140c0d
4 changed files with 26 additions and 13 deletions

View File

@ -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 = """

View File

@ -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):

View File

@ -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):
"""

View File

@ -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):