summaryrefslogtreecommitdiff
path: root/gui/apitrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'gui/apitrace.h')
-rw-r--r--gui/apitrace.h25
1 files changed, 20 insertions, 5 deletions
diff --git a/gui/apitrace.h b/gui/apitrace.h
index 22bedec2..d7259924 100644
--- a/gui/apitrace.h
+++ b/gui/apitrace.h
@@ -1,5 +1,4 @@
-#ifndef APITRACE_H
-#define APITRACE_H
+#pragma once
#include "apitracecall.h"
@@ -12,6 +11,9 @@ class TraceLoader;
class SaverThread;
class QThread;
+typedef void (*ThumbnailCallback)(void *object, int thumbnailIdx);
+typedef QHash<int, QImage> ImageHash;
+
class ApiTrace : public QObject
{
Q_OBJECT
@@ -77,6 +79,14 @@ public:
trace::API api() const;
+ void missingThumbnail(ApiTraceFrame* frame);
+ void missingThumbnail(ApiTraceCall* call);
+
+ bool isMissingThumbnails() const;
+ void resetMissingThumbnails();
+
+ void iterateMissingThumbnails(void *object, ThumbnailCallback cb);
+
public slots:
void setFileName(const QString &name);
void save();
@@ -95,11 +105,12 @@ public slots:
void findCallIndex(int index);
void setCallError(const ApiTraceError &error);
- void bindThumbnailsToFrames(const QList<QImage> &thumbnails);
+ void bindThumbnails(const ImageHash &thumbnails);
signals:
void loadTrace(const QString &name);
void requestFrame(ApiTraceFrame *frame);
+ void problemLoadingTrace(const QString &message);
void startedLoadingTrace();
void loaded(int percent);
void finishedLoadingTrace();
@@ -141,6 +152,8 @@ private slots:
private:
int callInFrame(int callIdx) const;
bool isFrameLoading(ApiTraceFrame *frame) const;
+
+ void missingThumbnail(int callIdx);
private:
QString m_fileName;
QString m_tempFileName;
@@ -159,6 +172,8 @@ private:
QSet<ApiTraceCall*> m_errors;
QList< QPair<ApiTraceFrame*, ApiTraceError> > m_queuedErrors;
QSet<ApiTraceFrame*> m_loadingFrames;
-};
-#endif
+ QSet<int> m_missingThumbnails;
+
+ ImageHash m_thumbnails;
+};