4#include <QLoggingCategory>
5#include "RabbitCommonTools.h"
9static Q_LOGGING_CATEGORY(log,
"Plugin")
17 qDebug(log) << Q_FUNC_INFO;
19 RabbitCommon::CTools::Instance()->RemoveTranslator(m_Translator);
25 m_Translator = RabbitCommon::CTools::Instance()->InstallTranslator(
27 RabbitCommon::CTools::TranslationType::Plugin,
35const QString CPlugin::TypeName(
const TYPE t)
const
37 if(t >= TYPE::Custom) {
38 qWarning(log) <<
"Please override `const QString CPlugin::TypeName(const TYPE t) const` with "
39 + QString(metaObject()->className()) +
"::TypeName(const Type t)" ;
48 case TYPE::RemoteDesktop:
49 return tr(
"Remote Desktop");
51 return tr(
"Terminal");
54 case TYPE::FileTransfers:
55 return tr(
"File transfers");
56 case TYPE::NetworkTools:
57 return tr(
"Network Tools");
59 qWarning(log) <<
"Please override `const QString CPlugin::TypeName(const TYPE t) const` with "
60 + QString(metaObject()->className()) +
"::TypeName(const Type t)" ;
63 qCritical(log) <<
"Don't support type:" << (int)t;
70 return QString::number((
int)Type()) +
":" +
Protocol() +
":" +
Name();
91 bool bRet = QMetaObject::invokeMethod(
95 Q_RETURN_ARG(
int, nRet));
97 qCritical(log) <<
"Call p->Initial() fail.";
101 qCritical(log) <<
"Operate initial fail" << nRet;
106 bRet = QMetaObject::invokeMethod(
108 "SetGlobalParameters",
109 Qt::DirectConnection,
110 Q_RETURN_ARG(
int, nRet),
113 qCritical(log) <<
"Call p->SetParameterClient(para) fail.";
117 qCritical(log) <<
"SetParameterClient fail" << nRet;
128 qDebug(log) << Q_FUNC_INFO;
133 bRet = QMetaObject::invokeMethod(
136 Qt::DirectConnection,
137 Q_RETURN_ARG(
int, nRet));
139 qCritical(log) <<
"Call p->Clean() fail.";
143 qWarning(log) <<
"Operate clean fail" << nRet;
virtual const QString Details() const
显示更多细节。 例如: 在关于对话框或日志中显示。 包括插件的依赖库的版本信息和描述
virtual Q_INVOKABLE int DeleteOperate(COperate *p)
Delete COperate
Q_INVOKABLE int InitTranslator()
初始化翻译资源,仅由 CClient 调用。 因为它调用了 Name() ,所以不能在此类的构造函数中直接调用。
virtual const QString Id()
标识。默认: Type() + ":" + Protocol() + ":" + Name()
virtual const QString Name() const =0
插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。
virtual const QString DisplayName() const
在界面上显示的名称
virtual const QString Protocol() const =0
协议
virtual Q_INVOKABLE COperate * CreateOperate(const QString &szId, CParameterPlugin *para)
新建 COperate 实例。仅由 CClient 调用