From b6d455a02bd338e9dc0faa09d4d8177ecd8d569a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 10 Apr 2016 15:53:05 +0200 Subject: NOISSUE reorganize and document libraries --- api/logic/tools/BaseExternalTool.h | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 api/logic/tools/BaseExternalTool.h (limited to 'api/logic/tools/BaseExternalTool.h') diff --git a/api/logic/tools/BaseExternalTool.h b/api/logic/tools/BaseExternalTool.h new file mode 100644 index 00000000..fe1b5dc6 --- /dev/null +++ b/api/logic/tools/BaseExternalTool.h @@ -0,0 +1,60 @@ +#pragma once + +#include +#include + +#include "multimc_logic_export.h" + +class BaseInstance; +class SettingsObject; +class QProcess; + +class MULTIMC_LOGIC_EXPORT BaseExternalTool : public QObject +{ + Q_OBJECT +public: + explicit BaseExternalTool(SettingsObjectPtr settings, InstancePtr instance, QObject *parent = 0); + virtual ~BaseExternalTool(); + +protected: + InstancePtr m_instance; + SettingsObjectPtr globalSettings; +}; + +class MULTIMC_LOGIC_EXPORT BaseDetachedTool : public BaseExternalTool +{ + Q_OBJECT +public: + explicit BaseDetachedTool(SettingsObjectPtr settings, InstancePtr instance, QObject *parent = 0); + +public +slots: + void run(); + +protected: + virtual void runImpl() = 0; +}; + +class MULTIMC_LOGIC_EXPORT BaseExternalToolFactory +{ +public: + virtual ~BaseExternalToolFactory(); + + virtual QString name() const = 0; + + virtual void registerSettings(SettingsObjectPtr settings) = 0; + + virtual BaseExternalTool *createTool(InstancePtr instance, QObject *parent = 0) = 0; + + virtual bool check(QString *error) = 0; + virtual bool check(const QString &path, QString *error) = 0; + +protected: + SettingsObjectPtr globalSettings; +}; + +class MULTIMC_LOGIC_EXPORT BaseDetachedToolFactory : public BaseExternalToolFactory +{ +public: + virtual BaseDetachedTool *createDetachedTool(InstancePtr instance, QObject *parent = 0); +}; -- cgit v1.2.3