玉兔远程控制 0.0.31
载入中...
搜索中...
未找到
ConnecterVnc.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include "ConnecterVnc.h"
4#include "DlgSettingsVnc.h"
5#include "PluginClient.h"
6#include "ConnectVnc.h"
7
8#include <QMessageBox>
9#include <QRegularExpression>
10#include <QLoggingCategory>
11
12static Q_LOGGING_CATEGORY(log, "VNC.Connecter")
13
15 : CConnecterThread(plugin)
16{
17 qDebug(log) << Q_FUNC_INFO;
18}
19
20CConnecterVnc::~CConnecterVnc()
21{
22 qDebug(log) << Q_FUNC_INFO;
23}
24
25const QString CConnecterVnc::Id()
26{
27 if(m_Para.GetIce())
28 {
29 QString szId = Protocol() + "_" + GetPlugClient()->Name();
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 CConnecter::Id();
39}
40
42{
43 return 0;
44}
45
47{
48 if(GetParameter())
49 if(!GetParameter()->GetShowServerName()
50 || CConnecterConnect::ServerName().isEmpty())
51 {
52 if(m_Para.GetIce())
53 {
54 if(!m_Para.GetPeerUser().isEmpty())
55 return m_Para.GetPeerUser();
56 }
57 else {
58 if(!GetParameter()->m_Net.GetHost().isEmpty())
59 return GetParameter()->m_Net.GetHost() + ":"
60 + QString::number(GetParameter()->m_Net.GetPort());
61 }
62 }
64}
65
66QDialog *CConnecterVnc::OnOpenDialogSettings(QWidget *parent)
67{
68 CDlgSettingsVnc* p = new CDlgSettingsVnc(&m_Para, parent);
69 return p;
70}
71
73{
74 CConnectVnc* p = new CConnectVnc(this);
75 return p;
76}
77
79{
80 qDebug(log) << Q_FUNC_INFO;
81 int nRet = 0;
83 if(nRet) return nRet;
84 nRet = SetParameter(&m_Para);
85 return nRet;
86}
87
89{
90 qDebug(log) << Q_FUNC_INFO;
91 int nRet = 0;
93 return nRet;
94}
连接接口。它由协议插件实现。 它默认启动一个定时器来开启一个非 Qt 事件循环(就是普通的循环处理)。 详见: Connect()、 slotTimeOut()、 OnProcess() 。 当然,它仍...
Definition Connect.h:45
virtual CParameterBase * GetParameter()
Get parameter
virtual QString ServerName()
当前连接名(远程桌面的名称,如果没有,则是 IP:端口)。例如:服务名或 IP:端口
默认启动一个后台线程。实现一个后台线程处理一个连接。 可与插件接口从 CPluginClient 派生的插件一起使用,用于连接是阻塞模型的。
virtual int Initial() override
Initial parameters and resource
virtual int Clean() override
Clean parameters and resource
virtual qint16 Version() override
Version
virtual QString ServerName() override
当前连接名(远程桌面的名称,如果没有,则是 IP:端口)。例如:服务名或 IP:端口
virtual const QString Id() override
Identity
virtual CConnect * InstanceConnect() override
新建 CConnect 对象。它的所有者是调用者, 如果调用者不再使用它,调用者必须负责释放它。
virtual int Clean() override
Clean parameters and resource
virtual int Initial() override
Initial parameters and resource
virtual QDialog * OnOpenDialogSettings(QWidget *parent=nullptr) override
得到设置对话框
virtual const QString Protocol() const
Protocol
Definition Connecter.cpp:69
virtual const QString Id()
Identity
Definition Connecter.cpp:47
客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。
virtual const QString Name() const =0
插件名,这个名一定要与工程名(${PROJECT_NAME})相同。 翻译文件(${PROJECT_NAME}_*.ts))名与其相关。