diff options
author | Jan Dalheimer <jan@dalheimer.de> | 2014-02-16 12:52:35 +0100 |
---|---|---|
committer | Jan Dalheimer <jan@dalheimer.de> | 2014-02-16 12:52:35 +0100 |
commit | 9c87bc6c4b99f0c93f2b18039208dcf9f3fb4d79 (patch) | |
tree | cac60e920a67584cf90805382db4464c0e23b03e /logic/tools/BaseExternalTool.h | |
parent | f26b7dedad70a46769b4c96122a7615b328a9fbb (diff) | |
download | MultiMC-9c87bc6c4b99f0c93f2b18039208dcf9f3fb4d79.tar MultiMC-9c87bc6c4b99f0c93f2b18039208dcf9f3fb4d79.tar.gz MultiMC-9c87bc6c4b99f0c93f2b18039208dcf9f3fb4d79.tar.lz MultiMC-9c87bc6c4b99f0c93f2b18039208dcf9f3fb4d79.tar.xz MultiMC-9c87bc6c4b99f0c93f2b18039208dcf9f3fb4d79.zip |
Restructure
Diffstat (limited to 'logic/tools/BaseExternalTool.h')
-rw-r--r-- | logic/tools/BaseExternalTool.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/logic/tools/BaseExternalTool.h b/logic/tools/BaseExternalTool.h new file mode 100644 index 00000000..e8965bfd --- /dev/null +++ b/logic/tools/BaseExternalTool.h @@ -0,0 +1,57 @@ +#pragma once + +#include <QObject> + +class BaseInstance; +class SettingsObject; +class MinecraftProcess; +class QProcess; + +class BaseExternalTool : public QObject +{ + Q_OBJECT +public: + explicit BaseExternalTool(BaseInstance *instance, QObject *parent = 0); + virtual ~BaseExternalTool(); + +protected: + BaseInstance *m_instance; + + qint64 pid(QProcess *process); + QString getSave() const; +}; + +class BaseDetachedTool : public BaseExternalTool +{ + Q_OBJECT +public: + explicit BaseDetachedTool(BaseInstance *instance, QObject *parent = 0); + +public +slots: + void run(); + +protected: + virtual void runImpl() = 0; +}; + +class BaseExternalToolFactory +{ +public: + virtual ~BaseExternalToolFactory(); + + virtual QString name() const = 0; + + virtual void registerSettings(SettingsObject *settings) = 0; + + virtual BaseExternalTool *createTool(BaseInstance *instance, QObject *parent = 0) = 0; + + virtual bool check(QString *error) = 0; + virtual bool check(const QString &path, QString *error) = 0; +}; + +class BaseDetachedToolFactory : public BaseExternalToolFactory +{ +public: + virtual BaseDetachedTool *createDetachedTool(BaseInstance *instance, QObject *parent = 0); +}; |