blob: 0ae448524e28a7ab7c4e35aea024200e13c85337 [file] [log] [blame]
Jose Fonseca9653f952015-05-19 16:32:43 +01001#pragma once
Zack Rusinca164112011-04-11 02:23:09 -04002
3#include <QObject>
4#include <QProcess>
5
6class TraceProcess : public QObject
7{
8 Q_OBJECT
9public:
10 TraceProcess(QObject *parent=0);
11 ~TraceProcess();
12
13 bool canTrace() const;
14
José Fonseca2cdc9402012-02-28 17:12:24 +000015 void setApi(const QString &str);
Piotr Podsiadłye8ca1802016-09-13 09:04:01 +020016 void setExecutablePathAndWorkingDir(const QString &execPath, const QString &workingDir);
Zack Rusinca164112011-04-11 02:23:09 -040017 QString executablePath() const;
Piotr Podsiadłye8ca1802016-09-13 09:04:01 +020018 QString workingDirectory() const;
Zack Rusinca164112011-04-11 02:23:09 -040019
20 void setArguments(const QStringList &args);
21 QStringList arguments() const;
22
23public slots:
24 void start();
25
26signals:
27 void tracedFile(const QString &tracePath);
28 void error(const QString &msg);
29
30private slots:
31 void traceFinished();
32 void traceError(QProcess::ProcessError err);
33
34private:
José Fonseca2cdc9402012-02-28 17:12:24 +000035 QString m_api;
Zack Rusinca164112011-04-11 02:23:09 -040036 QString m_execPath;
Piotr Podsiadłye8ca1802016-09-13 09:04:01 +020037 QString m_workingDir;
Zack Rusinca164112011-04-11 02:23:09 -040038 QStringList m_args;
39 QString m_tracePath;
40 QProcess *m_process;
41
42 bool m_canTrace;
43};