diff options
Diffstat (limited to 'gui/apitrace.h')
-rw-r--r-- | gui/apitrace.h | 25 |
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; +}; |