summaryrefslogtreecommitdiff
path: root/utils/themeeditor/projectmodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/themeeditor/projectmodel.h')
-rw-r--r--utils/themeeditor/projectmodel.h67
1 files changed, 6 insertions, 61 deletions
diff --git a/utils/themeeditor/projectmodel.h b/utils/themeeditor/projectmodel.h
index c7147fa83f..d577f00a69 100644
--- a/utils/themeeditor/projectmodel.h
+++ b/utils/themeeditor/projectmodel.h
@@ -22,13 +22,12 @@
22#ifndef PROJECTMODEL_H 22#ifndef PROJECTMODEL_H
23#define PROJECTMODEL_H 23#define PROJECTMODEL_H
24 24
25#include <QAbstractItemModel> 25#include <QAbstractListModel>
26#include <QHash> 26#include <QMap>
27 27
28class ProjectNode;
29class EditorWindow; 28class EditorWindow;
30 29
31class ProjectModel : public QAbstractItemModel 30class ProjectModel : public QAbstractListModel
32{ 31{
33Q_OBJECT 32Q_OBJECT
34public: 33public:
@@ -42,16 +41,8 @@ public:
42 ProjectModel(QString config, EditorWindow* mainWindow, QObject *parent = 0); 41 ProjectModel(QString config, EditorWindow* mainWindow, QObject *parent = 0);
43 virtual ~ProjectModel(); 42 virtual ~ProjectModel();
44 43
45 QModelIndex index(int row, int column, const QModelIndex& parent) const; 44 int rowCount(const QModelIndex& parent) const;
46 QModelIndex parent(const QModelIndex &child) const;
47 int rowCount(const QModelIndex &parent) const;
48 int columnCount(const QModelIndex &parent) const;
49 QVariant data(const QModelIndex &index, int role) const; 45 QVariant data(const QModelIndex &index, int role) const;
50 QVariant headerData(int col, Qt::Orientation orientation, int role) const;
51 Qt::ItemFlags flags(const QModelIndex &index) const;
52 bool setData(const QModelIndex &index, const QVariant &value, int role);
53
54 void loadFile(QString file);
55 46
56signals: 47signals:
57 48
@@ -59,55 +50,9 @@ public slots:
59 void activated(const QModelIndex& index); 50 void activated(const QModelIndex& index);
60 51
61private: 52private:
62 ProjectNode* root;
63 EditorWindow* mainWindow; 53 EditorWindow* mainWindow;
54 QMap<QString, QString> settings;
55 QList<QString> files;
64}; 56};
65 57
66/* A simple abstract class required for categories */
67class ProjectNode
68{
69public:
70 virtual ProjectNode* parent() const = 0;
71 virtual ProjectNode* child(int row) const = 0;
72 virtual int numChildren() const = 0;
73 virtual int row() const = 0;
74 virtual QVariant data(int column) const = 0;
75 virtual Qt::ItemFlags flags(int column) const = 0;
76 virtual void activated() = 0;
77
78 int indexOf(ProjectNode* child){ return children.indexOf(child); }
79
80protected:
81 QList<ProjectNode*> children;
82 ProjectModel* model;
83
84};
85
86/* A simple implementation of ProjectNode for the root */
87class ProjectRoot : public ProjectNode
88{
89public:
90 ProjectRoot(QString config, ProjectModel* model);
91 virtual ~ProjectRoot();
92
93 virtual ProjectNode* parent() const{ return 0; }
94 virtual ProjectNode* child(int row) const
95 {
96 if(row >= 0 && row < children.count())
97 return children[row];
98 else
99 return 0;
100 }
101 virtual int numChildren() const{ return children.count(); }
102 virtual int row() const{ return 0; }
103 virtual QVariant data(int column) const{ return QVariant(); }
104 virtual Qt::ItemFlags flags(int column) const{ return 0; }
105 virtual void activated(){ }
106
107private:
108 QHash<QString, QString> settings;
109
110};
111
112
113#endif // PROJECTMODEL_H 58#endif // PROJECTMODEL_H