From: Zack Rusin Date: Sun, 17 Apr 2011 03:14:25 +0000 (-0400) Subject: Set a parent trace on all the frames. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=7c1793eb827aa301bb92991238f1bee0fe49df40;p=apitrace Set a parent trace on all the frames. --- diff --git a/gui/apitrace.cpp b/gui/apitrace.cpp index 40032ba..abdae27 100644 --- a/gui/apitrace.cpp +++ b/gui/apitrace.cpp @@ -134,6 +134,7 @@ void ApiTrace::addFrames(const QList &frames) int currentCalls = m_calls.count(); int numNewCalls = 0; foreach(ApiTraceFrame *frame, frames) { + frame->setParentTrace(this); numNewCalls += frame->calls.count(); m_calls += frame->calls; } @@ -151,6 +152,7 @@ void ApiTrace::detectFrames() foreach(ApiTraceCall *apiCall, m_calls) { if (!currentFrame) { currentFrame = new ApiTraceFrame(); + currentFrame->setParentTrace(this); currentFrame->number = m_frames.count(); } apiCall->setParentFrame(currentFrame); diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp index 71e2f86..f027987 100644 --- a/gui/apitracecall.cpp +++ b/gui/apitracecall.cpp @@ -386,7 +386,8 @@ int ApiTraceFrame::numChildren() const } ApiTraceFrame::ApiTraceFrame() - : ApiTraceEvent(ApiTraceEvent::Frame) + : ApiTraceEvent(ApiTraceEvent::Frame), + m_parentTrace(0) { } @@ -645,3 +646,13 @@ void ApiTraceCall::revert() { } +ApiTrace * ApiTraceFrame::parentTrace() const +{ + return m_parentTrace; +} + +void ApiTraceFrame::setParentTrace(ApiTrace *trace) +{ + m_parentTrace = trace; +} + diff --git a/gui/apitracecall.h b/gui/apitracecall.h index 3bf4c64..0f395a5 100644 --- a/gui/apitracecall.h +++ b/gui/apitracecall.h @@ -11,6 +11,8 @@ #include "trace_model.hpp" +class ApiTrace; + class VariantVisitor : public Trace::Visitor { public: @@ -202,8 +204,13 @@ public: int number; QList calls; + ApiTrace *parentTrace() const; + void setParentTrace(ApiTrace *trace); + int numChildren() const; QStaticText staticText() const; +private: + ApiTrace *m_parentTrace; }; Q_DECLARE_METATYPE(ApiTraceFrame*);