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

操作接口。 更多...

#include <Operate.h>

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

信号

void sigViewerFocusIn (QWidget *pView)
 视图获得焦点
 
void sigFullScreen (bool bFullScreen)
 全屏。由操作触发
 
void sigUpdateName (const QString &szName)
 
void sigUpdateParameters (COperate *pOperate)
 更新参数,通知应用程序保存或显示参数
 
void sigError (const int nError, const QString &szError)
 当有错误产生时触发。
 
void sigInformation (const QString &szInfo)
 中主窗口中显示信息
 
void sigShowMessageBox (const QString &title, const QString &message, const QMessageBox::Icon &icon=QMessageBox::Information)
 从后台线程中触发在主线程中显示消息对话框(QMessageBox),不阻塞后台线程
 
void sigClipBoardChanged ()
 

Public 成员函数

 COperate (CPlugin *plugin)
 
virtual QWidget * GetViewer ()=0
 得到显示视图
 
virtual int OpenDialogSettings (QWidget *parent=nullptr)
 打开设置对话框
 
virtual QMenu * GetMenu (QWidget *parent=nullptr)
 Get menu
 
属性
virtual const QString Id ()
 标识
 
virtual const QString Name ()
 名称
 
virtual const QString Description ()
 描述
 
virtual const QString Protocol () const
 协议
 
virtual const qint16 Version () const =0
 版本
 
virtual const QIcon Icon () const
 图标
 
virtual const QString GetTypeName () const
 类型名
 

Protected 槽

void slotUpdateName ()
 

Protected 成员函数

virtual Q_INVOKABLE int Initial ()
 Initial parameters and resource
 
virtual Q_INVOKABLE int Clean ()
 Clean parameters and resource
 
virtual Q_INVOKABLE int SetGlobalParameters (CParameterPlugin *pPara)=0
 应用插件全局参数
 
Q_INVOKABLE CPluginGetPlugin () const
 Get plugin
 

静态 Protected 成员函数

static QObject * createObject (const QString &className, QObject *parent=NULL)
 Create Object
 

Protected 属性

QMenu m_Menu
 
QAction * m_pActionSettings
 

Private 槽

virtual void slotBlockShowWidget (const QString &className, int &nRet, void *pContext)
 阻塞后台线程,并在前台线程中显示窗口。
 
virtual void slotBlockShowMessageBox (const QString &szTitle, const QString &szMessage, QMessageBox::StandardButtons buttons, QMessageBox::StandardButton &nRet, bool &checkBox, QString szCheckBoxContext=QString())
 阻塞后台线程,并在前台线程中显示消息对话框(QMessageBox)
 
virtual void slotBlockInputDialog (const QString &szTitle, const QString &szLable, const QString &szMessage, QString &szText)
 Block background threads and display input dialogs in foreground threads (QInputDialog)
 
virtual void slotSetClipboard (QMimeData *data)
 
virtual void slotSettings ()
 

Private 成员函数

virtual QDialog * OnOpenDialogSettings (QWidget *parent=nullptr)=0
 得到设置对话框
 

Private 属性

CPluginm_pPlugin
 

加载和保存参数

QString m_szSettings
 
virtual QString GetSettingsFile ()
 
virtual int SetSettingsFile (const QString &szFile)
 
virtual Q_INVOKABLE int Load (QSettings &set)=0
 加载参数
 
virtual Q_INVOKABLE int Save (QSettings &set)=0
 保存参数
 
virtual Q_INVOKABLE int Load (QString szFile=QString())
 从文件中加载参数
 
virtual Q_INVOKABLE int Save (QString szFile=QString())
 保存参数到文件中
 

统计

CSecurityLevel::Levels m_SecurityLevel
 
virtual CStatsGetStats ()
 得到统计信息。如果有,其派生类则需要重载此函数提供统计信息。
 
virtual CSecurityLevel::Levels GetSecurityLevel () const
 Get Security Level
 
void sigSecurityLevel ()
 当安全级别改变时触发。其派生类不要直接触发,需要使用 slotSetSecurityLevel 触发
 
void slotSetSecurityLevel (CSecurityLevel::Levels level)
 

主工作流

virtual int Start ()=0
 开始
 
virtual int Stop ()=0
 关闭
 
void sigRunning ()
 开始成功信号。仅由插件触发。
 
void sigStop ()
 通知用户停止。仅由插件触发。 当从插件中需要停止时触发。例如:对端断开连接、重置连接或者连接出错。 当应用接收到此信号后,调用 Stop() 关闭连接。
 
void sigFinished ()
 断开连接成功信号。仅由插件触发
 

详细描述

操作接口。

注解
  • 此接口仅由是用户使用。它由插件实现。
  • 它的实例在主线程(界面线程)中。

类图:

序列图:

已经提供以下类型的基本实现:

参见
CPlugin

在文件 Operate.h50 行定义.

构造及析构函数说明

◆ ~COperate()

COperate::~COperate ( )
virtual

在文件 Operate.cpp31 行定义.

成员函数说明

◆ Clean()

int COperate::Clean ( )
protectedvirtual

◆ createObject()

QObject * COperate::createObject ( const QString &  className,
QObject *  parent = NULL 
)
staticprotected

Create Object

参数
classNameclass name
parent
返回
Created object

在文件 Operate.cpp252 行定义.

◆ Description()

const QString COperate::Description ( )
virtual

描述

{
QString szDescription;
if(!Name().isEmpty())
szDescription = tr("Name: ") + Name() + "\n";
if(!GetTypeName().isEmpty())
szDescription += tr("Type: ") + GetTypeName() + "\n";
if(!Protocol().isEmpty()) {
szDescription += tr("Protocol: ") + Protocol();
#ifdef DEBUG
if(!GetPlugin()->DisplayName().isEmpty())
szDescription += " - " + GetPlugin()->DisplayName();
#endif
szDescription += "\n";
}
if(!ServerName().isEmpty())
szDescription += tr("Server name: ") + ServerName() + "\n";
if(GetParameter()) {
if(!GetParameter()->m_Net.GetHost().isEmpty())
szDescription += tr("Server address: ") + GetParameter()->m_Net.GetHost() + ":"
+ QString::number(GetParameter()->m_Net.GetPort()) + "\n";
QString szProxy(tr("Proxy") + " ");
auto &proxy = GetParameter()->m_Proxy;
switch(proxy.GetUsedType()) {
case CParameterProxy::TYPE::SSHTunnel:
{
auto &sshNet = proxy.m_SSH.m_Net;
szProxy += "(" + tr("SSH tunnel") + "): " + sshNet.GetHost() + ":"
+ QString::number(sshNet.GetPort());
break;
}
case CParameterProxy::TYPE::SockesV5:
{
auto &sockesV5 = proxy.m_SockesV5;
szProxy += "(" + tr("Sockes v5") + "): " + sockesV5.GetHost() + ":"
+ QString::number(sockesV5.GetPort());
break;
}
default:
szProxy.clear();
break;
}
if(!szProxy.isEmpty())
szDescription += szProxy + "\n";
}
if(!(GetSecurityLevel() & CSecurityLevel::Level::No)) {
szDescription += tr("Security level: ");
if(!sl.GetUnicodeIcon().isEmpty())
szDescription += sl.GetUnicodeIcon() + " ";
szDescription += sl.GetString() + "\n";
}
if(!GetPlugin()->Description().isEmpty())
szDescription += tr("Description: ") + GetPlugin()->Description();
return szDescription;
}
virtual const QString Description() override
[The name of the desktop operate]
virtual CSecurityLevel::Levels GetSecurityLevel() const
Get Security Level
Definition Operate.cpp:129
virtual const QString Protocol() const
协议
Definition Operate.cpp:81
Q_INVOKABLE CPlugin * GetPlugin() const
Get plugin
Definition Operate.cpp:219
virtual const QString Name()
名称
Definition Operate.cpp:46
virtual const QString Description()
描述
Definition Operate.cpp:51
virtual const QString GetTypeName() const
类型名
Definition Operate.cpp:86
virtual const QString DisplayName() const
在界面上显示的名称
Definition Plugin.cpp:76
virtual const QString Description() const =0
描述
安全级别
Definition Stats.h:79
参见
COperateDesktop::Description()

COperateFileTransfer, COperateFtpServer, COperateRawStream, COperateSerialPort, COperateSSH, COperateTelnet, CTerminal, COperateDesktop , 以及 COperateTerminal 重载.

在文件 Operate.cpp51 行定义.

◆ GetMenu()

QMenu * COperate::GetMenu ( QWidget *  parent = nullptr)
virtual

Get menu

COperateWebBrowser 重载.

在文件 Operate.cpp117 行定义.

◆ GetPlugin()

CPlugin * COperate::GetPlugin ( ) const
protected

Get plugin

参见
CManager::DeleteOperate

在文件 Operate.cpp219 行定义.

◆ GetSecurityLevel()

CSecurityLevel::Levels COperate::GetSecurityLevel ( ) const
virtual

Get Security Level

返回
参见
CSecurityLevel

在文件 Operate.cpp129 行定义.

◆ GetSettingsFile()

QString COperate::GetSettingsFile ( )
virtual

在文件 Operate.cpp143 行定义.

◆ GetStats()

CStats * COperate::GetStats ( )
virtual

得到统计信息。如果有,其派生类则需要重载此函数提供统计信息。

CTerminal, COperateVnc , 以及 COperateTerminal 重载.

在文件 Operate.cpp124 行定义.

◆ GetTypeName()

const QString COperate::GetTypeName ( ) const
virtual

类型名

在文件 Operate.cpp86 行定义.

◆ GetViewer()

virtual QWidget * COperate::GetViewer ( )
pure virtual

得到显示视图

返回
QWidget*: 视图指针。它的所有者是本类或其派生类的实例
注解
如果自己实现视图,则需要在开始时禁用视图,在 sigRunning 后允许视图。
参见
sigRunning CFrmViewer::CFrmViewer

COperateFileTransfer, COperateFtpServer, CScreenCapture, COperateWakeOnLan, COperateWebBrowser, COperateDesktop , 以及 COperateTerminal 内被实现.

◆ Icon()

const QIcon COperate::Icon ( ) const
virtual

图标

COperateWebBrowser 重载.

在文件 Operate.cpp92 行定义.

◆ Id()

const QString COperate::Id ( )
virtual

◆ Initial()

int COperate::Initial ( )
protectedvirtual

◆ Load() [1/2]

virtual Q_INVOKABLE int COperate::Load ( QSettings &  set)
protectedpure virtual

◆ Load() [2/2]

int COperate::Load ( QString  szFile = QString())
protectedvirtual

从文件中加载参数

注解
Initial() 之后调用
参见
CManger::LoadOperate Initial()

在文件 Operate.cpp164 行定义.

◆ Name()

const QString COperate::Name ( )
virtual

名称

const QString COperateDesktop::Name()
{
QString szName;
// Show the name of parameter
if(GetParameter() && !(GetParameter()->GetName().isEmpty()))
szName += GetParameter()->GetName();
else {
// Show the prefix of protocol
if(GetParameter() && GetParameter()->GetGlobalParameters()
&& (GetParameter()->GetGlobalParameters()->GetNameStyles()
& CParameterPlugin::NameStyle::Protocol)
&& !Protocol().isEmpty())
szName = Protocol() + ":";
// Show the server name
szName += ServerName();
}
// Show the prefix of security level
QString szSecurityLevel;
if((GetParameter()->GetGlobalParameters()->GetNameStyles()
& CParameterPlugin::NameStyle::SecurityLevel)
&& !(GetSecurityLevel() & CSecurityLevel::Level::No)
&& !sl.GetUnicodeIcon().isEmpty())
szSecurityLevel = sl.GetUnicodeIcon().left(2);
return szSecurityLevel + szName;
}
virtual const QString Name() override
[The name of the desktop operate]
参见
COperateDesktop::Name()

COperateFileTransfer, COperateFtpServer, COperateRawStream, COperateSerialPort, COperateSSH, COperateTelnet, CTerminal, COperateWakeOnLan, COperateWebBrowser, COperateDesktop , 以及 COperateTerminal 重载.

在文件 Operate.cpp46 行定义.

◆ OnOpenDialogSettings()

virtual QDialog * COperate::OnOpenDialogSettings ( QWidget *  parent = nullptr)
privatepure virtual

得到设置对话框

参数
parent返回窗口的父窗口
返回
QDialog*: 对话框必须在堆内存中分配,它的所有者是调用者。
参见
OpenDialogSettings

COperateFileTransfer, COperateFreeRDP, COperateFtpServer, COperateLibVNCServer, COperatePlayer, COperateRawStream, CScreenCapture, COperateSerialPort, COperateSSH, COperateTelnet, CTerminal, COperateWakeOnLan, COperateWebBrowser , 以及 COperateVnc 内被实现.

◆ OpenDialogSettings()

int COperate::OpenDialogSettings ( QWidget *  parent = nullptr)
virtual

打开设置对话框

参数
parent
返回
DialogCode
  • QDialog::Accepted: 接收
  • QDialog::Rejected: 拒绝
  • -1: 错误
参见
OnOpenDialogSettings

在文件 Operate.cpp97 行定义.

◆ Protocol()

const QString COperate::Protocol ( ) const
virtual

协议

COperateFileTransfer 重载.

在文件 Operate.cpp81 行定义.

◆ Save() [1/2]

virtual Q_INVOKABLE int COperate::Save ( QSettings &  set)
protectedpure virtual

◆ Save() [2/2]

int COperate::Save ( QString  szFile = QString())
protectedvirtual

保存参数到文件中

参数
szFile文件名。
参见
CManger::SaveOperate

在文件 Operate.cpp177 行定义.

◆ SetGlobalParameters()

int COperate::SetGlobalParameters ( CParameterPlugin pPara)
protectedpure virtual

应用插件全局参数

注解
调用 CParameterOperate::SetGlobalParameters 设置操作参数的全局参数,并连接与全局参数相关的信号
{
if(GetParameter()) {
GetParameter()->SetGlobalParameters(pPara);
if(pPara) {
bool check = connect(pPara, SIGNAL(sigNameStylesChanged()),
this, SLOT(slotUpdateName()));
Q_ASSERT(check);
}
LoadAdaptWindows();
return 0;
} else {
QString szMsg = "There is not parameters! "
"please first create parameters, "
"then call SetParameter() in the ";
szMsg += metaObject()->className() + QString("::")
+ metaObject()->className();
szMsg += QString("() or ") + metaObject()->className()
+ QString("::") + "Initial()";
szMsg += " to set the parameters pointer. "
"Default set CParameterClient for the parameters of operate "
"(CParameterOperate or its derived classes) "
"See CManager::CreateOperate. "
"If you are sure the parameter of operate "
"does not need CParameterClient. "
"Please overload the SetGlobalParameters() in the ";
szMsg += QString(metaObject()->className()) + " . don't set it";
qCritical(log) << szMsg.toStdString().c_str();
Q_ASSERT(false);
}
return -1;
}
virtual int SetGlobalParameters(CParameterPlugin *pPara) override
Set Global Parameters
插件的全局参数。
参见
CManager::CreateOperate CParameterPlugin

COperateFileTransfer, COperateFtpServer, CScreenCapture, COperateWakeOnLan, COperateWebBrowser, COperateDesktop , 以及 COperateTerminal 内被实现.

在文件 Operate.cpp224 行定义.

◆ SetSettingsFile()

int COperate::SetSettingsFile ( const QString &  szFile)
virtual

在文件 Operate.cpp158 行定义.

◆ sigFinished

void COperate::sigFinished ( )
signal

断开连接成功信号。仅由插件触发

参见
Disconnect()

◆ sigFullScreen

void COperate::sigFullScreen ( bool  bFullScreen)
signal

全屏。由操作触发

参数
bFullScreen
  • true: 全屏
  • false: 恢复正常

◆ sigInformation

void COperate::sigInformation ( const QString &  szInfo)
signal

中主窗口中显示信息

注解
它与 sigShowMessageBox 的区别是 sigShowMessageBox 用对话框显示
参见
sigShowMessageBox MainWindow::slotInformation()

◆ sigRunning

void COperate::sigRunning ( )
signal

开始成功信号。仅由插件触发。

  • 应用程序需要在此时设置视图属性 Enabled 为 true 。允许接收键盘和鼠标事件。
  • 如果插件自己实现视图(非 CFrmView),设置视图属性 Enabled 为 true 。允许接收键盘和鼠标事件。
参见
MainWindow::slotRunning() GetViewer() CFrmViewer::CFrmViewer

◆ sigShowMessageBox

void COperate::sigShowMessageBox ( const QString &  title,
const QString &  message,
const QMessageBox::Icon &  icon = QMessageBox::Information 
)
signal

从后台线程中触发在主线程中显示消息对话框(QMessageBox),不阻塞后台线程

注解
它与 sigInformation 区别是,sigInformation 不用对话框显示
参见
sigInformation Connect::SetConnecter MainWindow::slotShowMessageBox

◆ sigUpdateName

void COperate::sigUpdateName ( const QString &  szName)
signal
注解
名称更新和图标。此信号仅由本类触发。其派生类如需使用,请用 slotUpdateName

◆ sigUpdateParameters

void COperate::sigUpdateParameters ( COperate pOperate)
signal

更新参数,通知应用程序保存或显示参数

注解
插件不要直接使用它,请用 CParameter::sigChanged 触发此信号
参见
COperateDesktop::SetParameter

◆ sigViewerFocusIn

void COperate::sigViewerFocusIn ( QWidget *  pView)
signal

视图获得焦点

参数
pView

◆ slotBlockInputDialog

void COperate::slotBlockInputDialog ( const QString &  szTitle,
const QString &  szLable,
const QString &  szMessage,
QString &  szText 
)
privatevirtualslot

Block background threads and display input dialogs in foreground threads (QInputDialog)

参见
CConnecter::sigBlockInputDialog() SetConnecter

在文件 Operate.cpp342 行定义.

◆ slotBlockShowMessageBox

void COperate::slotBlockShowMessageBox ( const QString &  szTitle,
const QString &  szMessage,
QMessageBox::StandardButtons  buttons,
QMessageBox::StandardButton &  nRet,
bool &  checkBox,
QString  szCheckBoxContext = QString() 
)
privatevirtualslot

阻塞后台线程,并在前台线程中显示消息对话框(QMessageBox)

参见
CConnect::sigBlockShowMessageBox

在文件 Operate.cpp321 行定义.

◆ slotBlockShowWidget

void COperate::slotBlockShowWidget ( const QString &  className,
int &  nRet,
void *  pContext 
)
privatevirtualslot

阻塞后台线程,并在前台线程中显示窗口。

参见
CConnect::sigBlockShowWidget()

在文件 Operate.cpp282 行定义.

◆ slotSetClipboard

void COperate::slotSetClipboard ( QMimeData *  data)
privatevirtualslot
注解
仅由 CBackendDesktop::SetConnect() 使用

在文件 Operate.cpp357 行定义.

◆ slotSetSecurityLevel

void COperate::slotSetSecurityLevel ( CSecurityLevel::Levels  level)
protectedslot

在文件 Operate.cpp134 行定义.

◆ slotSettings

void COperate::slotSettings ( )
privatevirtualslot

在文件 Operate.cpp212 行定义.

◆ slotUpdateName

void COperate::slotUpdateName ( )
protectedslot

在文件 Operate.cpp247 行定义.

◆ Start()

virtual int COperate::Start ( )
pure virtual

开始

注解
仅由用户调用,插件不能直接调用此函数。 插件开始成功后,触发信号 sigRunning()
参见
sigRunning()

COperateFileTransfer, COperateFtpServer , 以及 COperateWebBrowser 内被实现.

◆ Stop()

virtual int COperate::Stop ( )
pure virtual

关闭

注解
仅由用户调用,插件不能直接调用此函数。 插件停止成功后,触发信号 sigFinished()。调用者收到信号后,删除对象
参见
sigFinished()

COperateFileTransfer, COperateFtpServer , 以及 COperateWebBrowser 内被实现.

◆ Version()

virtual const qint16 COperate::Version ( ) const
pure virtual

类成员变量说明

◆ m_Menu

QMenu COperate::m_Menu
protected

在文件 Operate.h470 行定义.

◆ m_pActionSettings

QAction* COperate::m_pActionSettings
protected

在文件 Operate.h471 行定义.

◆ m_pPlugin

CPlugin* COperate::m_pPlugin
private

在文件 Operate.h476 行定义.

◆ m_SecurityLevel

CSecurityLevel::Levels COperate::m_SecurityLevel
private

在文件 Operate.h410 行定义.

◆ m_szSettings

QString COperate::m_szSettings
private

在文件 Operate.h351 行定义.


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