SIGNAL(searchResult(ApiTrace::SearchResult,ApiTraceCall*)),
this,
SLOT(loaderSearchResult(ApiTrace::SearchResult,ApiTraceCall*)));
+ connect(this, SIGNAL(loaderFindFrameStart(ApiTraceFrame*)),
+ m_loader, SLOT(findFrameStart(ApiTraceFrame*)));
+ connect(this, SIGNAL(loaderFindFrameEnd(ApiTraceFrame*)),
+ m_loader, SLOT(findFrameEnd(ApiTraceFrame*)));
+ connect(m_loader, SIGNAL(foundFrameStart(ApiTraceFrame*)),
+ this, SIGNAL(foundFrameStart(ApiTraceFrame*)));
+ connect(m_loader, SIGNAL(foundFrameEnd(ApiTraceFrame*)),
+ this, SIGNAL(foundFrameEnd(ApiTraceFrame*)));
connect(m_loader, SIGNAL(startedParsing()),
ApiTraceCall *call = frame->findNextCall(0, str, sensitivity);
if (call) {
emit findResult(SearchFound, call);
+ return;
}
}
}
frameIdx -= 1;
}
- for (int i = frameIdx; i <= 0; --i) {
+ for (int i = frameIdx; i >= 0; --i) {
ApiTraceFrame *frame = m_frames[i];
if (!frame->loaded()) {
emit loaderSearchPrev(i, str, sensitivity);
ApiTraceCall *call = frame->findPrevCall(0, str, sensitivity);
if (call) {
emit findResult(SearchFound, call);
+ return;
}
}
}
emit findResult(result, call);
}
+void ApiTrace::findFrameStart(ApiTraceFrame *frame)
+{
+ if (frame->loaded()) {
+ emit foundFrameStart(frame);
+ } else {
+ emit loaderFindFrameStart(frame);
+ }
+}
+
+void ApiTrace::findFrameEnd(ApiTraceFrame *frame)
+{
+ if (frame->loaded()) {
+ emit foundFrameEnd(frame);
+ } else {
+ emit loaderFindFrameEnd(frame);
+ }
+}
+
#include "apitrace.moc"