X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;ds=sidebyside;f=gui%2Fmainwindow.h;h=59c9ba78010f6bcd0e0ab9a5f2b43d4d19062daf;hb=4fdd5632465440b4f584a74bd4c171aa225a16e5;hp=f3e31811717f4a218f60860df2f5e203534125cd;hpb=8216d8efc428dd336957433d743af5c4ac2d0d05;p=apitrace diff --git a/gui/mainwindow.h b/gui/mainwindow.h index f3e3181..59c9ba7 100644 --- a/gui/mainwindow.h +++ b/gui/mainwindow.h @@ -3,6 +3,9 @@ #include "ui_mainwindow.h" +#include "trace_api.hpp" +#include "apitrace.h" + #include #include @@ -19,7 +22,7 @@ class QModelIndex; class QProgressBar; class QTreeWidgetItem; class QUrl; -struct RetraceError; +struct ApiTraceError; class Retracer; class SearchWidget; class ShadersSourceWidget; @@ -34,7 +37,7 @@ public: ~MainWindow(); public slots: - void loadTrace(const QString &fileName); + void loadTrace(const QString &fileName, int callNum = -1); private slots: void callItemSelected(const QModelIndex &index); @@ -46,6 +49,7 @@ private slots: void replayStateFound(ApiTraceState *state); void replayError(const QString &msg); void startedLoadingTrace(); + void loadProgess(int percent); void finishedLoadingTrace(); void lookupState(); void showSettings(); @@ -68,8 +72,14 @@ private slots: void slotGoFrameStart(); void slotGoFrameEnd(); void slotTraceChanged(ApiTraceCall *call); - void slotRetraceErrors(const QList &errors); + void slotRetraceErrors(const QList &errors); void slotErrorSelected(QTreeWidgetItem *current); + void slotSearchResult(const ApiTrace::SearchRequest &request, + ApiTrace::SearchResult result, + ApiTraceCall *call); + void slotFoundFrameStart(ApiTraceFrame *frame); + void slotFoundFrameEnd(ApiTraceFrame *frame); + void slotJumpToResult(ApiTraceCall *call); private: void initObjects(); @@ -77,16 +87,27 @@ private: void newTraceFile(const QString &fileName); void replayTrace(bool dumpState); void fillStateForFrame(); + + /* there's a difference between selected frame/call and + * current call/frame. the former implies actual selection + * the latter might be just a highlight, e.g. during searching + */ + ApiTraceFrame *selectedFrame() const; + ApiTraceCall *selectedCall() const; ApiTraceFrame *currentFrame() const; ApiTraceCall *currentCall() const; + private: Ui_MainWindow m_ui; ShadersSourceWidget *m_sourcesWidget; + trace::API m_api; + ApiTrace *m_trace; ApiTraceModel *m_model; ApiTraceFilter *m_proxyModel; + int m_initalCallNum; QProgressBar *m_progressBar;