玉兔远程控制 0.1.0-bate11
载入中...
搜索中...
未找到
Plugin.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QIcon>
6#include <QTranslator>
7#include "Operate.h"
8
14class PLUGIN_EXPORT CPlugin : public QObject
15{
16 Q_OBJECT
17
18public:
19 explicit CPlugin(QObject *parent = nullptr);
20 virtual ~CPlugin();
21
22 enum class TYPE{
23 RemoteDesktop,
24 Terminal,
25 Client,
26 Server,
27 FileTransfers,
28 NetworkTools,
29 Tools,
30 Custom = 1000
31 };
32 Q_ENUM(TYPE)
33 [[nodiscard]] virtual const TYPE Type() const = 0;
34 [[nodiscard]] virtual const QString TypeName(const TYPE t) const;
37 [[nodiscard]] virtual const QString Id() const;
40 [[nodiscard]] virtual const QString Protocol() const = 0;
45 [[nodiscard]] virtual const QString Name() const = 0;
48 [[nodiscard]] virtual const QString DisplayName() const;
51 [[nodiscard]] virtual const QString Description() const = 0;
53 [[nodiscard]] virtual const QString Version() const = 0;
54 [[nodiscard]] virtual const QIcon Icon() const = 0;
64 [[nodiscard]] virtual const QString Details() const = 0;
65
66Q_SIGNALS:
81 void sigNewOperate(COperate* pOperate, bool bOpenSettingsDialog);
82
83protected:
105 Q_INVOKABLE virtual COperate* CreateOperate(
106 const QString& szId, CParameterPlugin* para);
107 [[nodiscard]] virtual COperate* OnCreateOperate(const QString& szId) = 0;
111 Q_INVOKABLE virtual int DeleteOperate(COperate* p);
132 Q_INVOKABLE virtual QWidget* GetSettingsWidget(QWidget *parent);
133
134private:
135 QSharedPointer<QTranslator> m_Translator;
147 Q_INVOKABLE int InitTranslator();
148};
149
150QT_BEGIN_NAMESPACE
151#define CPlugin_iid "KangLinStudio.Rabbit.RemoteControl.CPlugin"
152Q_DECLARE_INTERFACE(CPlugin, CPlugin_iid)
153QT_END_NAMESPACE
操作接口。
插件的全局参数。
插件接口
virtual const QString Version() const =0
Version
virtual Q_INVOKABLE QWidget * GetSettingsWidget(QWidget *parent)
得到设置此插件全局参数的窗口
void sigNewOperate(COperate *pOperate, bool bOpenSettingsDialog)
当在插件中新建操作时,触发此信号
virtual const QString Details() const =0
显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述等
virtual Q_INVOKABLE int DeleteOperate(COperate *p)
Delete COperate
Q_INVOKABLE int InitTranslator()
初始化翻译资源,仅由 CManager 调用。 因为它调用了 Name() ,所以不能在此类的构造函数中直接调用。
virtual const QString Name() const =0
插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
virtual const QString DisplayName() const
在界面上显示的名称
virtual const QString Protocol() const =0
协议
virtual const QString Id() const
标识。默认: Type() + ":" + Protocol() + ":" + Name()
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
新建 COperate 实例。仅由 CManager 调用
virtual const QString Description() const =0
描述