how to use the cache-to-disk feature in Wallpaper
Benoit Jacob
jacob.benoit.1 at gmail.com
Sat Apr 11 01:30:30 CEST 2009
2009/4/10 Aaron J. Seigo <aseigo at kde.org>:
> On Friday 10 April 2009, Benoit Jacob wrote:
>> I did setUsingDiskCache(true); in the constructor, and I emit
>
> when you are ready to cache the image, you can now call:
>
> insertIntoCache(const QString& key, const QImage &image);
>
> and if you want to see if it exists and retrieve it call:
>
> bool findInCache(const QString &key, QImage &image, unsigned int lastModified
> = 0)
>
> with the same key. so in your case, you may want to include things like the
> the view point and zoom level in the key.
Thanks! I see.
>
> also, i'd suggest:
>
> * deleting the old image so the user doesn't end up with a bajillion cached
> papers (maybe i should add that bookkeeping into Wallpaper itself? Hmmmm..
> yes, probably... "let me get back to you on that one," he says, again.)
Maybe I don't understand, but I think that the Wallpaper class doesn't
seem to have enough information to do the bookkeeping.
Here's an example: the user has 2 different Mandelbrot's in 2
desktops. The expected behavior is to keep the most recent cached
image for each Mandelbrot. I don't see how to make that automatically
handled in Wallpaper?
So unless you can figure a way to make that work magically, I'd suggest either
void removeFromCache(const QString& key);
or changing insertIntoCache as follows:
void insertIntoCache(const QString& key, const QImage &image, const
QString& oldkey);
where the cache entry corresponding to oldkey is automatically removed
from cache (one may then pass an empty string -- perhaps that'd be the
default value -- if one doesn't want to remove anything).
Cheers,
Benoit
More information about the Plasma-devel
mailing list