diff --git a/doc/configuration.md b/doc/configuration.md index 6ef4b5784..3240712bf 100644 --- a/doc/configuration.md +++ b/doc/configuration.md @@ -29,7 +29,7 @@ Windows will save to the install dir if settings are loaded from there. If not, it saves any other config files in: `C:\ProgramData\Deskflow\` -When using settings from the install dir its not recommend to have elevation enabled. +When using settings from the install dir, the service mode will not be available. # Server Config Examples diff --git a/src/lib/gui/dialogs/SettingsDialog.cpp b/src/lib/gui/dialogs/SettingsDialog.cpp index 7a212692e..7d5e9e1d4 100644 --- a/src/lib/gui/dialogs/SettingsDialog.cpp +++ b/src/lib/gui/dialogs/SettingsDialog.cpp @@ -248,15 +248,6 @@ void SettingsDialog::updateKeyLengthOnFile(const QString &path) void SettingsDialog::updateControls() { - -#if defined(Q_OS_WIN) - const auto serviceAvailable = true; -#else - // service not supported on unix yet, so always disable. - const auto serviceAvailable = false; - ui->groupService->setTitle("Service (Windows only)"); -#endif - const bool writable = Settings::isWritable(); const bool serviceChecked = ui->cbServiceEnabled->isChecked(); const bool logToFile = ui->cbLogToFile->isChecked(); @@ -272,8 +263,16 @@ void SettingsDialog::updateControls() ui->comboTlsKeyLength->setEnabled(writable); ui->cbCloseToTray->setEnabled(writable); - ui->cbServiceEnabled->setEnabled(writable && serviceAvailable); - ui->widgetElevate->setEnabled(writable && serviceChecked && serviceAvailable); + // Handle enable and disable of service items + if (Settings::isNativeMode()) { + ui->cbServiceEnabled->setEnabled(writable); + ui->widgetElevate->setEnabled(writable && serviceChecked); + } else if (ui->groupService->isVisibleTo(ui->tabAdvanced)) { + ui->groupService->setVisible(false); + const int bottomMargin = ui->tabAdvanced->layout()->contentsMargins().bottom() + + (ui->tabAdvanced->layout()->spacing() * 2) + ui->groupService->height(); + ui->tabAdvanced->layout()->setContentsMargins(9, 9, 9, bottomMargin); + } ui->cbLanguageSync->setEnabled(writable && isClientMode()); ui->cbScrollDirection->setEnabled(writable && isClientMode()); diff --git a/src/lib/gui/dialogs/SettingsDialog.ui b/src/lib/gui/dialogs/SettingsDialog.ui index bf01dda3b..5f7533d6d 100644 --- a/src/lib/gui/dialogs/SettingsDialog.ui +++ b/src/lib/gui/dialogs/SettingsDialog.ui @@ -22,6 +22,9 @@ + + 1 +