X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitracemodel.h;h=e7354aa6350191ad55aee5a8abe9d675079dfeeb;hb=HEAD;hp=422259e84405898063fb4d8ecf2cb65cbd4313fe;hpb=601e8376b1496ff2a46f9d5c1ff82c29f2446fa3;p=apitrace diff --git a/gui/apitracemodel.h b/gui/apitracemodel.h index 422259e..e7354aa 100644 --- a/gui/apitracemodel.h +++ b/gui/apitracemodel.h @@ -4,22 +4,33 @@ #include #include +#include #include +class ApiTrace; class ApiTraceCall; -class LoaderThread; -namespace Trace { - class Call; -} +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 { */ QVariant data(const QModelIndex &index, int role) const; Qt::ItemFlags flags(const QModelIndex &index) const; QVariant headerData(int section, Qt::Orientation orientation, @@ -35,14 +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 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); -public slots: - void loadTraceFile(const QString &fileName); - void appendCalls(const QList traceCalls); +private: + ApiTraceEvent *item(const QModelIndex &index) const; private: - QList m_calls; - LoaderThread *m_loader; + ApiTrace *m_trace; + QSet m_loadingFrames; }; #endif