class CoverView(QGraphicsView, ImageDropMixin): # {{{ cover_changed = pyqtSignal(object) def __init__(self, *args, **kwargs): self.show_size = kwargs.pop('show_size', False) QGraphicsView.__init__(self, *args, **kwargs) ImageDropMixin.__init__(self) self.pixmap_size = 0, 0 if self.show_size: self.setViewportUpdateMode( QGraphicsView.ViewportUpdateMode.FullViewportUpdate) self.set_background() def get_pixmap(self): for item in self.scene.items(): if hasattr(item, 'pixmap'): return item.pixmap() def set_pixmap(self, pmap): self.scene = QGraphicsScene() self.scene.addPixmap(pmap) self.setScene(self.scene) def set_background(self, brush=None): self.setBackgroundBrush( brush or self.palette().color(QPalette.ColorRole.Window)) def paintEvent(self, ev): QGraphicsView.paintEvent(self, ev) if self.show_size: v = self.viewport() p = QPainter(v) draw_size(p, v.rect(), *self.pixmap_size)
def __init__(self, logger, opts): QGraphicsScene.__init__(self) self.logger, self.opts = logger, opts self.pages = [] self.chapters = [] self.chapter_layout = None self.current_screen = None self.current_page = 0 self.link_map = {} self.chapter_map = {} self.history = History() self.last_search = iter([]) if not opts.white_background: self.setBackgroundBrush(QBrush(QColor(0xee, 0xee, 0xee)))
def set_pixmap(self, pmap): self.scene = QGraphicsScene() self.scene.addPixmap(pmap) self.setScene(self.scene)