HAL
base_tree_item.h
Go to the documentation of this file.
1 // MIT License
2 //
3 // Copyright (c) 2019 Ruhr University Bochum, Chair for Embedded Security. All Rights reserved.
4 // Copyright (c) 2019 Marc Fyrbiak, Sebastian Wallat, Max Hoffmann ("ORIGINAL AUTHORS"). All rights reserved.
5 // Copyright (c) 2021 Max Planck Institute for Security and Privacy. All Rights reserved.
6 // Copyright (c) 2021 Jörn Langheinrich, Julian Speith, Nils Albartus, René Walendy, Simon Klix ("ORIGINAL AUTHORS"). All Rights reserved.
7 //
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to deal
10 // in the Software without restriction, including without limitation the rights
11 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 // copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
14 //
15 // The above copyright notice and this permission notice shall be included in all
16 // copies or substantial portions of the Software.
17 //
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 // SOFTWARE.
25 
26 #pragma once
27 
28 #include <QList>
29 #include <QVariant>
30 
31 
32 namespace hal
33 {
34 
41  {
42  private:
48  BaseTreeItem(const BaseTreeItem &item);
49 
50  public:
54  BaseTreeItem();
55 
62 
66  virtual ~BaseTreeItem();
67 
74  virtual QVariant getData(int column) const = 0;
75 
81  virtual void setData(QList<QVariant> data) = 0;
82 
90  virtual void setDataAtIndex(int index, QVariant& data) = 0;
91 
97  virtual void appendData(QVariant data) = 0;
98 
104  virtual BaseTreeItem* getParent() const;
105 
111  virtual void setParent(BaseTreeItem* parent);
112 
119  virtual BaseTreeItem* getChild(int row) const;
120 
126  virtual QList<BaseTreeItem*> getChildren() const;
127 
133  virtual void appendChild(BaseTreeItem* child);
134 
142  virtual void insertChild(int index, BaseTreeItem* child);
143 
150  virtual BaseTreeItem* removeChildAtPos(int row);
151 
159  virtual bool removeChild(BaseTreeItem* child);
160 
166  virtual int getChildCount() const;
167 
173  virtual int getColumnCount() const = 0;
174 
182  virtual int getRowForChild(const BaseTreeItem* child) const;
183 
190  virtual int getOwnRow();
191 
192  protected:
195  };
196 
203  class RootTreeItem : public BaseTreeItem
204  {
205  QStringList mHeaderLabels;
206  public:
207  RootTreeItem(const QStringList& labels) : mHeaderLabels(labels) {;}
208 
214  QVariant getData(int column) const override;
215 
221  void setData(QList<QVariant> data) override;
222 
230  void setDataAtIndex(int index, QVariant& data) override;
231 
237  void appendData(QVariant data) override;
238 
243  int getColumnCount() const override { return mHeaderLabels.size(); }
244  };
245 }
(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 QVariant getData(int column) const =0
BaseTreeItem(QList< QVariant > columnData)
virtual void appendData(QVariant data)=0
virtual BaseTreeItem * getChild(int row) const
virtual int getColumnCount() const =0
virtual void setDataAtIndex(int index, QVariant &data)=0
virtual void setData(QList< QVariant > data)=0
QList< BaseTreeItem * > mChildren
int getColumnCount() const override
RootTreeItem(const QStringList &labels)
QVariant getData(int column) const override
void setDataAtIndex(int index, QVariant &data) override
void appendData(QVariant data) override
void setData(QList< QVariant > data) override
int size() const const