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);
48 void setRemoteTarget(const QString &host);
51 void callItemSelected(const QModelIndex &index);
52 void callItemActivated(const QModelIndex &index);
58 void replayFinished(const QString &message);
59 void replayStateFound(ApiTraceState *state);
60 void replayProfileFound(trace::Profile *state);
61 void replayThumbnailsFound(const QList<QImage> &thumbnails);
62 void replayError(const QString &msg);
63 void startedLoadingTrace();
64 void loadProgess(int percent);
65 void finishedLoadingTrace();
67 void showThumbnails();
70 void openHelp(const QUrl &url);
71 void showSurfacesMenu(const QPoint &pos);
72 void showSelectedSurface();
73 void saveSelectedSurface();
75 void slotJumpTo(int callNum);
76 void createdTrace(const QString &path);
77 void traceError(const QString &msg);
78 void createdTrim(const QString &path);
79 void trimError(const QString &msg);
81 void slotSearchNext(const QString &str, Qt::CaseSensitivity sensitivity);
82 void slotSearchPrev(const QString &str, Qt::CaseSensitivity sensitivity);
83 void fillState(bool nonDefaults);
84 void customContextMenuRequested(QPoint pos);
86 void slotStartedSaving();
88 void slotGoFrameStart();
89 void slotGoFrameEnd();
90 void slotTraceChanged(ApiTraceEvent *event);
91 void slotRetraceErrors(const QList<ApiTraceError> &errors);
92 void slotErrorSelected(QTreeWidgetItem *current);
93 void slotSearchResult(const ApiTrace::SearchRequest &request,
94 ApiTrace::SearchResult result,
96 void slotFoundFrameStart(ApiTraceFrame *frame);
97 void slotFoundFrameEnd(ApiTraceFrame *frame);
98 void slotJumpToResult(ApiTraceCall *call);
102 void initConnections();
103 void updateActionsState(bool traceLoaded, bool stopped = true);
104 void newTraceFile(const QString &fileName);
105 void replayTrace(bool dumpState, bool dumpThumbnails);
107 void fillStateForFrame();
109 /* there's a difference between selected frame/call and
110 * current call/frame. the former implies actual selection
111 * the latter might be just a highlight, e.g. during searching
113 ApiTraceFrame *selectedFrame() const;
114 ApiTraceCall *selectedCall() const;
115 ApiTraceFrame *currentFrame() const;
116 ApiTraceCall *currentCall() const;
119 virtual void closeEvent(QCloseEvent * event);
123 ShadersSourceWidget *m_sourcesWidget;
128 ApiTraceModel *m_model;
129 ApiTraceFilter *m_proxyModel;
132 QProgressBar *m_progressBar;
134 ApiTraceEvent *m_selectedEvent;
136 ApiTraceEvent *m_stateEvent;
138 ApiTraceEvent *m_trimEvent;
140 Retracer *m_retracer;
142 VertexDataInterpreter *m_vdataInterpreter;
144 JumpWidget *m_jumpWidget;
145 SearchWidget *m_searchWidget;
147 TraceProcess *m_traceProcess;
149 TrimProcess *m_trimProcess;
151 ArgumentsEditor *m_argsEditor;
153 ApiTraceEvent *m_nonDefaultsLookupEvent;
155 ProfileDialog* m_profileDialog;