#include "apitracecall.h"
+#include "trace_api.hpp"
+
#include <QObject>
#include <QSet>
{
Q_OBJECT
public:
- enum FrameMarker {
- FrameMarker_SwapBuffers,
- FrameMarker_Flush,
- FrameMarker_Finish,
- FrameMarker_Clear
- };
enum SearchResult {
SearchResult_NotFound,
SearchResult_Found,
Qt::CaseSensitivity cs;
};
- static bool isCallAFrameMarker(const ApiTraceCall *call,
- FrameMarker marker);
public:
ApiTrace();
~ApiTrace();
QString fileName() const;
- FrameMarker frameMarker() const;
-
ApiTraceState defaultState() const;
ApiTraceCall *callWithIndex(int idx) const;
- QList<ApiTraceFrame*> frames() const;
+ const QList<ApiTraceFrame*> & frames() const;
ApiTraceFrame *frameAt(int idx) const;
int numFrames() const;
int numCallsInFrame(int idx) const;
bool hasErrors() const;
+ trace::API api() const;
+
public slots:
void setFileName(const QString &name);
void save();
void findCallIndex(int index);
void setCallError(const ApiTraceError &error);
+ void bindThumbnailsToFrames(const QList<QImage> &thumbnails);
signals:
void loadTrace(const QString &name);
void finishedLoadingTrace();
void invalidated();
void framesInvalidated();
- void changed(ApiTraceCall *call);
+ void changed(ApiTraceEvent *event);
void startedSaving();
void saved();
void findResult(const ApiTrace::SearchRequest &request,
private slots:
void addFrames(const QList<ApiTraceFrame*> &frames);
void slotSaved();
+ void guessedApi(int api);
void finishedParsing();
void loaderFrameLoaded(ApiTraceFrame *frame,
const QVector<ApiTraceCall*> &calls,
private:
int callInFrame(int callIdx) const;
+ bool isFrameLoading(ApiTraceFrame *frame) const;
private:
QString m_fileName;
QString m_tempFileName;
QList<ApiTraceFrame*> m_frames;
-
- FrameMarker m_frameMarker;
+ trace::API m_api;
TraceLoader *m_loader;
QThread *m_loaderThread;
QSet<ApiTraceCall*> m_errors;
QList< QPair<ApiTraceFrame*, ApiTraceError> > m_queuedErrors;
+ QSet<ApiTraceFrame*> m_loadingFrames;
};
#endif