forked from openlp/openlp
html_builder clean up
This commit is contained in:
parent
e48b5e4cfb
commit
93bd032cd9
@ -114,12 +114,6 @@ sup {
|
|||||||
document.getElementById('black').style.display = black;
|
document.getElementById('black').style.display = black;
|
||||||
document.getElementById('lyricsmain').style.visibility = lyrics;
|
document.getElementById('lyricsmain').style.visibility = lyrics;
|
||||||
document.getElementById('image').style.visibility = lyrics;
|
document.getElementById('image').style.visibility = lyrics;
|
||||||
outline = document.getElementById('lyricsoutline')
|
|
||||||
if(outline != null)
|
|
||||||
outline.style.visibility = lyrics;
|
|
||||||
shadow = document.getElementById('lyricsshadow')
|
|
||||||
if(shadow != null)
|
|
||||||
shadow.style.visibility = lyrics;
|
|
||||||
document.getElementById('footer').style.visibility = lyrics;
|
document.getElementById('footer').style.visibility = lyrics;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,9 +132,6 @@ sup {
|
|||||||
*/
|
*/
|
||||||
var txt = document.getElementById('lyricsmain');
|
var txt = document.getElementById('lyricsmain');
|
||||||
if(window.getComputedStyle(txt).textAlign == 'justify'){
|
if(window.getComputedStyle(txt).textAlign == 'justify'){
|
||||||
var outline = document.getElementById('lyricsoutline');
|
|
||||||
if(outline != null)
|
|
||||||
txt = outline;
|
|
||||||
if(window.getComputedStyle(txt).webkitTextStrokeWidth != '0px'){
|
if(window.getComputedStyle(txt).webkitTextStrokeWidth != '0px'){
|
||||||
new_text = new_text.replace(/(\s| )+(?![^<]*>)/g,
|
new_text = new_text.replace(/(\s| )+(?![^<]*>)/g,
|
||||||
function(match) {
|
function(match) {
|
||||||
@ -150,8 +141,6 @@ sup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
text_fade('lyricsmain', new_text);
|
text_fade('lyricsmain', new_text);
|
||||||
text_fade('lyricsoutline', new_text);
|
|
||||||
text_fade('lyricsshadow', new_text.replace(match, ''));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function text_fade(id, new_text){
|
function text_fade(id, new_text){
|
||||||
@ -190,7 +179,7 @@ sup {
|
|||||||
<img id="bgimage" class="size" %s />
|
<img id="bgimage" class="size" %s />
|
||||||
<img id="image" class="size" %s />
|
<img id="image" class="size" %s />
|
||||||
%s
|
%s
|
||||||
%s
|
<div class="lyricstable"><div id="lyricsmain" style="opacity:1" class="lyricscell lyricsmain"></div></div>
|
||||||
<div id="footer" class="footer"></div>
|
<div id="footer" class="footer"></div>
|
||||||
<div id="black" class="size"></div>
|
<div id="black" class="size"></div>
|
||||||
</body>
|
</body>
|
||||||
@ -251,8 +240,7 @@ def build_html(item, screen, is_live, background, image=None, plugins=None):
|
|||||||
u'true' if theme and theme.display_slide_transition and is_live else u'false',
|
u'true' if theme and theme.display_slide_transition and is_live else u'false',
|
||||||
js_additions,
|
js_additions,
|
||||||
bgimage_src, image_src,
|
bgimage_src, image_src,
|
||||||
html_additions,
|
html_additions
|
||||||
build_lyrics_html(item, webkit_ver)
|
|
||||||
)
|
)
|
||||||
return html
|
return html
|
||||||
|
|
||||||
@ -329,39 +317,16 @@ def build_lyrics_css(item, webkit_ver):
|
|||||||
}
|
}
|
||||||
.lyricsmain {
|
.lyricsmain {
|
||||||
%s
|
%s
|
||||||
}
|
|
||||||
.lyricsoutline {
|
|
||||||
%s
|
|
||||||
}
|
|
||||||
.lyricsshadow {
|
|
||||||
%s
|
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
theme = item.themedata
|
theme = item.themedata
|
||||||
lyricstable = u''
|
lyricstable = u''
|
||||||
lyrics = u''
|
lyrics = u''
|
||||||
lyricsmain = u''
|
lyricsmain = u''
|
||||||
outline = u''
|
|
||||||
shadow = u''
|
|
||||||
if theme and item.main:
|
if theme and item.main:
|
||||||
lyricstable = u'left: %spx; top: %spx;' % (item.main.x(), item.main.y())
|
lyricstable = u'left: %spx; top: %spx;' % (item.main.x(), item.main.y())
|
||||||
lyrics = build_lyrics_format_css(theme, item.main.width(), item.main.height())
|
lyrics = build_lyrics_format_css(theme, item.main.width(), item.main.height())
|
||||||
# For performance reasons we want to show as few DIV's as possible, especially when animating/transitions.
|
|
||||||
# However some bugs in older versions of qtwebkit mean we need to perform workarounds and add extra divs. Only
|
|
||||||
# do these when needed.
|
|
||||||
#
|
|
||||||
# Before 533.3 the webkit-text-fill colour wasn't displayed, only the stroke (outline) color. So put stroke
|
|
||||||
# layer underneath the main text.
|
|
||||||
#
|
|
||||||
# Up to 534.3 the webkit-text-stroke was sometimes out of alignment with the fill, or normal text.
|
|
||||||
# letter-spacing=1 is workaround https://bugs.webkit.org/show_bug.cgi?id=44403
|
|
||||||
#
|
|
||||||
# Up to 534.3 the text-shadow didn't get displayed when webkit-text-stroke was used. So use an offset text
|
|
||||||
# layer underneath. https://bugs.webkit.org/show_bug.cgi?id=19728
|
|
||||||
if webkit_ver >= 533.3:
|
|
||||||
lyricsmain += build_lyrics_outline_css(theme)
|
lyricsmain += build_lyrics_outline_css(theme)
|
||||||
else:
|
|
||||||
outline = build_lyrics_outline_css(theme)
|
|
||||||
if theme.font_main_shadow:
|
if theme.font_main_shadow:
|
||||||
if theme.font_main_outline and webkit_ver <= 534.3:
|
if theme.font_main_outline and webkit_ver <= 534.3:
|
||||||
shadow = u'padding-left: %spx; padding-top: %spx;' % \
|
shadow = u'padding-left: %spx; padding-top: %spx;' % \
|
||||||
@ -371,7 +336,7 @@ def build_lyrics_css(item, webkit_ver):
|
|||||||
else:
|
else:
|
||||||
lyricsmain += u' text-shadow: %s %spx %spx;' % \
|
lyricsmain += u' text-shadow: %s %spx %spx;' % \
|
||||||
(theme.font_main_shadow_color, theme.font_main_shadow_size, theme.font_main_shadow_size)
|
(theme.font_main_shadow_color, theme.font_main_shadow_size, theme.font_main_shadow_size)
|
||||||
lyrics_css = style % (lyricstable, lyrics, lyricsmain, outline, shadow)
|
lyrics_css = style % (lyricstable, lyrics, lyricsmain)
|
||||||
return lyrics_css
|
return lyrics_css
|
||||||
|
|
||||||
|
|
||||||
@ -431,9 +396,6 @@ def build_lyrics_format_css(theme, width, height):
|
|||||||
'padding: 0; padding-bottom: %s; padding-left: %spx; width: %spx; height: %spx; ' % \
|
'padding: 0; padding-bottom: %s; padding-left: %spx; width: %spx; height: %spx; ' % \
|
||||||
(justify, align, valign, theme.font_main_name, theme.font_main_size,
|
(justify, align, valign, theme.font_main_name, theme.font_main_size,
|
||||||
theme.font_main_color, 100 + int(theme.font_main_line_adjustment), padding_bottom, left_margin, width, height)
|
theme.font_main_color, 100 + int(theme.font_main_line_adjustment), padding_bottom, left_margin, width, height)
|
||||||
if theme.font_main_outline:
|
|
||||||
if webkit_version() <= 534.3:
|
|
||||||
lyrics += u' letter-spacing: 1px;'
|
|
||||||
if theme.font_main_italics:
|
if theme.font_main_italics:
|
||||||
lyrics += u' font-style:italic; '
|
lyrics += u' font-style:italic; '
|
||||||
if theme.font_main_bold:
|
if theme.font_main_bold:
|
||||||
@ -441,32 +403,6 @@ def build_lyrics_format_css(theme, width, height):
|
|||||||
return lyrics
|
return lyrics
|
||||||
|
|
||||||
|
|
||||||
def build_lyrics_html(item, webkitvers):
|
|
||||||
"""
|
|
||||||
Build the HTML required to show the lyrics
|
|
||||||
|
|
||||||
``item``
|
|
||||||
Service Item containing theme and location information
|
|
||||||
|
|
||||||
``webkitvers``
|
|
||||||
The version of qtwebkit we're using
|
|
||||||
"""
|
|
||||||
# Bugs in some versions of QtWebKit mean we sometimes need additional divs for outline and shadow, since the CSS
|
|
||||||
# doesn't work. To support vertical alignment middle and bottom, nested div's using display:table/display:table-cell
|
|
||||||
# are required for each lyric block.
|
|
||||||
lyrics = u''
|
|
||||||
theme = item.themedata
|
|
||||||
if webkitvers <= 534.3 and theme and theme.font_main_outline:
|
|
||||||
lyrics += u'<div class="lyricstable"><div id="lyricsshadow" style="opacity:1" ' \
|
|
||||||
u'class="lyricscell lyricsshadow"></div></div>'
|
|
||||||
if webkitvers < 533.3:
|
|
||||||
lyrics += u'<div class="lyricstable"><div id="lyricsoutline" style="opacity:1" ' \
|
|
||||||
u'class="lyricscell lyricsoutline"></div></div>'
|
|
||||||
lyrics += u'<div class="lyricstable"><div id="lyricsmain" style="opacity:1" ' \
|
|
||||||
u'class="lyricscell lyricsmain"></div></div>'
|
|
||||||
return lyrics
|
|
||||||
|
|
||||||
|
|
||||||
def build_footer_css(item, height):
|
def build_footer_css(item, height):
|
||||||
"""
|
"""
|
||||||
Build the display of the item footer
|
Build the display of the item footer
|
||||||
|
@ -242,8 +242,6 @@ class MainDisplay(Display):
|
|||||||
# Windows if there are many items in the service to re-render.
|
# Windows if there are many items in the service to re-render.
|
||||||
# Setting the div elements direct seems to solve the issue
|
# Setting the div elements direct seems to solve the issue
|
||||||
self.frame.findFirstElement("#lyricsmain").setInnerXml(slide)
|
self.frame.findFirstElement("#lyricsmain").setInnerXml(slide)
|
||||||
self.frame.findFirstElement("#lyricsoutline").setInnerXml(slide)
|
|
||||||
self.frame.findFirstElement("#lyricsshadow").setInnerXml(slide)
|
|
||||||
|
|
||||||
def alert(self, text, location):
|
def alert(self, text, location):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user