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