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