From 924f4263105745f3e3b2719de8c42bc0b3e33e09 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 24 Aug 2016 21:15:12 +0530 Subject: [PATCH] Dont roundtrip via JPEG when image dropped on book details popup window --- src/calibre/gui2/widgets.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 2e2dae3b44..962f2fcb73 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -243,13 +243,15 @@ class ImageDropMixin(object): # {{{ d.start_download() if d.err is None: pmap = QPixmap() - pmap.loadFromData(open(d.fpath, 'rb').read()) + with lopen(d.fpath, 'rb') as f: + data = f.read() + pmap.loadFromData(data) if not pmap.isNull(): - self.handle_image_drop(pmap) + self.handle_image_drop(pmap, data=data) - def handle_image_drop(self, pmap): + def handle_image_drop(self, pmap, data=None): self.set_pixmap(pmap) - self.cover_changed.emit(pixmap_to_data(pmap, quality=100)) + self.cover_changed.emit(data or pixmap_to_data(pmap, format='PNG')) def dragMoveEvent(self, event): event.acceptProposedAction() @@ -284,7 +286,7 @@ class ImageDropMixin(object): # {{{ if not pmap.isNull(): self.set_pixmap(pmap) self.cover_changed.emit( - pixmap_to_data(pmap, quality=100)) + pixmap_to_data(pmap, format='PNG')) # }}} class ImageView(QWidget, ImageDropMixin): # {{{