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

#include <KisResourceModelProvider.h>

Classes

struct  Private
 

Public Member Functions

 KisResourceModelProvider ()
 
 ~KisResourceModelProvider ()
 

Static Public Member Functions

static KisResourceMetaDataModelresourceMetadataModel ()
 
static KisAllResourcesModelresourceModel (const QString &resourceType)
 
static KisAllTagsModeltagModel (const QString &resourceType)
 
static KisAllTagResourceModeltagResourceModel (const QString &resourceType)
 
static void testingCloseAllQueries ()
 
static void testingResetAllModels ()
 

Private Attributes

Private *const d
 

Detailed Description

KisResourceModelProvider should be used to retrieve resource models. For every resource type, there is only one instance of the resource model, so all views on these models show the same state.

Definition at line 23 of file KisResourceModelProvider.h.

Constructor & Destructor Documentation

◆ KisResourceModelProvider()

KisResourceModelProvider::KisResourceModelProvider ( )

Definition at line 30 of file KisResourceModelProvider.cpp.

◆ ~KisResourceModelProvider()

KisResourceModelProvider::~KisResourceModelProvider ( )

Definition at line 35 of file KisResourceModelProvider.cpp.

36{
37 qDeleteAll(d->resourceModels);
38 qDeleteAll(d->tagModels);
39 qDeleteAll(d->tagResourceModels);
40 delete d;
41}
QMap< QString, KisAllResourcesModel * > resourceModels
QMap< QString, KisAllTagResourceModel * > tagResourceModels
QMap< QString, KisAllTagsModel * > tagModels

References d, KisResourceModelProvider::Private::resourceModels, KisResourceModelProvider::Private::tagModels, and KisResourceModelProvider::Private::tagResourceModels.

Member Function Documentation

◆ resourceMetadataModel()

KisResourceMetaDataModel * KisResourceModelProvider::resourceMetadataModel ( )
static

Definition at line 104 of file KisResourceModelProvider.cpp.

105{
106 if (!s_instance->d->metaDataModel) {
107 s_instance->d->metaDataModel.emplace("resources");
108 }
109 return &s_instance->d->metaDataModel.value();
110}

◆ resourceModel()

KisAllResourcesModel * KisResourceModelProvider::resourceModel ( const QString & resourceType)
static

Definition at line 43 of file KisResourceModelProvider.cpp.

44{
45 if (!s_instance->d->resourceModels.contains(resourceType)) {
46 s_instance->d->resourceModels[resourceType] = new KisAllResourcesModel(resourceType);
47 }
48 return s_instance->d->resourceModels[resourceType];
49}
The KisAllresourcesModel class provides access to the cache database for a particular resource type....

References KisAllResourcesModel::d, and KisResourceModelProvider::Private::resourceModels.

◆ tagModel()

KisAllTagsModel * KisResourceModelProvider::tagModel ( const QString & resourceType)
static

Definition at line 51 of file KisResourceModelProvider.cpp.

52{
53 if (!s_instance->d->tagModels.contains(resourceType)) {
54 s_instance->d->tagModels[resourceType] = new KisAllTagsModel(resourceType);
55 }
56 return s_instance->d->tagModels[resourceType];
57}

References KisAllTagsModel::d, and KisResourceModelProvider::Private::tagModels.

◆ tagResourceModel()

KisAllTagResourceModel * KisResourceModelProvider::tagResourceModel ( const QString & resourceType)
static

Definition at line 60 of file KisResourceModelProvider.cpp.

61{
62 if (!s_instance->d->tagResourceModels.contains(resourceType)) {
63 s_instance->d->tagResourceModels[resourceType] = new KisAllTagResourceModel(resourceType);
64 }
65 return s_instance->d->tagResourceModels[resourceType];
66}

References KisAllTagResourceModel::d, and KisResourceModelProvider::Private::tagResourceModels.

◆ testingCloseAllQueries()

void KisResourceModelProvider::testingCloseAllQueries ( )
static

NOTE: we just remove the entire metadata model when we want to reset it, please refactor it when the metadata model becomes a QObject and will get any kind of connection to outer world.

Definition at line 86 of file KisResourceModelProvider.cpp.

87{
88 for (auto it = s_instance->d->tagModels.begin(); it != s_instance->d->tagModels.end(); ++it) {
89 it.value()->closeQuery();
90 }
91 for (auto it = s_instance->d->resourceModels.begin(); it != s_instance->d->resourceModels.end(); ++it) {
92 it.value()->closeQuery();
93 }
94 for (auto it = s_instance->d->tagResourceModels.begin(); it != s_instance->d->tagResourceModels.end(); ++it) {
95 it.value()->closeQuery();
96 }
97
101 s_instance->d->metaDataModel = std::nullopt;
102}

◆ testingResetAllModels()

void KisResourceModelProvider::testingResetAllModels ( )
static

NOTE: we just remove the entire metadata model when we want to reset it, please refactor it when the metadata model becomes a QObject and will get any kind of connection to outer world.

Definition at line 68 of file KisResourceModelProvider.cpp.

69{
70 for (auto it = s_instance->d->tagModels.begin(); it != s_instance->d->tagModels.end(); ++it) {
71 it.value()->resetQuery();
72 }
73 for (auto it = s_instance->d->resourceModels.begin(); it != s_instance->d->resourceModels.end(); ++it) {
74 it.value()->resetQuery();
75 }
76 for (auto it = s_instance->d->tagResourceModels.begin(); it != s_instance->d->tagResourceModels.end(); ++it) {
77 it.value()->resetQuery();
78 }
79
83 s_instance->d->metaDataModel = std::nullopt;
84}

Member Data Documentation

◆ d

Private* const KisResourceModelProvider::d
private

Definition at line 39 of file KisResourceModelProvider.h.


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