diff --git a/syncthingwidgets/settings/connectionoptionpage.ui b/syncthingwidgets/settings/connectionoptionpage.ui
index 65939bb..eff4c8c 100644
--- a/syncthingwidgets/settings/connectionoptionpage.ui
+++ b/syncthingwidgets/settings/connectionoptionpage.ui
@@ -165,48 +165,35 @@
- -
-
-
-
- 0
- 0
-
-
-
- Qt::Horizontal
-
-
-
- -
+
-
Syncthing URL
- -
+
-
"http://host:port/…" or "https://host:port/…", e.g. "http://127.0.0.1:8384" for local instance with default settings
- -
+
-
Authentication
- -
+
-
Supply credentials for HTTP authentication (normally the API key is sufficient)
- -
+
-
false
@@ -216,14 +203,14 @@
- -
+
-
false
- -
+
-
false
@@ -233,7 +220,7 @@
- -
+
-
false
@@ -243,14 +230,14 @@
- -
+
-
HTTPS certificate
- -
+
-
@@ -260,7 +247,7 @@
- -
+
-
0
@@ -305,7 +292,7 @@
- -
+
-
@@ -318,7 +305,7 @@
- -
+
-
Poll interval
@@ -328,7 +315,7 @@
- -
+
-
10
@@ -468,7 +455,7 @@
- -
+
-
Whether to connect automatically on startup. This setting might be overruled by systemd and launcher settings.
@@ -478,7 +465,7 @@
- -
+
-
Overall status
@@ -488,7 +475,7 @@
- -
+
-
2
@@ -533,21 +520,21 @@
- -
+
-
Current status
- -
+
-
disconnected
- -
+
-
@@ -564,28 +551,28 @@
- -
+
-
API key
- -
+
-
The API key displayed in Syncthing's settings dialog
- -
-
+
-
+
Transfer timeout
- -
+
-
no timeout
@@ -604,6 +591,29 @@
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Show advanced configuration
+
+
+ false
+
+
+
diff --git a/syncthingwidgets/settings/settingsdialog.cpp b/syncthingwidgets/settings/settingsdialog.cpp
index 2b5687e..0df7079 100644
--- a/syncthingwidgets/settings/settingsdialog.cpp
+++ b/syncthingwidgets/settings/settingsdialog.cpp
@@ -71,6 +71,7 @@
#include
#include
+#include
using namespace std;
using namespace std::placeholders;
@@ -131,9 +132,11 @@ QWidget *ConnectionOptionPage::setupWidget()
QObject::connect(ui()->upPushButton, &QPushButton::clicked, bind(&ConnectionOptionPage::moveSelectedConfigUp, this));
QObject::connect(ui()->addPushButton, &QPushButton::clicked, bind(&ConnectionOptionPage::addNewConfig, this));
QObject::connect(ui()->removePushButton, &QPushButton::clicked, bind(&ConnectionOptionPage::removeSelectedConfig, this));
+ QObject::connect(ui()->advancedCheckBox, &QCheckBox::toggled, bind(&ConnectionOptionPage::toggleAdvancedSettings, this, std::placeholders::_1));
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0))
ui()->timeoutSpinBox->setEnabled(false);
#endif
+ toggleAdvancedSettings(false);
return widget;
}
@@ -355,6 +358,19 @@ void ConnectionOptionPage::setCurrentIndex(int currentIndex)
ui()->upPushButton->setEnabled(currentIndex > 0 && static_cast(currentIndex) - 1 < m_secondarySettings.size());
}
+void ConnectionOptionPage::toggleAdvancedSettings(bool show)
+{
+ if (!ui()) {
+ return;
+ }
+ for (auto *const widget : std::initializer_list{ ui()->authLabel, ui()->authCheckBox, ui()->userNameLabel, ui()->userNameLineEdit,
+ ui()->passwordLabel, ui()->passwordLineEdit, ui()->timeoutLabel, ui()->timeoutSpinBox, ui()->pollLabel, ui()->pollDevStatsLabel,
+ ui()->pollDevStatsSpinBox, ui()->pollErrorsLabel, ui()->pollErrorsSpinBox, ui()->pollTrafficLabel, ui()->pollTrafficSpinBox,
+ ui()->reconnectLabel, ui()->reconnectSpinBox }) {
+ widget->setVisible(show);
+ }
+}
+
bool ConnectionOptionPage::apply()
{
if (!cacheCurrentSettings(true)) {
@@ -1632,8 +1648,8 @@ SettingsDialog::SettingsDialog(Data::SyncthingConnection *connection, QWidget *p
category = new OptionCategory(this);
translateCategory(category, [] { return tr("Tray"); });
category->assignPages({ m_connectionsOptionPage = new ConnectionOptionPage(connection), new NotificationsOptionPage,
- m_appearanceOptionPage = new AppearanceOptionPage, new IconsOptionPage(IconsOptionPage::Context::UI),
- new IconsOptionPage(IconsOptionPage::Context::System) });
+ m_appearanceOptionPage = new AppearanceOptionPage, new IconsOptionPage(IconsOptionPage::Context::UI),
+ new IconsOptionPage(IconsOptionPage::Context::System) });
category->setIcon(QIcon(QStringLiteral(":/icons/hicolor/scalable/app/syncthingtray.svg")));
categories << category;
diff --git a/syncthingwidgets/settings/settingsdialog.h b/syncthingwidgets/settings/settingsdialog.h
index 850ac7c..89a3196 100644
--- a/syncthingwidgets/settings/settingsdialog.h
+++ b/syncthingwidgets/settings/settingsdialog.h
@@ -68,6 +68,7 @@ void removeSelectedConfig();
void moveSelectedConfigDown();
void moveSelectedConfigUp();
void setCurrentIndex(int currentIndex);
+void toggleAdvancedSettings(bool show);
Data::SyncthingConnection *m_connection;
Data::SyncthingConnectionSettings m_primarySettings;
std::vector m_secondarySettings;