mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Edit metadata dialog: Allow right clicking on the cover to view it in a popup window at larger size. Fixes #2091216 [[Enhancement] Open cover in Edit metadata with internal image viewer](https://bugs.launchpad.net/calibre/+bug/2091216)
This commit is contained in:
parent
0177afafe6
commit
f846750d48
@ -139,6 +139,7 @@ class ImageView(QDialog):
|
||||
self.avail_geom = self.screen().availableGeometry()
|
||||
self.current_img = current_img
|
||||
self.current_url = current_url
|
||||
self.transformed = False
|
||||
self.factor = 1.0
|
||||
self.geom_name = geom_name
|
||||
self.zoom_in_action = ac = QAction(QIcon.ic('plus.png'), _('Zoom &in'), self)
|
||||
@ -327,18 +328,12 @@ class ImageView(QDialog):
|
||||
t = QTransform()
|
||||
t.rotate(90)
|
||||
pm = self.current_img = pm.transformed(t)
|
||||
self.transformed = True
|
||||
self.label.setPixmap(pm)
|
||||
self.label.adjustSize()
|
||||
if self.fit_image.isChecked():
|
||||
self.set_to_viewport_size()
|
||||
else:
|
||||
self.factor = 1
|
||||
self.prefs.set('image_popup_zoom_factor', self.factor)
|
||||
for sb in (self.scrollarea.horizontalScrollBar(),
|
||||
self.scrollarea.verticalScrollBar()):
|
||||
sb.setValue(0)
|
||||
self.adjust_image(self.factor)
|
||||
|
||||
def __call__(self, use_exec=False):
|
||||
self.transformed = False
|
||||
geom = self.avail_geom
|
||||
self.label.setPixmap(self.current_img)
|
||||
self.label.adjustSize()
|
||||
@ -350,7 +345,6 @@ class ImageView(QDialog):
|
||||
self.current_image_name = self.current_url
|
||||
reso = ''
|
||||
if self.current_img and not self.current_img.isNull():
|
||||
if self.factor != 1:
|
||||
self.adjust_image(self.factor)
|
||||
reso = f'[{self.current_img.width()}x{self.current_img.height()}]'
|
||||
title = _('Image: {name} {resolution}').format(name=self.current_image_name, resolution=reso)
|
||||
|
@ -1228,6 +1228,20 @@ class Cover(ImageView): # {{{
|
||||
self.setSizePolicy(QSizePolicy(QSizePolicy.Policy.Preferred,
|
||||
QSizePolicy.Policy.Preferred))
|
||||
|
||||
def build_context_menu(self):
|
||||
m = super().build_context_menu()
|
||||
m.addSeparator()
|
||||
m.addAction(QIcon.ic('view-image'), _('View image in popup window'), self.view_image)
|
||||
return m
|
||||
|
||||
def view_image(self):
|
||||
from calibre.gui2.image_popup import ImageView
|
||||
d = ImageView(self, self.pixmap(), 'cover.jpg')
|
||||
d(use_exec=True)
|
||||
if d.transformed:
|
||||
from calibre.utils.img import image_to_data
|
||||
self.current_val = image_to_data(d.current_img.toImage(), fmt='png')
|
||||
|
||||
def undo_trim(self):
|
||||
if self.cdata_before_trim:
|
||||
self.current_val = self.cdata_before_trim
|
||||
|
Loading…
x
Reference in New Issue
Block a user