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