mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix cover grid scaling for non-integral device pixel ratios
This commit is contained in:
parent
1207eb4f8b
commit
9e8141d5db
@ -627,7 +627,7 @@ class GridView(QListView):
|
||||
self.padding_left = 0
|
||||
self.set_color()
|
||||
self.ignore_render_requests = Event()
|
||||
dpr = self.devicePixelRatio()
|
||||
dpr = self.device_pixel_ratio
|
||||
self.thumbnail_cache = ThumbnailCache(max_size=gprefs['cover_grid_disk_cache_size'],
|
||||
thumbnail_size=(int(dpr * self.delegate.cover_size.width()), int(dpr * self.delegate.cover_size.height())))
|
||||
self.render_thread = None
|
||||
@ -644,6 +644,13 @@ class GridView(QListView):
|
||||
t.setInterval(200), t.setSingleShot(True)
|
||||
t.timeout.connect(self.update_memory_cover_cache_size)
|
||||
|
||||
@property
|
||||
def device_pixel_ratio(self):
|
||||
try:
|
||||
return self.devicePixelRatioF()
|
||||
except AttributeError:
|
||||
return self.devicePixelRatio()
|
||||
|
||||
@property
|
||||
def first_visible_row(self):
|
||||
geom = self.viewport().geometry()
|
||||
@ -728,7 +735,7 @@ class GridView(QListView):
|
||||
self.setSpacing(self.delegate.spacing)
|
||||
self.set_color()
|
||||
if size_changed:
|
||||
dpr = self.devicePixelRatio()
|
||||
dpr = self.device_pixel_ratio
|
||||
self.thumbnail_cache.set_thumbnail_size(int(dpr * self.delegate.cover_size.width()), int(dpr*self.delegate.cover_size.height()))
|
||||
cs = gprefs['cover_grid_disk_cache_size']
|
||||
if (cs*(1024**2)) != self.thumbnail_cache.max_size:
|
||||
@ -793,7 +800,7 @@ class GridView(QListView):
|
||||
if has_cover:
|
||||
p = QImage()
|
||||
p.loadFromData(cdata, CACHE_FORMAT if cdata is tcdata else 'JPEG')
|
||||
dpr = self.devicePixelRatio()
|
||||
dpr = self.device_pixel_ratio
|
||||
p.setDevicePixelRatio(dpr)
|
||||
if p.isNull() and cdata is tcdata:
|
||||
# Invalid image in cache
|
||||
|
Loading…
x
Reference in New Issue
Block a user