int currentCalls = m_calls.count();
int numNewCalls = 0;
foreach(ApiTraceFrame *frame, frames) {
+ frame->setParentTrace(this);
numNewCalls += frame->calls.count();
m_calls += frame->calls;
}
foreach(ApiTraceCall *apiCall, m_calls) {
if (!currentFrame) {
currentFrame = new ApiTraceFrame();
+ currentFrame->setParentTrace(this);
currentFrame->number = m_frames.count();
}
apiCall->setParentFrame(currentFrame);
}
ApiTraceFrame::ApiTraceFrame()
- : ApiTraceEvent(ApiTraceEvent::Frame)
+ : ApiTraceEvent(ApiTraceEvent::Frame),
+ m_parentTrace(0)
{
}
{
}
+ApiTrace * ApiTraceFrame::parentTrace() const
+{
+ return m_parentTrace;
+}
+
+void ApiTraceFrame::setParentTrace(ApiTrace *trace)
+{
+ m_parentTrace = trace;
+}
+
#include "trace_model.hpp"
+class ApiTrace;
+
class VariantVisitor : public Trace::Visitor
{
public:
int number;
QList<ApiTraceCall*> calls;
+ ApiTrace *parentTrace() const;
+ void setParentTrace(ApiTrace *trace);
+
int numChildren() const;
QStaticText staticText() const;
+private:
+ ApiTrace *m_parentTrace;
};
Q_DECLARE_METATYPE(ApiTraceFrame*);