X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fmainwindow.h;h=66be2e20d88692802fe31c5952947077db237747;hb=ee659c84695e9f94b1f6a5f8be203dc0012ca685;hp=d2c9f28e798cacc0294da9b080bd4c20ef1536e0;hpb=fb23ba1af4bf0f9f86f251226b4bddecfcfc090e;p=apitrace diff --git a/gui/mainwindow.h b/gui/mainwindow.h index d2c9f28..66be2e2 100644 --- a/gui/mainwindow.h +++ b/gui/mainwindow.h @@ -3,21 +3,26 @@ #include "ui_mainwindow.h" +#include "trace_api.hpp" +#include "apitrace.h" + #include #include class ApiTrace; +class ApiTraceCall; class ApiTraceEvent; class ApiTraceFilter; class ApiTraceFrame; class ApiTraceModel; class ApiTraceState; class ArgumentsEditor; -class ImageViewer; class JumpWidget; class QModelIndex; class QProgressBar; +class QTreeWidgetItem; class QUrl; +struct ApiTraceError; class Retracer; class SearchWidget; class ShadersSourceWidget; @@ -32,24 +37,27 @@ public: ~MainWindow(); public slots: - void loadTrace(const QString &fileName); + void loadTrace(const QString &fileName, int callNum = -1); private slots: void callItemSelected(const QModelIndex &index); + void callItemActivated(const QModelIndex &index); void createTrace(); void openTrace(); void replayStart(); void replayStop(); void replayFinished(const QString &output); - void replayStateFound(const ApiTraceState &state); + void replayStateFound(ApiTraceState *state); void replayError(const QString &msg); void startedLoadingTrace(); + void loadProgess(int percent); void finishedLoadingTrace(); void lookupState(); void showSettings(); void openHelp(const QUrl &url); void showSurfacesMenu(const QPoint &pos); void showSelectedSurface(); + void saveSelectedSurface(); void slotGoTo(); void slotJumpTo(int callNum); void createdTrace(const QString &path); @@ -60,6 +68,19 @@ private slots: void fillState(bool nonDefaults); void customContextMenuRequested(QPoint pos); void editCall(); + void slotStartedSaving(); + void slotSaved(); + void slotGoFrameStart(); + void slotGoFrameEnd(); + void slotTraceChanged(ApiTraceCall *call); + 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(); @@ -68,18 +89,29 @@ private: 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; - QString m_traceFileName; - ApiTraceEvent *m_selectedEvent; ApiTraceEvent *m_stateEvent; @@ -88,14 +120,14 @@ private: VertexDataInterpreter *m_vdataInterpreter; - ImageViewer *m_imageViewer; - JumpWidget *m_jumpWidget; SearchWidget *m_searchWidget; TraceProcess *m_traceProcess; ArgumentsEditor *m_argsEditor; + + ApiTraceEvent *m_nonDefaultsLookupEvent; };