KGuiAddons Review
Michael Pyne
mpyne at kde.org
Wed Mar 5 01:45:38 UTC 2014
On Tue, March 4, 2014 18:46:53 John Layt wrote:
> KImageCache
> KSharedPixmapCacheMixin
> KLocalImageCacheImplementation
> - Looks OK
> - KImageCache not exported, but KLocalImageCacheImplementation is, some
> CMake magic involved?
No CMake. :)
KImageCache depends on KSharedDataCache from KCoreAddons but we didn't want to
make a hard dep on KCoreAddons from KGuiAddons.
So instead the differences between KImageCache are coded into a class
KLocalImageCacheImplementation (which is exported as you noted). The API of
KSharedDataCache that is needed is replaced by a template class
KSharedPixmapCacheMixin.
KImageCache itself then becomes a macro expanding to
KSharedPixmapCacheMixin<KSharedDataCache>, which is generated by the compiler
and thus doesn't need an export (this despite being an internal class marked
as @internal).
Doing it this way allows a sort of "weak reference" to KSharedDataCache
without having to define KSharedDataCache. It might even be possible to
forward-declare KSharedDataCache and use a typedef instead but I didn't even
do the porting work here and that didn't occur to me when I was reviewing the
patch a few months back.
Regards,
- Michael Pyne
More information about the Kde-frameworks-devel
mailing list