]> git.cworth.org Git - apitrace/blob - gui/apitracemodel.h
Introduce ApiTrace which encapsulates the data.
[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     ApiTraceModel(QObject *parent = 0);
18     ~ApiTraceModel();
19
20     void setApiTrace(ApiTrace *trace);
21     const ApiTrace *apiTrace() const;
22
23 public:
24     /* QAbstractItemModel { */
25     QVariant data(const QModelIndex &index, int role) const;
26     Qt::ItemFlags flags(const QModelIndex &index) const;
27     QVariant headerData(int section, Qt::Orientation orientation,
28                         int role = Qt::DisplayRole) const;
29     QModelIndex index(int row, int column,
30                       const QModelIndex &parent = QModelIndex()) const;
31     bool hasChildren(const QModelIndex &parent) const;
32     QModelIndex parent(const QModelIndex &index) const;
33     int rowCount(const QModelIndex &parent = QModelIndex()) const;
34     int columnCount(const QModelIndex &parent = QModelIndex()) const;
35
36     bool insertRows(int position, int rows,
37                     const QModelIndex &parent = QModelIndex());
38     bool removeRows(int position, int rows,
39                     const QModelIndex &parent = QModelIndex());
40     /* } QAbstractItemModel; */
41
42 private slots:
43     void invalidateFrames();
44     void appendFrames(int oldCount, int numAdded);
45
46 private:
47     ApiTraceEvent *item(const QModelIndex &index) const;
48
49 private:
50     ApiTrace *m_trace;
51 };
52
53 #endif