玉兔远程控制 0.1.0-bate6
载入中...
搜索中...
未找到
Public 类型 | 信号 | Public 成员函数 | Protected 成员函数 | Private 成员函数 | Private 属性 | 所有成员列表
CPlugin类 参考abstract

插件接口 更多...

#include <Plugin.h>

类 CPlugin 继承关系图:
Inheritance graph
[图例]
CPlugin 的协作图:
Collaboration graph
[图例]

Public 类型

enum class  TYPE {
  RemoteDesktop , Terminal , Client , Service ,
  FileTransfers , NetworkTools , Tools , Custom = 1000
}
 

信号

void sigNewOperate (COperate *pOperate, bool bOpenSettingsDialog)
 当在插件中新建操作时,触发此信号
 

Public 成员函数

 CPlugin (QObject *parent=nullptr)
 
virtual const TYPE Type () const =0
 
virtual const QString TypeName (const TYPE t) const
 
virtual const QString Id () const
 标识。默认: Type() + ":" + Protocol() + ":" + Name()
 
virtual const QString Protocol () const =0
 协议
 
virtual const QString Name () const =0
 插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
 
virtual const QString DisplayName () const
 在界面上显示的名称
 
virtual const QString Description () const =0
 描述
 
virtual const QString Version () const =0
 Version
 
virtual const QIcon Icon () const =0
 
virtual const QString Details () const
 显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述
 

Protected 成员函数

virtual Q_INVOKABLE COperateCreateOperate (const QString &szId, CParameterPlugin *para)
 新建 COperate 实例。仅由 CManager 调用
 
virtual COperateOnCreateOperate (const QString &szId)=0
 
virtual Q_INVOKABLE int DeleteOperate (COperate *p)
 Delete COperate
 
virtual Q_INVOKABLE QWidget * GetSettingsWidget (QWidget *parent)
 得到设置此插件全局参数的窗口
 

Private 成员函数

Q_INVOKABLE int InitTranslator ()
 初始化翻译资源,仅由 CManager 调用。 因为它调用了 Name() ,所以不能在此类的构造函数中直接调用。
 

Private 属性

QSharedPointer< QTranslator > m_Translator
 

详细描述

插件接口

在文件 Plugin.h14 行定义.

成员枚举类型说明

◆ TYPE

enum class CPlugin::TYPE
strong

在文件 Plugin.h22 行定义.

构造及析构函数说明

◆ ~CPlugin()

CPlugin::~CPlugin ( )
virtual

在文件 Plugin.cpp16 行定义.

成员函数说明

◆ CreateOperate()

COperate * CPlugin::CreateOperate ( const QString &  szId,
CParameterPlugin para 
)
protectedvirtual

新建 COperate 实例。仅由 CManager 调用

[CPlugin CreateOperate]

COperate* CManager::CreateOperate(const QString& id)
{
COperate* pOperate = nullptr;
auto it = m_Plugins.find(id);
if(m_Plugins.end() != it)
{
bool bRet = 0;
qDebug(log) << "CreateOperate id:" << id;
auto plugin = it.value();
if(plugin) {
//p = plugin->CreateOperate(id);
bRet = QMetaObject::invokeMethod(
plugin,
"CreateOperate",
Qt::DirectConnection,
Q_RETURN_ARG(COperate*, pOperate),
Q_ARG(QString, id),
Q_ARG(CParameterPlugin*, m_pParameterPlugin));
if(!bRet) {
qCritical(log) << "Create COperate fail.";
return nullptr;
}
}
}
return pOperate;
}
virtual COperate * CreateOperate(const QString &id)
新建 COperate 指针,所有者是调用者。 当不在使用时,调用者必调用 DeteleOperate() 须释放指针。 调用者必须连接信号 COperate::sigFinished 。 释放指针 (...
Definition Manager.cpp:340
操作接口。
Definition Operate.h:51
插件的全局参数。
返回
返回 COperate 指针, 它的所有者是调用者。
注解
此函数新建一个对象指针, 调用者必须负责在用完后释放指针
参数
szId连接 ID
参见
CManager::CreateOperate CManager::LoadOperate

CPluginWebBrowser , 以及 CPluginWakeOnLan 重载.

在文件 Plugin.cpp87 行定义.

◆ DeleteOperate()

int CPlugin::DeleteOperate ( COperate p)
protectedvirtual

Delete COperate

[CPlugin CreateOperate]

CPluginWakeOnLan 重载.

在文件 Plugin.cpp129 行定义.

◆ Description()

virtual const QString CPlugin::Description ( ) const
pure virtual

◆ Details()

const QString CPlugin::Details ( ) const
virtual

显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述

参见
CPluginFreeRDP::Details()

CPluginFileTransfer, CPluginFreeRDP, CPluginFtpServer, CPluginLibVNCServer, CPluginPlayer, CPluginLibSSH, CPluginTerminal, CPluginTigerVnc, CPluginWakeOnLan , 以及 CPluginWebBrowser 重载.

在文件 Plugin.cpp81 行定义.

◆ DisplayName()

const QString CPlugin::DisplayName ( ) const
virtual

◆ GetSettingsWidget()

QWidget * CPlugin::GetSettingsWidget ( QWidget *  parent)
protectedvirtual

得到设置此插件全局参数的窗口

返回
设置参数窗口。如果不需要,则返回 nullptr。此窗口的所有者为调用者。
注解
此窗口必须从 CParameterUI 派生。 用法示例:
foreach(auto plugin, m_Plugins) {
if(!plugin) continue;
QWidget* pSettings = nullptr;
bool bRet = QMetaObject::invokeMethod(
plugin,
"GetSettingsWidget",
Qt::DirectConnection,
Q_RETURN_ARG(QWidget*, pSettings),
Q_ARG(QWidget*, parent));
if(!bRet) {
qCritical(log) << "Call CPlugin::GetSettingsWidget() fail.";
continue;
}
if(!pSettings) continue;
lstWidget.push_back(pSettings);
}
参见
CManager::GetSettingsWidgets

CPluginWebBrowser 重载.

在文件 Plugin.cpp151 行定义.

◆ Id()

const QString CPlugin::Id ( ) const
virtual

标识。默认: Type() + ":" + Protocol() + ":" + Name()

在文件 Plugin.cpp71 行定义.

◆ InitTranslator()

int CPlugin::InitTranslator ( )
private

初始化翻译资源,仅由 CManager 调用。 因为它调用了 Name() ,所以不能在此类的构造函数中直接调用。

在文件 Plugin.cpp24 行定义.

◆ Name()

virtual const QString CPlugin::Name ( ) const
pure virtual

插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。

CPluginFileTransfer, CPluginFreeRDP, CPluginFtpServer, CPluginLibVNCServer, CPluginPlayer, CPluginRabbitVNC, CPluginRawStream, CPluginScreenCapture, CPluginSerialPort, CPluginLibSSH, CPluginTelnet, CPluginTerminal, CPluginTigerVnc, CPluginWakeOnLan , 以及 CPluginWebBrowser 内被实现.

◆ Protocol()

virtual const QString CPlugin::Protocol ( ) const
pure virtual

◆ sigNewOperate

void CPlugin::sigNewOperate ( COperate pOperate,
bool  bOpenSettingsDialog 
)
signal

当在插件中新建操作时,触发此信号

参数
pOperate新建的操作
bOpenSettingsDialog
  • true: 打开设置对话框
  • false: 不打开设置对话框

◆ Type()

virtual const TYPE CPlugin::Type ( ) const
pure virtual

CPluginFreeRDP 内被实现.

◆ TypeName()

const QString CPlugin::TypeName ( const TYPE  t) const
virtual

在文件 Plugin.cpp36 行定义.

◆ Version()

virtual const QString CPlugin::Version ( ) const
pure virtual

类成员变量说明

◆ m_Translator

QSharedPointer<QTranslator> CPlugin::m_Translator
private

在文件 Plugin.h135 行定义.


该类的文档由以下文件生成: