]> git.cworth.org Git - apitrace/blob - gui/mainwindow.h
Implement state viewing for the current frame.
[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 ApiTraceFrame;
11 class ApiTraceModel;
12 class ApiTraceFilter;
13 class QLineEdit;
14 class QModelIndex;
15 class QProcess;
16 class QProgressBar;
17
18 namespace QJson {
19     class Parser;
20 }
21
22 class MainWindow : public QMainWindow
23 {
24     Q_OBJECT
25 public:
26     MainWindow();
27     ~MainWindow();
28
29 public slots:
30     void loadTrace(const QString &fileName);
31
32 private slots:
33     void callItemSelected(const QModelIndex &index);
34     void openTrace();
35     void filterTrace();
36     void replayStart();
37     void replayStop();
38     void replayFinished();
39     void replayError(QProcess::ProcessError err);
40     void startedLoadingTrace();
41     void finishedLoadingTrace();
42     void lookupState();
43
44 private:
45     void newTraceFile(const QString &fileName);
46     void replayTrace(bool dumpState);
47     void parseState(const QVariantMap &params);
48     void fillStateForFrame();
49
50 private:
51     Ui_MainWindow m_ui;
52     ApiTrace *m_trace;
53     ApiTraceModel *m_model;
54     ApiTraceFilter *m_proxyModel;
55     QLineEdit *m_filterEdit;
56
57     QProcess *m_replayProcess;
58
59     QProgressBar *m_progressBar;
60
61     QString m_traceFileName;
62
63     ApiTraceFrame *m_currentFrame;
64
65     ApiTraceFrame *m_stateFrame;
66     bool m_findingState;
67
68     QJson::Parser *m_jsonParser;
69 };
70
71
72 #endif