From ac4c623c39a8551d0044ed45a22138f3969b0d48 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 12 Jun 2010 21:21:09 -0600 Subject: [PATCH] Cover cache: Resize covers larger than 600x800 in the cover cache to reduce memory consumption in the GUI --- src/calibre/library/caches.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/calibre/library/caches.py b/src/calibre/library/caches.py index bb6001794a..57f9d0baaf 100644 --- a/src/calibre/library/caches.py +++ b/src/calibre/library/caches.py @@ -10,14 +10,14 @@ import collections, glob, os, re, itertools, functools from itertools import repeat from datetime import timedelta -from PyQt4.QtCore import QThread, QReadWriteLock -from PyQt4.QtGui import QImage +from PyQt4.Qt import QThread, QReadWriteLock, QImage, Qt from calibre.utils.config import tweaks from calibre.utils.date import parse_date, now, UNDEFINED_DATE from calibre.utils.search_query_parser import SearchQueryParser from calibre.utils.pyparsing import ParseException from calibre.ebooks.metadata import title_sort +from calibre import fit_image class CoverCache(QThread): @@ -96,6 +96,11 @@ class CoverCache(QThread): img.loadFromData(data) if img.isNull(): continue + scaled, nwidth, nheight = fit_image(img.width(), + img.height(), 600, 800) + if scaled: + img = img.scaled(nwidth, nheight, Qt.KeepAspectRatio, + Qt.SmoothTransformation) except: continue self.cache_lock.lockForWrite()