X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitracecall.cpp;fp=gui%2Fapitracecall.cpp;h=79876351a12807039e76bd5aba16c9a3dfb1d591;hb=d9d9d22837705de6a2c42ad3f9b23223a2b98fe0;hp=0175bff81755e9e005f101e41a0ec6fc6f324432;hpb=52fc2b017b6914afb3799601b6e93f9306af0058;p=apitrace diff --git a/gui/apitracecall.cpp b/gui/apitracecall.cpp index 0175bff..7987635 100644 --- a/gui/apitracecall.cpp +++ b/gui/apitracecall.cpp @@ -648,7 +648,31 @@ ApiTraceCall::ApiTraceCall(ApiTraceFrame *parentFrame, TraceLoader *loader, const trace::Call *call) : ApiTraceEvent(ApiTraceEvent::Call), - m_parentFrame(parentFrame) + m_parentFrame(parentFrame), + m_parentCall(0) +{ + loadData(loader, call); +} + +ApiTraceCall::ApiTraceCall(ApiTraceCall *parentCall, + TraceLoader *loader, + const trace::Call *call) + : ApiTraceEvent(ApiTraceEvent::Call), + m_parentFrame(parentCall->parentFrame()), + m_parentCall(parentCall) +{ + loadData(loader, call); +} + + +ApiTraceCall::~ApiTraceCall() +{ +} + + +void +ApiTraceCall::loadData(TraceLoader *loader, + const trace::Call *call) { m_index = call->no; @@ -712,10 +736,46 @@ ApiTraceCall::ApiTraceCall(ApiTraceFrame *parentFrame, } } -ApiTraceCall::~ApiTraceCall() +ApiTraceCall * +ApiTraceCall::parentCall() const +{ + return m_parentCall; +} + + +ApiTraceEvent * +ApiTraceCall::parentEvent() const +{ + if (m_parentCall) + return m_parentCall; + else + return m_parentFrame; +} + +QVector +ApiTraceCall::children() const { + return m_children; } +void +ApiTraceCall::addChild(ApiTraceCall *call) +{ + m_children.append(call); +} + + +int +ApiTraceCall::callIndex(ApiTraceCall *call) const +{ + return m_children.indexOf(call); +} + +void +ApiTraceCall::finishedAddingChildren() +{ + m_children.squeeze(); +} bool ApiTraceCall::hasError() const { @@ -820,6 +880,15 @@ QVector ApiTraceCall::arguments() const return m_editedValues; } +ApiTraceEvent * +ApiTraceCall::eventAtRow(int row) const +{ + if (row < m_children.count()) + return m_children.value(row); + else + return NULL; +} + QVariant ApiTraceCall::returnValue() const { return m_returnValue; @@ -1011,7 +1080,7 @@ QString ApiTraceCall::searchText() const int ApiTraceCall::numChildren() const { - return 0; + return m_children.count(); } bool ApiTraceCall::contains(const QString &str, @@ -1074,22 +1143,17 @@ QStaticText ApiTraceFrame::staticText() const int ApiTraceFrame::numChildren() const { - return m_calls.count(); + return m_children.count(); } -ApiTrace * ApiTraceFrame::parentTrace() const +int ApiTraceFrame::numTotalCalls() const { - return m_parentTrace; + return m_calls.count(); } -void ApiTraceFrame::addCall(ApiTraceCall *call) +ApiTrace * ApiTraceFrame::parentTrace() const { - m_calls.append(call); - if (call->hasBinaryData()) { - QByteArray data = - call->arguments()[call->binaryDataIndex()].toByteArray(); - m_binaryDataSize += data.size(); - } + return m_parentTrace; } QVector ApiTraceFrame::calls() const @@ -1097,9 +1161,12 @@ QVector ApiTraceFrame::calls() const return m_calls; } -ApiTraceCall * ApiTraceFrame::call(int idx) const +ApiTraceEvent * ApiTraceFrame::eventAtRow(int row) const { - return m_calls.value(idx); + if (row < m_children.count()) + return m_children.value(row); + else + return NULL; } @@ -1116,7 +1183,7 @@ ApiTraceCall * ApiTraceFrame::callWithIndex(int index) const int ApiTraceFrame::callIndex(ApiTraceCall *call) const { - return m_calls.indexOf(call); + return m_children.indexOf(call); } bool ApiTraceFrame::isEmpty() const @@ -1133,9 +1200,11 @@ int ApiTraceFrame::binaryDataSize() const return m_binaryDataSize; } -void ApiTraceFrame::setCalls(const QVector &calls, +void ApiTraceFrame::setCalls(const QVector &children, + const QVector &calls, quint64 binaryDataSize) { + m_children = children; m_calls = calls; m_binaryDataSize = binaryDataSize; m_loaded = true; @@ -1148,11 +1217,6 @@ bool ApiTraceFrame::isLoaded() const return m_loaded; } -void ApiTraceFrame::setLoaded(bool l) -{ - m_loaded = l; -} - void ApiTraceFrame::setNumChildren(int num) { m_callsToLoad = num;