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

#include <KisResourceTypeModel.h>

+ Inheritance diagram for KisResourceTypeModel:

Classes

struct  Private
 

Public Types

enum  Columns { Id = 0 , ResourceType , Name }
 

Public Member Functions

int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
QVariant data (const QModelIndex &index, int role) const override
 
 KisResourceTypeModel (QObject *parent=0)
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
 ~KisResourceTypeModel () override
 

Private Member Functions

bool prepareQuery ()
 

Private Attributes

Private *const d
 

Detailed Description

KisResourceTypeModel provides a view on the various resource types defined in the database. This should be the same list as available from KisResourceLoaderRegistry.

Definition at line 19 of file KisResourceTypeModel.h.

Member Enumeration Documentation

◆ Columns

Enumerator
Id 
ResourceType 
Name 

Definition at line 24 of file KisResourceTypeModel.h.

Constructor & Destructor Documentation

◆ KisResourceTypeModel()

KisResourceTypeModel::KisResourceTypeModel ( QObject * parent = 0)

Definition at line 19 of file KisResourceTypeModel.cpp.

20 : QAbstractTableModel(parent)
21 , d(new Private)
22{
24}

References prepareQuery().

◆ ~KisResourceTypeModel()

KisResourceTypeModel::~KisResourceTypeModel ( )
override

Definition at line 26 of file KisResourceTypeModel.cpp.

27{
28 delete d;
29}

References d.

Member Function Documentation

◆ columnCount()

int KisResourceTypeModel::columnCount ( const QModelIndex & parent = QModelIndex()) const
override

Definition at line 49 of file KisResourceTypeModel.cpp.

50{
51 if (parent.isValid()) {
52 return 0;
53 }
54
55 return 3;
56}
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327

◆ data()

QVariant KisResourceTypeModel::data ( const QModelIndex & index,
int role ) const
override

Definition at line 58 of file KisResourceTypeModel.cpp.

59{
60 QVariant v;
61 if (!index.isValid()) return v;
62
63 if (index.row() > rowCount()) return v;
64 if (index.column() > (int)Name) return v;
65
66 bool pos = d->query.seek(index.row());
67
68 if (pos) {
69 QString id = d->query.value("id").toString();
70 QString resourceType = d->query.value("name").toString();
71 QString name = ResourceName::resourceTypeToName(resourceType);
72
73 switch(role) {
74 case Qt::DisplayRole:
75 {
76 switch(index.column()) {
77 case Id:
78 return id;
79 case ResourceType:
80 return resourceType;
81 case Name:
82 default:
83 return name;
84 }
85 }
86 case Qt::UserRole + Id:
87 return id;
88 case Qt::UserRole + ResourceType:
89 return resourceType;
90 case Qt::UserRole + Name:
91 return name;
92 default:
93 ;
94 }
95 }
96 return v;
97}
qreal v
int rowCount(const QModelIndex &parent=QModelIndex()) const override
const char * name(StandardAction id)
KRITARESOURCES_EXPORT QString resourceTypeToName(const QString &resourceType)

References d, Id, Name, KisResourceTypeModel::Private::query, ResourceType, ResourceName::resourceTypeToName(), rowCount(), and v.

◆ prepareQuery()

bool KisResourceTypeModel::prepareQuery ( )
private

Definition at line 99 of file KisResourceTypeModel.cpp.

100{
101 beginResetModel();
102 bool r = d->query.prepare("SELECT id\n"
103 ", name\n"
104 "FROM resource_types\n");
105 if (!r) {
106 qWarning() << "Could not prepare KisResourceTypeModel query" << d->query.lastError();
107 }
108 r = d->query.exec();
109 if (!r) {
110 qWarning() << "Could not execute KisResourceTypeModel query" << d->query.lastError();
111 }
112 d->cachedRowCount = -1;
113 endResetModel();
114 return r;
115}

References KisResourceTypeModel::Private::cachedRowCount, d, and KisResourceTypeModel::Private::query.

◆ rowCount()

int KisResourceTypeModel::rowCount ( const QModelIndex & parent = QModelIndex()) const
override

Definition at line 31 of file KisResourceTypeModel.cpp.

32{
33 if (parent.isValid()) {
34 return 0;
35 }
36
37 if (d->cachedRowCount < 0) {
38 QSqlQuery q;
39 q.prepare("SELECT count(*)\n"
40 "FROM resource_types\n");
41 q.exec();
42 q.first();
43
44 const_cast<KisResourceTypeModel*>(this)->d->cachedRowCount = q.value(0).toInt();
45 }
46 return d->cachedRowCount;
47}

References KisResourceTypeModel::Private::cachedRowCount, and d.

Member Data Documentation

◆ d

Private* const KisResourceTypeModel::d
private

Definition at line 42 of file KisResourceTypeModel.h.


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