From d478395ae0d9b96b81e4b0dffe13569ce84beca5 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 29 Apr 2011 08:15:09 +0200 Subject: [PATCH 1/5] also split when [---] is within a line --- openlp/core/lib/renderer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 7687ebe9a..4dd9928fc 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -222,10 +222,10 @@ class Renderer(object): # Songs and Custom if item.is_capable(ItemCapabilities.AllowsVirtualSplit): # Do not forget the line breaks ! - slides = text.split(u'\n[---]\n') + slides = text.split(u'[---]') pages = [] for slide in slides: - lines = self._lines(slide) + lines = self._lines(slide.strip(u'\n')) new_pages = self._paginate_slide(lines, line_break, self.force_page) pages.extend([page for page in new_pages]) From e76421190b5b2e17563a46a7cfc7e173c877265f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 29 Apr 2011 09:40:44 +0200 Subject: [PATCH 2/5] removed redundant code --- openlp/core/lib/renderer.py | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 4dd9928fc..7aeebe75f 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -429,13 +429,8 @@ class Renderer(object): Split the slide up by physical line """ # this parse we do not want to use this so remove it - verses_text = text.split(u'\n') - text = [] - for verse in verses_text: - lines = verse.split(u'\n') - text.extend([line for line in lines]) - - return text + lines = text.split(u'\n') + return [line for line in lines] def _words_split(self, line): """ @@ -443,12 +438,8 @@ class Renderer(object): """ # this parse we are to be wordy line = line.replace(u'\n', u' ') - verses_text = line.split(u' ') - text = [] - for verse in verses_text: - lines = verse.split(u' ') - text.extend([line + u' ' for line in lines]) - return text + words = line.split(u' ') + return [word + u' ' for word in words] def _lines_split(self, text): """ @@ -457,9 +448,4 @@ class Renderer(object): # this parse we do not want to use this so remove it text = text.replace(u'\n[---]', u'') lines = text.split(u'\n') - real_lines = [] - for line in lines: - line = line.replace(u'[---]', u'') - sub_lines = line.split(u'\n') - real_lines.extend([sub_line for sub_line in sub_lines]) - return real_lines + return [line.replace(u'[---]', u'') for line in lines] From 547a7ac14d6bce6a6f9c9c9d411464faf6544222 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 29 Apr 2011 10:28:41 +0200 Subject: [PATCH 3/5] fix and clean up --- openlp/core/lib/renderer.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 7aeebe75f..8106b742c 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -25,6 +25,7 @@ ############################################################################### import logging +import re from PyQt4 import QtCore, QtWebKit @@ -228,7 +229,7 @@ class Renderer(object): lines = self._lines(slide.strip(u'\n')) new_pages = self._paginate_slide(lines, line_break, self.force_page) - pages.extend([page for page in new_pages]) + pages.extend(new_pages) # Bibles elif item.is_capable(ItemCapabilities.AllowsWordSplit): pages = self._paginate_slide_words(text, line_break) @@ -341,12 +342,12 @@ class Renderer(object): if force_page and line_count > 0: Receiver.send_message(u'theme_line_count', line_count) line_count = -1 - html_text = html_text.rstrip(u'
') + html_text = re.compile(r'
.*$').sub(u'', html_text) formatted.append(html_text) html_text = u'' styled_text = styled_line html_text += line + line_end - html_text = html_text.rstrip(u'
') + html_text = re.compile(r'
.*$').sub(u'', html_text) formatted.append(html_text) log.debug(u'_paginate_slide - End') return formatted @@ -385,7 +386,8 @@ class Renderer(object): self.web.setHtml(html) if self.web_frame.contentsSize().height() <= \ self.page_height: - previous_raw = previous_raw.rstrip(u'
') + previous_raw = re.compile( + r'
.*$').sub(u'', previous_raw) formatted.append(previous_raw) previous_html = u'' previous_raw = u'' @@ -408,7 +410,8 @@ class Renderer(object): # Text too long so go to next page if self.web_frame.contentsSize().height() > \ self.page_height: - previous_raw = previous_raw.rstrip(u'
') + previous_raw = re.compile( + r'
.*$').sub(u'', previous_raw) formatted.append(previous_raw) previous_html = u'' previous_raw = u'' @@ -419,7 +422,7 @@ class Renderer(object): else: previous_html += styled_line + line_end previous_raw += line + line_end - previous_raw = previous_raw.rstrip(u'
') + previous_raw = re.compile(r'
.*$').sub(u'', previous_raw) formatted.append(previous_raw) log.debug(u'_paginate_slide_words - End') return formatted @@ -429,8 +432,7 @@ class Renderer(object): Split the slide up by physical line """ # this parse we do not want to use this so remove it - lines = text.split(u'\n') - return [line for line in lines] + return text.split(u'\n') def _words_split(self, line): """ From 640815ada3fe7c7f215ab4959477300e9550fc0f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 29 Apr 2011 16:31:17 +0200 Subject: [PATCH 4/5] removed re --- openlp/core/lib/renderer.py | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 8106b742c..641920852 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -25,7 +25,6 @@ ############################################################################### import logging -import re from PyQt4 import QtCore, QtWebKit @@ -226,7 +225,7 @@ class Renderer(object): slides = text.split(u'[---]') pages = [] for slide in slides: - lines = self._lines(slide.strip(u'\n')) + lines = slide.strip(u'\n').split(u'\n') new_pages = self._paginate_slide(lines, line_break, self.force_page) pages.extend(new_pages) @@ -342,12 +341,14 @@ class Renderer(object): if force_page and line_count > 0: Receiver.send_message(u'theme_line_count', line_count) line_count = -1 - html_text = re.compile(r'
.*$').sub(u'', html_text) + while html_text.endswith(u'
'): + html_text = html_text[:-4] formatted.append(html_text) html_text = u'' styled_text = styled_line html_text += line + line_end - html_text = re.compile(r'
.*$').sub(u'', html_text) + while html_text.endswith(u'
'): + tml_text = html_text[:-4] formatted.append(html_text) log.debug(u'_paginate_slide - End') return formatted @@ -372,7 +373,7 @@ class Renderer(object): formatted = [] previous_html = u'' previous_raw = u'' - lines = self._lines(text) + lines = text.split(u'\n') for line in lines: styled_line = expand_tags(line) html = self.page_shell + previous_html + styled_line + HTML_END @@ -386,8 +387,8 @@ class Renderer(object): self.web.setHtml(html) if self.web_frame.contentsSize().height() <= \ self.page_height: - previous_raw = re.compile( - r'
.*$').sub(u'', previous_raw) + while previous_raw.endswith(u'
'): + previous_raw = previous_raw[:-4] formatted.append(previous_raw) previous_html = u'' previous_raw = u'' @@ -410,8 +411,8 @@ class Renderer(object): # Text too long so go to next page if self.web_frame.contentsSize().height() > \ self.page_height: - previous_raw = re.compile( - r'
.*$').sub(u'', previous_raw) + while previous_raw.endswith(u'
'): + previous_raw = previous_raw[:-4] formatted.append(previous_raw) previous_html = u'' previous_raw = u'' @@ -422,18 +423,12 @@ class Renderer(object): else: previous_html += styled_line + line_end previous_raw += line + line_end - previous_raw = re.compile(r'
.*$').sub(u'', previous_raw) + while previous_raw.endswith(u'
'): + previous_raw = previous_raw[:-4] formatted.append(previous_raw) log.debug(u'_paginate_slide_words - End') return formatted - def _lines(self, text): - """ - Split the slide up by physical line - """ - # this parse we do not want to use this so remove it - return text.split(u'\n') - def _words_split(self, line): """ Split the slide up by word so can wrap better From 0f51c47d9e381a65b488b5133b82e909ef38e947 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 29 Apr 2011 16:36:29 +0200 Subject: [PATCH 5/5] fixed spelling --- openlp/core/lib/renderer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 641920852..bba85d176 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -348,7 +348,7 @@ class Renderer(object): styled_text = styled_line html_text += line + line_end while html_text.endswith(u'
'): - tml_text = html_text[:-4] + html_text = html_text[:-4] formatted.append(html_text) log.debug(u'_paginate_slide - End') return formatted