]> git.cworth.org Git - apitrace/blob - gui/apitracemodel.h
Fix minor errors in the apitracemodel
[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     QModelIndex callIndex(int callNum) const;
29     QModelIndex indexForCall(ApiTraceCall *call) const;
30
31 public:
32     /* QAbstractItemModel { */
33     QVariant data(const QModelIndex &index, int role) const;
34     Qt::ItemFlags flags(const QModelIndex &index) const;
35     QVariant headerData(int section, Qt::Orientation orientation,
36                         int role = Qt::DisplayRole) const;
37     QModelIndex index(int row, int column,
38                       const QModelIndex &parent = QModelIndex()) const;
39     bool hasChildren(const QModelIndex &parent) const;
40     QModelIndex parent(const QModelIndex &index) const;
41     int rowCount(const QModelIndex &parent = QModelIndex()) const;
42     int columnCount(const QModelIndex &parent = QModelIndex()) const;
43
44     bool insertRows(int position, int rows,
45                     const QModelIndex &parent = QModelIndex());
46     bool removeRows(int position, int rows,
47                     const QModelIndex &parent = QModelIndex());
48     /* } QAbstractItemModel; */
49
50 private slots:
51     void invalidateFrames();
52     void beginAddingFrames(int oldCount, int numAdded);
53     void endAddingFrames();
54     void callChanged(ApiTraceCall *call);
55
56 private:
57     ApiTraceEvent *item(const QModelIndex &index) const;
58
59 private:
60     ApiTrace *m_trace;
61 };
62
63 #endif