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 callIndex(int callNum) const;
31 QModelIndex indexForCall(ApiTraceCall *call) const;
34 /* QAbstractItemModel { */
35 QVariant data(const QModelIndex &index, int role) const;
36 Qt::ItemFlags flags(const QModelIndex &index) const;
37 QVariant headerData(int section, Qt::Orientation orientation,
38 int role = Qt::DisplayRole) const;
39 QModelIndex index(int row, int column,
40 const QModelIndex &parent = QModelIndex()) const;
41 bool hasChildren(const QModelIndex &parent) const;
42 QModelIndex parent(const QModelIndex &index) const;
43 int rowCount(const QModelIndex &parent = QModelIndex()) const;
44 int columnCount(const QModelIndex &parent = QModelIndex()) const;
46 bool insertRows(int position, int rows,
47 const QModelIndex &parent = QModelIndex());
48 bool removeRows(int position, int rows,
49 const QModelIndex &parent = QModelIndex());
50 virtual bool canFetchMore(const QModelIndex & parent) const;
51 virtual void fetchMore(const QModelIndex &parent);
52 /* } QAbstractItemModel; */
55 void invalidateFrames();
56 void beginAddingFrames(int oldCount, int numAdded);
57 void endAddingFrames();
58 void callChanged(ApiTraceCall *call);
59 void beginLoadingFrame(ApiTraceFrame *frame, int numAdded);
60 void endLoadingFrame(ApiTraceFrame *frame);
63 ApiTraceEvent *item(const QModelIndex &index) const;
67 QSet<ApiTraceFrame*> m_loadingFrames;