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;