Galaxis Codebase  1.0.0
Team Galaxis software stack for the Carolo Cup 2023 - ROS2 based software
jsontreeitem.cpp
Go to the documentation of this file.
1 #include <QStringList>
2 
3 #include "jsontreeitem.h"
4 
5 JsonTreeItem::JsonTreeItem(const QVector<QVariant> &data, JsonTreeItem *parent)
6 {
8  itemData = data;
9 }
10 
12 {
13  qDeleteAll(childItems);
14 }
15 
17 {
18  return childItems.value(number);
19 }
20 
22 {
23  return childItems.count();
24 }
25 
27 {
28  if (parentItem)
29  return parentItem->childItems.indexOf(const_cast<JsonTreeItem*>(this));
30 
31  return 0;
32 }
33 
35 {
36  return itemData.count();
37 }
38 
39 QVariant JsonTreeItem::data(int column) const
40 {
41  return itemData.value(column);
42 }
43 
44 bool JsonTreeItem::insertChildren(int position, int count, int columns)
45 {
46  if (position < 0 || position > childItems.size())
47  return false;
48 
49  for (int row = 0; row < count; ++row) {
50  QVector<QVariant> data(columns);
51  JsonTreeItem *item = new JsonTreeItem(data, this);
52  childItems.insert(position, item);
53  }
54 
55  return true;
56 }
57 
58 bool JsonTreeItem::insertColumns(int position, int columns)
59 {
60  if (position < 0 || position > itemData.size())
61  return false;
62 
63  for (int column = 0; column < columns; ++column)
64  itemData.insert(position, QVariant());
65 
66  foreach (JsonTreeItem *child, childItems)
67  child->insertColumns(position, columns);
68 
69  return true;
70 }
71 
73 {
74  return parentItem;
75 }
76 
77 bool JsonTreeItem::removeChildren(int position, int count)
78 {
79  if (position < 0 || position + count > childItems.size())
80  return false;
81 
82  for (int row = 0; row < count; ++row)
83  delete childItems.takeAt(position);
84 
85  return true;
86 }
87 
88 bool JsonTreeItem::removeColumns(int position, int columns)
89 {
90  if (position < 0 || position + columns > itemData.size())
91  return false;
92 
93  for (int column = 0; column < columns; ++column)
94  itemData.remove(position);
95 
96  foreach (JsonTreeItem *child, childItems)
97  child->removeColumns(position, columns);
98 
99  return true;
100 }
101 
102 bool JsonTreeItem::setData(int column, const QVariant &value)
103 {
104  if (column < 0 || column >= itemData.size())
105  return false;
106 
107  itemData[column] = value;
108  return true;
109 }
110 
jsontreeitem.h
JsonTreeItem::insertColumns
bool insertColumns(int position, int columns)
Definition: jsontreeitem.cpp:58
JsonTreeItem::removeColumns
bool removeColumns(int position, int columns)
Definition: jsontreeitem.cpp:88
JsonTreeItem::removeChildren
bool removeChildren(int position, int count)
Definition: jsontreeitem.cpp:77
JsonTreeItem::childCount
int childCount() const
Definition: jsontreeitem.cpp:21
JsonTreeItem::childItems
QList< JsonTreeItem * > childItems
Definition: jsontreeitem.h:27
JsonTreeItem::JsonTreeItem
JsonTreeItem(const QVector< QVariant > &data, JsonTreeItem *parent=0)
Definition: jsontreeitem.cpp:5
JsonTreeItem::parent
JsonTreeItem * parent()
Definition: jsontreeitem.cpp:72
JsonTreeItem::columnCount
int columnCount() const
Definition: jsontreeitem.cpp:34
JsonTreeItem::child
JsonTreeItem * child(int number)
Definition: jsontreeitem.cpp:16
JsonTreeItem::childNumber
int childNumber() const
Definition: jsontreeitem.cpp:26
JsonTreeItem::itemData
QVector< QVariant > itemData
Definition: jsontreeitem.h:28
JsonTreeItem::setData
bool setData(int column, const QVariant &value)
Definition: jsontreeitem.cpp:102
JsonTreeItem::data
QVariant data(int column) const
Definition: jsontreeitem.cpp:39
JsonTreeItem::parentItem
JsonTreeItem * parentItem
Definition: jsontreeitem.h:29
JsonTreeItem::~JsonTreeItem
~JsonTreeItem()
Definition: jsontreeitem.cpp:11
JsonTreeItem::insertChildren
bool insertChildren(int position, int count, int columns)
Definition: jsontreeitem.cpp:44
JsonTreeItem
Definition: jsontreeitem.h:8