]> git.cworth.org Git - apitrace/blobdiff - gui/loaderthread.cpp
Share function signatures.
[apitrace] / gui / loaderthread.cpp
index de5e3f85ec4d40a3e4144a71b58222a7c9da05c8..054545333b37f5d7e7652d4103815581c4da80eb 100644 (file)
 
 static ApiTraceCall *
 apiCallFromTraceCall(const Trace::Call *call,
-                     const QHash<QString, QUrl> &helpHash)
+                     const QHash<QString, QUrl> &helpHash,
+                     ApiTraceFrame *frame)
 {
-    ApiTraceCall *apiCall = new ApiTraceCall(call);
+    ApiTraceCall *apiCall = new ApiTraceCall(frame, call);
 
     apiCall->setHelpUrl(helpHash.value(apiCall->name()));
 
     return apiCall;
 }
 
-LoaderThread::LoaderThread(QObject *parent)
+LoaderThread::LoaderThread(ApiTrace *parent)
     : QThread(parent),
-      m_frameMarker(ApiTrace::FrameMarker_SwapBuffers)
+      m_frameMarker(ApiTrace::FrameMarker_SwapBuffers),
+      m_trace(parent)
 {
 }
 
@@ -58,13 +60,12 @@ void LoaderThread::run()
         while (call) {
             //std::cout << *call;
             if (!currentFrame) {
-                currentFrame = new ApiTraceFrame();
+                currentFrame = new ApiTraceFrame(m_trace);
                 currentFrame->number = frameCount;
                 ++frameCount;
             }
             ApiTraceCall *apiCall =
-                apiCallFromTraceCall(call, helpHash);
-            apiCall->setParentFrame(currentFrame);
+                apiCallFromTraceCall(call, helpHash, currentFrame);
             currentFrame->addCall(apiCall);
             if (ApiTrace::isCallAFrameMarker(apiCall,
                                              m_frameMarker)) {