On Thursday, April 29, 2010 21:12:42 Michael Pyne wrote: > Well that [changeable layout] isn't what *I* wanted, but I see your point > given that precondition, and it occurs to me that the one having to touch > my code afterwards may want to change the layout, so I'll move it around > indeed.
For everyone's information, KSharedDataCache and KImageCache are now in trunk. I'll give it a day or two for any last minute comments and port KIconLoader over shortly. For my Plasma dev friends, I also intend to port Plasma::Theme over to use KImageCache, using the attached patch. Please let me know if there are problems with this. Regards, - Michael Pyne
Index: plasma/theme.cpp =================================================================== --- plasma/theme.cpp (revision 1118716) +++ plasma/theme.cpp (working copy) @@ -36,7 +36,7 @@ #include <kglobal.h> #include <kglobalsettings.h> #include <kmanagerselection.h> -#include <kpixmapcache.h> +#include <kimagecache.h> #include <ksharedconfig.h> #include <kstandarddirs.h> #include <kwindowsystem.h> @@ -149,7 +149,7 @@ QString defaultWallpaperSuffix; int defaultWallpaperWidth; int defaultWallpaperHeight; - KPixmapCache *pixmapCache; + KImageCache *pixmapCache; KSharedConfigPtr svgElementsCache; QHash<QString, QSet<QString> > invalidElements; QHash<QString, QPixmap> pixmapsToCache; @@ -176,9 +176,8 @@ bool ThemePrivate::useCache() { if (cacheTheme && !pixmapCache) { - pixmapCache = new KPixmapCache("plasma_theme_" + themeName); ThemeConfig config; - pixmapCache->setCacheLimit(config.themeCacheKb()); + pixmapCache = new KImageCache("plasma_theme_" + themeName, config.themeCacheKb() * 1024); } return cacheTheme; @@ -232,7 +231,7 @@ void ThemePrivate::discardCache() { - KPixmapCache::deleteCache("plasma_theme_" + themeName); + KSharedDataCache::deleteCache("plasma_theme_" + themeName); delete pixmapCache; pixmapCache = 0; invalidElements.clear(); @@ -253,7 +252,7 @@ QHashIterator<QString, QPixmap> it(pixmapsToCache); while (it.hasNext()) { it.next(); - pixmapCache->insert(idsToCache[it.key()], it.value()); + pixmapCache->insertPixmap(idsToCache[it.key()], it.value()); } pixmapsToCache.clear(); @@ -480,7 +479,7 @@ QFileInfo info(f); - if (useCache() && info.lastModified().toTime_t() > pixmapCache->timestamp()) { + if (useCache() && info.lastModified().toTime_t() > pixmapCache->lastModifiedTime()) { discardCache(); } else { QString svgElementsFile = KStandardDirs::locateLocal("cache", "plasma-svgelements-" + themeName); @@ -700,7 +699,12 @@ return true; } - return d->pixmapCache->find(key, pix); + QPixmap temp = d->pixmapCache->findPixmap(key); + if(!temp.isNull()) { + pix = temp; + return true; + } + return false; } return false; @@ -709,7 +713,7 @@ // BIC FIXME: Should be merged with the other findInCache method above when we break BC bool Theme::findInCache(const QString &key, QPixmap &pix, unsigned int lastModified) { - if (d->useCache() && lastModified > d->pixmapCache->timestamp()) { + if (d->useCache() && lastModified > d->pixmapCache->lastModifiedTime()) { return false; } @@ -719,7 +723,7 @@ void Theme::insertIntoCache(const QString& key, const QPixmap& pix) { if (d->useCache()) { - d->pixmapCache->insert(key, pix); + d->pixmapCache->insertPixmap(key, pix); } } @@ -815,7 +819,9 @@ void Theme::setCacheLimit(int kbytes) { if (d->useCache()) { - d->pixmapCache->setCacheLimit(kbytes); + ; + // Too late for you bub. + // d->pixmapCache->setCacheLimit(kbytes); } }
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel