Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 1 | #ifndef MAINWINDOW_H |
2 | #define MAINWINDOW_H | ||||
3 | |||||
4 | #include "ui_mainwindow.h" | ||||
5 | |||||
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame] | 6 | #include <QMainWindow> |
Zack Rusin | 27cb2c4 | 2011-03-27 23:53:36 -0400 | [diff] [blame] | 7 | #include <QProcess> |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame] | 8 | |
Zack Rusin | f6667d1 | 2011-03-30 11:03:37 -0400 | [diff] [blame] | 9 | class ApiTrace; |
Zack Rusin | 2caa06d | 2011-03-30 18:30:20 -0400 | [diff] [blame] | 10 | class ApiTraceFrame; |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 11 | class ApiTraceModel; |
Zack Rusin | 9106537 | 2011-03-26 01:54:10 -0400 | [diff] [blame] | 12 | class ApiTraceFilter; |
Zack Rusin | ea29545 | 2011-03-27 02:22:13 -0400 | [diff] [blame] | 13 | class QLineEdit; |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame] | 14 | class QModelIndex; |
Zack Rusin | 27cb2c4 | 2011-03-27 23:53:36 -0400 | [diff] [blame] | 15 | class QProcess; |
Zack Rusin | de4ea41 | 2011-03-30 11:30:08 -0400 | [diff] [blame] | 16 | class QProgressBar; |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 17 | |
Zack Rusin | 11f7e63 | 2011-03-30 22:47:51 -0400 | [diff] [blame^] | 18 | namespace QJson { |
19 | class Parser; | ||||
20 | } | ||||
21 | |||||
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 22 | class MainWindow : public QMainWindow |
23 | { | ||||
24 | Q_OBJECT | ||||
25 | public: | ||||
26 | MainWindow(); | ||||
Zack Rusin | 11f7e63 | 2011-03-30 22:47:51 -0400 | [diff] [blame^] | 27 | ~MainWindow(); |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 28 | |
29 | public slots: | ||||
30 | void loadTrace(const QString &fileName); | ||||
31 | |||||
32 | private slots: | ||||
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame] | 33 | void callItemSelected(const QModelIndex &index); |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 34 | void openTrace(); |
Zack Rusin | ea29545 | 2011-03-27 02:22:13 -0400 | [diff] [blame] | 35 | void filterTrace(); |
Zack Rusin | 27cb2c4 | 2011-03-27 23:53:36 -0400 | [diff] [blame] | 36 | void replayStart(); |
37 | void replayStop(); | ||||
38 | void replayFinished(); | ||||
39 | void replayError(QProcess::ProcessError err); | ||||
Zack Rusin | de4ea41 | 2011-03-30 11:30:08 -0400 | [diff] [blame] | 40 | void startedLoadingTrace(); |
41 | void finishedLoadingTrace(); | ||||
Zack Rusin | 2caa06d | 2011-03-30 18:30:20 -0400 | [diff] [blame] | 42 | void lookupState(); |
Zack Rusin | 27cb2c4 | 2011-03-27 23:53:36 -0400 | [diff] [blame] | 43 | |
44 | private: | ||||
45 | void newTraceFile(const QString &fileName); | ||||
Zack Rusin | 2caa06d | 2011-03-30 18:30:20 -0400 | [diff] [blame] | 46 | void replayTrace(bool dumpState); |
Zack Rusin | 11f7e63 | 2011-03-30 22:47:51 -0400 | [diff] [blame^] | 47 | void parseState(const QVariantMap ¶ms); |
48 | void fillStateForFrame(); | ||||
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 49 | |
50 | private: | ||||
51 | Ui_MainWindow m_ui; | ||||
Zack Rusin | f6667d1 | 2011-03-30 11:03:37 -0400 | [diff] [blame] | 52 | ApiTrace *m_trace; |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 53 | ApiTraceModel *m_model; |
Zack Rusin | 9106537 | 2011-03-26 01:54:10 -0400 | [diff] [blame] | 54 | ApiTraceFilter *m_proxyModel; |
Zack Rusin | ea29545 | 2011-03-27 02:22:13 -0400 | [diff] [blame] | 55 | QLineEdit *m_filterEdit; |
Zack Rusin | 27cb2c4 | 2011-03-27 23:53:36 -0400 | [diff] [blame] | 56 | |
57 | QProcess *m_replayProcess; | ||||
58 | |||||
Zack Rusin | de4ea41 | 2011-03-30 11:30:08 -0400 | [diff] [blame] | 59 | QProgressBar *m_progressBar; |
60 | |||||
Zack Rusin | 27cb2c4 | 2011-03-27 23:53:36 -0400 | [diff] [blame] | 61 | QString m_traceFileName; |
Zack Rusin | 2caa06d | 2011-03-30 18:30:20 -0400 | [diff] [blame] | 62 | |
63 | ApiTraceFrame *m_currentFrame; | ||||
Zack Rusin | 11f7e63 | 2011-03-30 22:47:51 -0400 | [diff] [blame^] | 64 | |
65 | ApiTraceFrame *m_stateFrame; | ||||
Zack Rusin | 2caa06d | 2011-03-30 18:30:20 -0400 | [diff] [blame] | 66 | bool m_findingState; |
Zack Rusin | 11f7e63 | 2011-03-30 22:47:51 -0400 | [diff] [blame^] | 67 | |
68 | QJson::Parser *m_jsonParser; | ||||
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 69 | }; |
70 | |||||
71 | |||||
72 | #endif |