blob: d8af2e9d4f2452a1b82a628ea7ffdd02ad0b8402 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#pragma once
#include "squishconstants.h"
#include <utils/qtcprocess.h>
#include <QObject>
namespace Squish::Internal {
class SquishProcessBase : public QObject
{
Q_OBJECT
public:
explicit SquishProcessBase(QObject *parent = nullptr);
~SquishProcessBase() = default;
SquishProcessState processState() const { return m_state; }
bool isRunning() const { return m_process.isRunning(); }
Utils::ProcessResult result() const { return m_process.result(); }
QProcess::ProcessError error() const { return m_process.error(); }
QProcess::ProcessState state() const { return m_process.state(); }
void closeProcess() { m_process.close(); }
signals:
void logOutputReceived(const QString &output);
void stateChanged(SquishProcessState state);
protected:
void setState(SquishProcessState state);
virtual void start(const Utils::CommandLine &cmdline, const Utils::Environment &env);
virtual void onDone() {}
virtual void onErrorOutput() {}
Utils::Process m_process;
private:
SquishProcessState m_state = Idle;
};
} // namespace Squish::Internal
|