]> git.cworth.org Git - apitrace/blob - gui/apitracemodel.h
The trace now knows whether is has been edited.
[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 appendFrames(int oldCount, int numAdded);
53     void callChanged(ApiTraceCall *call);
54
55 private:
56     ApiTraceEvent *item(const QModelIndex &index) const;
57
58 private:
59     ApiTrace *m_trace;
60 };
61
62 #endif