1 #ifndef APITRACEMODEL_H
2 #define APITRACEMODEL_H
5 #include <QAbstractItemModel>
15 class ApiTraceModel : public QAbstractItemModel
20 EventRole = Qt::UserRole + 1
23 ApiTraceModel(QObject *parent = 0);
26 void setApiTrace(ApiTrace *trace);
27 const ApiTrace *apiTrace() const;
28 void stateSetOnEvent(ApiTraceEvent *event);
30 QModelIndex indexForCall(ApiTraceCall *call) const;
33 /* QAbstractItemModel { */
34 QVariant data(const QModelIndex &index, int role) const;
35 Qt::ItemFlags flags(const QModelIndex &index) const;
36 QVariant headerData(int section, Qt::Orientation orientation,
37 int role = Qt::DisplayRole) const;
38 QModelIndex index(int row, int column,
39 const QModelIndex &parent = QModelIndex()) const;
40 bool hasChildren(const QModelIndex &parent) const;
41 QModelIndex parent(const QModelIndex &index) const;
42 int rowCount(const QModelIndex &parent = QModelIndex()) const;
43 int columnCount(const QModelIndex &parent = QModelIndex()) const;
45 bool insertRows(int position, int rows,
46 const QModelIndex &parent = QModelIndex());
47 bool removeRows(int position, int rows,
48 const QModelIndex &parent = QModelIndex());
49 virtual bool canFetchMore(const QModelIndex & parent) const;
50 virtual void fetchMore(const QModelIndex &parent);
51 /* } QAbstractItemModel; */
54 void invalidateFrames();
55 void beginAddingFrames(int oldCount, int numAdded);
56 void endAddingFrames();
57 void callChanged(ApiTraceCall *call);
58 void beginLoadingFrame(ApiTraceFrame *frame, int numAdded);
59 void endLoadingFrame(ApiTraceFrame *frame);
62 ApiTraceEvent *item(const QModelIndex &index) const;
66 QSet<ApiTraceFrame*> m_loadingFrames;