Rabbit Remote Control 0.1.0-bate14
Loading...
Searching...
No Matches

Manage plugins. More...

#include <Manager.h>

Inheritance diagram for CManager:
Collaboration diagram for CManager:

Classes

class  Handle
 The Handle COperate class. More...

Signals

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

Public Member Functions

 CManager (QObject *parent=nullptr)
int Initial (QString szFile=QString())
 Initial.
virtual COperateCreateOperate (const QString &id)
 New COperate pointer, the owner is caller.
virtual int DeleteOperate (COperate *p)
 Delete COperate.
virtual COperateLoadOperate (const QString &szFile)
 New COperate pointer from file, the owner is caller.
virtual int SaveOperate (COperate *pOperate)
 Accept Operate parameters to file.
virtual QList< QWidget * > GetSettingsWidgets (QWidget *parent)
 Get parameter settings widget.
virtual int LoadSettings (const QString szFile=QString())
 Load Client parameters from file.
virtual int SaveSettings (const QString szFile=QString())
 Save Client parameters to file.
CParameterGlobalGetGlobalParameters ()
 Get Global Parameters.
virtual int EnumPlugins (Handle *handle)
 Enum plugins.
virtual int EnumPlugins (std::function< int(const QString &id, CPlugin *pPlugin)> cb)
 Enum plugins.
const QString Details () const

Private Slots

void slotCaptureAllKeyboard ()

Private Member Functions

int LoadPlugins ()
int LoadPlugin (const QString &szPath)
 LoadPlugin.
int FindPlugins (QDir dir, QStringList filters)
int AppendPlugin (QPluginLoader *pLoader, CPlugin *p)
 Append Plugin.

Private Attributes

QString m_szSettingsFile
QMap< QString, QPluginLoader * > m_Plugins
 ID -> CPlugin.
qint8 m_FileVersion
QSharedPointer< QTranslator > m_Translator
CHookm_pHook
CParameterPluginm_pParameterPlugin
QString m_szDetails
CDatabaseFilem_pDatabaseFile

Detailed Description

Manage plugins.

Definition at line 49 of file Manager.h.

Constructor & Destructor Documentation

◆ CManager()

CManager::CManager ( QObject * parent = nullptr)
explicit

Definition at line 72 of file Manager.cpp.

◆ ~CManager()

CManager::~CManager ( )
virtual

Definition at line 80 of file Manager.cpp.

Member Function Documentation

◆ AppendPlugin()

int CManager::AppendPlugin ( QPluginLoader * pLoader,
CPlugin * p )
private

Append Plugin.

Parameters
pLoader
Returns

Definition at line 361 of file Manager.cpp.

◆ CreateOperate()

COperate * CManager::CreateOperate ( const QString & id)
virtual

New COperate pointer, the owner is caller.

[CManager CreateOperate]

The caller must be call DeteleOperate() to delete it, when it isn't need. The caller must connect COperate::sigFinished, then delete it( Use DeleteOperate() )

Parameters
idPlugin ID
See also
DeleteOperate

Definition at line 396 of file Manager.cpp.

◆ DeleteOperate()

int CManager::DeleteOperate ( COperate * p)
virtual

Delete COperate.

[CManager CreateOperate]

Definition at line 424 of file Manager.cpp.

◆ Details()

const QString CManager::Details ( ) const

Definition at line 697 of file Manager.cpp.

◆ EnumPlugins() [1/2]

int CManager::EnumPlugins ( Handle * handle)
virtual

Enum plugins.

Definition at line 669 of file Manager.cpp.

◆ EnumPlugins() [2/2]

virtual int CManager::EnumPlugins ( std::function< int(const QString &id, CPlugin *pPlugin)> cb)
virtual

Enum plugins.

Note
It is need c++ standard 11
Parameters
cbProcess plugins callback function
idplugin id
pPluginCPlugin pointer

◆ FindPlugins()

int CManager::FindPlugins ( QDir dir,
QStringList filters )
private

Definition at line 281 of file Manager.cpp.

◆ GetGlobalParameters()

CParameterGlobal * CManager::GetGlobalParameters ( )

Get Global Parameters.

Definition at line 590 of file Manager.cpp.

◆ GetSettingsWidgets()

QList< QWidget * > CManager::GetSettingsWidgets ( QWidget * parent)
virtual

Get parameter settings widget.

Returns
Parameter widget. The QWidget owner is caller.
Note
This window is generally derived from CParameterUI. For example: CParameterPluginUI If it is not derived from CParameterUI, then you need to implement the following interfaces:
  • virtual int SetParameter(CParameter* pParameter);
  • virtual int Accept();

Usage:

void MainWindow::on_actionSettings_triggered()
{
CParameterDlgSettings set(&m_Parameter, this);
auto viewers = m_Manager.GetSettingsWidgets(&set);
set.AddViewers(viewers);
if(CParameterDlgSettings::Accepted == RC_SHOW_WINDOW(&set))
{
m_Manager.SaveSettings();
m_Parameter.Save();
}
foreach(auto v, viewers) {
v->deleteLater();
}
}

Connect the signal(accepted) to the slot(slotAccept) in CParameterDlgSettings::AddViewers()

foreach(auto p, wViewer)
{
QString szMsg;
QWidget* pView = p;
if(bScroll)
{
QScrollArea* pScroll = new QScrollArea(ui->tabWidget);
if(!pScroll) continue;
pScroll->setWidget(p);
pView = pScroll;
}
ui->tabWidget->addTab(pView, p->windowIcon(), p->windowTitle());
bool check = false;
check = connect(this, SIGNAL(accepted()), p, SLOT(slotAccept()));
if(!check)
{
szMsg = "Class '" + QString(p->metaObject()->className())
+ "' must has slot slotAccept(), please add it. "
+ "Or the class derived from CParameterUI";
qCritical(log) << szMsg;
}
Q_ASSERT_X(check, "CParameterDlgSettings", szMsg.toStdString().c_str());
}
See also
CParameterPluginUI CParameterDlgSettings

[Get the widget to set global parameters for the plugin]

[Get the widget to set global parameters for the plugin]

Definition at line 597 of file Manager.cpp.

◆ Initial()

int CManager::Initial ( QString szFile = QString())
nodiscard

Initial.

Parameters
szFile
Returns
0: success; other: failed
Note
It must be the first function called after instantiation

Definition at line 119 of file Manager.cpp.

◆ LoadOperate()

COperate * CManager::LoadOperate ( const QString & szFile)
virtual

New COperate pointer from file, the owner is caller.

The caller must delete it(call DeleteOperate()), when it isn't need. The caller must connect COperate::sigFinished, then delete it (Use DeleteOperate() )

See also
DeleteOperate

Definition at line 457 of file Manager.cpp.

Here is the call graph for this function:

◆ LoadPlugin()

int CManager::LoadPlugin ( const QString & szPath)
private

LoadPlugin.

Parameters
szPathmust be absolute.
Returns

Definition at line 325 of file Manager.cpp.

◆ LoadPlugins()

int CManager::LoadPlugins ( )
private

Definition at line 225 of file Manager.cpp.

◆ LoadSettings()

int CManager::LoadSettings ( const QString szFile = QString())
virtual

Load Client parameters from file.

Parameters
szFilefile name

Definition at line 562 of file Manager.cpp.

◆ SaveOperate()

int CManager::SaveOperate ( COperate * pOperate)
virtual

Accept Operate parameters to file.

Definition at line 508 of file Manager.cpp.

Here is the call graph for this function:

◆ SaveSettings()

int CManager::SaveSettings ( const QString szFile = QString())
virtual

Save Client parameters to file.

Parameters
szFilefile name

Definition at line 576 of file Manager.cpp.

◆ sigNewOperate

void CManager::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

◆ slotCaptureAllKeyboard

void CManager::slotCaptureAllKeyboard ( )
privateslot

Definition at line 724 of file Manager.cpp.

Member Data Documentation

◆ m_FileVersion

qint8 CManager::m_FileVersion
private

Definition at line 243 of file Manager.h.

◆ m_pDatabaseFile

CDatabaseFile* CManager::m_pDatabaseFile
private

Definition at line 248 of file Manager.h.

◆ m_pHook

CHook* CManager::m_pHook
private

Definition at line 245 of file Manager.h.

◆ m_Plugins

QMap<QString, QPluginLoader*> CManager::m_Plugins
private

ID -> CPlugin.

Definition at line 242 of file Manager.h.

◆ m_pParameterPlugin

CParameterPlugin* CManager::m_pParameterPlugin
private

Definition at line 246 of file Manager.h.

◆ m_szDetails

QString CManager::m_szDetails
private

Definition at line 247 of file Manager.h.

◆ m_szSettingsFile

QString CManager::m_szSettingsFile
private

Definition at line 240 of file Manager.h.

◆ m_Translator

QSharedPointer<QTranslator> CManager::m_Translator
private

Definition at line 244 of file Manager.h.


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