20class PHOSPHORSHELL_EXPORT
Process :
public QObject
25 Q_PROPERTY(QStringList command READ command WRITE setCommand NOTIFY commandChanged)
26 Q_PROPERTY(
bool running READ running WRITE setRunning NOTIFY runningChanged)
27 Q_PROPERTY(
int interval READ interval WRITE setInterval NOTIFY intervalChanged)
33 Q_PROPERTY(QString stdoutText READ stdoutText NOTIFY stdoutTextChanged)
34 Q_PROPERTY(QString stderrText READ stderrText NOTIFY stderrTextChanged)
35 Q_PROPERTY(
int exitCode READ exitCode NOTIFY exitCodeChanged)
39 Q_PROPERTY(QProcess::ExitStatus exitStatus READ exitStatus NOTIFY exitStatusChanged)
42 explicit Process(QObject* parent =
nullptr);
45 [[nodiscard]] QStringList
command()
const;
67 void finished(
int exitCode, QProcess::ExitStatus exitStatus);
70 void onProcessFinished(
int exitCode, QProcess::ExitStatus exitStatus);
71 void onReadyReadStdout();
72 void onReadyReadStderr();
78 QStringList m_command;
79 bool m_running =
false;
90 bool m_stdoutFresh =
true;
91 bool m_stderrFresh =
true;
97 QStringDecoder m_stdoutDecoder{QStringConverter::Utf8};
98 QStringDecoder m_stderrDecoder{QStringConverter::Utf8};
100 QProcess::ExitStatus m_exitStatus = QProcess::NormalExit;
101 QProcess* m_process =
nullptr;
102 QTimer* m_timer =
nullptr;