]> git.cworth.org Git - apitrace/blob - gui/mainwindow.h
Start working on trace editing
[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 ApiTraceEvent;
11 class ApiTraceFilter;
12 class ApiTraceFrame;
13 class ApiTraceModel;
14 class ApiTraceState;
15 class ArgumentsEditor;
16 class ImageViewer;
17 class JumpWidget;
18 class QModelIndex;
19 class QProgressBar;
20 class QUrl;
21 class Retracer;
22 class SearchWidget;
23 class ShadersSourceWidget;
24 class TraceProcess;
25 class VertexDataInterpreter;
26
27 class MainWindow : public QMainWindow
28 {
29     Q_OBJECT
30 public:
31     MainWindow();
32     ~MainWindow();
33
34 public slots:
35     void loadTrace(const QString &fileName);
36
37 private slots:
38     void callItemSelected(const QModelIndex &index);
39     void createTrace();
40     void openTrace();
41     void replayStart();
42     void replayStop();
43     void replayFinished(const QString &output);
44     void replayStateFound(const ApiTraceState &state);
45     void replayError(const QString &msg);
46     void startedLoadingTrace();
47     void finishedLoadingTrace();
48     void lookupState();
49     void showSettings();
50     void openHelp(const QUrl &url);
51     void showSurfacesMenu(const QPoint &pos);
52     void showSelectedSurface();
53     void slotGoTo();
54     void slotJumpTo(int callNum);
55     void createdTrace(const QString &path);
56     void traceError(const QString &msg);
57     void slotSearch();
58     void slotSearchNext(const QString &str, Qt::CaseSensitivity sensitivity);
59     void slotSearchPrev(const QString &str, Qt::CaseSensitivity sensitivity);
60     void fillState(bool nonDefaults);
61
62 private:
63     void initObjects();
64     void initConnections();
65     void newTraceFile(const QString &fileName);
66     void replayTrace(bool dumpState);
67     void fillStateForFrame();
68
69 private:
70     Ui_MainWindow m_ui;
71     ShadersSourceWidget *m_sourcesWidget;
72
73     ApiTrace *m_trace;
74     ApiTraceModel *m_model;
75     ApiTraceFilter *m_proxyModel;
76
77     QProgressBar *m_progressBar;
78
79     QString m_traceFileName;
80
81     ApiTraceEvent *m_selectedEvent;
82
83     ApiTraceEvent *m_stateEvent;
84
85     Retracer *m_retracer;
86
87     VertexDataInterpreter *m_vdataInterpreter;
88
89     ImageViewer *m_imageViewer;
90
91     JumpWidget *m_jumpWidget;
92     SearchWidget *m_searchWidget;
93
94     TraceProcess *m_traceProcess;
95
96     ArgumentsEditor *m_argsEditor;
97 };
98
99
100 #endif