fix: (ui), ServerConfigDialog enable spinboxes and controls that depend on another option being enabled example being the heatbeat spinbox if heatbeat is enabled

This commit is contained in:
sithlord48 2025-06-01 12:43:23 -04:00 committed by Nick Bolton
parent 0096283779
commit 7e4d43f1cc
2 changed files with 102 additions and 87 deletions

View file

@ -67,8 +67,6 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config)
ui->btnBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen)); ui->btnBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen));
ui->lineConfigFile->setText(serverConfig().configFile()); ui->lineConfigFile->setText(serverConfig().configFile());
ui->groupExternalConfig->setChecked(serverConfig().useExternalConfig());
ui->rbProtocolSynergy->setChecked(serverConfig().protocol() == ServerProtocol::kSynergy); ui->rbProtocolSynergy->setChecked(serverConfig().protocol() == ServerProtocol::kSynergy);
ui->rbProtocolBarrier->setChecked(serverConfig().protocol() == ServerProtocol::kBarrier); ui->rbProtocolBarrier->setChecked(serverConfig().protocol() == ServerProtocol::kBarrier);
connect(ui->rbProtocolBarrier, &QRadioButton::toggled, this, &ServerConfigDialog::toggleProtocol); connect(ui->rbProtocolBarrier, &QRadioButton::toggled, this, &ServerConfigDialog::toggleProtocol);
@ -76,6 +74,7 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config)
ui->cbHeartbeat->setChecked(serverConfig().hasHeartbeat()); ui->cbHeartbeat->setChecked(serverConfig().hasHeartbeat());
connect(ui->cbHeartbeat, &QCheckBox::toggled, this, &ServerConfigDialog::toggleHeartbeat); connect(ui->cbHeartbeat, &QCheckBox::toggled, this, &ServerConfigDialog::toggleHeartbeat);
ui->sbHeartbeat->setEnabled(ui->cbHeartbeat->isChecked());
ui->sbHeartbeat->setValue(serverConfig().heartbeat()); ui->sbHeartbeat->setValue(serverConfig().heartbeat());
connect(ui->sbHeartbeat, QOverload<int>::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setHeartbeat); connect(ui->sbHeartbeat, QOverload<int>::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setHeartbeat);
@ -90,12 +89,14 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config)
ui->cbSwitchDelay->setChecked(serverConfig().hasSwitchDelay()); ui->cbSwitchDelay->setChecked(serverConfig().hasSwitchDelay());
connect(ui->cbSwitchDelay, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDelay); connect(ui->cbSwitchDelay, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDelay);
ui->sbSwitchDelay->setEnabled(ui->cbSwitchDelay->isChecked());
ui->sbSwitchDelay->setValue(serverConfig().switchDelay()); ui->sbSwitchDelay->setValue(serverConfig().switchDelay());
connect(ui->sbSwitchDelay, QOverload<int>::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchDelay); connect(ui->sbSwitchDelay, QOverload<int>::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchDelay);
ui->cbSwitchDoubleTap->setChecked(serverConfig().hasSwitchDoubleTap()); ui->cbSwitchDoubleTap->setChecked(serverConfig().hasSwitchDoubleTap());
connect(ui->cbSwitchDoubleTap, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDoubleTap); connect(ui->cbSwitchDoubleTap, &QCheckBox::toggled, this, &ServerConfigDialog::toggleSwitchDoubleTap);
ui->sbSwitchDoubleTap->setEnabled(ui->cbSwitchDoubleTap->isChecked());
ui->sbSwitchDoubleTap->setValue(serverConfig().switchDoubleTap()); ui->sbSwitchDoubleTap->setValue(serverConfig().switchDoubleTap());
connect( connect(
ui->sbSwitchDoubleTap, QOverload<int>::of(&QSpinBox::valueChanged), this, &ServerConfigDialog::setSwitchDoubleTap ui->sbSwitchDoubleTap, QOverload<int>::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->cbRelativeMouseMoves, &QCheckBox::toggled, this, &ServerConfigDialog::toggleRelativeMouseMoves);
connect(ui->cbEnableClipboard, &QCheckBox::toggled, this, &ServerConfigDialog::toggleClipboard); connect(ui->cbEnableClipboard, &QCheckBox::toggled, this, &ServerConfigDialog::toggleClipboard);
connect(ui->groupExternalConfig, &QGroupBox::toggled, this, &ServerConfigDialog::toggleExternalConfig);
connect(ui->btnBrowseConfigFile, &QPushButton::clicked, this, &ServerConfigDialog::browseConfigFile); 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( connect(
ui->sbSwitchCornerSize, QOverload<int>::of(&QSpinBox::valueChanged), this, ui->sbSwitchCornerSize, QOverload<int>::of(&QSpinBox::valueChanged), this,
&ServerConfigDialog::setSwitchCornerSize &ServerConfigDialog::setSwitchCornerSize
@ -445,10 +452,7 @@ void ServerConfigDialog::onScreenRemoved()
void ServerConfigDialog::toggleExternalConfig(bool checked) void ServerConfigDialog::toggleExternalConfig(bool checked)
{ {
ui->labelConfigFile->setEnabled(checked); ui->widgetExternalConfigControls->setEnabled(checked);
ui->lineConfigFile->setEnabled(checked);
ui->btnBrowseConfigFile->setEnabled(checked);
ui->tabWidget->setTabEnabled(0, !checked); ui->tabWidget->setTabEnabled(0, !checked);
ui->tabWidget->setTabEnabled(1, !checked); ui->tabWidget->setTabEnabled(1, !checked);
ui->tabWidget->setTabEnabled(2, !checked); ui->tabWidget->setTabEnabled(2, !checked);

View file

@ -903,10 +903,25 @@ Enabling this setting will disable the server config GUI.</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QLabel" name="labelConfigFile"> <widget class="QWidget" name="widgetExternalConfigControls" native="true">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="labelConfigFile">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred"> <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -942,9 +957,6 @@ Enabling this setting will disable the server config GUI.</string>
</item> </item>
<item> <item>
<widget class="QLineEdit" name="lineConfigFile"> <widget class="QLineEdit" name="lineConfigFile">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -961,9 +973,6 @@ Enabling this setting will disable the server config GUI.</string>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnBrowseConfigFile"> <widget class="QPushButton" name="btnBrowseConfigFile">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -990,6 +999,9 @@ Enabling this setting will disable the server config GUI.</string>
</layout> </layout>
</widget> </widget>
</item> </item>
</layout>
</widget>
</item>
<item> <item>
<spacer name="verticalSpacer_1"> <spacer name="verticalSpacer_1">
<property name="orientation"> <property name="orientation">
@ -1057,7 +1069,6 @@ Enabling this setting will disable the server config GUI.</string>
<tabstop>sbHeartbeat</tabstop> <tabstop>sbHeartbeat</tabstop>
<tabstop>cbRelativeMouseMoves</tabstop> <tabstop>cbRelativeMouseMoves</tabstop>
<tabstop>sbSwitchCornerSize</tabstop> <tabstop>sbSwitchCornerSize</tabstop>
<tabstop>lineConfigFile</tabstop>
<tabstop>tabWidget</tabstop> <tabstop>tabWidget</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>