玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Src
ParameterCompone
ParameterProxyUI.cpp
1
// Author: Kang Lin <kl222@126.com>
2
#include "ParameterProxyUI.h"
3
#include <QHBoxLayout>
4
#include <QSpacerItem>
5
6
CParameterProxyUI::CParameterProxyUI(QWidget *parent)
7
:
CParameterUI
(parent)
8
, m_uiHttp(nullptr)
9
, m_uiSockesV5(nullptr)
10
, m_uiSSH(nullptr)
11
{
12
bool
bCheck =
false
;
13
setWindowTitle(tr(
"Proxy"
));
14
setLayout(
new
QBoxLayout(QBoxLayout::TopToBottom,
this
));
15
Q_ASSERT(layout());
16
17
QHBoxLayout* pType =
new
QHBoxLayout(
this
);
18
layout()->addItem(pType);
19
20
m_uiHttp =
new
CParameterNetUI
(
this
);
21
layout()->addWidget(m_uiHttp);
22
23
m_uiSockesV5 =
new
CParameterNetUI
(
this
);
24
layout()->addWidget(m_uiSockesV5);
25
26
m_uiSSH =
new
CParameterSSHTunnelUI(
this
);
27
layout()->addWidget(m_uiSSH);
28
29
m_lbType =
new
QLabel(
this
);
30
m_lbType->setText(tr(
"Type:"
));
31
pType->addWidget(m_lbType);
32
33
m_cbType =
new
QComboBox(
this
);
34
m_cbType->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
35
pType->addWidget(m_cbType);
36
bCheck = connect(m_cbType, SIGNAL(currentIndexChanged(
int
)),
37
this
, SLOT(slotTypeChanged(
int
)));
38
Q_ASSERT(bCheck);
39
40
layout()->addItem(
new
QSpacerItem(0, 0,
41
QSizePolicy::Preferred,
42
QSizePolicy::Expanding));
43
}
44
45
void
CParameterProxyUI::slotTypeChanged(
int
nIndex)
46
{
47
Q_UNUSED(nIndex);
48
int
type = m_cbType->currentData().toInt();
49
if
(m_uiHttp)
50
m_uiHttp->setVisible((
int
)CParameterProxy::TYPE::Http == type);
51
if
(m_uiSockesV5)
52
m_uiSockesV5->setVisible((
int
)CParameterProxy::TYPE::SockesV5 == type);
53
if
(m_uiSSH)
54
m_uiSSH->setVisible((
int
)CParameterProxy::TYPE::SSHTunnel == type);
55
}
56
57
int
CParameterProxyUI::SetParameter
(
CParameter
*pParameter)
58
{
59
m_Proxy = qobject_cast<CParameterProxy*>(pParameter);
60
if
(!m_Proxy)
61
return
-1;
62
m_uiHttp->SetParameter(&m_Proxy->m_Http);
63
m_uiSockesV5->SetParameter(&m_Proxy->m_SockesV5);
64
m_uiSSH->SetParameter(&m_Proxy->m_SSH);
65
66
m_cbType->clear();
67
foreach
(
auto
t, m_Proxy->GetType())
68
{
69
m_cbType->addItem(m_Proxy->ConvertTypeToName(t), (
int
)t);
70
}
71
72
int
index = m_cbType->findData((
int
)m_Proxy->GetUsedType());
73
m_cbType->setCurrentIndex(index);
74
return
0;
75
}
76
77
bool
CParameterProxyUI::CheckValidity
(
bool
validity)
78
{
79
bool
bRet =
true
;
80
int
type = m_cbType->currentData().toInt();
81
switch
(type)
82
{
83
case
(
int
)CParameterProxy::TYPE::SockesV5: {
84
bRet = m_uiSockesV5->CheckValidity(validity);
85
if
(!bRet)
return
bRet;
86
break
;
87
}
88
case
(
int
)CParameterProxy::TYPE::Http: {
89
bRet = m_uiHttp->CheckValidity(validity);
90
if
(!bRet)
return
bRet;
91
break
;
92
}
93
case
(
int
)CParameterProxy::TYPE::SSHTunnel: {
94
bRet = m_uiSSH->CheckValidity(validity);
95
if
(!bRet)
return
bRet;
96
break
;
97
}
98
default
:
99
break
;
100
}
101
102
return
bRet;
103
}
104
105
int
CParameterProxyUI::Accept
()
106
{
107
int
nRet = 0;
108
int
type = m_cbType->currentData().toInt();
109
switch
(type)
110
{
111
case
(
int
)CParameterProxy::TYPE::SockesV5: {
112
nRet = m_uiSockesV5->Accept();
113
if
(nRet)
return
nRet;
114
break
;
115
}
116
case
(
int
)CParameterProxy::TYPE::Http: {
117
nRet = m_uiHttp->Accept();
118
if
(nRet)
return
nRet;
119
break
;
120
}
121
case
(
int
)CParameterProxy::TYPE::SSHTunnel: {
122
nRet = m_uiSSH->Accept();
123
if
(nRet)
return
nRet;
124
break
;
125
}
126
default
:
127
break
;
128
}
129
130
m_Proxy->SetUsedType((CParameterProxy::TYPE)type);
131
132
return
0;
133
}
CParameterNetUI
The net parameter UI
定义
ParameterNetUI.h:17
CParameterProxyUI::SetParameter
int SetParameter(CParameter *pParameter)
设置参数,并初始化界面
定义
ParameterProxyUI.cpp:57
CParameterProxyUI::CheckValidity
bool CheckValidity(bool validity=false)
检查参数的有效性
定义
ParameterProxyUI.cpp:77
CParameterProxyUI::Accept
int Accept()
接受参数
定义
ParameterProxyUI.cpp:105
CParameterUI
参数界面接口
定义
ParameterUI.h:15
CParameter
参数接口
定义
Parameter.h:220
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力