]> git.cworth.org Git - apitrace/blob - gui/mainwindow.h
Merge remote-tracking branch 'origin/master' into on-demand-loading
[apitrace] / gui / mainwindow.h
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include "ui_mainwindow.h"
5
6 #include <QMainWindow>
7 #include <QProcess>
8
9 class ApiTrace;
10 class ApiTraceCall;
11 class ApiTraceEvent;
12 class ApiTraceFilter;
13 class ApiTraceFrame;
14 class ApiTraceModel;
15 class ApiTraceState;
16 class ArgumentsEditor;
17 class JumpWidget;
18 class QModelIndex;
19 class QProgressBar;
20 class QTreeWidgetItem;
21 class QUrl;
22 struct RetraceError;
23 class Retracer;
24 class SearchWidget;
25 class ShadersSourceWidget;
26 class TraceProcess;
27 class VertexDataInterpreter;
28
29 class MainWindow : public QMainWindow
30 {
31     Q_OBJECT
32 public:
33     MainWindow();
34     ~MainWindow();
35
36 public slots:
37     void loadTrace(const QString &fileName);
38
39 private slots:
40     void callItemSelected(const QModelIndex &index);
41     void createTrace();
42     void openTrace();
43     void replayStart();
44     void replayStop();
45     void replayFinished(const QString &output);
46     void replayStateFound(ApiTraceState *state);
47     void replayError(const QString &msg);
48     void startedLoadingTrace();
49     void finishedLoadingTrace();
50     void lookupState();
51     void showSettings();
52     void openHelp(const QUrl &url);
53     void showSurfacesMenu(const QPoint &pos);
54     void showSelectedSurface();
55     void saveSelectedSurface();
56     void slotGoTo();
57     void slotJumpTo(int callNum);
58     void createdTrace(const QString &path);
59     void traceError(const QString &msg);
60     void slotSearch();
61     void slotSearchNext(const QString &str, Qt::CaseSensitivity sensitivity);
62     void slotSearchPrev(const QString &str, Qt::CaseSensitivity sensitivity);
63     void fillState(bool nonDefaults);
64     void customContextMenuRequested(QPoint pos);
65     void editCall();
66     void slotStartedSaving();
67     void slotSaved();
68     void slotGoFrameStart();
69     void slotGoFrameEnd();
70     void slotTraceChanged(ApiTraceCall *call);
71     void slotRetraceErrors(const QList<RetraceError> &errors);
72     void slotErrorSelected(QTreeWidgetItem *current);
73
74 private:
75     void initObjects();
76     void initConnections();
77     void newTraceFile(const QString &fileName);
78     void replayTrace(bool dumpState);
79     void fillStateForFrame();
80     ApiTraceFrame *currentFrame() const;
81     ApiTraceCall *currentCall() const;
82
83 private:
84     Ui_MainWindow m_ui;
85     ShadersSourceWidget *m_sourcesWidget;
86
87     ApiTrace *m_trace;
88     ApiTraceModel *m_model;
89     ApiTraceFilter *m_proxyModel;
90
91     QProgressBar *m_progressBar;
92
93     ApiTraceEvent *m_selectedEvent;
94
95     ApiTraceEvent *m_stateEvent;
96
97     Retracer *m_retracer;
98
99     VertexDataInterpreter *m_vdataInterpreter;
100
101     JumpWidget *m_jumpWidget;
102     SearchWidget *m_searchWidget;
103
104     TraceProcess *m_traceProcess;
105
106     ArgumentsEditor *m_argsEditor;
107
108     ApiTraceEvent *m_nonDefaultsLookupEvent;
109 };
110
111
112 #endif