diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index bc5c09554..698e165bf 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -40,6 +40,7 @@ class Renderer(object): Initialise the renderer. """ self._rect = None + self._footer_rect = None self._debug = 0 self._right_margin = 64 # the amount of right indent self._shadow_offset = 5 @@ -215,18 +216,29 @@ class Renderer(object): split_pages.append(page) return split_pages - def set_text_rectangle(self, rect_main, rect_footer): + def build_text_rectangle(self, theme): """ - Sets the rectangle within which text should be rendered. + Builds a text block using the settings in ``theme``. + One is needed per slide - ``rect_main`` - The main text block. - - ``rect_footer`` - The footer text block. + ``theme`` + The theme to build a text block for. """ - self._rect = rect_main - self._rect_footer = rect_footer + log.debug(u'build_text_rectangle') + if theme.font_main_override == False: + self._rect = QtCore.QRect(10, 0, self.width - 1, + self.footer_start - 20) + else: + self._rect = QtCore.QRect(int(theme.font_main_x), + int(theme.font_main_y), int(theme.font_main_width)-1, + int(theme.font_main_height) - 1) + if theme.font_footer_override == False: + self._footer_rect = QtCore.QRect(10,self.footer_start, self.width - 1, + self.height-self.footer_start) + else: + self._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) def generate_frame_from_lines(self, lines, footer_lines=None): """ diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 50abcfd07..ae3a5316c 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -137,49 +137,24 @@ class RenderManager(object): self.calculate_default( self.screen_list[self.current_display][u'size']) self.renderer.set_theme(self.themedata) - self.build_text_rectangle(self.themedata) + self.renderer.build_text_rectangle(self.themedata) #Replace the backgrount image from renderer with one from image if self.override_background is not None: if self.save_bg_frame is None: self.save_bg_frame = self.renderer.bg_frame if self.override_background_changed: - self.renderer.bg_frame = self.resize_image(self.override_background) + self.renderer.bg_frame = self.resize_image( + self.override_background) self.override_background_changed = False else: if self.override_background_changed: - self.renderer.bg_frame = self.resize_image(self.override_background) + self.renderer.bg_frame = self.resize_image( + self.override_background) self.override_background_changed = False if self.save_bg_frame is not None: self.renderer.bg_frame = self.save_bg_frame self.save_bg_frame = None - 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. - """ - log.debug(u'build_text_rectangle') - main_rect = None - footer_rect = None - if theme.font_main_override == False: - main_rect = QtCore.QRect(10, 0, self.width - 1, - self.footer_start - 20) - else: - main_rect = QtCore.QRect(int(theme.font_main_x), - int(theme.font_main_y), int(theme.font_main_width)-1, - int(theme.font_main_height) - 1) - if theme.font_footer_override == False: - 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) - def generate_preview(self, themedata): """ Generate a preview of a theme. @@ -190,7 +165,7 @@ class RenderManager(object): log.debug(u'generate preview') self.calculate_default(QtCore.QSize(1024, 768)) self.renderer.set_theme(themedata) - self.build_text_rectangle(themedata) + self.renderer.build_text_rectangle(themedata) self.renderer.set_frame_dest(self.width, self.height, True) verse = [] verse.append(u'Amazing Grace!') @@ -212,7 +187,7 @@ class RenderManager(object): The words to go on the slides. """ log.debug(u'format slide') - self.build_text_rectangle(self.themedata) + self.renderer.build_text_rectangle(self.themedata) return self.renderer.format_slide(words, False) def generate_slide(self, main_text, footer_text): @@ -226,7 +201,7 @@ class RenderManager(object): The text for the slide footer. """ log.debug(u'generate slide') - self.build_text_rectangle(self.themedata) + self.renderer.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) @@ -246,7 +221,7 @@ class RenderManager(object): h = height preview = preview.scaled(w, h, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation) - realw = preview.width(); + realw = preview.width() realh = preview.height() # and move it to the centre of the preview space newImage = QtGui.QImage(w, h, QtGui.QImage.Format_ARGB32_Premultiplied) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 0aefd5537..3c4c70ee2 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -448,9 +448,11 @@ class SlideController(QtGui.QWidget): if self.commandItem is not None and \ self.commandItem.service_item_type == ServiceItemType.Command: if blanked: - Receiver().send_message(u'%s_blank'% self.commandItem.name.lower()) + Receiver().send_message( + u'%s_blank' % self.commandItem.name.lower()) else: - Receiver().send_message(u'%s_unblank'% self.commandItem.name.lower()) + Receiver().send_message( + u'%s_unblank' % self.commandItem.name.lower()) else: self.parent.mainDisplay.blankDisplay() @@ -463,7 +465,8 @@ class SlideController(QtGui.QWidget): self.row = 0 if row > -1 and row < self.PreviewListWidget.rowCount(): if self.commandItem.service_item_type == ServiceItemType.Command: - Receiver().send_message(u'%s_slide'% self.commandItem.name.lower(), [row]) + Receiver().send_message( + u'%s_slide'% self.commandItem.name.lower(), [row]) if self.isLive: QtCore.QTimer.singleShot(0.5, self.grabMainDisplay) else: @@ -489,10 +492,12 @@ class SlideController(QtGui.QWidget): if not rm.screen_list[rm.current_display][u'primary']: winid = QtGui.QApplication.desktop().winId() rect = rm.screen_list[rm.current_display][u'size'] - winimg = QtGui.QPixmap.grabWindow(winid, rect.x(), rect.y(), rect.width(), rect.height()) + winimg = QtGui.QPixmap.grabWindow( + winid, rect.x(), rect.y(), rect.width(), rect.height()) self.SlidePreview.setPixmap(winimg) else: - label = self.PreviewListWidget.cellWidget(self.PreviewListWidget.currentRow(), 0) + label = self.PreviewListWidget.cellWidget( + self.PreviewListWidget.currentRow(), 0) self.SlidePreview.setPixmap(label.pixmap()) def onSlideSelectedNext(self): diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 9956023c3..ae3cee598 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -78,17 +78,25 @@ class ThemeManager(QtGui.QWidget): self.ThemeListWidget.addAction( contextMenuAction(self.ThemeListWidget, u':/themes/theme_edit.png', self.trUtf8(u'Edit a theme'), self.onEditTheme)) - self.ThemeListWidget.addAction(contextMenuSeparator(self.ThemeListWidget)) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, u':/themes/theme_delete.png', - self.trUtf8(u'Delete theme'), self.onDeleteTheme)) + contextMenuSeparator(self.ThemeListWidget)) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, u':/themes/theme_export.png', - self.trUtf8(u'Make Global'), self.changeGlobalFromScreen)) + contextMenuAction(self.ThemeListWidget, + u':/themes/theme_delete.png', + self.trUtf8(u'Delete theme'), + self.onDeleteTheme)) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, u':/themes/theme_export.png', - self.trUtf8(u'Export theme'), self.onExportTheme)) - self.ThemeListWidget.addAction(contextMenuSeparator(self.ThemeListWidget)) + contextMenuAction(self.ThemeListWidget, + u':/themes/theme_export.png', + self.trUtf8(u'Make Global'), + self.changeGlobalFromScreen)) + self.ThemeListWidget.addAction( + contextMenuAction(self.ThemeListWidget, + u':/themes/theme_export.png', + self.trUtf8(u'Export theme'), + self.onExportTheme)) + self.ThemeListWidget.addAction( + contextMenuSeparator(self.ThemeListWidget)) #Signals QtCore.QObject.connect(self.ThemeListWidget, QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), @@ -151,7 +159,8 @@ class ThemeManager(QtGui.QWidget): if item is not None: self.amendThemeForm.loadTheme( unicode(item.data(QtCore.Qt.UserRole).toString())) - self.saveThemeName = unicode(item.data(QtCore.Qt.UserRole).toString()) + self.saveThemeName = unicode( + item.data(QtCore.Qt.UserRole).toString()) self.amendThemeForm.exec_() def onDeleteTheme(self):