Rabbit Remote Control 0.0.36
Loading...
Searching...
No Matches
ParameterProxyUI.cpp
1#include "ParameterProxyUI.h"
2#include <QHBoxLayout>
3#include <QSpacerItem>
4
5CParameterProxyUI::CParameterProxyUI(QWidget *parent)
6 : CParameterUI(parent)
7 , m_uiHttp(nullptr)
8 , m_uiSockesV5(nullptr)
9 , m_uiSSH(nullptr)
10{
11 bool bCheck = false;
12 setLayout(new QBoxLayout(QBoxLayout::TopToBottom, this));
13 Q_ASSERT(layout());
14
15 QHBoxLayout* pType = new QHBoxLayout(this);
16 layout()->addItem(pType);
17
18 m_uiHttp = new CParameterNetUI(this);
19 layout()->addWidget(m_uiHttp);
20
21 m_uiSockesV5 = new CParameterNetUI(this);
22 layout()->addWidget(m_uiSockesV5);
23
24 m_uiSSH = new CParameterSSHTunnelUI(this);
25 layout()->addWidget(m_uiSSH);
26
27 m_lbType = new QLabel(this);
28 m_lbType->setText(tr("Type:"));
29 pType->addWidget(m_lbType);
30
31 m_cbType = new QComboBox(this);
32 pType->addWidget(m_cbType);
33 bCheck = connect(m_cbType, SIGNAL(currentIndexChanged(int)),
34 this, SLOT(slotTypeChanged(int)));
35 Q_ASSERT(bCheck);
36
37 layout()->addItem(new QSpacerItem(0, 0,
38 QSizePolicy::Preferred,
39 QSizePolicy::Expanding));
40}
41
42void CParameterProxyUI::slotTypeChanged(int nIndex)
43{
44 Q_UNUSED(nIndex);
45 int type = m_cbType->currentData().toInt();
46 if(m_uiHttp)
47 m_uiHttp->setVisible((int)CParameterProxy::TYPE::Http == type);
48 if(m_uiSockesV5)
49 m_uiSockesV5->setVisible((int)CParameterProxy::TYPE::SockesV5 == type);
50 if(m_uiSSH)
51 m_uiSSH->setVisible((int)CParameterProxy::TYPE::SSHTunnel == type);
52}
53
55{
56 m_Proxy = qobject_cast<CParameterProxy*>(pParameter);
57 if(!m_Proxy)
58 return -1;
59 m_uiHttp->SetParameter(&m_Proxy->m_Http);
60 m_uiSockesV5->SetParameter(&m_Proxy->m_SockesV5);
61 m_uiSSH->SetParameter(&m_Proxy->m_SSH);
62
63 m_cbType->clear();
64 foreach(auto t, m_Proxy->GetType())
65 {
66 m_cbType->addItem(m_Proxy->ConvertTypeToName(t), (int)t);
67 }
68
69 int index = m_cbType->findData((int)m_Proxy->GetUsedType());
70 m_cbType->setCurrentIndex(index);
71 return 0;
72}
73
75{
76 bool bRet = true;
77 int type = m_cbType->currentData().toInt();
78 switch(type)
79 {
80 case (int)CParameterProxy::TYPE::SockesV5: {
81 bRet = m_uiSockesV5->CheckValidity(validity);
82 if(!bRet) return bRet;
83 break;
84 }
85 case (int)CParameterProxy::TYPE::Http: {
86 bRet = m_uiHttp->CheckValidity(validity);
87 if(!bRet) return bRet;
88 break;
89 }
90 case (int)CParameterProxy::TYPE::SSHTunnel: {
91 bRet = m_uiSSH->CheckValidity(validity);
92 if(!bRet) return bRet;
93 break;
94 }
95 default:
96 break;
97 }
98
99 return bRet;
100}
101
103{
104 int nRet = 0;
105 int type = m_cbType->currentData().toInt();
106 switch(type)
107 {
108 case (int)CParameterProxy::TYPE::SockesV5: {
109 nRet = m_uiSockesV5->Accept();
110 if(nRet) return nRet;
111 break;
112 }
113 case (int)CParameterProxy::TYPE::Http: {
114 nRet = m_uiHttp->Accept();
115 if(nRet) return nRet;
116 break;
117 }
118 case (int)CParameterProxy::TYPE::SSHTunnel: {
119 nRet = m_uiSSH->Accept();
120 if(nRet) return nRet;
121 break;
122 }
123 default:
124 break;
125 }
126
127 m_Proxy->SetUsedType((CParameterProxy::TYPE)type);
128
129 return 0;
130}
The net parameter UI.
int Accept()
Accept parameters.
bool CheckValidity(bool validity=false)
[Set Parameter]
int SetParameter(CParameter *pParameter)
[Parameter commone functions]
int SetParameter(CParameter *pParameter)
Set the parameters and initialize the user interface.
bool CheckValidity(bool validity=false)
Check parameters validity.
int Accept()
Accept parameters.
bool CheckValidity(bool validity=false)
Check parameters validity.
virtual int Accept() override
Accept parameters.
virtual int SetParameter(CParameter *pParameter) override
Set the parameters and initialize the user interface.
The parameter UI interface.
Definition ParameterUI.h:15
Parameter interface.
Definition Parameter.h:169