diff options
Diffstat (limited to 'logic/java/JavaChecker.h')
-rw-r--r-- | logic/java/JavaChecker.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/logic/java/JavaChecker.h b/logic/java/JavaChecker.h new file mode 100644 index 00000000..e19895f7 --- /dev/null +++ b/logic/java/JavaChecker.h @@ -0,0 +1,42 @@ +#pragma once +#include <QProcess> +#include <QTimer> +#include <memory> + +class JavaChecker; + + +struct JavaCheckResult +{ + QString path; + QString mojangPlatform; + QString realPlatform; + QString javaVersion; + bool valid = false; + bool is_64bit = false; + int id; +}; + +typedef std::shared_ptr<QProcess> QProcessPtr; +typedef std::shared_ptr<JavaChecker> JavaCheckerPtr; +class JavaChecker : public QObject +{ + Q_OBJECT +public: + explicit JavaChecker(QObject *parent = 0); + void performCheck(); + + QString path; + int id; + +signals: + void checkFinished(JavaCheckResult result); +private: + QProcessPtr process; + QTimer killTimer; +public +slots: + void timeout(); + void finished(int exitcode, QProcess::ExitStatus); + void error(QProcess::ProcessError); +}; |