OGS
TreeItem.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#include "Base/TreeItem.h"
5
6#include <utility>
7
12TreeItem::TreeItem(QList<QVariant> data, TreeItem* parent)
13 : _itemData(std::move(data)), _parentItem(parent)
14{
15}
16
24{
25 qDeleteAll(_childItems);
26}
27
32{
33 _childItems.append(item);
34}
35
42{
43 if (_childItems.count() > row)
44 {
45 return _childItems.value(row);
46 }
47
48 return nullptr;
49}
50
55{
56 return _childItems.count();
57}
58
62int TreeItem::row() const
63{
64 if (_parentItem)
65 {
66 return _parentItem->_childItems.indexOf(const_cast<TreeItem*>(this));
67 }
68
69 return 0;
70}
71
76{
77 return _itemData.count();
78}
79
83QVariant TreeItem::data(int column) const
84{
85 return _itemData.value(column);
86}
87
91bool TreeItem::setData(int column, const QVariant& value)
92{
93 if (column < 0 || column >= _itemData.size())
94 {
95 return false;
96 }
97
98 _itemData[column] = value;
99 return true;
100}
101
105{
106 return _parentItem;
107}
108
113bool TreeItem::removeChildren(int position, int count)
114{
115 if (position < 0 || position + count > _childItems.size())
116 {
117 return false;
118 }
119
120 for (int row = 0; row < count; ++row)
121 {
122 delete _childItems.takeAt(position);
123 }
124
125 return true;
126}
virtual int childCount() const
Definition TreeItem.cpp:54
void appendChild(TreeItem *item)
Definition TreeItem.cpp:31
virtual int columnCount() const
Definition TreeItem.cpp:75
QList< TreeItem * > _childItems
Definition TreeItem.h:33
TreeItem * parentItem() const
Definition TreeItem.cpp:104
TreeItem * child(int row) const
Definition TreeItem.cpp:41
virtual ~TreeItem()
Definition TreeItem.cpp:23
TreeItem * _parentItem
Definition TreeItem.h:35
int row() const
Definition TreeItem.cpp:62
bool removeChildren(int position, int count)
Definition TreeItem.cpp:113
virtual bool setData(int column, const QVariant &value)
Definition TreeItem.cpp:91
TreeItem(QList< QVariant > data, TreeItem *parent)
Definition TreeItem.cpp:12
virtual QVariant data(int column) const
Definition TreeItem.cpp:83
QList< QVariant > _itemData
Definition TreeItem.h:34