Rabbit Remote Control 0.1.0-bate6
Loading...
Searching...
No Matches
Public Types | Signals | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
CPlugin Class Referenceabstract

Plugin interface. More...

#include <Plugin.h>

Inheritance diagram for CPlugin:
Inheritance graph
[legend]
Collaboration diagram for CPlugin:
Collaboration graph
[legend]

Public Types

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

Signals

void sigNewOperate (COperate *pOperate, bool bOpenSettingsDialog)
 This signal is triggered when a new operate is created in the plugin.
 

Public Member Functions

 CPlugin (QObject *parent=nullptr)
 
virtual const TYPE Type () const =0
 
virtual const QString TypeName (const TYPE t) const
 
virtual const QString Id () const
 ID. Default: Type() + ":" + Protocol() + ":" + Name()
 
virtual const QString Protocol () const =0
 Plugin Protocol.
 
virtual const QString Name () const =0
 This name must be the same as the project name (${PROJECT_NAME}). The translation file (${PROJECT_NAME}_*.ts)) name is associated with it.
 
virtual const QString DisplayName () const
 The plugin display name.
 
virtual const QString Description () const =0
 Plugin description.
 
virtual const QString Version () const =0
 Version.
 
virtual const QIcon Icon () const =0
 
virtual const QString Details () const
 Display more information in About dialog or log.
 

Protected Member Functions

virtual Q_INVOKABLE COperateCreateOperate (const QString &szId, CParameterPlugin *para)
 New COperate instance.
 
virtual COperateOnCreateOperate (const QString &szId)=0
 
virtual Q_INVOKABLE int DeleteOperate (COperate *p)
 Delete COperate.
 
virtual Q_INVOKABLE QWidget * GetSettingsWidget (QWidget *parent)
 Get the widget to set global parameters for the plugin.
 

Private Member Functions

Q_INVOKABLE int InitTranslator ()
 Initialize the translation resource, which is only called by CManager.
 

Private Attributes

QSharedPointer< QTranslator > m_Translator
 

Detailed Description

Plugin interface.

Definition at line 14 of file Plugin.h.

Member Enumeration Documentation

◆ TYPE

enum class CPlugin::TYPE
strong

Definition at line 22 of file Plugin.h.

Constructor & Destructor Documentation

◆ ~CPlugin()

CPlugin::~CPlugin ( )
virtual

Definition at line 16 of file Plugin.cpp.

Member Function Documentation

◆ CreateOperate()

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

New COperate instance.

[CPlugin CreateOperate]

Only is called by CManager

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)
New COperate pointer, the owner is caller.
Definition Manager.cpp:340
Operate interface.
Definition Operate.h:51
Global parameters of plugins.
Returns
Return COperate pointer, the owner is caller
Note
The function new object pointer, the caller must delete it when don't use it.
Parameters
szId
See also
CManager::CreateOperate CManager::LoadOperate

Reimplemented in CPluginWebBrowser, and CPluginWakeOnLan.

Definition at line 87 of file Plugin.cpp.

◆ DeleteOperate()

int CPlugin::DeleteOperate ( COperate p)
protectedvirtual

Delete COperate.

[CPlugin CreateOperate]

Reimplemented in CPluginWakeOnLan.

Definition at line 129 of file Plugin.cpp.

◆ Description()

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

◆ Details()

const QString CPlugin::Details ( ) const
virtual

Display more information in About dialog or log.

eg: Include the plugin depends on the library version and description

See also
CPluginFreeRDP::Details()

Reimplemented in CPluginFileTransfer, CPluginFreeRDP, CPluginFtpServer, CPluginLibVNCServer, CPluginPlayer, CPluginLibSSH, CPluginTerminal, CPluginTigerVnc, CPluginWakeOnLan, and CPluginWebBrowser.

Definition at line 81 of file Plugin.cpp.

◆ DisplayName()

const QString CPlugin::DisplayName ( ) const
virtual

◆ GetSettingsWidget()

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

Get the widget to set global parameters for the plugin.

Returns
Sets the parameters widget. Returns nullptr if no parameters are needed. This widget belongs to the caller.
Note
The widget must be a derivative of CParameterUI. Eg: CParameterPluginUI

Usage:

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);
}
See also
CManager::GetSettingsWidgets

Reimplemented in CPluginWebBrowser.

Definition at line 151 of file Plugin.cpp.

◆ Id()

const QString CPlugin::Id ( ) const
virtual

ID. Default: Type() + ":" + Protocol() + ":" + Name()

Definition at line 71 of file Plugin.cpp.

◆ InitTranslator()

int CPlugin::InitTranslator ( )
private

Initialize the translation resource, which is only called by CManager.

Because it calls Name(), So it can't be called directly in the constructor of this class.

See also
CManager::AppendPlugin

Definition at line 24 of file Plugin.cpp.

◆ Name()

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

This name must be the same as the project name (${PROJECT_NAME}). The translation file (${PROJECT_NAME}_*.ts)) name is associated with it.

Implemented in CPluginFileTransfer, CPluginFreeRDP, CPluginFtpServer, CPluginLibVNCServer, CPluginPlayer, CPluginRabbitVNC, CPluginRawStream, CPluginScreenCapture, CPluginSerialPort, CPluginLibSSH, CPluginTelnet, CPluginTerminal, CPluginTigerVnc, CPluginWakeOnLan, and CPluginWebBrowser.

◆ Protocol()

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

◆ sigNewOperate

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

This signal is triggered when a new operate is created in the plugin.

Parameters
pOperatea new operate is created.
bOpenSettingsDialog
  • true: open the settings dialog
  • false: don't open the settings dialog

◆ Type()

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

Implemented in CPluginFreeRDP.

◆ TypeName()

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

Definition at line 36 of file Plugin.cpp.

◆ Version()

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

Member Data Documentation

◆ m_Translator

QSharedPointer<QTranslator> CPlugin::m_Translator
private

Definition at line 135 of file Plugin.h.


The documentation for this class was generated from the following files: