From 2518a340ae4e8d8fd357a95d0ca2b978f096e139 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Mon, 25 Jun 2012 23:14:53 +0100 Subject: [PATCH 1/2] Well only creating the QWebView just the once fixes it. But I'm sure we used to do that and there was a good reason why we started recreating it for each render... --- openlp/core/lib/renderer.py | 8 +++++--- openlp/core/lib/serviceitem.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/renderer.py b/openlp/core/lib/renderer.py index 9ccaf4cab..b781c0882 100644 --- a/openlp/core/lib/renderer.py +++ b/openlp/core/lib/renderer.py @@ -82,6 +82,7 @@ class Renderer(object): self._calculate_default() QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_update_global'), self.set_global_theme) + self.web = None def update_display(self): """ @@ -397,6 +398,10 @@ class Renderer(object): The footer text block. """ log.debug(u'_set_text_rectangle %s , %s' % (rect_main, rect_footer)) + if not self.web: + self.web = QtWebKit.QWebView() + self.web.setVisible(False) + self.web_frame = self.web.page().mainFrame() self._rect = rect_main self._rect_footer = rect_footer self.page_width = self._rect.width() @@ -404,10 +409,7 @@ class Renderer(object): if theme_data.font_main_shadow: self.page_width -= int(theme_data.font_main_shadow_size) self.page_height -= int(theme_data.font_main_shadow_size) - self.web = QtWebKit.QWebView() - self.web.setVisible(False) self.web.resize(self.page_width, self.page_height) - self.web_frame = self.web.page().mainFrame() # Adjust width and height to account for shadow. outline done in css. html = u"""