diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 4ed0fcf76..f0da82b0e 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -466,38 +466,9 @@ class Renderer(object): self._get_extent_and_render(line, footer, tlcorner=(x + display_shadow_size, y + display_shadow_size), draw=True, color = self._theme.display_shadow_color) - if self._theme.display_outline: - self._get_extent_and_render(line, footer, - (x + display_outline_size, y), draw=True, - color = self._theme.display_outline_color) - self._get_extent_and_render(line, footer, - (x, y + display_outline_size), draw=True, - color = self._theme.display_outline_color) - self._get_extent_and_render(line, footer, - (x, y - display_outline_size), draw=True, - color = self._theme.display_outline_color) - self._get_extent_and_render(line, footer, - (x - display_outline_size, y), draw=True, - color = self._theme.display_outline_color) - if display_outline_size > 1: - self._get_extent_and_render(line, footer, - (x + display_outline_size, y + display_outline_size), - draw=True, - color = self._theme.display_outline_color) - self._get_extent_and_render(line, footer, - (x - display_outline_size, y + display_outline_size), - draw=True, - color = self._theme.display_outline_color) - self._get_extent_and_render(line, footer, - (x + display_outline_size, y - display_outline_size), - draw=True, - color = self._theme.display_outline_color) - self._get_extent_and_render(line, footer, - (x - display_outline_size, y - display_outline_size), - draw=True, - color = self._theme.display_outline_color) - self._get_extent_and_render(line, footer,tlcorner=(x, y), - draw=True) + self._get_extent_and_render(line, footer, tlcorner=(x, y), draw=True, + outline_size=display_outline_size, + outline_color=self._theme.display_outline_color) y += h if linenum == 0: self._first_line_right_extent = rightextent @@ -535,7 +506,7 @@ class Renderer(object): self.mainFont.setPixelSize(self._theme.font_main_proportion) def _get_extent_and_render(self, line, footer, tlcorner=(0, 0), draw=False, - color=None): + color=None, outline_size=None, outline_color=None): """ Find bounding box of text - as render_single_line. If draw is set, actually draw the text to the current DC as well return width and @@ -561,31 +532,37 @@ class Renderer(object): font = self.footerFont else: font = self.mainFont - self.painter.setFont(font) - if color is None: - if footer: - self.painter.setPen(QtGui.QColor(self._theme.font_footer_color)) - else: - self.painter.setPen(QtGui.QColor(self._theme.font_main_color)) - else: - self.painter.setPen(QtGui.QColor(color)) - x, y = tlcorner metrics = QtGui.QFontMetrics(font) w = metrics.width(line) h = metrics.height() if draw: - self.painter.drawText(x, y + metrics.ascent(), line) - if self._theme.display_slideTransition: - # Print 2nd image with 70% weight - self.painter2.setFont(font) + self.painter.setFont(font) if color is None: if footer: - self.painter2.setPen(QtGui.QColor(self._theme.font_footer_color)) + pen = QtGui.QColor(self._theme.font_footer_color) else: - self.painter2.setPen(QtGui.QColor(self._theme.font_main_color)) + pen = QtGui.QColor(self._theme.font_main_color) else: - self.painter2.setPen(QtGui.QColor(color)) - if draw: + pen = QtGui.QColor(color) + x, y = tlcorner + if outline_size: + path = QtGui.QPainterPath() + path.addText(QtCore.QPointF(x, y + metrics.ascent()), font, line) + self.painter.setBrush(self.painter.pen().brush()) + self.painter.setPen(QtGui.QPen(QtGui.QColor(outline_color), outline_size)) + self.painter.drawPath(path) + self.painter.setPen(pen) + self.painter.drawText(x, y + metrics.ascent(), line) + if self._theme.display_slideTransition: + # Print 2nd image with 70% weight + if outline_size: + path = QtGui.QPainterPath() + path.addText(QtCore.QPointF(x, y + metrics.ascent()), font, line) + self.painter2.setBrush(self.painter2.pen().brush()) + self.painter2.setPen(QtGui.QPen(QtGui.QColor(outline_color), outline_size)) + self.painter2.drawPath(path) + self.painter2.setFont(font) + self.painter2.setPen(pen) self.painter2.drawText(x, y + metrics.ascent(), line) return (w, h) diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 00d043870..7d869a610 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -134,8 +134,12 @@ class ServiceItem(object): else: self.RenderManager.set_override_theme(self.theme) format = self._display_frames[row][u'text'].split(u'\n') - frame = self.RenderManager.generate_slide(format, - self.raw_footer) + #if screen blank then do not display footer + if format[0]: + frame = self.RenderManager.generate_slide(format, + self.raw_footer) + else: + frame = self.RenderManager.generate_slide(format,u'') return frame def add_from_image(self, path, title, image): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index a8f33baea..e26df7a18 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -452,8 +452,10 @@ class SlideController(QtGui.QWidget): #If verse handle verse number else tag only if bits[0] == self.trUtf8('Verse'): tag = u'%s%s' % (bits[0][0], bits[1][0:] ) + row = bits[1][0:] else: tag = bits[0] + row = bits[0][0:1] try: test = self.slideList[tag] except: diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index dd3af03c3..183af6a44 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -169,6 +169,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.loadAuthors() self.loadTopics() self.loadBooks() + #it's a new song to preview is not possible + self.previewButton.setVisible(False) def loadSong(self, id, preview): log.debug(u'Load Song')