玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Src
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
14
class
PLUGIN_EXPORT CPlugin :
public
QObject
15
{
16
Q_OBJECT
17
18
public
:
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
66
Q_SIGNALS:
81
void
sigNewOperate
(
COperate
* pOperate,
bool
bOpenSettingsDialog);
82
83
protected
:
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
134
private
:
135
QSharedPointer<QTranslator> m_Translator;
147
Q_INVOKABLE
int
InitTranslator
();
148
};
149
150
QT_BEGIN_NAMESPACE
151
#define CPlugin_iid "KangLinStudio.Rabbit.RemoteControl.CPlugin"
152
Q_DECLARE_INTERFACE(
CPlugin
, CPlugin_iid)
153
QT_END_NAMESPACE
COperate
操作接口。
定义
Operate.h:51
CParameterPlugin
插件的全局参数。
定义
ParameterPlugin.h:36
CPlugin
插件接口
定义
Plugin.h:15
CPlugin::Version
virtual const QString Version() const =0
Version
CPlugin::GetSettingsWidget
virtual Q_INVOKABLE QWidget * GetSettingsWidget(QWidget *parent)
得到设置此插件全局参数的窗口
定义
Plugin.cpp:146
CPlugin::sigNewOperate
void sigNewOperate(COperate *pOperate, bool bOpenSettingsDialog)
当在插件中新建操作时,触发此信号
CPlugin::Details
virtual const QString Details() const =0
显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述等
CPlugin::DeleteOperate
virtual Q_INVOKABLE int DeleteOperate(COperate *p)
Delete COperate
定义
Plugin.cpp:124
CPlugin::InitTranslator
Q_INVOKABLE int InitTranslator()
初始化翻译资源,仅由 CManager 调用。 因为它调用了 Name() ,所以不能在此类的构造函数中直接调用。
定义
Plugin.cpp:24
CPlugin::Name
virtual const QString Name() const =0
插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
CPlugin::DisplayName
virtual const QString DisplayName() const
在界面上显示的名称
定义
Plugin.cpp:76
CPlugin::Protocol
virtual const QString Protocol() const =0
协议
CPlugin::Id
virtual const QString Id() const
标识。默认: Type() + ":" + Protocol() + ":" + Name()
定义
Plugin.cpp:71
CPlugin::CreateOperate
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
新建 COperate 实例。仅由 CManager 调用
定义
Plugin.cpp:82
CPlugin::Description
virtual const QString Description() const =0
描述
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力