mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Merge pull request #7951 from nextcloud/feature/rmglobalnetwork
Removes global network settings
This commit is contained in:
commit
c7cd3585d3
@ -42,7 +42,6 @@ constexpr auto serverVersionC = "serverVersion";
|
||||
constexpr auto serverColorC = "serverColor";
|
||||
constexpr auto serverTextColorC = "serverTextColor";
|
||||
constexpr auto skipE2eeMetadataChecksumValidationC = "skipE2eeMetadataChecksumValidation";
|
||||
constexpr auto networkProxySettingC = "networkProxySetting";
|
||||
constexpr auto networkProxyTypeC = "networkProxyType";
|
||||
constexpr auto networkProxyHostNameC = "networkProxyHostName";
|
||||
constexpr auto networkProxyPortC = "networkProxyPort";
|
||||
@ -118,22 +117,25 @@ AccountManager::AccountsRestoreResult AccountManager::restore(const bool alsoRes
|
||||
for (const auto &accountId : settingsChildGroups) {
|
||||
settings->beginGroup(accountId);
|
||||
if (!skipSettingsKeys.contains(settings->group())) {
|
||||
if (const auto acc = loadAccountHelper(*settings)) {
|
||||
acc->_id = accountId;
|
||||
const auto accState = new AccountState(acc);
|
||||
const auto jar = qobject_cast<CookieJar*>(acc->_networkAccessManager->cookieJar());
|
||||
Q_ASSERT(jar);
|
||||
if (jar) {
|
||||
jar->restore(acc->cookieJarPath());
|
||||
}
|
||||
addAccountState(accState);
|
||||
const auto acc = loadAccountHelper(*settings);
|
||||
if (!acc) {
|
||||
continue;
|
||||
}
|
||||
acc->_id = accountId;
|
||||
const auto accState = new AccountState(acc);
|
||||
const auto jar = qobject_cast<CookieJar*>(acc->_networkAccessManager->cookieJar());
|
||||
Q_ASSERT(jar);
|
||||
if (jar) {
|
||||
jar->restore(acc->cookieJarPath());
|
||||
}
|
||||
addAccountState(accState);
|
||||
settings->endGroup();
|
||||
moveNetworkSettingsFromGlobalToAccount(acc);
|
||||
} else {
|
||||
qCInfo(lcAccountManager) << "Account" << accountId << "is too new, ignoring";
|
||||
_additionalBlockedAccountIds.insert(accountId);
|
||||
result = AccountsRestoreSuccessWithSkipped;
|
||||
}
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
return result;
|
||||
@ -265,10 +267,13 @@ bool AccountManager::restoreFromLegacySettings()
|
||||
const auto childGroups = settings->childGroups();
|
||||
for (const auto &accountId : childGroups) {
|
||||
settings->beginGroup(accountId);
|
||||
if (const auto acc = loadAccountHelper(*settings)) {
|
||||
addAccount(acc);
|
||||
const auto acc = loadAccountHelper(*settings);
|
||||
if (!acc) {
|
||||
continue;
|
||||
}
|
||||
addAccount(acc);
|
||||
settings->endGroup();
|
||||
moveNetworkSettingsFromGlobalToAccount(acc);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -336,7 +341,7 @@ void AccountManager::saveAccountHelper(const AccountPtr &account, QSettings &set
|
||||
} else {
|
||||
settings.setValue(QLatin1String(skipE2eeMetadataChecksumValidationC), account->_skipE2eeMetadataChecksumValidation);
|
||||
}
|
||||
settings.setValue(networkProxySettingC, static_cast<std::underlying_type_t<Account::AccountNetworkProxySetting>>(account->networkProxySetting()));
|
||||
|
||||
settings.setValue(networkProxyTypeC, account->proxyType());
|
||||
settings.setValue(networkProxyHostNameC, account->proxyHostName());
|
||||
settings.setValue(networkProxyPortC, account->proxyPort());
|
||||
@ -427,6 +432,34 @@ void AccountManager::saveAccountHelper(const AccountPtr &account, QSettings &set
|
||||
}
|
||||
}
|
||||
|
||||
void AccountManager::moveNetworkSettingsFromGlobalToAccount(const AccountPtr &account)
|
||||
{
|
||||
ConfigFile configFile;
|
||||
const auto hostname = configFile.proxyHostName();
|
||||
|
||||
if (!hostname.isEmpty()) {
|
||||
account->setProxySettings(static_cast<QNetworkProxy::ProxyType>(configFile.proxyType()),
|
||||
hostname,
|
||||
configFile.proxyPort(),
|
||||
configFile.proxyNeedsAuth(),
|
||||
configFile.proxyUser(),
|
||||
configFile.proxyPassword());
|
||||
ClientProxy().cleanupGlobalNetworkConfiguration();
|
||||
}
|
||||
|
||||
const auto useUploadLimit = configFile.useUploadLimit();
|
||||
const auto useDownloadLimit = configFile.useDownloadLimit();
|
||||
if (useUploadLimit == 0 && useDownloadLimit == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
account->setUploadLimitSetting(static_cast<Account::AccountNetworkTransferLimitSetting>(useUploadLimit));
|
||||
account->setUploadLimit(configFile.uploadLimit());
|
||||
account->setDownloadLimitSetting(static_cast<Account::AccountNetworkTransferLimitSetting>(useDownloadLimit));
|
||||
account->setDownloadLimit(configFile.downloadLimit());
|
||||
configFile.cleanupGlobalNetworkConfiguration();
|
||||
}
|
||||
|
||||
AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
|
||||
{
|
||||
const auto urlConfig = settings.value(QLatin1String(urlC));
|
||||
@ -500,8 +533,6 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
|
||||
}
|
||||
|
||||
acc->setCredentials(CredentialsFactory::create(authType));
|
||||
|
||||
acc->setNetworkProxySetting(settings.value(networkProxySettingC).value<Account::AccountNetworkProxySetting>());
|
||||
acc->setProxyType(settings.value(networkProxyTypeC).value<QNetworkProxy::ProxyType>());
|
||||
acc->setProxyHostName(settings.value(networkProxyHostNameC).toString());
|
||||
acc->setProxyPort(settings.value(networkProxyPortC).toInt());
|
||||
@ -510,13 +541,14 @@ AccountPtr AccountManager::loadAccountHelper(QSettings &settings)
|
||||
acc->setUploadLimitSetting(
|
||||
settings.value(
|
||||
networkUploadLimitSettingC,
|
||||
QVariant::fromValue(Account::AccountNetworkTransferLimitSetting::GlobalLimit)
|
||||
QVariant::fromValue(Account::AccountNetworkTransferLimitSetting::NoLimit)
|
||||
).value<Account::AccountNetworkTransferLimitSetting>());
|
||||
acc->setDownloadLimitSetting(
|
||||
settings.value(
|
||||
networkDownloadLimitSettingC,
|
||||
QVariant::fromValue(Account::AccountNetworkTransferLimitSetting::GlobalLimit)
|
||||
QVariant::fromValue(Account::AccountNetworkTransferLimitSetting::NoLimit)
|
||||
).value<Account::AccountNetworkTransferLimitSetting>());
|
||||
|
||||
acc->setUploadLimit(settings.value(networkUploadLimitC).toInt());
|
||||
acc->setDownloadLimit(settings.value(networkDownloadLimitC).toInt());
|
||||
|
||||
|
||||
@ -112,6 +112,7 @@ private:
|
||||
// saving and loading Account to settings
|
||||
void saveAccountHelper(const AccountPtr &account, QSettings &settings, bool saveCredentials = true);
|
||||
AccountPtr loadAccountHelper(QSettings &settings);
|
||||
void moveNetworkSettingsFromGlobalToAccount(const AccountPtr &account);
|
||||
|
||||
bool restoreFromLegacySettings();
|
||||
|
||||
|
||||
@ -293,7 +293,7 @@ Application::Application(int &argc, char **argv)
|
||||
ConfigFile().setProxyType(QNetworkProxy::NoProxy);
|
||||
for (const auto &accountState : AccountManager::instance()->accounts()) {
|
||||
if (accountState && accountState->account()) {
|
||||
accountState->account()->setNetworkProxySetting(Account::AccountNetworkProxySetting::GlobalProxy);
|
||||
accountState->account()->setProxyType(QNetworkProxy::NoProxy);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -397,6 +397,15 @@ Application::Application(int &argc, char **argv)
|
||||
_gui->setupCloudProviders();
|
||||
#endif
|
||||
|
||||
if (_theme->doNotUseProxy()) {
|
||||
ConfigFile().setProxyType(QNetworkProxy::NoProxy);
|
||||
for (const auto &accountState : AccountManager::instance()->accounts()) {
|
||||
if (accountState && accountState->account()) {
|
||||
accountState->account()->setProxyType(QNetworkProxy::NoProxy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_proxy.setupQtProxyFromConfig(); // folders have to be defined first, than we set up the Qt proxy.
|
||||
|
||||
connect(AccountManager::instance(), &AccountManager::accountAdded,
|
||||
|
||||
@ -52,8 +52,7 @@ void ConnectionValidator::checkServerAndAuth()
|
||||
_isCheckingServerAndAuth = true;
|
||||
|
||||
// Lookup system proxy in a thread https://github.com/owncloud/client/issues/2993
|
||||
if ((ClientProxy::isUsingSystemDefault() && _account->networkProxySetting() == Account::AccountNetworkProxySetting::GlobalProxy)
|
||||
|| _account->proxyType() == QNetworkProxy::DefaultProxy) {
|
||||
if (ClientProxy::isUsingSystemDefault() || _account->proxyType() == QNetworkProxy::DefaultProxy) {
|
||||
qCDebug(lcConnectionValidator) << "Trying to look up system proxy";
|
||||
ClientProxy::lookupSystemProxyAsync(_account->url(), this, SLOT(systemProxyLookupDone(QNetworkProxy)));
|
||||
} else {
|
||||
|
||||
@ -1202,27 +1202,21 @@ SyncOptions Folder::initializeSyncOptions() const
|
||||
void Folder::setDirtyNetworkLimits()
|
||||
{
|
||||
const auto account = _accountState->account();
|
||||
const auto useGlobalDown = account->downloadLimitSetting() == Account::AccountNetworkTransferLimitSetting::GlobalLimit;
|
||||
const auto useGlobalUp = account->uploadLimitSetting() == Account::AccountNetworkTransferLimitSetting::GlobalLimit;
|
||||
|
||||
ConfigFile cfg;
|
||||
|
||||
int downloadLimit = -75; // 75%
|
||||
const auto useDownLimit = useGlobalDown
|
||||
? cfg.useDownloadLimit()
|
||||
: static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(account->downloadLimitSetting());
|
||||
const auto useDownLimit = static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(account->downloadLimitSetting());
|
||||
if (useDownLimit >= 1) {
|
||||
downloadLimit = useGlobalDown ? cfg.downloadLimit() * 1000 : account->downloadLimit() * 1000;
|
||||
downloadLimit = account->downloadLimit() * 1000;
|
||||
} else if (useDownLimit == 0) {
|
||||
downloadLimit = 0;
|
||||
}
|
||||
|
||||
int uploadLimit = -75; // 75%
|
||||
const auto useUpLimit = useGlobalUp
|
||||
? cfg.useUploadLimit()
|
||||
: static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(account->uploadLimitSetting());
|
||||
const auto useUpLimit = static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(account->uploadLimitSetting());
|
||||
if (useUpLimit >= 1) {
|
||||
uploadLimit = useGlobalUp ? cfg.uploadLimit() * 1000 : account->uploadLimit() * 1000;
|
||||
uploadLimit = account->uploadLimit() * 1000;
|
||||
} else if (useUpLimit == 0) {
|
||||
uploadLimit = 0;
|
||||
}
|
||||
|
||||
@ -1567,11 +1567,10 @@ void FolderMan::setDirtyProxy()
|
||||
if (folder
|
||||
&& folder->accountState()
|
||||
&& folder->accountState()->account()
|
||||
&& folder->accountState()->account()->networkAccessManager()
|
||||
&& folder->accountState()->account()->networkProxySetting() == Account::AccountNetworkProxySetting::GlobalProxy) {
|
||||
&& folder->accountState()->account()->networkAccessManager()) {
|
||||
// Need to do this so we do not use the old determined system proxy
|
||||
const auto proxy = QNetworkProxy(QNetworkProxy::DefaultProxy);
|
||||
folder->accountState()->account()->networkAccessManager()->setProxy(proxy);
|
||||
folder->accountState()->account()->setProxyType(proxy.type());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,12 +32,6 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent)
|
||||
|
||||
_ui->proxyGroupBox->setVisible(!Theme::instance()->doNotUseProxy());
|
||||
|
||||
if (!account) {
|
||||
_ui->globalProxySettingsRadioButton->setVisible(false);
|
||||
_ui->globalDownloadSettingsRadioButton->setVisible(false);
|
||||
_ui->globalUploadSettingsRadioButton->setVisible(false);
|
||||
}
|
||||
|
||||
if (!Theme::instance()->doNotUseProxy()) {
|
||||
_ui->hostLineEdit->setPlaceholderText(tr("Hostname of proxy server"));
|
||||
_ui->userLineEdit->setPlaceholderText(tr("Username for proxy server"));
|
||||
@ -83,11 +77,9 @@ NetworkSettings::NetworkSettings(const AccountPtr &account, QWidget *parent)
|
||||
_ui->uploadSpinBox->setVisible(_ui->uploadLimitRadioButton->isChecked());
|
||||
_ui->uploadSpinBoxLabel->setVisible(_ui->uploadLimitRadioButton->isChecked());
|
||||
|
||||
connect(_ui->globalUploadSettingsRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
connect(_ui->uploadLimitRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
connect(_ui->noUploadLimitRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
connect(_ui->autoUploadLimitRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
connect(_ui->globalDownloadSettingsRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
connect(_ui->downloadLimitRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
connect(_ui->noDownloadLimitRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
connect(_ui->autoDownloadLimitRadioButton, &QAbstractButton::clicked, this, &NetworkSettings::saveBWLimitSettings);
|
||||
@ -116,34 +108,28 @@ void NetworkSettings::loadProxySettings()
|
||||
return;
|
||||
}
|
||||
|
||||
const auto useGlobalProxy = !_account || _account->networkProxySetting() == Account::AccountNetworkProxySetting::GlobalProxy;
|
||||
const auto cfgFile = ConfigFile();
|
||||
const auto proxyType = useGlobalProxy ? cfgFile.proxyType() : _account->proxyType();
|
||||
const auto proxyPort = useGlobalProxy ? cfgFile.proxyPort() : _account->proxyPort();
|
||||
const auto proxyHostName = useGlobalProxy ? cfgFile.proxyHostName() : _account->proxyHostName();
|
||||
const auto proxyNeedsAuth = useGlobalProxy ? cfgFile.proxyNeedsAuth() : _account->proxyNeedsAuth();
|
||||
const auto proxyUser = useGlobalProxy ? cfgFile.proxyUser() : _account->proxyUser();
|
||||
const auto proxyPassword = useGlobalProxy ? cfgFile.proxyPassword() : _account->proxyPassword();
|
||||
const auto proxyType = _account->proxyType();
|
||||
const auto proxyPort = _account->proxyPort();
|
||||
const auto proxyHostName = _account->proxyHostName();
|
||||
const auto proxyNeedsAuth = _account->proxyNeedsAuth();
|
||||
const auto proxyUser = _account->proxyUser();
|
||||
const auto proxyPassword = _account->proxyPassword();
|
||||
|
||||
// load current proxy settings
|
||||
if (_account && _account->networkProxySetting() == Account::AccountNetworkProxySetting::GlobalProxy) {
|
||||
_ui->globalProxySettingsRadioButton->setChecked(true);
|
||||
} else {
|
||||
switch (proxyType) {
|
||||
case QNetworkProxy::NoProxy:
|
||||
_ui->noProxyRadioButton->setChecked(true);
|
||||
break;
|
||||
case QNetworkProxy::DefaultProxy:
|
||||
_ui->systemProxyRadioButton->setChecked(true);
|
||||
break;
|
||||
case QNetworkProxy::Socks5Proxy:
|
||||
case QNetworkProxy::HttpProxy:
|
||||
_ui->typeComboBox->setCurrentIndex(_ui->typeComboBox->findData(proxyType));
|
||||
_ui->manualProxyRadioButton->setChecked(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
switch (proxyType) {
|
||||
case QNetworkProxy::NoProxy:
|
||||
_ui->noProxyRadioButton->setChecked(true);
|
||||
break;
|
||||
case QNetworkProxy::DefaultProxy:
|
||||
_ui->systemProxyRadioButton->setChecked(true);
|
||||
break;
|
||||
case QNetworkProxy::Socks5Proxy:
|
||||
case QNetworkProxy::HttpProxy:
|
||||
_ui->typeComboBox->setCurrentIndex(_ui->typeComboBox->findData(proxyType));
|
||||
_ui->manualProxyRadioButton->setChecked(true);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
_ui->hostLineEdit->setText(proxyHostName);
|
||||
@ -155,16 +141,12 @@ void NetworkSettings::loadProxySettings()
|
||||
|
||||
void NetworkSettings::loadBWLimitSettings()
|
||||
{
|
||||
const auto useGlobalLimit = !_account || _account->downloadLimitSetting() == Account::AccountNetworkTransferLimitSetting::GlobalLimit;
|
||||
const auto cfgFile = ConfigFile();
|
||||
const auto useDownloadLimit = useGlobalLimit ? cfgFile.useDownloadLimit() : static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(_account->downloadLimitSetting());
|
||||
const auto downloadLimit = useGlobalLimit ? cfgFile.downloadLimit() : _account->downloadLimit();
|
||||
const auto useUploadLimit = useGlobalLimit ? cfgFile.useUploadLimit() : static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(_account->uploadLimitSetting());
|
||||
const auto uploadLimit = useGlobalLimit ? cfgFile.uploadLimit() : _account->uploadLimit();
|
||||
const auto useDownloadLimit = static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(_account->downloadLimitSetting());
|
||||
const auto downloadLimit = _account->downloadLimit();
|
||||
const auto useUploadLimit = static_cast<std::underlying_type_t<Account::AccountNetworkTransferLimitSetting>>(_account->uploadLimitSetting());
|
||||
const auto uploadLimit = _account->uploadLimit();
|
||||
|
||||
if (_account && _account->downloadLimitSetting() == Account::AccountNetworkTransferLimitSetting::GlobalLimit) {
|
||||
_ui->globalDownloadSettingsRadioButton->setChecked(true);
|
||||
} else if (useDownloadLimit >= 1) {
|
||||
if (useDownloadLimit >= 1) {
|
||||
_ui->downloadLimitRadioButton->setChecked(true);
|
||||
} else if (useDownloadLimit == 0) {
|
||||
_ui->noDownloadLimitRadioButton->setChecked(true);
|
||||
@ -173,9 +155,7 @@ void NetworkSettings::loadBWLimitSettings()
|
||||
}
|
||||
_ui->downloadSpinBox->setValue(downloadLimit);
|
||||
|
||||
if (_account && _account->uploadLimitSetting() == Account::AccountNetworkTransferLimitSetting::GlobalLimit) {
|
||||
_ui->globalUploadSettingsRadioButton->setChecked(true);
|
||||
} else if (useUploadLimit >= 1) {
|
||||
if (useUploadLimit >= 1) {
|
||||
_ui->uploadLimitRadioButton->setChecked(true);
|
||||
} else if (useUploadLimit == 0) {
|
||||
_ui->noUploadLimitRadioButton->setChecked(true);
|
||||
@ -189,7 +169,6 @@ void NetworkSettings::saveProxySettings()
|
||||
{
|
||||
checkEmptyProxyHost();
|
||||
|
||||
const auto useGlobalProxy = _ui->globalProxySettingsRadioButton->isChecked();
|
||||
const auto user = _ui->userLineEdit->text();
|
||||
const auto password = _ui->passwordLineEdit->text();
|
||||
const auto host = _ui->hostLineEdit->text();
|
||||
@ -210,27 +189,10 @@ void NetworkSettings::saveProxySettings()
|
||||
}
|
||||
|
||||
if (_account) { // We must be setting up network proxy for a specific account
|
||||
const auto proxySetting = useGlobalProxy ? Account::AccountNetworkProxySetting::GlobalProxy : Account::AccountNetworkProxySetting::AccountSpecificProxy;
|
||||
_account->setProxySettings(proxySetting, proxyType, host, port, needsAuth, user, password);
|
||||
_account->setProxySettings(proxyType, host, port, needsAuth, user, password);
|
||||
const auto accountState = AccountManager::instance()->accountFromUserId(_account->userIdAtHostWithPort());
|
||||
accountState->freshConnectionAttempt();
|
||||
AccountManager::instance()->saveAccount(_account);
|
||||
} else {
|
||||
ConfigFile().setProxyType(proxyType, host, port, needsAuth, user, password);
|
||||
ClientProxy proxy;
|
||||
proxy.setupQtProxyFromConfig(); // Refresh the Qt proxy settings as the
|
||||
// quota check can happen all the time.
|
||||
|
||||
// ...and set the folders dirty, they refresh their proxy next time they
|
||||
// start the sync.
|
||||
FolderMan::instance()->setDirtyProxy();
|
||||
|
||||
const auto accounts = AccountManager::instance()->accounts();
|
||||
for (const auto &accountState : accounts) {
|
||||
if (accountState->account()->networkProxySetting() == Account::AccountNetworkProxySetting::GlobalProxy) {
|
||||
accountState->freshConnectionAttempt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -248,7 +210,7 @@ void NetworkSettings::saveBWLimitSettings()
|
||||
useDownloadLimit = 0;
|
||||
} else if (_ui->autoDownloadLimitRadioButton->isChecked()) {
|
||||
useDownloadLimit = -1;
|
||||
} else if (_account && _ui->globalDownloadSettingsRadioButton->isChecked()) {
|
||||
} else if (_account) {
|
||||
useDownloadLimit = -2;
|
||||
}
|
||||
|
||||
@ -258,7 +220,7 @@ void NetworkSettings::saveBWLimitSettings()
|
||||
useUploadLimit = 0;
|
||||
} else if (_ui->autoUploadLimitRadioButton->isChecked()) {
|
||||
useUploadLimit = -1;
|
||||
} else if (_account && _ui->globalUploadSettingsRadioButton->isChecked()) {
|
||||
} else if (_account) {
|
||||
useUploadLimit = -2;
|
||||
}
|
||||
|
||||
@ -268,12 +230,6 @@ void NetworkSettings::saveBWLimitSettings()
|
||||
_account->setUploadLimitSetting(static_cast<Account::AccountNetworkTransferLimitSetting>(useUploadLimit));
|
||||
_account->setUploadLimit(uploadLimit);
|
||||
AccountManager::instance()->saveAccount(_account);
|
||||
} else {
|
||||
ConfigFile cfg;
|
||||
cfg.setUseDownloadLimit(useDownloadLimit);
|
||||
cfg.setUseUploadLimit(useUploadLimit);
|
||||
cfg.setDownloadLimit(downloadLimit);
|
||||
cfg.setUploadLimit(uploadLimit);
|
||||
}
|
||||
|
||||
FolderMan::instance()->setDirtyNetworkLimits(_account);
|
||||
|
||||
@ -45,7 +45,33 @@
|
||||
<string>Proxy Settings</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="2" column="0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="noProxyRadioButton">
|
||||
<property name="text">
|
||||
<string>No proxy</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">proxyButtonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="systemProxyRadioButton">
|
||||
<property name="text">
|
||||
<string>Use system proxy</string>
|
||||
@ -55,7 +81,7 @@
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3">
|
||||
<item row="3" column="0" colspan="3">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||
<item>
|
||||
<widget class="QWidget" name="manualSettings" native="true">
|
||||
@ -90,7 +116,7 @@
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -211,7 +237,7 @@
|
||||
<string/>
|
||||
</property>
|
||||
<property name="echoMode">
|
||||
<enum>QLineEdit::Password</enum>
|
||||
<enum>QLineEdit::EchoMode::Password</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -231,7 +257,7 @@
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -243,7 +269,7 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QRadioButton" name="manualProxyRadioButton">
|
||||
<property name="text">
|
||||
<string>Manually specify proxy</string>
|
||||
@ -253,42 +279,6 @@
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QRadioButton" name="noProxyRadioButton">
|
||||
<property name="text">
|
||||
<string>No proxy</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">proxyButtonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="globalProxySettingsRadioButton">
|
||||
<property name="text">
|
||||
<string>Use global settings</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">proxyButtonGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -312,7 +302,7 @@
|
||||
<string>Download Bandwidth</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<property name="topMargin">
|
||||
@ -324,7 +314,14 @@
|
||||
<property name="verticalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="3" column="0">
|
||||
<widget class="QRadioButton" name="downloadLimitRadioButton">
|
||||
<property name="text">
|
||||
<string>Limit to</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="noDownloadLimitRadioButton">
|
||||
<property name="text">
|
||||
<string>No limit</string>
|
||||
@ -334,7 +331,17 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="autoDownloadLimitRadioButton">
|
||||
<property name="toolTip">
|
||||
<string>Limit to 3/4 of estimated bandwidth</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Limit automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QSpinBox" name="downloadSpinBox">
|
||||
@ -364,10 +371,10 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<item row="5" column="0">
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
@ -377,30 +384,6 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QRadioButton" name="downloadLimitRadioButton">
|
||||
<property name="text">
|
||||
<string>Limit to</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="autoDownloadLimitRadioButton">
|
||||
<property name="toolTip">
|
||||
<string>Limit to 3/4 of estimated bandwidth</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Limit automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="globalDownloadSettingsRadioButton">
|
||||
<property name="text">
|
||||
<string>Use global settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -416,7 +399,7 @@
|
||||
<string>Upload Bandwidth</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop</set>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
@ -431,47 +414,7 @@
|
||||
<property name="verticalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="autoUploadLimitRadioButton">
|
||||
<property name="toolTip">
|
||||
<string>Limit to 3/4 of estimated bandwidth</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Limit automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QRadioButton" name="uploadLimitRadioButton">
|
||||
<property name="text">
|
||||
<string>Limit to</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="noUploadLimitRadioButton">
|
||||
<property name="text">
|
||||
<string>No limit</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4" stretch="0,0">
|
||||
<item>
|
||||
<widget class="QSpinBox" name="uploadSpinBox">
|
||||
@ -504,19 +447,51 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QRadioButton" name="globalUploadSettingsRadioButton">
|
||||
<item row="2" column="0">
|
||||
<widget class="QRadioButton" name="uploadLimitRadioButton">
|
||||
<property name="text">
|
||||
<string>Use global settings</string>
|
||||
<string>Limit to</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="autoUploadLimitRadioButton">
|
||||
<property name="toolTip">
|
||||
<string>Limit to 3/4 of estimated bandwidth</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Limit automatically</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QRadioButton" name="noUploadLimitRadioButton">
|
||||
<property name="text">
|
||||
<string>No limit</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
<zorder>autoUploadLimitRadioButton</zorder>
|
||||
<zorder>uploadLimitRadioButton</zorder>
|
||||
<zorder>noUploadLimitRadioButton</zorder>
|
||||
<zorder>verticalSpacer_3</zorder>
|
||||
<zorder>globalUploadSettingsRadioButton</zorder>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
||||
@ -178,8 +178,7 @@ void OwncloudSetupWizard::slotCheckServer(const QString &urlString)
|
||||
account->networkAccessManager()->clearAccessCache();
|
||||
|
||||
// Lookup system proxy in a thread https://github.com/owncloud/client/issues/2993
|
||||
if ((ClientProxy::isUsingSystemDefault() && account->networkProxySetting() == Account::AccountNetworkProxySetting::GlobalProxy)
|
||||
|| account->proxyType() == QNetworkProxy::DefaultProxy) {
|
||||
if (ClientProxy::isUsingSystemDefault() || account->proxyType() == QNetworkProxy::DefaultProxy) {
|
||||
qCDebug(lcWizard) << "Trying to look up system proxy";
|
||||
ClientProxy::lookupSystemProxyAsync(account->url(), this, SLOT(slotSystemProxyLookupDone(QNetworkProxy)));
|
||||
} else {
|
||||
|
||||
@ -62,8 +62,7 @@ void ProxyAuthHandler::handleProxyAuthenticationRequired(
|
||||
|
||||
// If the user explicitly configured the proxy in the
|
||||
// network settings, don't ask about it.
|
||||
if ((account && (account->networkProxySetting() == Account::AccountNetworkProxySetting::GlobalProxy
|
||||
|| account->proxyType() == QNetworkProxy::HttpProxy
|
||||
if ((account && (account->proxyType() == QNetworkProxy::HttpProxy
|
||||
|| account->proxyType() == QNetworkProxy::Socks5Proxy))
|
||||
|| _configFile->proxyType() == QNetworkProxy::HttpProxy
|
||||
|| _configFile->proxyType() == QNetworkProxy::Socks5Proxy) {
|
||||
|
||||
@ -126,14 +126,7 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent)
|
||||
connect(AccountManager::instance(), &AccountManager::capabilitiesChanged, generalSettings, &GeneralSettings::loadUpdateChannelsList);
|
||||
#endif
|
||||
|
||||
QAction *networkAction = createColorAwareAction(QLatin1String(":/client/theme/network.svg"), tr("Network"));
|
||||
_actionGroup->addAction(networkAction);
|
||||
_toolBar->addAction(networkAction);
|
||||
auto *networkSettings = new NetworkSettings;
|
||||
_ui->stack->addWidget(networkSettings);
|
||||
|
||||
_actionGroupWidgets.insert(generalAction, generalSettings);
|
||||
_actionGroupWidgets.insert(networkAction, networkSettings);
|
||||
|
||||
const auto accountsList = AccountManager::instance()->accounts();
|
||||
for (const auto &account : accountsList) {
|
||||
|
||||
@ -1169,38 +1169,6 @@ void Account::updateDesktopEnterpriseChannel()
|
||||
}
|
||||
}
|
||||
|
||||
Account::AccountNetworkProxySetting Account::networkProxySetting() const
|
||||
{
|
||||
return _networkProxySetting;
|
||||
}
|
||||
|
||||
void Account::setNetworkProxySetting(const AccountNetworkProxySetting setting)
|
||||
{
|
||||
if (setting == _networkProxySetting) {
|
||||
return;
|
||||
}
|
||||
|
||||
_networkProxySetting = setting;
|
||||
if (setting == AccountNetworkProxySetting::AccountSpecificProxy) {
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setType(proxyType());
|
||||
proxy.setHostName(proxyHostName());
|
||||
proxy.setPort(proxyPort());
|
||||
proxy.setUser(proxyUser());
|
||||
proxy.setPassword(proxyPassword());
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
} else {
|
||||
const auto proxy = QNetworkProxy::applicationProxy();
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
setProxyType(proxy.type());
|
||||
setProxyHostName(proxy.hostName());
|
||||
setProxyPort(proxy.port());
|
||||
setProxyUser(proxy.user());
|
||||
setProxyPassword(proxy.password());
|
||||
}
|
||||
emit networkProxySettingChanged();
|
||||
}
|
||||
|
||||
QNetworkProxy::ProxyType Account::proxyType() const
|
||||
{
|
||||
return _proxyType;
|
||||
@ -1214,11 +1182,13 @@ void Account::setProxyType(QNetworkProxy::ProxyType proxyType)
|
||||
|
||||
_proxyType = proxyType;
|
||||
|
||||
if (networkProxySetting() == AccountNetworkProxySetting::AccountSpecificProxy) {
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setType(proxyType);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
}
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setType(proxyType);
|
||||
proxy.setHostName(proxyHostName());
|
||||
proxy.setPort(proxyPort());
|
||||
proxy.setUser(proxyUser());
|
||||
proxy.setPassword(proxyPassword());
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
|
||||
emit proxyTypeChanged();
|
||||
}
|
||||
@ -1236,11 +1206,9 @@ void Account::setProxyHostName(const QString &hostName)
|
||||
|
||||
_proxyHostName = hostName;
|
||||
|
||||
if (networkProxySetting() == AccountNetworkProxySetting::AccountSpecificProxy) {
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setHostName(hostName);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
}
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setHostName(hostName);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
|
||||
emit proxyHostNameChanged();
|
||||
}
|
||||
@ -1258,11 +1226,9 @@ void Account::setProxyPort(const int port)
|
||||
|
||||
_proxyPort = port;
|
||||
|
||||
if (networkProxySetting() == AccountNetworkProxySetting::AccountSpecificProxy) {
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setPort(port);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
}
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setPort(port);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
|
||||
emit proxyPortChanged();
|
||||
}
|
||||
@ -1295,11 +1261,9 @@ void Account::setProxyUser(const QString &user)
|
||||
|
||||
_proxyUser = user;
|
||||
|
||||
if (networkProxySetting() == AccountNetworkProxySetting::AccountSpecificProxy) {
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setUser(user);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
}
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setUser(user);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
|
||||
emit proxyUserChanged();
|
||||
}
|
||||
@ -1317,35 +1281,26 @@ void Account::setProxyPassword(const QString &password)
|
||||
|
||||
_proxyPassword = password;
|
||||
|
||||
if (networkProxySetting() == AccountNetworkProxySetting::AccountSpecificProxy) {
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setPassword(password);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
}
|
||||
auto proxy = _networkAccessManager->proxy();
|
||||
proxy.setPassword(password);
|
||||
_networkAccessManager->setProxy(proxy);
|
||||
|
||||
emit proxyPasswordChanged();
|
||||
}
|
||||
|
||||
void Account::setProxySettings(const AccountNetworkProxySetting networkProxySetting,
|
||||
const QNetworkProxy::ProxyType proxyType,
|
||||
void Account::setProxySettings(const QNetworkProxy::ProxyType proxyType,
|
||||
const QString &hostName,
|
||||
const int port,
|
||||
const bool needsAuth,
|
||||
const QString &user,
|
||||
const QString &password)
|
||||
{
|
||||
if (networkProxySetting == AccountNetworkProxySetting::GlobalProxy) {
|
||||
setNetworkProxySetting(networkProxySetting);
|
||||
return;
|
||||
}
|
||||
|
||||
setProxyType(proxyType);
|
||||
setProxyHostName(hostName);
|
||||
setProxyPort(port);
|
||||
setProxyNeedsAuth(needsAuth);
|
||||
setProxyUser(user);
|
||||
setProxyPassword(password);
|
||||
setNetworkProxySetting(networkProxySetting);
|
||||
}
|
||||
|
||||
Account::AccountNetworkTransferLimitSetting Account::uploadLimitSetting() const
|
||||
|
||||
@ -82,7 +82,6 @@ class OWNCLOUDSYNC_EXPORT Account : public QObject
|
||||
Q_PROPERTY(QUrl url MEMBER _url)
|
||||
Q_PROPERTY(bool e2eEncryptionKeysGenerationAllowed MEMBER _e2eEncryptionKeysGenerationAllowed)
|
||||
Q_PROPERTY(bool askUserForMnemonic READ askUserForMnemonic WRITE setAskUserForMnemonic NOTIFY askUserForMnemonicChanged)
|
||||
Q_PROPERTY(AccountNetworkProxySetting networkProxySetting READ networkProxySetting WRITE setNetworkProxySetting NOTIFY networkProxySettingChanged)
|
||||
Q_PROPERTY(QNetworkProxy::ProxyType proxyType READ proxyType WRITE setProxyType NOTIFY proxyTypeChanged)
|
||||
Q_PROPERTY(QString proxyHostName READ proxyHostName WRITE setProxyHostName NOTIFY proxyHostNameChanged)
|
||||
Q_PROPERTY(int proxyPort READ proxyPort WRITE setProxyPort NOTIFY proxyPortChanged)
|
||||
@ -98,17 +97,8 @@ class OWNCLOUDSYNC_EXPORT Account : public QObject
|
||||
Q_PROPERTY(QByteArray encryptionCertificateFingerprint READ encryptionCertificateFingerprint WRITE setEncryptionCertificateFingerprint NOTIFY encryptionCertificateFingerprintChanged)
|
||||
|
||||
public:
|
||||
// We need to decide whether to use the client's global proxy settings or whether to use
|
||||
// a specific setting for each account. Hence this enum
|
||||
enum class AccountNetworkProxySetting {
|
||||
GlobalProxy = 0,
|
||||
AccountSpecificProxy,
|
||||
};
|
||||
Q_ENUM(AccountNetworkProxySetting)
|
||||
|
||||
enum class AccountNetworkTransferLimitSetting {
|
||||
GlobalLimit = -2,
|
||||
AutoLimit, // Value under 0 is interpreted as auto in general
|
||||
AutoLimit = -1, // Value under 0 is interpreted as auto in general
|
||||
NoLimit,
|
||||
ManualLimit,
|
||||
};
|
||||
@ -366,9 +356,6 @@ public:
|
||||
void updateDesktopEnterpriseChannel();
|
||||
|
||||
// Network-related settings
|
||||
[[nodiscard]] AccountNetworkProxySetting networkProxySetting() const;
|
||||
void setNetworkProxySetting(AccountNetworkProxySetting networkProxySetting);
|
||||
|
||||
[[nodiscard]] QNetworkProxy::ProxyType proxyType() const;
|
||||
void setProxyType(QNetworkProxy::ProxyType proxyType);
|
||||
|
||||
@ -387,8 +374,7 @@ public:
|
||||
[[nodiscard]] QString proxyPassword() const;
|
||||
void setProxyPassword(const QString &password);
|
||||
|
||||
void setProxySettings(const AccountNetworkProxySetting networkProxySetting,
|
||||
const QNetworkProxy::ProxyType proxyType,
|
||||
void setProxySettings(const QNetworkProxy::ProxyType proxyType,
|
||||
const QString &proxyHostName,
|
||||
const int proxyPort,
|
||||
const bool proxyNeedsAuth,
|
||||
@ -558,15 +544,14 @@ private:
|
||||
|
||||
QHash<QString, QVector<SyncFileItem::LockStatus>> _lockStatusChangeInprogress;
|
||||
|
||||
AccountNetworkProxySetting _networkProxySetting = AccountNetworkProxySetting::GlobalProxy;
|
||||
QNetworkProxy::ProxyType _proxyType = QNetworkProxy::NoProxy;
|
||||
QString _proxyHostName;
|
||||
int _proxyPort = 0;
|
||||
bool _proxyNeedsAuth = false;
|
||||
QString _proxyUser;
|
||||
QString _proxyPassword;
|
||||
AccountNetworkTransferLimitSetting _uploadLimitSetting = AccountNetworkTransferLimitSetting::GlobalLimit;
|
||||
AccountNetworkTransferLimitSetting _downloadLimitSetting = AccountNetworkTransferLimitSetting::GlobalLimit;
|
||||
AccountNetworkTransferLimitSetting _uploadLimitSetting = AccountNetworkTransferLimitSetting::NoLimit;
|
||||
AccountNetworkTransferLimitSetting _downloadLimitSetting = AccountNetworkTransferLimitSetting::NoLimit;
|
||||
unsigned int _uploadLimit = 0;
|
||||
unsigned int _downloadLimit = 0;
|
||||
bool _serverHasValidSubscription = false;
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
*/
|
||||
|
||||
#include "clientproxy.h"
|
||||
|
||||
#include "configfile.h"
|
||||
|
||||
#include <QLoggingCategory>
|
||||
#include <QUrl>
|
||||
#include <QThreadPool>
|
||||
@ -147,6 +147,19 @@ void ClientProxy::saveProxyConfigurationFromSettings(const QSettings &settings)
|
||||
settings.value(QLatin1String(proxyPassC)).toString());
|
||||
}
|
||||
|
||||
void ClientProxy::cleanupGlobalNetworkConfiguration()
|
||||
{
|
||||
OCC::ConfigFile configFile;
|
||||
QSettings settings(configFile.configFile(), QSettings::IniFormat);
|
||||
settings.remove(proxyTypeC);
|
||||
settings.remove(proxyHostC);
|
||||
settings.remove(proxyPortC);
|
||||
settings.remove(proxyUserC);
|
||||
settings.remove(proxyPassC);
|
||||
settings.remove(proxyNeedsAuthC);
|
||||
settings.sync();
|
||||
}
|
||||
|
||||
void ClientProxy::lookupSystemProxyAsync(const QUrl &url, QObject *dst, const char *slot)
|
||||
{
|
||||
auto *runnable = new SystemProxyRunnable(url);
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
#include <csync.h>
|
||||
#include "common/utility.h"
|
||||
#include "owncloudlib.h"
|
||||
#include "account.h"
|
||||
|
||||
namespace OCC {
|
||||
|
||||
@ -39,6 +40,7 @@ public:
|
||||
public slots:
|
||||
void setupQtProxyFromConfig();
|
||||
void saveProxyConfigurationFromSettings(const QSettings &settings);
|
||||
void cleanupGlobalNetworkConfiguration();
|
||||
};
|
||||
|
||||
class OWNCLOUDSYNC_EXPORT SystemProxyRunnable : public QObject, public QRunnable
|
||||
|
||||
@ -448,6 +448,16 @@ void OCC::ConfigFile::cleanUpdaterConfiguration()
|
||||
settings.sync();
|
||||
}
|
||||
|
||||
void OCC::ConfigFile::cleanupGlobalNetworkConfiguration()
|
||||
{
|
||||
QSettings settings(configFile(), QSettings::IniFormat);
|
||||
settings.remove(useUploadLimitC);
|
||||
settings.remove(useDownloadLimitC);
|
||||
settings.remove(uploadLimitC);
|
||||
settings.remove(downloadLimitC);
|
||||
settings.sync();
|
||||
}
|
||||
|
||||
QString ConfigFile::backup(const QString &fileName) const
|
||||
{
|
||||
const QString baseFilePath = configPath() + fileName;
|
||||
|
||||
@ -41,6 +41,7 @@ public:
|
||||
static QString excludeFileFromSystem(); // doesn't access config dir
|
||||
|
||||
void cleanUpdaterConfiguration();
|
||||
void cleanupGlobalNetworkConfiguration();
|
||||
|
||||
/**
|
||||
* Creates a backup of any given fileName in the config folder
|
||||
|
||||
Loading…
Reference in New Issue
Block a user