+ Q_PROPERTY(quint64 id READ id)
+
+public:
+ AbstractTreeItem(AbstractTreeItem *parent = 0);
+ virtual ~AbstractTreeItem();
+
+ bool newChild(AbstractTreeItem *child);
+ bool newChilds(const QList<AbstractTreeItem *> &items);
+
+ bool removeChild(int row);
+ bool removeChildById(const quint64 &id);
+ void removeAllChilds();
+
+ virtual quint64 id() const;
+
+ AbstractTreeItem *child(int row) const;
+ AbstractTreeItem *childById(const quint64 &id) const;
+
+ int childCount(int column = 0) const;
+
+ virtual int columnCount() const = 0;
+
+ virtual QVariant data(int column, int role) const = 0;
+ virtual bool setData(int column, const QVariant &value, int role) = 0;
+
+ virtual Qt::ItemFlags flags() const;
+ virtual void setFlags(Qt::ItemFlags);
+
+ int row() const;
+ AbstractTreeItem *parent() const;
+
+ void dumpChildList();
+
+signals:
+ void dataChanged(int column = -1);
+
+ void beginAppendChilds(int firstRow, int lastRow);
+ void endAppendChilds();