HAL  v4.5.0-133-g64838ea8d
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
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 
46  {
47  child->setParent(this);
48  if (index > mChildren.size())
49  {
50  index = mChildren.size();
51  }
52  mChildren.insert(index, child);
53  }
54 
56  {
57  if(row < 0 || row >= mChildren.size())
58  return nullptr;
59  else
60  {
61  BaseTreeItem* itemToRemove = mChildren.at(row);
62  mChildren.removeAt(row);
63  return itemToRemove;
64  }
65  }
66 
68  {
69  int index = mChildren.indexOf(child);
70  if(index == -1)
71  return false;
72  else
73  {
74  mChildren.removeAt(index);
75  return true;
76  }
77  }
78 
80  {
81  return mChildren.size();
82  }
83 
85  {
86  int index = -1;
87  for(int i = 0; i < mChildren.size(); i++)
88  {
89  if(mChildren.at(i) == child)
90  {
91  index = i;
92  break;
93  }
94  }
95  return index;
96  }
97 
99  {
100  if(!mParent)
101  return -1;
102 
103  return mParent->getRowForChild(this);
104  }
105 
106  QVariant RootTreeItem::getData(int column) const
107  {
108  if (column <= mHeaderLabels.size())
109  return mHeaderLabels.at(column);
110  return QVariant();
111  }
112 
114  {
115  mHeaderLabels.clear();
116  for (int i = 0; i < data.length(); i++) {
117  mHeaderLabels[i] = data[i].toString();
118  }
119  }
120 
121  void RootTreeItem::setDataAtColumn(int column, QVariant &data)
122  {
123  while (column >= mHeaderLabels.size())
124  mHeaderLabels << QString();
125  mHeaderLabels[column] = data.toString();
126  }
127 
129  {
130 
131  }
132 
133 }
(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 setDataAtColumn(int column, QVariant &data) override
void appendData(QVariant data) override
void setData(QList< QVariant > data) override
Definition: defines.h:45
const T & at(int i) const const
void clear()
int size() const const