4 #include "ui_mainwindow.h"
6 #include "trace_api.hpp"
21 class ArgumentsEditor;
25 class QTreeWidgetItem;
30 class ShadersSourceWidget;
33 class VertexDataInterpreter;
35 class MainWindow : public QMainWindow
43 void loadTrace(const QString &fileName, int callNum = -1);
46 void callItemSelected(const QModelIndex &index);
47 void callItemActivated(const QModelIndex &index);
52 void replayFinished(const QString &message);
53 void replayStateFound(ApiTraceState *state);
54 void replayThumbnailsFound(const QList<QImage> &thumbnails);
55 void replayError(const QString &msg);
56 void startedLoadingTrace();
57 void loadProgess(int percent);
58 void finishedLoadingTrace();
60 void showThumbnails();
63 void openHelp(const QUrl &url);
64 void showSurfacesMenu(const QPoint &pos);
65 void showSelectedSurface();
66 void saveSelectedSurface();
68 void slotJumpTo(int callNum);
69 void createdTrace(const QString &path);
70 void traceError(const QString &msg);
71 void createdTrim(const QString &path);
72 void trimError(const QString &msg);
74 void slotSearchNext(const QString &str, Qt::CaseSensitivity sensitivity);
75 void slotSearchPrev(const QString &str, Qt::CaseSensitivity sensitivity);
76 void fillState(bool nonDefaults);
77 void customContextMenuRequested(QPoint pos);
79 void slotStartedSaving();
81 void slotGoFrameStart();
82 void slotGoFrameEnd();
83 void slotTraceChanged(ApiTraceEvent *event);
84 void slotRetraceErrors(const QList<ApiTraceError> &errors);
85 void slotErrorSelected(QTreeWidgetItem *current);
86 void slotSearchResult(const ApiTrace::SearchRequest &request,
87 ApiTrace::SearchResult result,
89 void slotFoundFrameStart(ApiTraceFrame *frame);
90 void slotFoundFrameEnd(ApiTraceFrame *frame);
91 void slotJumpToResult(ApiTraceCall *call);
95 void initConnections();
96 void newTraceFile(const QString &fileName);
97 void replayTrace(bool dumpState, bool dumpThumbnails);
99 void fillStateForFrame();
101 /* there's a difference between selected frame/call and
102 * current call/frame. the former implies actual selection
103 * the latter might be just a highlight, e.g. during searching
105 ApiTraceFrame *selectedFrame() const;
106 ApiTraceCall *selectedCall() const;
107 ApiTraceFrame *currentFrame() const;
108 ApiTraceCall *currentCall() const;
113 ShadersSourceWidget *m_sourcesWidget;
118 ApiTraceModel *m_model;
119 ApiTraceFilter *m_proxyModel;
122 QProgressBar *m_progressBar;
124 ApiTraceEvent *m_selectedEvent;
126 ApiTraceEvent *m_stateEvent;
128 ApiTraceEvent *m_trimEvent;
130 Retracer *m_retracer;
132 VertexDataInterpreter *m_vdataInterpreter;
134 JumpWidget *m_jumpWidget;
135 SearchWidget *m_searchWidget;
137 TraceProcess *m_traceProcess;
139 TrimProcess *m_trimProcess;
141 ArgumentsEditor *m_argsEditor;
143 ApiTraceEvent *m_nonDefaultsLookupEvent;