Rabbit Remote Control 0.1.0-bate16
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 COperate * CreateOperate (const QString &id)
 New COperate pointer, the owner is caller.
virtual int DeleteOperate (COperate *p)
 Delete COperate.
virtual COperate * LoadOperate (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.
CParameterGlobal * GetGlobalParameters ()
 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
CHook * m_pHook
CParameterPlugin * m_pParameterPlugin
QString m_szDetails
CDatabaseFile * m_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 702 of file Manager.cpp.

◆ EnumPlugins() [1/2]

int CManager::EnumPlugins ( Handle * handle)
virtual

Enum plugins.

Definition at line 674 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. After using it, the caller must delete it.
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;
QSize size = this->size();
if(p->frameSize().width() > size.width()
|| p->frameSize().height() > size.height())
{
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 729 of file Manager.cpp.

Member Data Documentation

◆ m_FileVersion

qint8 CManager::m_FileVersion
private

Definition at line 244 of file Manager.h.

◆ m_pDatabaseFile

CDatabaseFile* CManager::m_pDatabaseFile
private

Definition at line 249 of file Manager.h.

◆ m_pHook

CHook* CManager::m_pHook
private

Definition at line 246 of file Manager.h.

◆ m_Plugins

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

ID -> CPlugin.

Definition at line 243 of file Manager.h.

◆ m_pParameterPlugin

CParameterPlugin* CManager::m_pParameterPlugin
private

Definition at line 247 of file Manager.h.

◆ m_szDetails

QString CManager::m_szDetails
private

Definition at line 248 of file Manager.h.

◆ m_szSettingsFile

QString CManager::m_szSettingsFile
private

Definition at line 241 of file Manager.h.

◆ m_Translator

QSharedPointer<QTranslator> CManager::m_Translator
private

Definition at line 245 of file Manager.h.


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