From 7e4d43f1cc70c54c18f2b235abe0528e863a9956 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Sun, 1 Jun 2025 12:43:23 -0400 Subject: [PATCH] fix: (ui), ServerConfigDialog enable spinboxes and controls that depend on another option being enabled example being the heatbeat spinbox if heatbeat is enabled --- src/lib/gui/dialogs/ServerConfigDialog.cpp | 18 ++- src/lib/gui/dialogs/ServerConfigDialog.ui | 171 +++++++++++---------- 2 files changed, 102 insertions(+), 87 deletions(-) diff --git a/src/lib/gui/dialogs/ServerConfigDialog.cpp b/src/lib/gui/dialogs/ServerConfigDialog.cpp index c05223235..b31195d59 100644 --- a/src/lib/gui/dialogs/ServerConfigDialog.cpp +++ b/src/lib/gui/dialogs/ServerConfigDialog.cpp @@ -67,8 +67,6 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config) ui->btnBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen)); ui->lineConfigFile->setText(serverConfig().configFile()); - ui->groupExternalConfig->setChecked(serverConfig().useExternalConfig()); - ui->rbProtocolSynergy->setChecked(serverConfig().protocol() == ServerProtocol::kSynergy); ui->rbProtocolBarrier->setChecked(serverConfig().protocol() == ServerProtocol::kBarrier); connect(ui->rbProtocolBarrier, &QRadioButton::toggled, this, &ServerConfigDialog::toggleProtocol); @@ -76,6 +74,7 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config) ui->cbHeartbeat->setChecked(serverConfig().hasHeartbeat()); connect(ui->cbHeartbeat, &QCheckBox::toggled, this, &ServerConfigDialog::toggleHeartbeat); + ui->sbHeartbeat->setEnabled(ui->cbHeartbeat->isChecked()); ui->sbHeartbeat->setValue(serverConfig().heartbeat()); connect(ui->sbHeartbeat, QOverload::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setHeartbeat); @@ -90,12 +89,14 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config) ui->cbSwitchDelay->setChecked(serverConfig().hasSwitchDelay()); connect(ui->cbSwitchDelay, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDelay); + ui->sbSwitchDelay->setEnabled(ui->cbSwitchDelay->isChecked()); ui->sbSwitchDelay->setValue(serverConfig().switchDelay()); connect(ui->sbSwitchDelay, QOverload::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchDelay); ui->cbSwitchDoubleTap->setChecked(serverConfig().hasSwitchDoubleTap()); connect(ui->cbSwitchDoubleTap, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDoubleTap); + ui->sbSwitchDoubleTap->setEnabled(ui->cbSwitchDoubleTap->isChecked()); ui->sbSwitchDoubleTap->setValue(serverConfig().switchDoubleTap()); connect( ui->sbSwitchDoubleTap, QOverload::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchDoubleTap @@ -104,9 +105,15 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config) connect(ui->cbRelativeMouseMoves, &QCheckBox::toggled, this, &ServerConfigDialog::toggleRelativeMouseMoves); connect(ui->cbEnableClipboard, &QCheckBox::toggled, this, &ServerConfigDialog::toggleClipboard); - connect(ui->groupExternalConfig, &QGroupBox::toggled, this, &ServerConfigDialog::toggleExternalConfig); connect(ui->btnBrowseConfigFile, &QPushButton::clicked, this, &ServerConfigDialog::browseConfigFile); + ui->groupExternalConfig->setChecked(serverConfig().useExternalConfig()); + ui->widgetExternalConfigControls->setEnabled(ui->groupExternalConfig->isChecked()); + ui->tabWidget->setTabEnabled(0, !ui->groupExternalConfig->isChecked()); + ui->tabWidget->setTabEnabled(1, !ui->groupExternalConfig->isChecked()); + ui->tabWidget->setTabEnabled(2, !ui->groupExternalConfig->isChecked()); + connect(ui->groupExternalConfig, &QGroupBox::toggled, this, &ServerConfigDialog::toggleExternalConfig); + connect( ui->sbSwitchCornerSize, QOverload::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchCornerSize @@ -445,10 +452,7 @@ void ServerConfigDialog::onScreenRemoved() void ServerConfigDialog::toggleExternalConfig(bool checked) { - ui->labelConfigFile->setEnabled(checked); - ui->lineConfigFile->setEnabled(checked); - ui->btnBrowseConfigFile->setEnabled(checked); - + ui->widgetExternalConfigControls->setEnabled(checked); ui->tabWidget->setTabEnabled(0, !checked); ui->tabWidget->setTabEnabled(1, !checked); ui->tabWidget->setTabEnabled(2, !checked); diff --git a/src/lib/gui/dialogs/ServerConfigDialog.ui b/src/lib/gui/dialogs/ServerConfigDialog.ui index f89c11fb0..1ab7c7cbf 100644 --- a/src/lib/gui/dialogs/ServerConfigDialog.ui +++ b/src/lib/gui/dialogs/ServerConfigDialog.ui @@ -903,88 +903,100 @@ Enabling this setting will disable the server config GUI. - + false - - - 0 - 0 - - - - - 96 - 0 - - - - Config file path - - - - - - - Qt::Orientation::Horizontal - - - QSizePolicy::Policy::Fixed - - - - 13 - 20 - - - - - - - - false - - - - 0 - 0 - - - - - 180 - 0 - - - - - - - - false - - - - 0 - 0 - - - - - 0 - 0 - - - - PointingHandCursor - - - - - - true - + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 96 + 0 + + + + Config file path + + + + + + + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Fixed + + + + 13 + 20 + + + + + + + + + 0 + 0 + + + + + 180 + 0 + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + PointingHandCursor + + + + + + true + + + + @@ -1057,7 +1069,6 @@ Enabling this setting will disable the server config GUI. sbHeartbeat cbRelativeMouseMoves sbSwitchCornerSize - lineConfigFile tabWidget