From d21f3ffb52fa55587712666f19e6ce586b088145 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 13 Feb 2010 22:26:07 -0700 Subject: [PATCH] Proper fix for breakage in LRF viewer caused by API change in QGraphicsItem in Qt 4.6 --- src/calibre/gui2/lrf_renderer/document.py | 2 ++ src/calibre/gui2/lrf_renderer/text.py | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/lrf_renderer/document.py b/src/calibre/gui2/lrf_renderer/document.py index 13407d45bf..f0c53b12f9 100644 --- a/src/calibre/gui2/lrf_renderer/document.py +++ b/src/calibre/gui2/lrf_renderer/document.py @@ -79,6 +79,8 @@ class _Canvas(QGraphicsRectItem): pen = QPen() pen.setStyle(Qt.NoPen) self.setPen(pen) + if not hasattr(self, 'children'): + self.children = self.childItems def layout_block(self, block, x, y): if isinstance(block, TextBlock): diff --git a/src/calibre/gui2/lrf_renderer/text.py b/src/calibre/gui2/lrf_renderer/text.py index 05e87532f4..b6a2788353 100644 --- a/src/calibre/gui2/lrf_renderer/text.py +++ b/src/calibre/gui2/lrf_renderer/text.py @@ -358,6 +358,8 @@ class Line(QGraphicsItem): self.links = collections.deque() self.current_link = None self.valign = None + if not hasattr(self, 'children'): + self.children = self.childItems def start_link(self, refobj, slot): self.current_link = [self.current_width, sys.maxint, refobj, slot] @@ -481,10 +483,9 @@ class Line(QGraphicsItem): painter.restore() painter.save() painter.setPen(QPen(Qt.NoPen)) - if hasattr(self, 'children'): - for c in self.children(): - painter.setBrush(c.brush) - painter.drawRect(c.boundingRect()) + for c in self.children(): + painter.setBrush(c.brush) + painter.drawRect(c.boundingRect()) painter.restore() painter.save() for tok in self.tokens: