59 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <QObject>
 | 
						|
#include <BaseInstance.h>
 | 
						|
 | 
						|
class BaseInstance;
 | 
						|
class SettingsObject;
 | 
						|
class QProcess;
 | 
						|
 | 
						|
class BaseExternalTool : public QObject
 | 
						|
{
 | 
						|
    Q_OBJECT
 | 
						|
public:
 | 
						|
    explicit BaseExternalTool(SettingsObjectPtr settings, InstancePtr instance, QObject *parent = 0);
 | 
						|
    virtual ~BaseExternalTool();
 | 
						|
 | 
						|
protected:
 | 
						|
    InstancePtr m_instance;
 | 
						|
    SettingsObjectPtr globalSettings;
 | 
						|
};
 | 
						|
 | 
						|
class 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 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 BaseDetachedToolFactory : public BaseExternalToolFactory
 | 
						|
{
 | 
						|
public:
 | 
						|
    virtual BaseDetachedTool *createDetachedTool(InstancePtr instance, QObject *parent = 0);
 | 
						|
};
 |