Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_model_index_converter_show_all.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8
11#include "kis_node_model.h"
12
13
15 KisNodeModel *model)
16 : m_dummiesFacade(dummiesFacade),
17 m_model(model)
18{
19}
20
22{
23 Q_ASSERT(parent.isValid() || !row);
24
25 if(!parent.isValid()) return m_dummiesFacade->rootDummy();
26
27 KisNodeDummy *parentDummy = dummyFromIndex(parent);
28
29 int rowCount = parentDummy->childCount();
30 int index = rowCount - row - 1;
31 return parentDummy->at(index);
32}
33
35{
36 Q_ASSERT(index.isValid());
37 Q_ASSERT(index.internalPointer());
38 return static_cast<KisNodeDummy*>(index.internalPointer());
39}
40
42{
43 int row = 0;
44
45 KisNodeDummy *parentDummy = dummy->parent();
46
47 if(parentDummy) {
48 int rowCount = parentDummy->childCount();
49 int index = parentDummy->indexOf(dummy);
50 row = rowCount - index - 1;
51 }
52
53 return m_model->createIndex(row, 0, (void*)dummy);
54}
55
57 int index,
58 const QString &newNodeMetaObjectType,
59 QModelIndex &parentIndex,
60 int &row)
61{
62 Q_UNUSED(newNodeMetaObjectType);
63
64 Q_ASSERT(parentDummy || !index);
65
66 if(!parentDummy) {
67 row = 0;
68 parentIndex = QModelIndex();
69 }
70 else {
71 int rowCount = parentDummy->childCount();
72 row = rowCount - index;
73 parentIndex = indexFromDummy(parentDummy);
74 }
75 return true;
76}
77
79{
80 if(!parent.isValid()) return 1;
81
82 KisNodeDummy *parentDummy = dummyFromIndex(parent);
83
84 return parentDummy->childCount();
85}
virtual KisNodeDummy * rootDummy() const =0
KisModelIndexConverterShowAll(KisDummiesFacadeBase *dummiesFacade, KisNodeModel *model)
KisNodeDummy * dummyFromRow(int row, QModelIndex parent) override
QModelIndex indexFromDummy(KisNodeDummy *dummy) override
bool indexFromAddedDummy(KisNodeDummy *parentDummy, int index, const QString &newNodeMetaObjectType, QModelIndex &parentIndex, int &row) override
KisNodeDummy * dummyFromIndex(QModelIndex index) override
KisNodeDummy * at(int index) const
KisNodeDummy * parent() const
int indexOf(KisNodeDummy *child) const