|
Krita Source Code Documentation
|
a provider-like interface class for accessing resource sources in Krita. More...
#include <KisResourcesInterface.h>
Inheritance diagram for KisResourcesInterface:Classes | |
| class | ResourceSourceAdapter |
| class | TypedResourceSourceAdapter |
Public Member Functions | |
| KisResourcesInterface () | |
| ResourceSourceAdapter & | source (const QString &type) const |
| template<typename T > | |
| TypedResourceSourceAdapter< T > | source (const QString &type) const |
| virtual | ~KisResourcesInterface () |
Protected Member Functions | |
| virtual ResourceSourceAdapter * | createSourceImpl (const QString &type) const =0 |
| KisResourcesInterface (KisResourcesInterfacePrivate *dd) | |
Protected Attributes | |
| QScopedPointer< KisResourcesInterfacePrivate > | d_ptr |
a provider-like interface class for accessing resource sources in Krita.
Main differences to KoResourceServer and KisResourceModel:
1) It is a polymorphic class. Therefore, we are not obliged to pass a pointer to the global gui-only resource storage everywhere. Instead, we can create temporary storages and pass them to the strokes, when needed.
2) The class doesn't depend on any specific resource types. Its baseline implementation of resourceInterface->source(type) returns a source working with KoResourceSP only. But when needed, the caller may request a typed version via resourcesInterface->source<KisBrush>(type). It will instantiate a templated wrapper in the caller's object file, not in kritaresources library. It solves linking problem: we have a source for KisBrush objects in kritaresources library, even though this library doesn't link kritabrush.
3) Since strokes may have local storages for the resources, we operate with resources sources using shared pointers, not raw pointers.
Definition at line 40 of file KisResourcesInterface.h.
| KisResourcesInterface::KisResourcesInterface | ( | ) |
Definition at line 18 of file KisResourcesInterface.cpp.
|
virtual |
Definition at line 28 of file KisResourcesInterface.cpp.
|
protected |
Definition at line 23 of file KisResourcesInterface.cpp.
|
protectedpure virtual |
Implemented in KisGlobalResourcesInterface, and KisLocalStrokeResources.
| KisResourcesInterface::ResourceSourceAdapter & KisResourcesInterface::source | ( | const QString & | type | ) | const |
A basic implementation that returns a source for a specific type of the resource. Please take into account that this source object will return un-casted resources of type KoResourceSP. If you want to have a proper resource (in most of the cases), use a server<T>(type) instead.
Definition at line 33 of file KisResourcesInterface.cpp.
References createSourceImpl(), KIS_ASSERT, and source().
|
inline |
The main fetcher of resource source for resources of a specific type.
Usage:
Definition at line 179 of file KisResourcesInterface.h.
References source().
|
protected |
Definition at line 188 of file KisResourcesInterface.h.