]> git.cworth.org Git - apitrace/blob - gui/apitracemodel.h
Merge branch 'master' into noglut
[apitrace] / gui / apitracemodel.h
1 #ifndef APITRACEMODEL_H
2 #define APITRACEMODEL_H
3
4
5 #include <QAbstractItemModel>
6 #include <QModelIndex>
7 #include <QVariant>
8
9 class ApiTrace;
10 class ApiTraceCall;
11 class ApiTraceEvent;
12
13 class ApiTraceModel : public QAbstractItemModel
14 {
15     Q_OBJECT
16 public:
17     enum Roles {
18         EventRole = Qt::UserRole + 1
19     };
20 public:
21     ApiTraceModel(QObject *parent = 0);
22     ~ApiTraceModel();
23
24     void setApiTrace(ApiTrace *trace);
25     const ApiTrace *apiTrace() const;
26     void stateSetOnEvent(ApiTraceEvent *event);
27
28 public:
29     /* QAbstractItemModel { */
30     QVariant data(const QModelIndex &index, int role) const;
31     Qt::ItemFlags flags(const QModelIndex &index) const;
32     QVariant headerData(int section, Qt::Orientation orientation,
33                         int role = Qt::DisplayRole) const;
34     QModelIndex index(int row, int column,
35                       const QModelIndex &parent = QModelIndex()) const;
36     bool hasChildren(const QModelIndex &parent) const;
37     QModelIndex parent(const QModelIndex &index) const;
38     int rowCount(const QModelIndex &parent = QModelIndex()) const;
39     int columnCount(const QModelIndex &parent = QModelIndex()) const;
40
41     bool insertRows(int position, int rows,
42                     const QModelIndex &parent = QModelIndex());
43     bool removeRows(int position, int rows,
44                     const QModelIndex &parent = QModelIndex());
45     /* } QAbstractItemModel; */
46
47 private slots:
48     void invalidateFrames();
49     void appendFrames(int oldCount, int numAdded);
50
51 private:
52     ApiTraceEvent *item(const QModelIndex &index) const;
53
54 private:
55     ApiTrace *m_trace;
56 };
57
58 #endif