Krita Source Code Documentation
Loading...
Searching...
No Matches
KisGlobalResourcesInterface Class Reference

the main resource source in Krita More...

#include <KisGlobalResourcesInterface.h>

+ Inheritance diagram for KisGlobalResourcesInterface:

Static Public Member Functions

static KisResourcesInterfaceSP instance ()
 

Protected Member Functions

ResourceSourceAdaptercreateSourceImpl (const QString &type) const override
 
- Protected Member Functions inherited from KisResourcesInterface
 KisResourcesInterface (KisResourcesInterfacePrivate *dd)
 

Additional Inherited Members

- Public Member Functions inherited from KisResourcesInterface
 KisResourcesInterface ()
 
ResourceSourceAdaptersource (const QString &type) const
 
template<typename T >
TypedResourceSourceAdapter< T > source (const QString &type) const
 
virtual ~KisResourcesInterface ()
 
- Protected Attributes inherited from KisResourcesInterface
QScopedPointer< KisResourcesInterfacePrivated_ptr
 

Detailed Description

the main resource source in Krita

This class wraps KisResourceModel into a KisResourcesInterface and provides all Krita resources to consumers.

WARNING: this class should never be accessed in non-GUI thread

Definition at line 20 of file KisGlobalResourcesInterface.h.

Member Function Documentation

◆ createSourceImpl()

KisResourcesInterface::ResourceSourceAdapter * KisGlobalResourcesInterface::createSourceImpl ( const QString & type) const
overrideprotectedvirtual

Implements KisResourcesInterface.

Definition at line 80 of file KisGlobalResourcesInterface.cpp.

81{
83 new GlobalResourcesSource(type, KisResourceModelProvider::resourceModel(type));
84
86 return source;
87}
static KisAllResourcesModel * resourceModel(const QString &resourceType)
ResourceSourceAdapter & source(const QString &type) const
#define KIS_ASSERT(cond)
Definition kis_assert.h:33

References KIS_ASSERT, KisResourceModelProvider::resourceModel(), and KisResourcesInterface::source().

◆ instance()

KisResourcesInterfaceSP KisGlobalResourcesInterface::instance ( )
static

Definition at line 55 of file KisGlobalResourcesInterface.cpp.

56{
57 // TODO: implement general macro like Q_GLOBAL_STATIC()
58
59 static QBasicAtomicInt guard = Q_BASIC_ATOMIC_INITIALIZER(QtGlobalStatic::Uninitialized);
61 static QBasicMutex mutex;
62 int x = guard.loadAcquire();
63 if (Q_UNLIKELY(x >= QtGlobalStatic::Uninitialized)) {
64 QMutexLocker locker(&mutex);
65 if (guard.loadRelaxed() == QtGlobalStatic::Uninitialized) {
66 d.reset(new KisGlobalResourcesInterface());
67 static struct Cleanup {
68 ~Cleanup() {
69 d.reset();
70 guard.storeRelaxed(QtGlobalStatic::Destroyed);
71 }
72 } cleanup;
73 guard.storeRelease(QtGlobalStatic::Initialized);
74 }
75 }
76
77 return d;
78}
the main resource source in Krita
static QMutex mutex

References mutex.


The documentation for this class was generated from the following files: