Krita Source Code Documentation
Loading...
Searching...
No Matches
compositionmodel.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2012 Sven Langkamp <sven.langkamp@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include "compositionmodel.h"
8
9#include <kis_icon.h>
10
11#include <QAction>
12#include <klocalizedstring.h>
13
14CompositionModel::CompositionModel(QObject* parent): QAbstractTableModel(parent)
15{
16}
17
21
22QVariant CompositionModel::data(const QModelIndex& index, int role) const
23{
24 if (index.isValid()) {
25
26 switch (role) {
27 case Qt::DisplayRole:
28 {
29 return m_compositions.at(index.row())->name();
30 }
31 case Qt::DecorationRole:
32 {
33 return KisIconUtils::loadIcon("tools-wizard");
34 }
35 case Qt::CheckStateRole: {
36 return m_compositions.at(index.row())->isExportEnabled() ? Qt::Checked : Qt::Unchecked;
37 }
38 }
39 }
40 return QVariant();
41}
42
43bool CompositionModel::setData ( const QModelIndex& index, const QVariant& value, int role )
44{
45 if (index.isValid()) {
46 if (role == Qt::CheckStateRole) {
47 Q_ASSERT(index.row() < rowCount());
48 Q_ASSERT(index.column() < columnCount());
49 if (index.column() == 0) {
50 bool exportEnabled = value.toInt() == Qt::Checked;
51 KisLayerCompositionSP layerComposition = m_compositions.at(index.row());
52 if (layerComposition) {
53 layerComposition->setExportEnabled(exportEnabled);
54 }
55 }
56 }
57 return true;
58 }
59 return false;
60}
61
62
63QVariant CompositionModel::headerData(int /*section*/, Qt::Orientation /*orientation*/, int /*role*/) const
64{
65 return i18n("Composition");
66}
67
68
69int CompositionModel::rowCount(const QModelIndex& /*parent*/) const
70{
71 return m_compositions.count();
72}
73
74int CompositionModel::columnCount(const QModelIndex& /*parent*/) const
75{
76 return 2;
77}
78
79Qt::ItemFlags CompositionModel::flags(const QModelIndex& /*index*/) const
80{
81 Qt::ItemFlags flags = Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable;
82 return flags;
83}
84
86{
87 if(index.isValid()) {
88 return m_compositions.at(index.row());
89 }
90 return KisLayerCompositionSP();
91}
92
94{
95 m_compositions = compositions;
96 beginResetModel();
97 endResetModel();
98}
99
float value(const T *src, size_t ch)
CompositionModel(QObject *parent=0)
void setCompositions(QList< KisLayerCompositionSP > compositions)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
int columnCount(const QModelIndex &parent=QModelIndex()) const override
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
int rowCount(const QModelIndex &parent=QModelIndex()) const override
KisLayerCompositionSP compositionFromIndex(const QModelIndex &index)
QList< KisLayerCompositionSP > m_compositions
Qt::ItemFlags flags(const QModelIndex &index) const override
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
~CompositionModel() override
QSharedPointer< KisLayerComposition > KisLayerCompositionSP
Definition kis_types.h:315
QIcon loadIcon(const QString &name)