From 206834e8dc637287baf7e631065de6d951e704bf Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Thu, 28 Dec 2017 16:28:41 +0900 Subject: NetworkSettings: add setupApplicationProxy() accessible from QML; proxyPort is quint16 now setupApplicationProxy(), so that clients in QML could apply changes in proxy settings without going down to C++. quint16, because this is a type actually used by QNetworkProxy. --- networksettings.cpp | 10 ++++++++-- networksettings.h | 4 +++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/networksettings.cpp b/networksettings.cpp index 6b023bd5..48bd09f3 100644 --- a/networksettings.cpp +++ b/networksettings.cpp @@ -20,6 +20,12 @@ using namespace QMatrixClient; -QMC_DEFINE_SETTING(NetworkSettings, QNetworkProxy::ProxyType, proxyType, "proxy_type", QNetworkProxy::NoProxy, setProxyType) +void NetworkSettings::setupApplicationProxy() const +{ + QNetworkProxy::setApplicationProxy( + { proxyType(), proxyHostName(), proxyPort() }); +} + +QMC_DEFINE_SETTING(NetworkSettings, QNetworkProxy::ProxyType, proxyType, "proxy_type", QNetworkProxy::DefaultProxy, setProxyType) QMC_DEFINE_SETTING(NetworkSettings, QString, proxyHostName, "proxy_hostname", "", setProxyHostName) -QMC_DEFINE_SETTING(NetworkSettings, int, proxyPort, "proxy_port", -1, setProxyPort) +QMC_DEFINE_SETTING(NetworkSettings, quint16, proxyPort, "proxy_port", -1, setProxyPort) diff --git a/networksettings.h b/networksettings.h index e113cd9b..83613060 100644 --- a/networksettings.h +++ b/networksettings.h @@ -30,7 +30,7 @@ namespace QMatrixClient { Q_OBJECT QMC_DECLARE_SETTING(QNetworkProxy::ProxyType, proxyType, setProxyType) QMC_DECLARE_SETTING(QString, proxyHostName, setProxyHostName) - QMC_DECLARE_SETTING(int, proxyPort, setProxyPort) + QMC_DECLARE_SETTING(quint16, proxyPort, setProxyPort) Q_PROPERTY(QString proxyHost READ proxyHostName WRITE setProxyHostName) public: template @@ -38,5 +38,7 @@ namespace QMatrixClient { : SettingsGroup(QStringLiteral("Network"), qsettingsArgs...) { } ~NetworkSettings() override = default; + + Q_INVOKABLE void setupApplicationProxy() const; }; } -- cgit v1.2.3