diff --git a/Manager.cpp b/Manager.cpp index 87b2656..7f6ffe9 100644 --- a/Manager.cpp +++ b/Manager.cpp @@ -160,7 +160,9 @@ void Manager::applySettings () { useResultDialog_ = GET (resultShowType).toBool (); QNetworkProxy proxy = QNetworkProxy::applicationProxy (); - proxy.setType (QNetworkProxy::ProxyType (GET (proxyType).toInt ())); + QList proxyTypes = proxyTypeOrder (); + int proxyTypeIndex = std::min (GET (proxyType).toInt (), proxyTypes.size ()); + proxy.setType (QNetworkProxy::ProxyType (proxyTypes.at (std::max (proxyTypeIndex, 0)))); proxy.setHostName (GET (proxyHostName).toString ()); proxy.setPort (GET (proxyPort).toInt ()); proxy.setUser (GET (proxyUser).toString ()); diff --git a/SettingsEditor.cpp b/SettingsEditor.cpp index 5d2dd89..5537196 100644 --- a/SettingsEditor.cpp +++ b/SettingsEditor.cpp @@ -38,10 +38,9 @@ SettingsEditor::SettingsEditor (const LanguageHelper &dictionary, QWidget *paren proxyTypeNames.insert (QNetworkProxy::NoProxy, tr ("Нет")); proxyTypeNames.insert (QNetworkProxy::Socks5Proxy, tr ("SOCKS 5")); proxyTypeNames.insert (QNetworkProxy::HttpProxy, tr ("HTTP")); - QList proxyOrder; - proxyOrder << QNetworkProxy::NoProxy << QNetworkProxy::Socks5Proxy << QNetworkProxy::HttpProxy; - foreach (ProxyType type, proxyOrder) { - ui->proxyTypeCombo->addItem (proxyTypeNames.value (type)); + QList proxyOrder = proxyTypeOrder (); + foreach (int type, proxyOrder) { + ui->proxyTypeCombo->addItem (proxyTypeNames.value (QNetworkProxy::ProxyType (type))); } QRegExp urlRegexp (R"(^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$)"); diff --git a/Utils.cpp b/Utils.cpp index d9d1430..1af0e1d 100644 --- a/Utils.cpp +++ b/Utils.cpp @@ -1,3 +1,5 @@ +#include + #include "Utils.h" QString encode (const QString &source) { @@ -11,3 +13,9 @@ QString encode (const QString &source) { } return QString::fromUtf8 (result.data ()); } + +QList proxyTypeOrder () { + QList proxyOrder; + proxyOrder << QNetworkProxy::NoProxy << QNetworkProxy::Socks5Proxy << QNetworkProxy::HttpProxy; + return proxyOrder; +} diff --git a/Utils.h b/Utils.h index 2614507..680c36a 100644 --- a/Utils.h +++ b/Utils.h @@ -5,4 +5,6 @@ QString encode (const QString &source); +QList proxyTypeOrder (); + #endif // UTILS_H