From 8f8874370efd893265cb231daa0816b051de74ff Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Wed, 4 Mar 2026 16:07:22 -0500 Subject: [PATCH] refactor: SettingsDialog adjust wording of close to tray option --- src/lib/gui/dialogs/SettingsDialog.cpp | 21 ++++++++---- src/lib/gui/dialogs/SettingsDialog.ui | 47 +++++++++++++++++++------- translations/deskflow_es.ts | 16 ++++++--- translations/deskflow_it.ts | 16 ++++++--- translations/deskflow_ja.ts | 16 ++++++--- translations/deskflow_ko.ts | 16 ++++++--- translations/deskflow_ru.ts | 16 ++++++--- translations/deskflow_zh_CN.ts | 16 ++++++--- 8 files changed, 120 insertions(+), 44 deletions(-) diff --git a/src/lib/gui/dialogs/SettingsDialog.cpp b/src/lib/gui/dialogs/SettingsDialog.cpp index ffb846ae9..8ecfd3189 100644 --- a/src/lib/gui/dialogs/SettingsDialog.cpp +++ b/src/lib/gui/dialogs/SettingsDialog.cpp @@ -117,7 +117,7 @@ void SettingsDialog::initConnections() const connect(ui->comboLanguage, &QComboBox::currentIndexChanged, this, &SettingsDialog::setButtonBoxEnabledButtons); connect(ui->cbAutoHide, &QCheckBox::toggled, this, &SettingsDialog::setButtonBoxEnabledButtons); connect(ui->cbPreventSleep, &QCheckBox::toggled, this, &SettingsDialog::setButtonBoxEnabledButtons); - connect(ui->cbCloseToTray, &QCheckBox::toggled, this, &SettingsDialog::setButtonBoxEnabledButtons); + connect(ui->rbCloseToTray, &QCheckBox::toggled, this, &SettingsDialog::setButtonBoxEnabledButtons); connect(ui->cbElevateDaemon, &QCheckBox::toggled, this, &SettingsDialog::setButtonBoxEnabledButtons); connect(ui->cbAutoUpdate, &QCheckBox::toggled, this, &SettingsDialog::setButtonBoxEnabledButtons); connect(ui->cbGuiDebug, &QCheckBox::toggled, this, &SettingsDialog::setButtonBoxEnabledButtons); @@ -217,7 +217,7 @@ void SettingsDialog::accept() Settings::setValue(Settings::Security::Certificate, ui->lineTlsCertPath->text()); Settings::setValue(Settings::Security::KeySize, ui->comboTlsKeyLength->currentText().toInt()); Settings::setValue(Settings::Security::TlsEnabled, ui->groupSecurity->isChecked()); - Settings::setValue(Settings::Gui::CloseToTray, ui->cbCloseToTray->isChecked()); + Settings::setValue(Settings::Gui::CloseToTray, ui->rbCloseToTray->isChecked()); Settings::setValue(Settings::Gui::SymbolicTrayIcon, ui->rbIconMono->isChecked()); Settings::setValue(Settings::Security::CheckPeers, ui->cbRequireClientCert->isChecked()); Settings::setValue(Settings::Core::Language, I18N::nativeTo639Name(ui->comboLanguage->currentText())); @@ -243,7 +243,6 @@ void SettingsDialog::loadFromConfig() ui->lineLogFilename->setText(Settings::value(Settings::Log::File).toString()); ui->cbAutoHide->setChecked(Settings::value(Settings::Gui::Autohide).toBool()); ui->cbPreventSleep->setChecked(Settings::value(Settings::Core::PreventSleep).toBool()); - ui->cbCloseToTray->setChecked(Settings::value(Settings::Gui::CloseToTray).toBool()); ui->cbElevateDaemon->setChecked(Settings::value(Settings::Daemon::Elevate).toBool()); ui->cbAutoUpdate->setChecked(Settings::value(Settings::Gui::AutoUpdateCheck).toBool()); ui->cbGuiDebug->setChecked(Settings::value(Settings::Log::GuiDebug).toBool()); @@ -261,6 +260,10 @@ void SettingsDialog::loadFromConfig() else ui->rbIconColorful->setChecked(true); + const auto closeToTray = Settings::value(Settings::Gui::CloseToTray).toBool(); + ui->rbCloseToTray->setChecked(closeToTray); + ui->rbExitOnClose->setChecked(!closeToTray); + ui->lblDebugWarning->setVisible(Settings::value(Settings::Log::Level).toInt() > 4); ui->comboInterface->setCurrentText(Settings::value(Settings::Core::Interface).toString()); @@ -347,7 +350,8 @@ void SettingsDialog::updateControls() ui->cbPreventSleep->setEnabled(writable); ui->lineTlsCertPath->setEnabled(writable); ui->comboTlsKeyLength->setEnabled(writable); - ui->cbCloseToTray->setEnabled(writable); + ui->rbCloseToTray->setEnabled(writable); + ui->rbExitOnClose->setEnabled(writable); // Portable mode only ever applies to Windows. // Daemon options should only be available on Windows when *not* in portable mode. @@ -395,7 +399,7 @@ bool SettingsDialog::isModified() const (ui->lineLogFilename->text() != Settings::value(Settings::Log::File).toString()) || (ui->cbAutoHide->isChecked() != Settings::value(Settings::Gui::Autohide).toBool()) || (ui->cbPreventSleep->isChecked() != Settings::value(Settings::Core::PreventSleep).toBool()) || - (ui->cbCloseToTray->isChecked() != Settings::value(Settings::Gui::CloseToTray).toBool()) || + (ui->rbCloseToTray->isChecked() != Settings::value(Settings::Gui::CloseToTray).toBool()) || (ui->cbElevateDaemon->isChecked() != Settings::value(Settings::Daemon::Elevate).toBool()) || (ui->cbAutoUpdate->isChecked() != Settings::value(Settings::Gui::AutoUpdateCheck).toBool()) || (ui->cbGuiDebug->isChecked() != Settings::value(Settings::Log::GuiDebug).toBool()) || @@ -425,7 +429,7 @@ bool SettingsDialog::isDefault() const (ui->lineLogFilename->text() == Settings::defaultValue(Settings::Log::File).toString()) && (ui->cbAutoHide->isChecked() == Settings::defaultValue(Settings::Gui::Autohide).toBool()) && (ui->cbPreventSleep->isChecked() == Settings::defaultValue(Settings::Core::PreventSleep).toBool()) && - (ui->cbCloseToTray->isChecked() == Settings::defaultValue(Settings::Gui::CloseToTray).toBool()) && + (ui->rbCloseToTray->isChecked() == Settings::defaultValue(Settings::Gui::CloseToTray).toBool()) && (ui->cbElevateDaemon->isChecked() == Settings::defaultValue(Settings::Daemon::Elevate).toBool()) && (ui->cbAutoUpdate->isChecked() == Settings::defaultValue(Settings::Gui::AutoUpdateCheck).toBool()) && (ui->cbGuiDebug->isChecked() == Settings::defaultValue(Settings::Log::GuiDebug).toBool()) && @@ -450,13 +454,16 @@ void SettingsDialog::resetToDefault() ui->lineLogFilename->setText(Settings::defaultValue(Settings::Log::File).toString()); ui->cbAutoHide->setChecked(Settings::defaultValue(Settings::Gui::Autohide).toBool()); ui->cbPreventSleep->setChecked(Settings::defaultValue(Settings::Core::PreventSleep).toBool()); - ui->cbCloseToTray->setChecked(Settings::defaultValue(Settings::Gui::CloseToTray).toBool()); ui->cbElevateDaemon->setChecked(Settings::defaultValue(Settings::Daemon::Elevate).toBool()); ui->cbAutoUpdate->setChecked(Settings::defaultValue(Settings::Gui::AutoUpdateCheck).toBool()); ui->cbGuiDebug->setChecked(Settings::defaultValue(Settings::Log::GuiDebug).toBool()); ui->cbUseWlClipboard->setChecked(Settings::defaultValue(Settings::Core::UseWlClipboard).toBool()); ui->cbShowVersion->setChecked(Settings::defaultValue(Settings::Gui::ShowVersionInTitle).toBool()); + const auto closeToTray = Settings::defaultValue(Settings::Gui::CloseToTray).toBool(); + ui->rbCloseToTray->setChecked(closeToTray); + ui->rbExitOnClose->setChecked(!closeToTray); + const auto processMode = Settings::defaultValue(Settings::Core::ProcessMode).value(); ui->groupService->setChecked(processMode == Settings::ProcessMode::Service); diff --git a/src/lib/gui/dialogs/SettingsDialog.ui b/src/lib/gui/dialogs/SettingsDialog.ui index 7fef9cd87..00a2d907a 100644 --- a/src/lib/gui/dialogs/SettingsDialog.ui +++ b/src/lib/gui/dialogs/SettingsDialog.ui @@ -141,7 +141,7 @@ - 9 + 20 12 @@ -168,6 +168,13 @@ + + + + Include version in the window title + + + @@ -176,18 +183,32 @@ - - - Leave app running in notification area when the window is closed - - - - - - - Include version in the window title - - + + + + + When the main window is closed + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + Exit + + + + + + + Send to background + + + + diff --git a/translations/deskflow_es.ts b/translations/deskflow_es.ts index d8f6b576c..6ed5a2cf7 100644 --- a/translations/deskflow_es.ts +++ b/translations/deskflow_es.ts @@ -1089,10 +1089,6 @@ Al habilitar esta opción, se deshabilitará la interfaz gráfica de usuario (GU Prevent this computer from going to sleep Evitar que esta computadora entre en modo de suspensión - - Leave app running in notification area when the window is closed - Dejar la aplicación ejecutándose en el área de notificación cuando la ventana esté cerrada - Tray icon style Estilo de icono de bandeja @@ -1297,6 +1293,18 @@ Al habilitar esta opción, se deshabilitará la interfaz gráfica de usuario (GU &Window &Ventana + + When the main window is closed + Cuando la ventana principal está cerrada + + + Exit + Salir + + + Send to background + Enviar a segundo plano + StatusBar diff --git a/translations/deskflow_it.ts b/translations/deskflow_it.ts index 51e959f71..edea25228 100644 --- a/translations/deskflow_it.ts +++ b/translations/deskflow_it.ts @@ -1089,10 +1089,6 @@ L'abilitazione di questa impostazione disabiliterà l'interfaccia graf Prevent this computer from going to sleep Impedisci a questo computer di andare in sospensione - - Leave app running in notification area when the window is closed - Lascia l'app in esecuzione nell'area di notifica quando la finestra viene chiusa - Tray icon style Stile icona di notifica @@ -1297,6 +1293,18 @@ L'abilitazione di questa impostazione disabiliterà l'interfaccia graf &Window &Finestra + + When the main window is closed + Quando la finestra principale è chiusa + + + Exit + Esci + + + Send to background + Invia in background + StatusBar diff --git a/translations/deskflow_ja.ts b/translations/deskflow_ja.ts index b83cf4ff9..f2f6ebeee 100644 --- a/translations/deskflow_ja.ts +++ b/translations/deskflow_ja.ts @@ -1091,10 +1091,6 @@ Enabling this setting will disable the server config GUI. Prevent this computer from going to sleep このコンピューターがスリープしないようにする - - Leave app running in notification area when the window is closed - ウィンドウを閉じてもアプリを通知領域で実行し続ける - Tray icon style トレイアイコン @@ -1299,6 +1295,18 @@ Enabling this setting will disable the server config GUI. &Window ウィンドウ(&W) + + When the main window is closed + メインウィンドウが閉じられているとき + + + Exit + 終了 + + + Send to background + バックグラウンドに送信 + StatusBar diff --git a/translations/deskflow_ko.ts b/translations/deskflow_ko.ts index 0e89154e9..063c8a240 100644 --- a/translations/deskflow_ko.ts +++ b/translations/deskflow_ko.ts @@ -1089,10 +1089,6 @@ Enabling this setting will disable the server config GUI. Prevent this computer from going to sleep 이 컴퓨터를 절전 모드로 전환하지 않음 - - Leave app running in notification area when the window is closed - 창을 닫아도 알림 영역에서 앱을 계속 실행 - Tray icon style 트레이 아이콘 스타일 @@ -1297,6 +1293,18 @@ Enabling this setting will disable the server config GUI. &Window 창문(&W) + + When the main window is closed + 메인 창이 닫혔을 때 + + + Exit + 출구 + + + Send to background + 백그라운드로 보내기 + StatusBar diff --git a/translations/deskflow_ru.ts b/translations/deskflow_ru.ts index 357ef948a..9cba1e2cc 100644 --- a/translations/deskflow_ru.ts +++ b/translations/deskflow_ru.ts @@ -1087,10 +1087,6 @@ Enabling this setting will disable the server config GUI. Prevent this computer from going to sleep Запретить компьютеру переходить в спящий режим - - Leave app running in notification area when the window is closed - Оставлять приложение в области уведомлений при закрытии окна - Tray icon style Стиль иконки трея @@ -1295,6 +1291,18 @@ Enabling this setting will disable the server config GUI. &Window &Окно + + When the main window is closed + Когда главное окно закрыто + + + Exit + Выход + + + Send to background + Отправить в фоновый режим + StatusBar diff --git a/translations/deskflow_zh_CN.ts b/translations/deskflow_zh_CN.ts index 6d1aa2320..2022a66dd 100644 --- a/translations/deskflow_zh_CN.ts +++ b/translations/deskflow_zh_CN.ts @@ -1091,10 +1091,6 @@ Enabling this setting will disable the server config GUI. Prevent this computer from going to sleep 防止此计算机进入睡眠状态 - - Leave app running in notification area when the window is closed - 窗口关闭时让应用在通知区域运行 - Tray icon style 托盘图标样式 @@ -1299,6 +1295,18 @@ Enabling this setting will disable the server config GUI. &Window 窗户(&W) + + When the main window is closed + 主窗口关闭时 + + + Exit + 出口 + + + Send to background + 发送到后台 + StatusBar