X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitrace.cpp;h=671fc683887fa35fbbbda15bde9b92cae1df5b43;hb=HEAD;hp=ec13ce5ae2f5c9d0e3cbda8e770ba3aec656b47c;hpb=dc9e9c6addb436b7b2d87984d4bd9b0a18d5c5e2;p=apitrace diff --git a/gui/apitrace.cpp b/gui/apitrace.cpp index ec13ce5..671fc68 100644 --- a/gui/apitrace.cpp +++ b/gui/apitrace.cpp @@ -22,6 +22,8 @@ ApiTrace::ApiTrace() SIGNAL(frameContentsLoaded(ApiTraceFrame*,QVector,quint64)), this, SLOT(loaderFrameLoaded(ApiTraceFrame*,QVector,quint64))); + connect(m_loader, SIGNAL(guessedApi(int)), + this, SLOT(guessedApi(int))); connect(m_loader, SIGNAL(finishedParsing()), this, SLOT(finishedParsing())); connect(this, SIGNAL(loaderSearch(ApiTrace::SearchRequest)), @@ -228,7 +230,7 @@ bool ApiTrace::isSaving() const bool ApiTrace::hasErrors() const { - return !m_errors.isEmpty(); + return !m_errors.isEmpty() || !m_queuedErrors.isEmpty(); } void ApiTrace::loadFrame(ApiTraceFrame *frame) @@ -240,6 +242,16 @@ void ApiTrace::loadFrame(ApiTraceFrame *frame) } } +void ApiTrace::guessedApi(int api) +{ + m_api = static_cast(api); +} + +trace::API ApiTrace::api() const +{ + return m_api; +} + void ApiTrace::finishedParsing() { if (!m_frames.isEmpty()) { @@ -254,7 +266,7 @@ void ApiTrace::loaderFrameLoaded(ApiTraceFrame *frame, const QVector &calls, quint64 binaryDataSize) { - Q_ASSERT(frame->numChildrenToLoad() == calls.size()); + Q_ASSERT(frame->numChildrenToLoad() >= calls.size()); if (!frame->isLoaded()) { emit beginLoadingFrame(frame, calls.size()); @@ -381,6 +393,9 @@ void ApiTrace::loaderSearchResult(const ApiTrace::SearchRequest &request, void ApiTrace::findFrameStart(ApiTraceFrame *frame) { + if (!frame) + return; + if (frame->isLoaded()) { emit foundFrameStart(frame); } else { @@ -390,6 +405,9 @@ void ApiTrace::findFrameStart(ApiTraceFrame *frame) void ApiTrace::findFrameEnd(ApiTraceFrame *frame) { + if (!frame) + return; + if (frame->isLoaded()) { emit foundFrameEnd(frame); } else {