X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitracemodel.cpp;h=0863c1b5bc0eb19ad1b649b9d83442483a2fc5ad;hb=4dbf7c9e3f4b669ec38600c04ba8a67926d10cc7;hp=7303ae1c31e836bb2e507fe9b5fd34af657fa574;hpb=ae2b4d32ed56e3ac193cc7205aeb58082c448ce8;p=apitrace diff --git a/gui/apitracemodel.cpp b/gui/apitracemodel.cpp index 7303ae1..0863c1b 100644 --- a/gui/apitracemodel.cpp +++ b/gui/apitracemodel.cpp @@ -248,8 +248,8 @@ void ApiTraceModel::setApiTrace(ApiTrace *trace) this, SLOT(beginAddingFrames(int, int))); connect(m_trace, SIGNAL(endAddingFrames()), this, SLOT(endAddingFrames())); - connect(m_trace, SIGNAL(changed(ApiTraceCall*)), - this, SLOT(callChanged(ApiTraceCall*))); + connect(m_trace, SIGNAL(changed(ApiTraceEvent*)), + this, SLOT(changed(ApiTraceEvent*))); connect(m_trace, SIGNAL(beginLoadingFrame(ApiTraceFrame*,int)), this, SLOT(beginLoadingFrame(ApiTraceFrame*,int))); connect(m_trace, SIGNAL(endLoadingFrame(ApiTraceFrame*)), @@ -294,7 +294,7 @@ void ApiTraceModel::stateSetOnEvent(ApiTraceEvent *event) emit dataChanged(index, index); } else if (event->type() == ApiTraceEvent::Frame) { ApiTraceFrame *frame = static_cast(event); - const QList frames = m_trace->frames(); + const QList & frames = m_trace->frames(); int row = frames.indexOf(frame); QModelIndex index = createIndex(row, 0, frame); emit dataChanged(index, index); @@ -318,6 +318,15 @@ QModelIndex ApiTraceModel::indexForCall(ApiTraceCall *call) const return createIndex(row, 0, call); } +void ApiTraceModel::changed(ApiTraceEvent *event) +{ + if (event->type() == ApiTraceEvent::Call) { + callChanged(static_cast(event)); + } else if (event->type() == ApiTraceEvent::Frame) { + frameChanged(static_cast(event)); + } +} + void ApiTraceModel::callChanged(ApiTraceCall *call) { ApiTrace *trace = call->parentFrame()->parentTrace(); @@ -339,6 +348,14 @@ void ApiTraceModel::callChanged(ApiTraceCall *call) emit dataChanged(index, index); } +void ApiTraceModel::frameChanged(ApiTraceFrame *frame) +{ + const QList & frames = m_trace->frames(); + int row = frames.indexOf(frame); + QModelIndex index = createIndex(row, 0, frame); + emit dataChanged(index, index); +} + void ApiTraceModel::endAddingFrames() { endInsertRows();