Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_meta_data_filter_registry_model.cc
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2008 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6
8#include "kis_debug.h"
9#include <QStringList>
10
11using namespace KisMetaData;
12
13struct Q_DECL_HIDDEN FilterRegistryModel::Private {
15};
16
17FilterRegistryModel::FilterRegistryModel()
19{
21 for (int i = 0; i < keys.size(); i++) {
22 d->enabled.append(FilterRegistry::instance()->get(keys[i])->defaultEnabled());
23 }
24}
25
30
31QVariant FilterRegistryModel::data(const QModelIndex &index, int role) const
32{
33 if (index.isValid()) {
34 if (role == Qt::CheckStateRole) {
35 if (d->enabled[index.row()]) return Qt::Checked;
36 else return Qt::Unchecked;
37 } else if (role == Qt::ToolTipRole) {
38 return get(index)->description();
39 }
40 }
42}
43
44bool FilterRegistryModel::setData(const QModelIndex & index, const QVariant & value, int role)
45{
46 if (index.isValid()) {
47 if (role == Qt::CheckStateRole) {
48 d->enabled[index.row()] = value.toBool();
49 }
50 }
52}
53
54Qt::ItemFlags FilterRegistryModel::flags(const QModelIndex &) const
55{
56 return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable;
57}
58
60{
63 for (int i = 0; i < keys.size(); i++) {
64 if (d->enabled[i]) {
66 }
67 }
68 return enabledFilters;
69}
70
72{
73 d->enabled.clear();
75 Q_FOREACH (const QString &key, keys) {
76 d->enabled.append(enabledFilters.contains(key));
77 }
78
79}
float value(const T *src, size_t ch)
PythonPluginManager * instance
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Qt::ItemFlags flags(const QModelIndex &index) const override
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
virtual void setEnabledFilters(const QStringList &enabledFilters)
enable the filters in the given list; others will be disabled.
virtual QString description() const =0
const Filter * get(const QModelIndex &index) const
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
QList< QString > keys() const