玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
OperateVnc.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include "OperateVnc.h"
4#include "DlgSettingsVnc.h"
5#include "Plugin.h"
6#include "BackendVnc.h"
7
8#include <QMessageBox>
9#include <QRegularExpression>
10#include <QLoggingCategory>
11
12static Q_LOGGING_CATEGORY(log, "VNC.Connecter")
13
15 : COperateDesktop(plugin)
16{
17 qDebug(log) << Q_FUNC_INFO;
18}
19
20COperateVnc::~COperateVnc()
21{
22 qDebug(log) << Q_FUNC_INFO;
23}
24
25const QString COperateVnc::Id()
26{
27 if(m_Para.GetIce())
28 {
29 QString szId = COperate::Id();
30 if(GetParameter())
31 {
32 if(!m_Para.GetPeerUser().isEmpty())
33 szId += + "_" + m_Para.GetPeerUser();
34 }
35 szId = szId.replace(QRegularExpression("[-@:/#%!^&* \\.]"), "_");
36 return szId;
37 }
38 return COperateDesktop::Id();
39}
40
41const qint16 COperateVnc::Version() const
42{
43 return 0;
44}
45
47{
48 return &m_Stats;
49}
50
52{
53 if(GetParameter())
54 if(!GetParameter()->GetShowServerName()
55 || COperateDesktop::ServerName().isEmpty())
56 {
57 if(m_Para.GetIce())
58 {
59 if(!m_Para.GetPeerUser().isEmpty())
60 return m_Para.GetPeerUser();
61 }
62 else {
63 if(!GetParameter()->m_Net.GetHost().isEmpty())
64 return GetParameter()->m_Net.GetHost() + ":"
65 + QString::number(GetParameter()->m_Net.GetPort());
66 }
67 }
69}
70
71QDialog *COperateVnc::OnOpenDialogSettings(QWidget *parent)
72{
73 CDlgSettingsVnc* p = new CDlgSettingsVnc(&m_Para, parent);
74 return p;
75}
76
78{
79 CBackendVnc* p = new CBackendVnc(this);
80 return p;
81}
82
84{
85 qDebug(log) << Q_FUNC_INFO;
86 int nRet = 0;
88 if(nRet) return nRet;
89 nRet = SetParameter(&m_Para);
90 return nRet;
91}
92
94{
95 qDebug(log) << Q_FUNC_INFO;
96 int nRet = 0;
98 return nRet;
99}
后端接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Start()、 slotTimeOut()、 OnProcess() 。 当然,它仍然支...
Definition Backend.h:42
远程桌面操作接口
virtual QString ServerName()
当前连接服务名(远程桌面的名称,如果没有,则是 IP:端口)。例如:服务名或 IP:端口
virtual CParameterBase * GetParameter() const
Get parameter
virtual int SetParameter(CParameterBase *p)
设置参数指针
virtual const QString Id() override
标识
virtual int Initial() override
Initial parameters and resource
virtual int Clean() override
Clean parameters and resource
virtual const QString Id() override
标识
virtual const qint16 Version() const override
[The description of the desktop operate]
virtual QDialog * OnOpenDialogSettings(QWidget *parent=nullptr) override
得到设置对话框
virtual QString ServerName() override
当前连接服务名(远程桌面的名称,如果没有,则是 IP:端口)。例如:服务名或 IP:端口
virtual CBackend * InstanceBackend() override
新建后端实例。它的所有者是调用者, 如果调用者不再使用它,调用者必须负责释放它。
virtual int Initial() override
Initial parameters and resource
virtual CStats * GetStats() override
得到统计信息。如果有,其派生类则需要重载此函数提供统计信息。
virtual int Clean() override
Clean parameters and resource
virtual const QString Id()
标识
Definition Operate.cpp:36
插件接口
Definition Plugin.h:15
Definition Stats.h:11