Proxy fix.

This commit is contained in:
Gres 2015-10-11 18:33:19 +03:00
parent 1d211d1baf
commit a4d3dd90fd
4 changed files with 16 additions and 5 deletions

View File

@ -160,7 +160,9 @@ void Manager::applySettings () {
useResultDialog_ = GET (resultShowType).toBool ();
QNetworkProxy proxy = QNetworkProxy::applicationProxy ();
proxy.setType (QNetworkProxy::ProxyType (GET (proxyType).toInt ()));
QList<int> 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 ());

View File

@ -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<ProxyType> proxyOrder;
proxyOrder << QNetworkProxy::NoProxy << QNetworkProxy::Socks5Proxy << QNetworkProxy::HttpProxy;
foreach (ProxyType type, proxyOrder) {
ui->proxyTypeCombo->addItem (proxyTypeNames.value (type));
QList<int> 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 \.-]*)*\/?$)");

View File

@ -1,3 +1,5 @@
#include <QNetworkProxy>
#include "Utils.h"
QString encode (const QString &source) {
@ -11,3 +13,9 @@ QString encode (const QString &source) {
}
return QString::fromUtf8 (result.data ());
}
QList<int> proxyTypeOrder () {
QList<int> proxyOrder;
proxyOrder << QNetworkProxy::NoProxy << QNetworkProxy::Socks5Proxy << QNetworkProxy::HttpProxy;
return proxyOrder;
}

View File

@ -5,4 +5,6 @@
QString encode (const QString &source);
QList<int> proxyTypeOrder ();
#endif // UTILS_H