From b6593be27f84480a679c912303403068cece8bfe Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 31 Aug 2009 07:53:55 +0100 Subject: [PATCH] Minor renderer changes --- openlp/core/lib/renderer.py | 29 ++++++----------------------- openlp/core/lib/rendermanager.py | 15 ++++++++------- 2 files changed, 14 insertions(+), 30 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index af4753f94..fd870a116 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -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 diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 6cb117b2b..2be7dfde4 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -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