forked from linuxdeepin/dde-network-core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproxycontroller.h
99 lines (79 loc) · 4.72 KB
/
proxycontroller.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#ifndef PROXYCONTROLLER_H
#define PROXYCONTROLLER_H
#include "networkconst.h"
#include "netutils.h"
#include <QObject>
namespace dde {
namespace network {
class NetworkDBusProxy;
class ProxyController : public QObject
{
Q_OBJECT
friend class NetworkInterProcesser;
friend class NetworkManagerProcesser;
public:
/* 系统代理 */
void querySysProxyData(); // 查询系统代理,一般在控制中心点击的时候实时调用
void setProxyMethod(const ProxyMethod &pm); // 设置代理模式
inline ProxyMethod proxyMethod() const { return m_proxyMothod; } // 返回代理模式
void setProxyIgnoreHosts(const QString &hosts); // 设置忽略的主机
inline QString proxyIgnoreHosts() const { return m_proxyIgnoreHosts; } // 返回代理主机列表
void setAutoProxy(const QString &proxy); // 设置自动代理的配置URL
inline QString autoProxy() { return m_autoProxyURL; } // 返回自动代理的配置URL
void setProxy(const SysProxyType &type,
const QString &addr, const QString &port); // 设置代理信息,type是一个枚举类型,一般是manual模式下设置
SysProxyConfig proxy(const SysProxyType &type) const; // 获取对应类型下的系统代理数据
/* 应用代理 */
bool appProxyExist() const;
void setAppProxy(const AppProxyConfig &config); // 设置应用代理数据
AppProxyConfig appProxy() const; // 获取应用代理数据
Q_SIGNALS:
/* 系统代理 */
void autoProxyChanged(const QString &); // 自动代理发生变化
void proxyChanged(const SysProxyConfig &); // 某种代理数据发生变化的时候触发的信号
void proxyMethodChanged(const ProxyMethod &); // 代理模式发生变化
void proxyIgnoreHostsChanged(const QString &); // 忽略的主机发生变化
/* 应用代理 */
void appIPChanged(const QString &ip); // 应用代理IP发生变化
void appPasswordChanged(const QString &password); // 应用代理密码发生变化
void appTypeChanged(const AppProxyType &type); // 应用代理类型发生变化
void appUsernameChanged(const QString &username); // 应用代理用户名发生变化
void appPortChanged(const uint &port); // 应用代理端口发生变化
protected:
explicit ProxyController(NetworkDBusProxy *networkInter, QObject *parent = Q_NULLPTR);
~ProxyController();
ProxyMethod convertProxyMethod(const QString &method); // 将代理模式字符串转换为枚举
QString convertProxyMethod(const ProxyMethod &method); // 将代理模式枚举转换为字符串
QString convertSysProxyType(const SysProxyType &type); // 将代理模式枚举值转换为字符串
SysProxyType convertSysProxyType(const QString &type); // 将代理模式字符串转换为枚举值
AppProxyType appProxyType(const QString &v); // 系统代理类型转换,字符串到枚举
QString appProxyType(const AppProxyType &v); // 系统代理类型转换,枚举到字符串
private Q_SLOTS:
void onIPChanged(const QString &value);
void onPasswordChanged(const QString &value);
void onTypeChanged(const QString &value);
void onUserChanged(const QString &value);
void onPortChanged(uint value);
void queryAutoProxy(); // 查询自动代理的URL
void queryProxyMethod(); // 查询自动代理模式
void queryProxyIgnoreHosts(); // 查询代理忽略的主机
void queryProxyDataByType(const QString &type); // 查询代理数据
void queryProxyDataByFtp();
void queryProxyDataByHttp();
void queryProxyDataByHttps();
void queryProxyDataBySocks();
private:
NetworkDBusProxy *m_networkInter;
QList<SysProxyConfig> m_sysProxyConfig;
QString m_autoProxyURL;
ProxyMethod m_proxyMothod;
QString m_proxyIgnoreHosts;
AppProxyConfig m_appProxyConfig;
bool m_appProxyExist;
};
}
}
#endif // UPROXYCONTROLLER_H