Skip to content

Commit

Permalink
Network Settings: Show a warning that proxy settings do not apply to …
Browse files Browse the repository at this point in the history
…localhost

Only show this if at least one account is detected to have an url that looks
like localhost, because this could otherwise be confusing

Issue #7169
  • Loading branch information
ogoffart committed Oct 21, 2019
1 parent fed210c commit a6c2beb
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 9 deletions.
22 changes: 22 additions & 0 deletions src/gui/networksettings.cpp
Expand Up @@ -55,6 +55,8 @@ NetworkSettings::NetworkSettings(QWidget *parent)
_ui->manualSettings, &QWidget::setEnabled);
connect(_ui->manualProxyRadioButton, &QAbstractButton::toggled,
_ui->typeComboBox, &QWidget::setEnabled);
connect(_ui->manualProxyRadioButton, &QAbstractButton::toggled,
this, &NetworkSettings::checkAccountLocalhost);

loadProxySettings();
loadBWLimitSettings();
Expand All @@ -80,6 +82,7 @@ NetworkSettings::NetworkSettings(QWidget *parent)
// Warn about empty proxy host
connect(_ui->hostLineEdit, &QLineEdit::textChanged, this, &NetworkSettings::checkEmptyProxyHost);
checkEmptyProxyHost();
checkAccountLocalhost();
}

NetworkSettings::~NetworkSettings()
Expand Down Expand Up @@ -229,8 +232,27 @@ void NetworkSettings::showEvent(QShowEvent *event)
checkEmptyProxyHost();
saveProxySettings();
}
checkAccountLocalhost();

QWidget::showEvent(event);
}


void NetworkSettings::checkAccountLocalhost()
{
bool visible = false;
if (_ui->manualProxyRadioButton->isChecked()) {
// Check if at least one account is using localhost, because Qt proxy settings have no
// effect for localhost (#7169)
for (const auto &account : AccountManager::instance()->accounts()) {
const auto host = account->account()->url().host();
// Some typical url for localhost
if (host == "localhost" || host.startsWith("127.") || host == "[::1]")
visible = true;
}
}
_ui->labelLocalhost->setVisible(visible);
}


} // namespace OCC
2 changes: 2 additions & 0 deletions src/gui/networksettings.h
Expand Up @@ -44,6 +44,8 @@ private slots:
/// Red marking of host field if empty and enabled
void checkEmptyProxyHost();

void checkAccountLocalhost();

protected:
void showEvent(QShowEvent *event) override;

Expand Down
25 changes: 16 additions & 9 deletions src/gui/networksettings.ui
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>542</width>
<height>396</height>
<width>623</width>
<height>581</height>
</rect>
</property>
<property name="windowTitle">
Expand All @@ -23,6 +23,13 @@
<string>Proxy Settings</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="1">
<widget class="QComboBox" name="typeComboBox">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QRadioButton" name="noProxyRadioButton">
<property name="text">
Expand Down Expand Up @@ -56,13 +63,6 @@
</attribute>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="typeComboBox">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="QWidget" name="manualSettings" native="true">
<property name="enabled">
Expand Down Expand Up @@ -170,6 +170,13 @@
</layout>
</widget>
</item>
<item>
<widget class="QLabel" name="labelLocalhost">
<property name="text">
<string>Note: proxy settings have no effects for accounts on localhost</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
Expand Down

0 comments on commit a6c2beb

Please sign in to comment.