+ AbstractTreeItem *parent();
+
+signals:
+ void dataChanged(int column);
+ void newChild(AbstractTreeItem *);
+ void childDestroyed(int row);
+
+private slots:
+ void childDestroyed();
+
+private:
+ QHash<int, QList<AbstractTreeItem *> > _childItems;
+ QHash<int, QHash<quint64, AbstractTreeItem *> > _childHash; // uint to be compatible to qHash functions
+ AbstractTreeItem *_parentItem;
+ Qt::ItemFlags _flags;
+
+ int defaultColumn() const;
+};
+
+
+/*****************************************
+ * SimpleTreeItem
+ *****************************************/
+class SimpleTreeItem : public AbstractTreeItem {
+ Q_OBJECT
+
+public:
+ SimpleTreeItem(const QList<QVariant> &data, AbstractTreeItem *parent = 0);
+ virtual ~SimpleTreeItem();
+ virtual QVariant data(int column, int role) const;
+ virtual int columnCount() const;
+
+private:
+ QList<QVariant> _itemData;
+};
+
+/*****************************************
+ * PropertyMapItem
+ *****************************************/
+class PropertyMapItem : public AbstractTreeItem {
+ Q_OBJECT
+
+public:
+ PropertyMapItem(const QStringList &propertyOrder, AbstractTreeItem *parent = 0);
+ PropertyMapItem(AbstractTreeItem *parent = 0);
+
+ virtual ~PropertyMapItem();
+
+ virtual QVariant data(int column, int role) const;
+ virtual int columnCount() const;
+
+ void appendProperty(const QString &property);
+
+private:
+ QStringList _propertyOrder;