4 #include "ui_mainwindow.h"
6 #include "trace_api.hpp"
21 class ArgumentsEditor;
25 class QTreeWidgetItem;
30 class ShadersSourceWidget;
34 class VertexDataInterpreter;
36 namespace trace { struct Profile; }
38 class MainWindow : public QMainWindow
46 void loadTrace(const QString &fileName, int callNum = -1);
49 void callItemSelected(const QModelIndex &index);
50 void callItemActivated(const QModelIndex &index);
56 void replayFinished(const QString &message);
57 void replayStateFound(ApiTraceState *state);
58 void replayProfileFound(trace::Profile *state);
59 void replayThumbnailsFound(const QList<QImage> &thumbnails);
60 void replayError(const QString &msg);
61 void startedLoadingTrace();
62 void loadProgess(int percent);
63 void finishedLoadingTrace();
65 void showThumbnails();
68 void openHelp(const QUrl &url);
69 void showSurfacesMenu(const QPoint &pos);
70 void showSelectedSurface();
71 void saveSelectedSurface();
73 void slotJumpTo(int callNum);
74 void createdTrace(const QString &path);
75 void traceError(const QString &msg);
76 void createdTrim(const QString &path);
77 void trimError(const QString &msg);
79 void slotSearchNext(const QString &str, Qt::CaseSensitivity sensitivity);
80 void slotSearchPrev(const QString &str, Qt::CaseSensitivity sensitivity);
81 void fillState(bool nonDefaults);
82 void customContextMenuRequested(QPoint pos);
84 void slotStartedSaving();
86 void slotGoFrameStart();
87 void slotGoFrameEnd();
88 void slotTraceChanged(ApiTraceEvent *event);
89 void slotRetraceErrors(const QList<ApiTraceError> &errors);
90 void slotErrorSelected(QTreeWidgetItem *current);
91 void slotSearchResult(const ApiTrace::SearchRequest &request,
92 ApiTrace::SearchResult result,
94 void slotFoundFrameStart(ApiTraceFrame *frame);
95 void slotFoundFrameEnd(ApiTraceFrame *frame);
96 void slotJumpToResult(ApiTraceCall *call);
100 void initConnections();
101 void updateActionsState(bool traceLoaded, bool stopped = true);
102 void newTraceFile(const QString &fileName);
103 void replayTrace(bool dumpState, bool dumpThumbnails);
105 void fillStateForFrame();
107 /* there's a difference between selected frame/call and
108 * current call/frame. the former implies actual selection
109 * the latter might be just a highlight, e.g. during searching
111 ApiTraceFrame *selectedFrame() const;
112 ApiTraceCall *selectedCall() const;
113 ApiTraceFrame *currentFrame() const;
114 ApiTraceCall *currentCall() const;
117 virtual void closeEvent(QCloseEvent * event);
121 ShadersSourceWidget *m_sourcesWidget;
126 ApiTraceModel *m_model;
127 ApiTraceFilter *m_proxyModel;
130 QProgressBar *m_progressBar;
132 ApiTraceEvent *m_selectedEvent;
134 ApiTraceEvent *m_stateEvent;
136 ApiTraceEvent *m_trimEvent;
138 Retracer *m_retracer;
140 VertexDataInterpreter *m_vdataInterpreter;
142 JumpWidget *m_jumpWidget;
143 SearchWidget *m_searchWidget;
145 TraceProcess *m_traceProcess;
147 TrimProcess *m_trimProcess;
149 ArgumentsEditor *m_argsEditor;
151 ApiTraceEvent *m_nonDefaultsLookupEvent;
153 ProfileDialog* m_profileDialog;