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

#include <kis_bookmarked_configurations_model.h>

+ Inheritance diagram for KisBookmarkedConfigurationsModel:

Classes

struct  Private
 

Public Member Functions

KisBookmarkedConfigurationManagerbookmarkedConfigurationManager ()
 
KisSerializableConfigurationSP configuration (const QModelIndex &index) const
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
virtual void deleteIndex (const QModelIndex &index)
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
QModelIndex indexFor (const QString &name) const
 
virtual bool isIndexDeletable (const QModelIndex &index) const
 
 KisBookmarkedConfigurationsModel (KisBookmarkedConfigurationManager *)
 
virtual void newConfiguration (KLocalizedString baseName, const KisSerializableConfigurationSP config)
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
virtual void saveConfiguration (const QString &name, const KisSerializableConfigurationSP config)
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 
 ~KisBookmarkedConfigurationsModel () override
 

Private Attributes

Private *const d
 

Detailed Description

This class provides the basic functionality for a model of a bookmark of configurations.

Definition at line 23 of file kis_bookmarked_configurations_model.h.

Constructor & Destructor Documentation

◆ KisBookmarkedConfigurationsModel()

◆ ~KisBookmarkedConfigurationsModel()

KisBookmarkedConfigurationsModel::~KisBookmarkedConfigurationsModel ( )
override

Definition at line 30 of file kis_bookmarked_configurations_model.cc.

31{
32 delete d;
33}

References d.

Member Function Documentation

◆ bookmarkedConfigurationManager()

KisBookmarkedConfigurationManager * KisBookmarkedConfigurationsModel::bookmarkedConfigurationManager ( )
Returns
the bookmarked configuration manager associated with this model.

Definition at line 35 of file kis_bookmarked_configurations_model.cc.

36{
37 return d->bookmarkManager;
38}

References KisBookmarkedConfigurationsModel::Private::bookmarkManager, and d.

◆ configuration()

KisSerializableConfigurationSP KisBookmarkedConfigurationsModel::configuration ( const QModelIndex & index) const
Returns
the configuration at the given index

Definition at line 80 of file kis_bookmarked_configurations_model.cc.

81{
82 if (!index.isValid()) return 0;
83 switch (index.row()) {
84 case 0:
85 dbgKrita << "loading default" << Qt::endl;
87 break;
88 case 1:
90 break;
91 default:
92 return d->bookmarkManager->load(d->configsKey[ index.row() - 2 ]);
93 }
94}
#define dbgKrita
Definition kis_debug.h:45
KisSerializableConfigurationSP load(const QString &configname) const

References KisBookmarkedConfigurationsModel::Private::bookmarkManager, KisBookmarkedConfigurationManager::ConfigDefault, KisBookmarkedConfigurationManager::ConfigLastUsed, KisBookmarkedConfigurationsModel::Private::configsKey, d, dbgKrita, and KisBookmarkedConfigurationManager::load().

◆ data()

QVariant KisBookmarkedConfigurationsModel::data ( const QModelIndex & index,
int role = Qt::DisplayRole ) const
override

When role == Qt::DisplayRole, this function will return the name of the configuration.

Definition at line 46 of file kis_bookmarked_configurations_model.cc.

47{
48 if (!index.isValid()) {
49 return QVariant();
50 }
51 if (role == Qt::DisplayRole || role == Qt::EditRole) {
52 switch (index.row()) {
53 case 0:
54 return i18n("Default");
55 case 1:
56 return i18n("Last Used");
57 default:
58 return d->configsKey[ index.row() - 2 ];
59 }
60 }
61 return QVariant();
62}

References KisBookmarkedConfigurationsModel::Private::configsKey, and d.

◆ deleteIndex()

void KisBookmarkedConfigurationsModel::deleteIndex ( const QModelIndex & index)
virtual

Delete the configuration at the given index. (if possible)

Definition at line 124 of file kis_bookmarked_configurations_model.cc.

125{
126 if (!index.isValid() || index.row() < 2) return ;
127 int idx = index.row() - 2;
129 beginRemoveRows(QModelIndex(), idx + 2, idx + 2);
130 d->configsKey.removeAt(idx);
131 endRemoveRows();
132}

References KisBookmarkedConfigurationsModel::Private::bookmarkManager, KisBookmarkedConfigurationsModel::Private::configsKey, d, and KisBookmarkedConfigurationManager::remove().

◆ flags()

Qt::ItemFlags KisBookmarkedConfigurationsModel::flags ( const QModelIndex & index) const
override
Returns
the flags associated to the index

Definition at line 134 of file kis_bookmarked_configurations_model.cc.

135{
136 if (!index.isValid()) return QFlags<Qt::ItemFlag>();
137
138 switch (index.row()) {
139 case 0:
140 return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
141 case 1:
143 return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
144 } else {
145 return QFlags<Qt::ItemFlag>();
146 }
147 default:
148 return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled;
149 }
150}

References KisBookmarkedConfigurationsModel::Private::bookmarkManager, KisBookmarkedConfigurationManager::ConfigLastUsed, d, and KisBookmarkedConfigurationManager::exists().

◆ indexFor()

QModelIndex KisBookmarkedConfigurationsModel::indexFor ( const QString & name) const
Returns
the index corresponding to the name .

Definition at line 96 of file kis_bookmarked_configurations_model.cc.

97{
98 int idx = d->configsKey.indexOf(name);
99 if (idx == -1) return QModelIndex();
100 return createIndex(idx + 2, 0);
101}

References KisBookmarkedConfigurationsModel::Private::configsKey, and d.

◆ isIndexDeletable()

bool KisBookmarkedConfigurationsModel::isIndexDeletable ( const QModelIndex & index) const
virtual
Returns
true if the configuration at the given index can be removed

Definition at line 103 of file kis_bookmarked_configurations_model.cc.

104{
105 if (!index.isValid() || index.row() < 2) return false;
106 return true;
107}

◆ newConfiguration()

void KisBookmarkedConfigurationsModel::newConfiguration ( KLocalizedString baseName,
const KisSerializableConfigurationSP config )
virtual

Insert a new configuration.

Definition at line 109 of file kis_bookmarked_configurations_model.cc.

110{
111 saveConfiguration(d->bookmarkManager->uniqueName(baseName), config);
112}
virtual void saveConfiguration(const QString &name, const KisSerializableConfigurationSP config)
QString uniqueName(const KLocalizedString &base)

References KisBookmarkedConfigurationsModel::Private::bookmarkManager, d, saveConfiguration(), and KisBookmarkedConfigurationManager::uniqueName().

◆ rowCount()

int KisBookmarkedConfigurationsModel::rowCount ( const QModelIndex & parent = QModelIndex()) const
override
Returns
the number of configurations (the minimum is always 2, the default configuration and the last used configuration are always present)

Definition at line 40 of file kis_bookmarked_configurations_model.cc.

41{
42 Q_UNUSED(parent);
43 return 2 + d->configsKey.size();
44}

References KisBookmarkedConfigurationsModel::Private::configsKey, and d.

◆ saveConfiguration()

void KisBookmarkedConfigurationsModel::saveConfiguration ( const QString & name,
const KisSerializableConfigurationSP config )
virtual

Save a configuration to the bookmark manager.

Definition at line 114 of file kis_bookmarked_configurations_model.cc.

115{
116 d->bookmarkManager->save(name, config);
117 if (!d->configsKey.contains(name)) {
118 beginInsertRows(QModelIndex(), d->configsKey.count() + 2, d->configsKey.count() + 2);
119 d->configsKey << name;
120 endInsertRows();
121 }
122}
const char * name(StandardAction id)
void save(const QString &configname, const KisSerializableConfigurationSP)

References KisBookmarkedConfigurationsModel::Private::bookmarkManager, KisBookmarkedConfigurationsModel::Private::configsKey, d, and KisBookmarkedConfigurationManager::save().

◆ setData()

bool KisBookmarkedConfigurationsModel::setData ( const QModelIndex & index,
const QVariant & value,
int role = Qt::EditRole )
override

Definition at line 64 of file kis_bookmarked_configurations_model.cc.

65{
66 if (role == Qt::EditRole && index.row() >= 2) {
67 QString name = value.toString();
68 int idx = index.row() - 2;
71 d->bookmarkManager->save(name, config);
72 d->configsKey[idx] = name;
73
74 emit(dataChanged(index, index));
75 return true;
76 }
77 return false;
78}
float value(const T *src, size_t ch)

References KisBookmarkedConfigurationsModel::Private::bookmarkManager, KisBookmarkedConfigurationsModel::Private::configsKey, d, KisBookmarkedConfigurationManager::load(), KisBookmarkedConfigurationManager::remove(), KisBookmarkedConfigurationManager::save(), and value().

Member Data Documentation

◆ d

Private* const KisBookmarkedConfigurationsModel::d
private

Definition at line 76 of file kis_bookmarked_configurations_model.h.


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