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(self.FullViewportUpdate) 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 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 _showPixmap(self, pixmap): ''' @param: pixmap QPixmap ''' pixmap.setDevicePixelRatio(self.devicePixelRatioF()) scene = QGraphicsScene(self._ui.mediaPreview) if pixmap.isNull(): scene.addText(_('Preview not available')) else: scene.addPixmap(pixmap) self._ui.mediaPreview.setScene(scene)
class CoverView(QGraphicsView, ImageDropMixin): # {{{ cover_changed = pyqtSignal(object) def __init__(self, *args, **kwargs): QGraphicsView.__init__(self, *args, **kwargs) ImageDropMixin.__init__(self) 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)