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