From 66339eedd6696a122d9f646ad0ad19268939ad75 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Wed, 21 Apr 2010 17:51:52 +0100 Subject: [PATCH] Back out refactor --- openlp/core/lib/renderer.py | 30 +++++++-------------- openlp/core/lib/rendermanager.py | 43 ++++++++++++++++++++++++------- openlp/core/ui/slidecontroller.py | 15 ++++------- openlp/core/ui/thememanager.py | 27 +++++++------------ 4 files changed, 57 insertions(+), 58 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 698e165bf..bc5c09554 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -40,7 +40,6 @@ 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 @@ -216,29 +215,18 @@ class Renderer(object): split_pages.append(page) return split_pages - def build_text_rectangle(self, theme): + def set_text_rectangle(self, rect_main, rect_footer): """ - Builds a text block using the settings in ``theme``. - One is needed per slide + Sets the rectangle within which text should be rendered. - ``theme`` - The theme to build a text block for. + ``rect_main`` + The main text block. + + ``rect_footer`` + The footer text block. """ - 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) + self._rect = rect_main + self._rect_footer = rect_footer 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 ae3a5316c..50abcfd07 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -137,24 +137,49 @@ class RenderManager(object): self.calculate_default( self.screen_list[self.current_display][u'size']) self.renderer.set_theme(self.themedata) - self.renderer.build_text_rectangle(self.themedata) + self.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. @@ -165,7 +190,7 @@ class RenderManager(object): log.debug(u'generate preview') self.calculate_default(QtCore.QSize(1024, 768)) self.renderer.set_theme(themedata) - self.renderer.build_text_rectangle(themedata) + self.build_text_rectangle(themedata) self.renderer.set_frame_dest(self.width, self.height, True) verse = [] verse.append(u'Amazing Grace!') @@ -187,7 +212,7 @@ class RenderManager(object): The words to go on the slides. """ log.debug(u'format slide') - self.renderer.build_text_rectangle(self.themedata) + self.build_text_rectangle(self.themedata) return self.renderer.format_slide(words, False) def generate_slide(self, main_text, footer_text): @@ -201,7 +226,7 @@ class RenderManager(object): The text for the slide footer. """ log.debug(u'generate slide') - self.renderer.build_text_rectangle(self.themedata) + 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) @@ -221,7 +246,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 3c4c70ee2..0aefd5537 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -448,11 +448,9 @@ 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() @@ -465,8 +463,7 @@ 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: @@ -492,12 +489,10 @@ 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 ae3cee598..9956023c3 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -78,25 +78,17 @@ 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( - contextMenuSeparator(self.ThemeListWidget)) + contextMenuAction(self.ThemeListWidget, u':/themes/theme_delete.png', + self.trUtf8(u'Delete theme'), self.onDeleteTheme)) self.ThemeListWidget.addAction( - contextMenuAction(self.ThemeListWidget, - u':/themes/theme_delete.png', - self.trUtf8(u'Delete theme'), - self.onDeleteTheme)) + 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'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)) + 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)'), @@ -159,8 +151,7 @@ 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):