]> git.cworth.org Git - apitrace/blob - gui/mainwindow.h
Merge branch 'master' into noglut
[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 QLineEdit;
15 class QModelIndex;
16 class QProgressBar;
17 class QUrl;
18 class Retracer;
19 class VertexDataInterpreter;
20
21 namespace QJson {
22     class Parser;
23 }
24
25 class MainWindow : public QMainWindow
26 {
27     Q_OBJECT
28 public:
29     MainWindow();
30     ~MainWindow();
31
32 public slots:
33     void loadTrace(const QString &fileName);
34
35 private slots:
36     void callItemSelected(const QModelIndex &index);
37     void openTrace();
38     void filterTrace();
39     void replayStart();
40     void replayStop();
41     void replayFinished(const QByteArray &output);
42     void replayError(const QString &msg);
43     void startedLoadingTrace();
44     void finishedLoadingTrace();
45     void lookupState();
46     void showSettings();
47     void openHelp(const QUrl &url);
48
49 private:
50     void newTraceFile(const QString &fileName);
51     void replayTrace(bool dumpState);
52     void parseState(const QVariantMap &params);
53     void fillStateForFrame();
54
55 private:
56     Ui_MainWindow m_ui;
57     ApiTrace *m_trace;
58     ApiTraceModel *m_model;
59     ApiTraceFilter *m_proxyModel;
60     QLineEdit *m_filterEdit;
61
62     QProgressBar *m_progressBar;
63
64     QString m_traceFileName;
65
66     ApiTraceEvent *m_selectedEvent;
67
68     ApiTraceEvent *m_stateEvent;
69
70     QJson::Parser *m_jsonParser;
71
72     Retracer *m_retracer;
73
74     VertexDataInterpreter *m_vdataInterpreter;
75 };
76
77
78 #endif