Review Request 115326: fix theme cache cleanup and discarding

Aaron J. Seigo aseigo at kde.org
Wed Jan 29 13:50:38 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/115326/#review48535
-----------------------------------------------------------


this patch doesn't actually improve anything. in fact, the actual bug is left:

 pixmapCache = new KImageCache(pixmapCacheFileName, config.themeCacheKb() * 1024);

pixmapCacheFileName should have the version # in it. this was an oversight on my part when fixing br320855 in 59e88c777b92935cc95f28e52f84fe97563dec9d

this patch should not go in as is, but instead have the cache file name ammended to include the version information.


plasma/theme.cpp
<https://git.reviewboard.kde.org/r/115326/#comment34304>

    it's nice to clean up the svg elements files; however without an active cache file it doesn't matter and they are a couple dozen K in size. didn't seem worth it for cache directory maintenance.
    
    leaving them on disk would result them in them being used again if the user installs a newer version of the theme, then later rolls back to an older version. however, given that the svg file should be tied to the version of the theme, all this accomplishes is having to re-calculate all the svg geometry data.
    
    i don't see the point in doing this at all.



plasma/theme.cpp
<https://git.reviewboard.kde.org/r/115326/#comment34301>

    discardCache can take both PixmapCache and SvgElementsCache. in fact, calling it in this fashion will result in the cache first being invalidated and THEN deleted from disk.
    
    this should not even be necessary, however: if the cache is removed, then the svg elements also are removed.



plasma/theme.cpp
<https://git.reviewboard.kde.org/r/115326/#comment34302>

    by creating the pixmap cache here, the above calls to discardCache won't really be doing anything as they act on the pixmapCache .. unless they delete the file from disk in which it doesn't matter.
    
    iow, you've got a very complex way of doing:
    
    QFile::remove(pixmapCacheFileName);
    pixmapCache = new KImageCache(pixmapCacheFileName, config.themeCacheKb() * 1024);


- Aaron J. Seigo


On Jan. 28, 2014, 9:18 a.m., Harald Sitter wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/115326/
> -----------------------------------------------------------
> 
> (Updated Jan. 28, 2014, 9:18 a.m.)
> 
> 
> Review request for Plasma, Aaron J. Seigo and Martin Klapetek.
> 
> 
> Repository: kdelibs
> 
> 
> Description
> -------
> 
> - introduce svgelements cache handling in useCache()
> - to decide whether or not to discard a cache type now the mtimes of metadata.desktop and the respective cache file are compared (previously this was an invalid file compared to cache change time)
> - cache cleanup now happens entirely before creation of the KImageCache instance to prevent any sort of problem there
> 
> - add fixme comment about broken version-based cache handling. for one the version specific file name is not actually used for the KImageCache and for another the entire shebang is missing from svgelements all together. this has the very unfortunate side effect that the *active* cache files are deleted ever so often, it may be worth removing the code portions until someone finds time/interest to actually implement this in a working fashion.
> 
> 
> Diffs
> -----
> 
>   plasma/theme.cpp cb44878 
> 
> Diff: https://git.reviewboard.kde.org/r/115326/diff/
> 
> 
> Testing
> -------
> 
> upgraded from 4.8 straight to 4.12 -> theme caches correctly discarded
> 
> 
> Thanks,
> 
> Harald Sitter
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140129/28e0e15c/attachment-0001.html>


More information about the Plasma-devel mailing list