Minor renderer changes

This commit is contained in:
Tim Bentley 2009-08-31 07:53:55 +01:00
parent 58fbbbd706
commit b6593be27f
2 changed files with 14 additions and 30 deletions

View File

@ -147,7 +147,8 @@ class Renderer(object):
# print words
verses = []
words = words.replace(u'\r\n', u'\n')
verses_text = words.split(u'\n\n')
verses_text = words.split(u'\n')
#print verses_text
text = []
for verse in verses_text:
lines = verse.split(u'\n')
@ -173,7 +174,10 @@ class Renderer(object):
split_lines = []
count = 0
for line in text:
# print "C", line , len(line)
#print "C", line , len(line)
#Must be a blank line so keep it.
if len(line) == 0:
line = u' '
while len(line) > 0:
# print "C1", line , len(line)
if len(line) > ave_line_width:
@ -391,29 +395,8 @@ class Renderer(object):
Defaults to *False*. Whether or not this is a live screen.
"""
x, y = tlcorner
# We draw the text to see how big it is and then iterate to make it fit
# when we line wrap we do in in the "lyrics" style, so the second line is
# right aligned with a "hanging indent"
#print "----------------------------"
#print line
# words = line.split(u' ')
# thisline = u' '.join(words)
# lastword = len(words)
# lines = []
maxx = self._rect.width();
maxy = self._rect.height();
# while (len(words) > 0):
# w , h = self._get_extent_and_render(thisline, footer)
# print "m", w, h, x, maxx
# rhs = w + x
# if rhs < maxx - self._right_margin:
# lines.append(thisline)
# words = words[lastword:]
# thisline = ' '.join(words)
# lastword = len(words)
# else:
# lastword -= 1
# thisline = ' '.join(words[:lastword])
lines = []
lines.append(line)
startx = x

View File

@ -58,7 +58,7 @@ class RenderManager(object):
else:
self.current_display = screen_number
self.renderer = Renderer()
self.calculate_default(self.screen_list[self.current_display][u'size'])
#self.calculate_default(self.screen_list[self.current_display][u'size'])
self.theme = u''
self.service_theme = u''
self.global_style = u''
@ -133,6 +133,7 @@ class RenderManager(object):
def build_text_rectangle(self, theme):
"""
Builds a text block using the settings in ``theme``.
One is needed per slide
``theme``
The theme to build a text block for.
@ -149,8 +150,8 @@ class RenderManager(object):
footer_rect = QtCore.QRect(10,self.footer_start, self.width - 1, self.height-self.footer_start)
else:
footer_rect = QtCore.QRect(int(theme.font_footer_x),int(theme.font_footer_y),
int(theme.font_footer_width)-1, int(theme.font_footer_height)-1)
self.renderer.set_text_rectangle(main_rect,footer_rect)
int(theme.font_footer_width)-1, int(theme.font_footer_height) - 1)
self.renderer.set_text_rectangle(main_rect, footer_rect)
def generate_preview(self, themedata):
"""
@ -178,15 +179,15 @@ class RenderManager(object):
def format_slide(self, words):
"""
Calculate how much text can fid on a slide.
Calculate how much text can fit on a slide.
``words``
The words to go on the slides.
"""
log.debug(u'format slide')
self.calculate_default(self.screen_list[self.current_display][u'size'])
#self.calculate_default(self.screen_list[self.current_display][u'size'])
self.build_text_rectangle(self.themedata)
self.renderer.set_frame_dest(self.width, self.height)
#self.renderer.set_frame_dest(self.width, self.height)
return self.renderer.format_slide(words, False)
def generate_slide(self, main_text, footer_text):
@ -200,7 +201,6 @@ class RenderManager(object):
The text for the slide footer.
"""
log.debug(u'generate slide')
self.calculate_default(self.screen_list[self.current_display][u'size'])
self.build_text_rectangle(self.themedata)
self.renderer.set_frame_dest(self.width, self.height)
return self.renderer.generate_frame_from_lines(main_text, footer_text)
@ -233,6 +233,7 @@ class RenderManager(object):
The QWidget instance of the screen.
"""
log.debug(u'calculate default %s', screen)
#size fixed so reflects the preview size.
if self.current_display == 0:
self.width = 1024
self.height = 768