/**
* Outputs to the console terminal the line buffered standard output and
- * error of a spawned process when there is a controlling terminal and
+ * error of a spawned process when there is a controlling terminal and
* stdout/stderr have not been redirected.
*/
class SystemcallPrivate : public QObject
Starting,
Running,
Finished,
- Error
+ Error,
+ Killed
};
State state;
bool waitWhile(State, bool processEvents, int timeout = -1);
- void startProcess(QString const & cmd, std::string const & path, bool detach);
-
+ void startProcess(QString const & cmd, std::string const & path,
+ std::string const & lpath, bool detach);
+
int exitCode();
QString errorMessage() const;
QString exitStatusMessage() const;
QProcess* releaseProcess();
-
+
static void killProcess(QProcess * p);
+ // when true, kill any running script ASAP
+ static bool kill_script;
+
public Q_SLOTS:
void stdOut();
void waitAndProcessEvents();
void processEvents();
- void killProcess();
+ void killProcess();
+ /// returns false if we killed the process
+ /// actually returns Systemcall::ReturnValue
+ bool waitAndCheck();
};
} // namespace support