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: