X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitracemodel.h;h=e7354aa6350191ad55aee5a8abe9d675079dfeeb;hb=7a9fb5103e052150232b64cb5d99374cda3f1234;hp=d9ac9dd858905f58370fa5e8879956b6a08417d4;hpb=f6667d1331849a8534ead1c653ab4a1aeaeddcc8;p=apitrace diff --git a/gui/apitracemodel.h b/gui/apitracemodel.h index d9ac9dd..e7354aa 100644 --- a/gui/apitracemodel.h +++ b/gui/apitracemodel.h @@ -4,21 +4,30 @@ #include #include +#include #include class ApiTrace; class ApiTraceCall; class ApiTraceEvent; +class ApiTraceFrame; class ApiTraceModel : public QAbstractItemModel { Q_OBJECT +public: + enum Roles { + EventRole = Qt::UserRole + 1 + }; public: ApiTraceModel(QObject *parent = 0); ~ApiTraceModel(); void setApiTrace(ApiTrace *trace); const ApiTrace *apiTrace() const; + void stateSetOnEvent(ApiTraceEvent *event); + + QModelIndex indexForCall(ApiTraceCall *call) const; public: /* QAbstractItemModel { */ @@ -37,17 +46,26 @@ public: const QModelIndex &parent = QModelIndex()); bool removeRows(int position, int rows, const QModelIndex &parent = QModelIndex()); + virtual bool canFetchMore(const QModelIndex & parent) const; + virtual void fetchMore(const QModelIndex &parent); /* } QAbstractItemModel; */ private slots: void invalidateFrames(); - void appendFrames(int oldCount, int numAdded); + void beginAddingFrames(int oldCount, int numAdded); + void endAddingFrames(); + void changed(ApiTraceEvent *event); + void callChanged(ApiTraceCall *call); + void frameChanged(ApiTraceFrame *frame); + void beginLoadingFrame(ApiTraceFrame *frame, int numAdded); + void endLoadingFrame(ApiTraceFrame *frame); private: ApiTraceEvent *item(const QModelIndex &index) const; private: ApiTrace *m_trace; + QSet m_loadingFrames; }; #endif