def __call__(self, painter, rect, color_theme, title_block, subtitle_block, footer_block): if not self.PATH_CACHE: from calibre.utils.speedups import svg_path_to_painter_path try: self.__class__.PATH_CACHE['corner'] = svg_path_to_painter_path( self.CORNER_VECTOR) except Exception: import traceback traceback.print_exc() p = painter painter.setRenderHint(QPainter.RenderHint.Antialiasing) g = QRadialGradient(QPointF(rect.center()), rect.width()) g.setColorAt(0, self.color1), g.setColorAt(1, self.color2) painter.fillRect(rect, QBrush(g)) painter.save() painter.setWindow(0, 0, *self.VIEWPORT) try: path = self.PATH_CACHE['corner'] except KeyError: path = QPainterPath() pen = p.pen() pen.setColor(self.ccolor1) p.setPen(pen) def corner(): b = QBrush(self.ccolor1) p.fillPath(path, b) p.rotate(90), p.translate(100, -100), p.scale(1, -1), p.translate( -103, -97) p.fillPath(path, b) p.setWorldTransform(QTransform()) # Top-left corner corner() # Top right corner p.scale(-1, 1), p.translate(-400, 0), corner() # Bottom left corner p.scale(1, -1), p.translate(0, -500), corner() # Bottom right corner p.scale(-1, -1), p.translate(-400, -500), corner() for y in (28.4, 471.7): p.drawLine(QPointF(160, y), QPointF(240, y)) for x in (31.3, 368.7): p.drawLine(QPointF(x, 155), QPointF(x, 345)) pen.setWidthF(1.8) p.setPen(pen) for y in (23.8, 476.7): p.drawLine(QPointF(160, y), QPointF(240, y)) for x in (26.3, 373.7): p.drawLine(QPointF(x, 155), QPointF(x, 345)) painter.restore() return self.ccolor2, self.ccolor2, self.ccolor1
def __call__(self, painter, rect, color_theme, title_block, subtitle_block, footer_block): if not self.PATH_CACHE: from calibre.utils.speedups import svg_path_to_painter_path try: self.__class__.PATH_CACHE['corner'] = svg_path_to_painter_path(self.CORNER_VECTOR) except Exception: import traceback traceback.print_exc() p = painter painter.setRenderHint(QPainter.Antialiasing) g = QRadialGradient(QPointF(rect.center()), rect.width()) g.setColorAt(0, self.color1), g.setColorAt(1, self.color2) painter.fillRect(rect, QBrush(g)) painter.save() painter.setWindow(0, 0, *self.VIEWPORT) try: path = self.PATH_CACHE['corner'] except KeyError: path = QPainterPath() pen = p.pen() pen.setColor(self.ccolor1) p.setPen(pen) def corner(): b = QBrush(self.ccolor1) p.fillPath(path, b) p.rotate(90), p.translate(100, -100), p.scale(1, -1), p.translate(-103, -97) p.fillPath(path, b) p.setWorldTransform(QTransform()) # Top-left corner corner() # Top right corner p.scale(-1, 1), p.translate(-400, 0), corner() # Bottom left corner p.scale(1, -1), p.translate(0, -500), corner() # Bottom right corner p.scale(-1, -1), p.translate(-400, -500), corner() for y in (28.4, 471.7): p.drawLine(QPointF(160, y), QPointF(240, y)) for x in (31.3, 368.7): p.drawLine(QPointF(x, 155), QPointF(x, 345)) pen.setWidthF(1.8) p.setPen(pen) for y in (23.8, 476.7): p.drawLine(QPointF(160, y), QPointF(240, y)) for x in (26.3, 373.7): p.drawLine(QPointF(x, 155), QPointF(x, 345)) painter.restore() return self.ccolor2, self.ccolor2, self.ccolor1