blob: 9d0c15e49b851d4f1306cd13fd8953f806a644e4 [file] [log] [blame]
Zack Rusin601e8372011-03-24 22:23:21 -04001#ifndef MAINWINDOW_H
2#define MAINWINDOW_H
3
4#include "ui_mainwindow.h"
5
Zack Rusin96130ac2011-03-27 01:48:36 -04006#include <QMainWindow>
Zack Rusin27cb2c42011-03-27 23:53:36 -04007#include <QProcess>
Zack Rusin96130ac2011-03-27 01:48:36 -04008
Zack Rusinf6667d12011-03-30 11:03:37 -04009class ApiTrace;
Zack Rusin581e3ff2011-03-31 23:58:07 -040010class ApiTraceEvent;
11class ApiTraceFilter;
Zack Rusin2caa06d2011-03-30 18:30:20 -040012class ApiTraceFrame;
Zack Rusin601e8372011-03-24 22:23:21 -040013class ApiTraceModel;
Zack Rusinea295452011-03-27 02:22:13 -040014class QLineEdit;
Zack Rusin96130ac2011-03-27 01:48:36 -040015class QModelIndex;
Zack Rusinde4ea412011-03-30 11:30:08 -040016class QProgressBar;
Zack Rusin3acde362011-04-06 01:11:55 -040017class Retracer;
Zack Rusin601e8372011-03-24 22:23:21 -040018
Zack Rusin11f7e632011-03-30 22:47:51 -040019namespace QJson {
20 class Parser;
21}
22
Zack Rusin601e8372011-03-24 22:23:21 -040023class MainWindow : public QMainWindow
24{
25 Q_OBJECT
26public:
27 MainWindow();
Zack Rusin11f7e632011-03-30 22:47:51 -040028 ~MainWindow();
Zack Rusin601e8372011-03-24 22:23:21 -040029
30public slots:
31 void loadTrace(const QString &fileName);
32
33private slots:
Zack Rusin96130ac2011-03-27 01:48:36 -040034 void callItemSelected(const QModelIndex &index);
Zack Rusin601e8372011-03-24 22:23:21 -040035 void openTrace();
Zack Rusinea295452011-03-27 02:22:13 -040036 void filterTrace();
Zack Rusin27cb2c42011-03-27 23:53:36 -040037 void replayStart();
38 void replayStop();
Zack Rusin3acde362011-04-06 01:11:55 -040039 void replayFinished(const QByteArray &output);
40 void replayError(const QString &msg);
Zack Rusinde4ea412011-03-30 11:30:08 -040041 void startedLoadingTrace();
42 void finishedLoadingTrace();
Zack Rusin2caa06d2011-03-30 18:30:20 -040043 void lookupState();
Zack Rusine1745572011-04-03 14:30:19 -040044 void showSettings();
Zack Rusin27cb2c42011-03-27 23:53:36 -040045
46private:
47 void newTraceFile(const QString &fileName);
Zack Rusin2caa06d2011-03-30 18:30:20 -040048 void replayTrace(bool dumpState);
Zack Rusin11f7e632011-03-30 22:47:51 -040049 void parseState(const QVariantMap &params);
50 void fillStateForFrame();
Zack Rusin601e8372011-03-24 22:23:21 -040051
52private:
53 Ui_MainWindow m_ui;
Zack Rusinf6667d12011-03-30 11:03:37 -040054 ApiTrace *m_trace;
Zack Rusin601e8372011-03-24 22:23:21 -040055 ApiTraceModel *m_model;
Zack Rusin91065372011-03-26 01:54:10 -040056 ApiTraceFilter *m_proxyModel;
Zack Rusinea295452011-03-27 02:22:13 -040057 QLineEdit *m_filterEdit;
Zack Rusin27cb2c42011-03-27 23:53:36 -040058
Zack Rusinde4ea412011-03-30 11:30:08 -040059 QProgressBar *m_progressBar;
60
Zack Rusin27cb2c42011-03-27 23:53:36 -040061 QString m_traceFileName;
Zack Rusin2caa06d2011-03-30 18:30:20 -040062
Zack Rusin581e3ff2011-03-31 23:58:07 -040063 ApiTraceEvent *m_selectedEvent;
Zack Rusin11f7e632011-03-30 22:47:51 -040064
Zack Rusin581e3ff2011-03-31 23:58:07 -040065 ApiTraceEvent *m_stateEvent;
Zack Rusin11f7e632011-03-30 22:47:51 -040066
67 QJson::Parser *m_jsonParser;
Zack Rusin3acde362011-04-06 01:11:55 -040068
69 Retracer *m_retracer;
Zack Rusin601e8372011-03-24 22:23:21 -040070};
71
72
73#endif