diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 0390ff1eb..df12af016 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -138,7 +138,7 @@ class Renderer(object): if self.bg_frame is None: self._generate_background_frame() - def format_slide(self, words): + def format_slide(self, words, line_break): """ Figure out how much text can appear on a slide, using the current theme settings. @@ -147,6 +147,9 @@ class Renderer(object): The words to be fitted on the slide. """ log.debug(u'format_slide - Start') + line_end = u'' + if line_break: + line_end = u'
' words = words.replace(u'\r\n', u'\n') verses_text = words.split(u'\n') text = [] @@ -171,7 +174,7 @@ class Renderer(object): old_html_text = u'' for line in text: # mark line ends - temp_text = temp_text + line + u'
' + temp_text = temp_text + line + line_end html_text = shell % temp_text doc.setHtml(html_text) #Text too long so gone to next mage diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index d4d2d2b9b..ed67229f8 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -210,7 +210,7 @@ class RenderManager(object): frame, raw_html = serviceItem.get_rendered_frame(0) return self.display.text(raw_html) - def format_slide(self, words): + def format_slide(self, words, line_break): """ Calculate how much text can fit on a slide. @@ -219,7 +219,7 @@ class RenderManager(object): """ log.debug(u'format slide') self.build_text_rectangle(self.themedata) - return self.renderer.format_slide(words) + return self.renderer.format_slide(words, line_break) # def generate_slide(self, main_text): # """ diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 6ca9bd523..8b3afd7e6 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -57,6 +57,7 @@ class ItemCapabilities(object): RequiresMedia = 4 AllowsLoop = 5 AllowsAdditions = 6 + NoLineBreaks = 7 class ServiceItem(object): """ @@ -140,6 +141,9 @@ class ServiceItem(object): log.debug(u'Render called') self._display_frames = [] self.bg_frame = None + line_break = True + if self.is_capable(ItemCapabilities.NoLineBreaks): + line_break = False if self.service_item_type == ServiceItemType.Text: log.debug(u'Formatting slides') theme = None @@ -151,7 +155,8 @@ class ServiceItem(object): self.themedata = self.render_manager.themedata for slide in self._raw_frames: before = time.time() - formated = self.render_manager.format_slide(slide[u'raw_slide']) + formated = self.render_manager \ + .format_slide(slide[u'raw_slide'], line_break) for page in formated: self._display_frames.append( {u'title': self.render_manager.clean(page), diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index d86490dd9..ee461aaf1 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -544,9 +544,11 @@ class BibleMediaItem(MediaManagerItem): else: #Paragraph style force new line per verse if self.parent.settings_tab.layout_style == 1: - text = text + u'\n\n' + text = text + u'\n' else: - text = text + u'\ngus ' + # split the line but do not replace line breaks in renderer + service_item.add_capability(ItemCapabilities.NoLineBreaks) + text = text + u'\n' bible_text = u'%s %s %s' % (bible_text, verse_text, text) #if we are verse per slide then create slide if self.parent.settings_tab.layout_style == 0: