refactor: settings gui, use the service group as a checkbox for enable service

This commit is contained in:
sithlord48
2025-04-02 17:32:07 -04:00
committed by Chris Rizzitello
parent 1ace03d4b5
commit 487030aade
2 changed files with 13 additions and 29 deletions

View File

@ -62,7 +62,7 @@ void SettingsDialog::initConnections()
connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
connect(ui->groupSecurity, &QGroupBox::toggled, this, &SettingsDialog::updateTlsControlsEnabled);
connect(ui->cbServiceEnabled, &QCheckBox::toggled, this, &SettingsDialog::updateControls);
connect(ui->groupService, &QGroupBox::toggled, this, &SettingsDialog::updateControls);
connect(ui->btnTlsRegenCert, &QPushButton::clicked, this, &SettingsDialog::regenCertificates);
connect(ui->comboTlsKeyLength, &QComboBox::currentIndexChanged, this, &SettingsDialog::updateRequestedKeySize);
connect(ui->btnTlsCertPath, &QPushButton::clicked, this, &SettingsDialog::browseCertificatePath);
@ -146,7 +146,7 @@ void SettingsDialog::accept()
Settings::setValue(Settings::Security::CheckPeers, ui->cbRequireClientCert->isChecked());
Settings::ProcessMode mode;
if (ui->cbServiceEnabled->isChecked())
if (ui->groupService->isChecked())
mode = Settings::ProcessMode::Service;
else
mode = Settings::ProcessMode::Desktop;
@ -171,7 +171,7 @@ void SettingsDialog::loadFromConfig()
ui->cbAutoUpdate->setChecked(Settings::value(Settings::Gui::AutoUpdateCheck).toBool());
const auto processMode = Settings::value(Settings::Core::ProcessMode).value<Settings::ProcessMode>();
ui->cbServiceEnabled->setChecked(processMode == Settings::ProcessMode::Service);
ui->groupService->setChecked(processMode == Settings::ProcessMode::Service);
if (Settings::value(Settings::Gui::SymbolicTrayIcon).toBool())
ui->rbIconMono->setChecked(true);
@ -249,7 +249,7 @@ void SettingsDialog::updateKeyLengthOnFile(const QString &path)
void SettingsDialog::updateControls()
{
const bool writable = Settings::isWritable();
const bool serviceChecked = ui->cbServiceEnabled->isChecked();
const bool serviceChecked = ui->groupService->isChecked();
const bool logToFile = ui->cbLogToFile->isChecked();
ui->sbPort->setEnabled(writable);
@ -265,7 +265,7 @@ void SettingsDialog::updateControls()
// Handle enable and disable of service items
if (Settings::isNativeMode()) {
ui->cbServiceEnabled->setEnabled(writable);
ui->groupService->setEnabled(writable);
ui->widgetElevate->setEnabled(writable && serviceChecked);
} else if (ui->groupService->isVisibleTo(ui->tabAdvanced)) {
ui->groupService->setVisible(false);

View File

@ -23,7 +23,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="tabRegular">
<property name="sizePolicy">
@ -548,31 +548,16 @@
</sizepolicy>
</property>
<property name="title">
<string>Service</string>
<string>Use background service (daemon)</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="_6">
<item row="0" column="0">
<widget class="QCheckBox" name="cbServiceEnabled">
<property name="toolTip">
<string>Whether to launch the server or client process through the Windows background
service or direct from the GUI.</string>
</property>
<property name="whatsThis">
<string>
&lt;p&gt;The background service is only available on Windows.&lt;/p&gt;
&lt;p&gt;The Windows background service is used to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start the server or client automatically when the computer starts.&lt;/li&gt;
&lt;li&gt;Run the server or client in an elevated mode (e.g. on login screen, UAC dialogs, etc).&lt;/li&gt;
&lt;/ul&gt;
</string>
</property>
<property name="text">
<string>Use background service (daemon)</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QWidget" name="widgetElevate" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
@ -688,7 +673,6 @@
<tabstop>comboLogLevel</tabstop>
<tabstop>lineLogFilename</tabstop>
<tabstop>btnBrowseLog</tabstop>
<tabstop>cbServiceEnabled</tabstop>
<tabstop>comboElevate</tabstop>
</tabstops>
<resources/>