how to use the cache-to-disk feature in Wallpaper

Benoit Jacob jacob.benoit.1 at gmail.com
Mon Apr 13 16:18:16 CEST 2009


this is now committed, as a testcase...

Example of console output:

plasma-desktop(7077) Mandelbrot::updateCache: remove  "mandelbrot-157422800"

Corresponding to this code:

// remove old image from cache
kDebug() << "remove " << m_cacheKey;
insertIntoCache(m_cacheKey, QImage());

Yet the file still exists:

bjacob at kiwi:~/.kde/cache-kiwi/plasma-wallpapers> ls
home  mandelbrot-157422800.png  mandelbrot-72259600.png  usr


Cheers,
Benoit

2009/4/13 Benoit Jacob <jacob.benoit.1 at gmail.com>:
> I have a problem, I wonder if I'm hitting a bug.
>
> It seems as if insertIntoCache(key, QImage()) does not do anything
> when it is called from ~Mandelbrot(). The expected behavior was to
> remove the image corresponding to 'key' from the cache.
>
> I have really checked that the key is correct and that
> isUsingDiskCache() returns true. Looking at the source code in
> wallpaper.cpp, I can't see anything else to check...
>
> When I used to call  insertIntoCache(key, QImage()) from a slot
> connected to a QTimer, it did work. So there seems to be something
> specific to calling it from the destructor.
>
> Cheers,
> Benoit
>
> 2009/4/12 Benoit Jacob <jacob.benoit.1 at gmail.com>:
>> 2009/4/12 Aaron J. Seigo <aseigo at kde.org>:
>>> if you have 3 containments with the same image as the wallpaper, it shouldn't
>>> create three cache files on disk. so there is no real mapping from cache file
>>> to containment; there is a mapping of sorts between wallpaper plugins and the
>>> cache file they are using ...
>>
>> ah, right, i hadn't thought of this.
>>
>> For the rest, I agree, and I don't see any good solution...
>>
>> The main reason for stale cached images will probably be if plasma
>> crashes (which is bound to happen as any binary plugin may crash
>> plasma). Maybe then one could say that, when plasma starts for the
>> first time after a crash, it prunes its cache (like removing the
>> oldest files until the cache size is under a certain limit, as you
>> suggested).
>>
>> Cheers,
>> Benoit
>>
>


More information about the Plasma-devel mailing list