X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitracecall.h;h=15bc627134edb082adf705d8050e2a9a8debb911;hb=d9d9d22837705de6a2c42ad3f9b23223a2b98fe0;hp=6c6b6074b6dcae2799e1f4a750cdc293120c3f53;hpb=e7cb2b98575d5ff3801bd3527a648e0dbfdebdad;p=apitrace diff --git a/gui/apitracecall.h b/gui/apitracecall.h index 6c6b607..15bc627 100644 --- a/gui/apitracecall.h +++ b/gui/apitracecall.h @@ -203,6 +203,8 @@ private: QUrl m_helpUrl; }; +class ApiTraceCall; + class ApiTraceEvent { public: @@ -220,6 +222,8 @@ public: virtual QStaticText staticText() const = 0; virtual int numChildren() const = 0; + virtual int callIndex(ApiTraceCall *call) const = 0; + virtual ApiTraceEvent *eventAtRow(int row) const = 0; QVariantMap stateParameters() const; ApiTraceState *state() const; @@ -242,6 +246,8 @@ Q_DECLARE_METATYPE(ApiTraceEvent*); class ApiTraceCall : public ApiTraceEvent { public: + ApiTraceCall(ApiTraceCall *parentCall, TraceLoader *loader, + const trace::Call *tcall); ApiTraceCall(ApiTraceFrame *parentFrame, TraceLoader *loader, const trace::Call *tcall); ~ApiTraceCall(); @@ -257,6 +263,15 @@ public: ApiTraceFrame *parentFrame()const; void setParentFrame(ApiTraceFrame *frame); + int callIndex(ApiTraceCall *call) const; + + ApiTraceEvent *parentEvent() const; + ApiTraceCall *parentCall() const; + QVector children() const; + ApiTraceEvent *eventAtRow(int row) const; + void addChild(ApiTraceCall *call); + void finishedAddingChildren(); + bool hasError() const; QString error() const; void setError(const QString &msg); @@ -279,6 +294,12 @@ public: int numChildren() const; bool hasBinaryData() const; int binaryDataIndex() const; + + QString backtrace() const; + void setBacktrace(QString backtrace); +private: + void loadData(TraceLoader *loader, + const trace::Call *tcall); private: int m_index; ApiTraceCallSignature *m_signature; @@ -286,11 +307,15 @@ private: QVariant m_returnValue; trace::CallFlags m_flags; ApiTraceFrame *m_parentFrame; + ApiTraceCall *m_parentCall; + QVector m_children; QVector m_editedValues; QString m_error; + QString m_backtrace; + mutable QString m_richText; mutable QString m_searchText; }; @@ -311,14 +336,15 @@ public: void setNumChildren(int num); int numChildren() const; int numChildrenToLoad() const; + int numTotalCalls() const; QStaticText staticText() const; + ApiTraceEvent *eventAtRow(int row) const; int callIndex(ApiTraceCall *call) const; - ApiTraceCall *call(int idx) const; ApiTraceCall *callWithIndex(int index) const; - void addCall(ApiTraceCall *call); QVector calls() const; - void setCalls(const QVector &calls, + void setCalls(const QVector &topLevelCalls, + const QVector &allCalls, quint64 binaryDataSize); ApiTraceCall *findNextCall(ApiTraceCall *from, @@ -332,7 +358,6 @@ public: int binaryDataSize() const; bool isLoaded() const; - void setLoaded(bool l); void setLastCallIndex(unsigned index); unsigned lastCallIndex() const; @@ -343,6 +368,7 @@ public: private: ApiTrace *m_parentTrace; quint64 m_binaryDataSize; + QVector m_children; QVector m_calls; bool m_loaded; unsigned m_callsToLoad;