how to use the cache-to-disk feature in Wallpaper
Benoit Jacob
jacob.benoit.1 at gmail.com
Mon Apr 13 16:24:11 CEST 2009
By the way the committed code does this from save(), not from the
destructor, so this wasn't where to look for an explanation.
Cheers,
Benoit
2009/4/13 Benoit Jacob <jacob.benoit.1 at gmail.com>:
> 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