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 # print words
verses = [] verses = []
words = words.replace(u'\r\n', u'\n') 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 = [] text = []
for verse in verses_text: for verse in verses_text:
lines = verse.split(u'\n') lines = verse.split(u'\n')
@ -173,7 +174,10 @@ class Renderer(object):
split_lines = [] split_lines = []
count = 0 count = 0
for line in text: 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: while len(line) > 0:
# print "C1", line , len(line) # print "C1", line , len(line)
if len(line) > ave_line_width: if len(line) > ave_line_width:
@ -391,29 +395,8 @@ class Renderer(object):
Defaults to *False*. Whether or not this is a live screen. Defaults to *False*. Whether or not this is a live screen.
""" """
x, y = tlcorner 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(); maxx = self._rect.width();
maxy = self._rect.height(); 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 = []
lines.append(line) lines.append(line)
startx = x startx = x

View File

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