Rabbit Remote Control 0.1.0-alpha.2
Loading...
Searching...
No Matches
ParameterProxy.cpp
1// Author: Kang Lin <kl222@126.com>
2#include "ParameterProxy.h"
3
4CParameterProxy::CParameterProxy(CParameterOperate *parent, const QString &szPrefix)
5 : CParameterOperate(parent, szPrefix)
6 , m_SockesV5(this, "Proxy/SockesV5")
7 , m_Http(this, "Proxy/Http")
8 , m_SSH(this, "Proxy/SSH/Tunnel")
9 , m_UsedType(TYPE::None)
10{
11 m_Type << TYPE::None << TYPE::System << TYPE::SockesV5 << TYPE::Http;
12#if HAVE_LIBSSH
13 m_Type << TYPE::SSHTunnel;
14#endif
15 m_TypeName = {{TYPE::None, tr("None")},
16 {TYPE::System, tr("System settings")},
17 {TYPE::SockesV5, tr("Sockes V5")},
18 {TYPE::Http, tr("Http")},
19 {TYPE::SSHTunnel, tr("SSH tunnel")}};
20
21 QList<CParameterUser::TYPE> lstType;
22 m_Http.SetPort(80);
23 lstType.clear();
24 lstType << CParameterUser::TYPE::None
25 << CParameterUser::TYPE::UserPassword;
26 m_Http.m_User.SetType(lstType);
27 m_Http.SetPrompt(tr("The host is empty in \"Proxy->Http\". please set it"));
28
29 m_SockesV5.SetPort(1080);
30 lstType.clear();
31 lstType << CParameterUser::TYPE::None
32 << CParameterUser::TYPE::UserPassword;
33 m_SockesV5.m_User.SetType(lstType);
34 m_SockesV5.SetPrompt(tr("The host is empty in \"Proxy->SockesV5\". please set it"));
35
36 m_SSH.m_Net.SetPort(22);
37 lstType.clear();
38 lstType << CParameterUser::TYPE::UserPassword
39 << CParameterUser::TYPE::PublicKey;
40 m_SSH.m_Net.m_User.SetType(lstType);
41 m_SSH.m_Net.SetPrompt(tr("The host is empty in \"Proxy->SSH tunnel\". please set it"));
42}
43
44int CParameterProxy::OnLoad(QSettings &set)
45{
46 set.beginGroup("Proxy");
47 QStringList type;
48 foreach(auto t, GetType()) {
49 type.push_back(QString::number((int)t));
50 }
51 QStringList vType;
52 vType = set.value("Type", type).toStringList();
53 QList<TYPE> lstType;
54 foreach(auto s, vType)
55 {
56 lstType.push_back((TYPE)s.toInt());
57 }
58 SetType(lstType);
59 SetUsedType((TYPE)set.value("Type/Used", (int)GetUsedType()).toInt());
60 set.endGroup();
61 return 0;
62}
63
64int CParameterProxy::OnSave(QSettings &set)
65{
66 set.beginGroup("Proxy");
67 QStringList type;
68 foreach(auto t, GetType()) {
69 type.push_back(QString::number((int)t));
70 }
71 set.setValue("Type", type);
72 set.setValue("Type/Used", (int)GetUsedType());
73 set.endGroup();
74 return 0;
75}
76
77QList<CParameterProxy::TYPE> CParameterProxy::GetType() const
78{
79 return m_Type;
80}
81
82int CParameterProxy::SetType(QList<TYPE> type)
83{
84 if(m_Type == type)
85 return 0;
86 m_Type = type;
87 SetModified(true);
88 return 0;
89}
90
91CParameterProxy::TYPE CParameterProxy::GetUsedType() const
92{
93 return m_UsedType;
94}
95
96int CParameterProxy::SetUsedType(TYPE type)
97{
98 if(m_UsedType == type)
99 return 0;
100 m_UsedType = type;
101 SetModified(true);
102 return 0;
103}
104
105QString CParameterProxy::ConvertTypeToName(TYPE t)
106{
107 return m_TypeName[t];
108}
109
110int CParameterProxy::SetTypeName(TYPE t, const QString& szName)
111{
112 m_TypeName[t] = szName;
113 return 0;
114}
Operational parameter interface.
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.