summaryrefslogtreecommitdiffstats
path: root/qt-models/treemodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models/treemodel.h')
-rw-r--r--qt-models/treemodel.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/qt-models/treemodel.h b/qt-models/treemodel.h
new file mode 100644
index 000000000..e95e53a91
--- /dev/null
+++ b/qt-models/treemodel.h
@@ -0,0 +1,39 @@
+#ifndef TREEMODEL_H
+#define TREEMODEL_H
+
+#include <QAbstractItemModel>
+#include <QCoreApplication>
+
+struct TreeItem {
+ Q_DECLARE_TR_FUNCTIONS(TreeItemDT)
+
+public:
+ virtual ~TreeItem();
+ TreeItem();
+ virtual QVariant data(int column, int role) const;
+ virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ virtual Qt::ItemFlags flags(const QModelIndex &index) const;
+
+ int row() const;
+ QList<TreeItem *> children;
+ TreeItem *parent;
+};
+
+
+class TreeModel : public QAbstractItemModel {
+ Q_OBJECT
+public:
+ TreeModel(QObject *parent = 0);
+ virtual ~TreeModel();
+ virtual QVariant data(const QModelIndex &index, int role) const;
+ /*reimp*/ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ /*reimp*/ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+ /*reimp*/ QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+ /*reimp*/ QModelIndex parent(const QModelIndex &child) const;
+
+protected:
+ int columns;
+ TreeItem *rootItem;
+};
+
+#endif