8#include <QGlobalStatic>
15#include <QMutexLocker>
27 ~GlobalResourcesSource()
override
47 return m_model->rowCount() > 0 ? m_model->resourceForIndex(m_model->index(0, 0)) :
KoResourceSP();
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) {
67 static struct Cleanup {
70 guard.storeRelaxed(QtGlobalStatic::Destroyed);
73 guard.storeRelease(QtGlobalStatic::Initialized);
The KisAllresourcesModel class provides access to the cache database for a particular resource type....
the main resource source in Krita
ResourceSourceAdapter * createSourceImpl(const QString &type) const override
static KisResourcesInterfaceSP instance()
static KisAllResourcesModel * resourceModel(const QString &resourceType)
a provider-like interface class for accessing resource sources in Krita.
ResourceSourceAdapter & source(const QString &type) const
QSharedPointer< KoResource > KoResourceSP