HAL
base_tree_item.cpp
Go to the documentation of this file.
2 #include <iostream>
3 
4 namespace hal
5 {
6  BaseTreeItem::BaseTreeItem() : mParent(nullptr)
7  {
8 
9  }
10 
11 
13  {
14  for(BaseTreeItem* item : mChildren)
15  delete item;
16  }
17 
18 
20  {
21  return mParent;
22  }
23 
25  {
26  mParent = parent;
27  }
28 
30  {
31  return (row < 0 || row >= mChildren.size()) ? nullptr : mChildren.at(row);
32  }
33 
35  {
36  return mChildren;
37  }
38 
40  {
41  child->setParent(this);
42  mChildren.append(child);
43  }
44 
45  void BaseTreeItem::insertChild(int index, BaseTreeItem *child)
46  {
47  child->setParent(this);
48  mChildren.insert(index, child);
49  }
50 
52  {
53  if(row < 0 || row >= mChildren.size())
54  return nullptr;
55  else
56  {
57  BaseTreeItem* itemToRemove = mChildren.at(row);
58  mChildren.removeAt(row);
59  return itemToRemove;
60  }
61  }
62 
64  {
65  int index = mChildren.indexOf(child);
66  if(index == -1)
67  return false;
68  else
69  {
70  mChildren.removeAt(index);
71  return true;
72  }
73  }
74 
76  {
77  return mChildren.size();
78  }
79 
81  {
82  int index = -1;
83  for(int i = 0; i < mChildren.size(); i++)
84  {
85  if(mChildren.at(i) == child)
86  {
87  index = i;
88  break;
89  }
90  }
91  return index;
92  }
93 
95  {
96  if(!mParent)
97  return -1;
98 
99  return mParent->getRowForChild(this);
100  }
101 
102  QVariant RootTreeItem::getData(int column) const
103  {
104  if (column <= mHeaderLabels.size())
105  return mHeaderLabels.at(column);
106  return QVariant();
107  }
108 
110  {
111  mHeaderLabels.clear();
112  for (int i = 0; i < data.length(); i++) {
113  mHeaderLabels[i] = data[i].toString();
114  }
115  }
116 
117  void RootTreeItem::setDataAtIndex(int index, QVariant &data)
118  {
119  while (index >= mHeaderLabels.size())
120  mHeaderLabels << QString();
121  mHeaderLabels[index] = data.toString();
122  }
123 
125  {
126 
127  }
128 
129 }
(Future) Base class for all tree models related to the details widget.
virtual int getRowForChild(const BaseTreeItem *child) const
virtual QList< BaseTreeItem * > getChildren() const
virtual bool removeChild(BaseTreeItem *child)
BaseTreeItem * mParent
virtual BaseTreeItem * getParent() const
virtual int getChildCount() const
virtual void appendChild(BaseTreeItem *child)
virtual BaseTreeItem * removeChildAtPos(int row)
virtual void setParent(BaseTreeItem *parent)
virtual int getOwnRow()
virtual void insertChild(int index, BaseTreeItem *child)
virtual BaseTreeItem * getChild(int row) const
QList< BaseTreeItem * > mChildren
QVariant getData(int column) const override
void setDataAtIndex(int index, QVariant &data) override
void appendData(QVariant data) override
void setData(QList< QVariant > data) override
const T & at(int i) const const
void clear()
int size() const const