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

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


oops, sent too fast. sorry for the spam.

It remains that my way of triggering save() was "kquitapp plasma". So
in every case, my problem arises when Mandelbrot is about to be
destroyed.

2009/4/13 Benoit Jacob <jacob.benoit.1 at gmail.com>:
> 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