From c63fd21c8ed74880c91e07ce922ffccaedc77fd1 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Sat, 17 Jan 2026 17:26:47 -0500 Subject: [PATCH] feat: Add a setting to allow the version to be shown in the windows title fixes: #8538 replaces: #9351 --- doc/user/configuration.md | 1 + src/lib/common/Settings.h | 3 +++ src/lib/gui/MainWindow.cpp | 9 +++++++-- src/lib/gui/dialogs/SettingsDialog.cpp | 2 ++ src/lib/gui/dialogs/SettingsDialog.ui | 7 +++++++ translations/deskflow_es.ts | 4 ++++ translations/deskflow_it.ts | 4 ++++ translations/deskflow_ja.ts | 4 ++++ translations/deskflow_ru.ts | 4 ++++ translations/deskflow_zh_CN.ts | 4 ++++ 10 files changed, 40 insertions(+), 2 deletions(-) diff --git a/doc/user/configuration.md b/doc/user/configuration.md index ebbe0896e..3f4aff227 100644 --- a/doc/user/configuration.md +++ b/doc/user/configuration.md @@ -104,6 +104,7 @@ This section contains options used by the GUI it will begin with `[gui]` | showGenericClientFailureDialog | `true` or `false` | When `true` client connection errors will not show popup error messages [default: true] | | shownFirstConnectedMessage | `true` or `false` | When `true` GUI has shown the user the message for connecting the first time [default: false] | | shownServerFirstStartMessage | `true` or `false` | When `true` GUI has shown the user the Deskflow server is now running message [default: false] | +| shownVerionInTitle | `true` or `false` | When `true` GUI will include the version in the window title [default: false] | | startCoreWithGui | `true` or `false` | When true the Core will be started with the GUI. It is set to the Core's state on exit. | | updateCheckUrl | URL | The URL to use when checking for a new version number, it should return a version [default: https://api.deskflow.org/version]| diff --git a/src/lib/common/Settings.h b/src/lib/common/Settings.h index 215ab9be8..68e88414e 100644 --- a/src/lib/common/Settings.h +++ b/src/lib/common/Settings.h @@ -75,6 +75,7 @@ public: inline static const auto ShowGenericClientFailureDialog = QStringLiteral("gui/showGenericClientFailureDialog"); inline static const auto ShownFirstConnectedMessage = QStringLiteral("gui/shownFirstConnectedMessage"); inline static const auto ShownServerFirstStartMessage = QStringLiteral("gui/shownServerFirstStartMessage"); + inline static const auto ShowVersionInTitle = QStringLiteral("gui/showVersionInTitle"); }; struct Log { @@ -215,6 +216,7 @@ private: , Settings::Gui::ShowGenericClientFailureDialog , Settings::Gui::ShownFirstConnectedMessage , Settings::Gui::ShownServerFirstStartMessage + , Settings::Gui::ShowVersionInTitle , Settings::Security::Certificate , Settings::Security::CheckPeers , Settings::Security::KeySize @@ -229,6 +231,7 @@ private: , Settings::Gui::AutoStartCore , Settings::Gui::ShownFirstConnectedMessage , Settings::Gui::ShownServerFirstStartMessage + , Settings::Gui::ShowVersionInTitle , Settings::Core::PreventSleep , Settings::Core::UseWlClipboard , Settings::Server::ExternalConfig diff --git a/src/lib/gui/MainWindow.cpp b/src/lib/gui/MainWindow.cpp index d5d50e331..0c735478b 100644 --- a/src/lib/gui/MainWindow.cpp +++ b/src/lib/gui/MainWindow.cpp @@ -195,8 +195,6 @@ void MainWindow::restoreWindow() void MainWindow::setupControls() { - setWindowTitle(kAppName); - secureSocket(false); ui->btnConfigureServer->setIcon(QIcon::fromTheme(QStringLiteral("configure"))); @@ -702,8 +700,15 @@ void MainWindow::setupTrayIcon() void MainWindow::applyConfig() { + if (Settings::value(Settings::Gui::ShowVersionInTitle).toBool()) { + setWindowTitle(QStringLiteral("%1 - %2").arg(kAppName, kDisplayVersion)); + } else { + setWindowTitle(kAppName); + } + if (const auto host = Settings::value(Settings::Client::RemoteHost).toString(); !host.isEmpty()) ui->lineHostname->setText(host); + updateLocalFingerprint(); setTrayIcon(); diff --git a/src/lib/gui/dialogs/SettingsDialog.cpp b/src/lib/gui/dialogs/SettingsDialog.cpp index 9febeabfe..7545075ee 100644 --- a/src/lib/gui/dialogs/SettingsDialog.cpp +++ b/src/lib/gui/dialogs/SettingsDialog.cpp @@ -190,6 +190,7 @@ void SettingsDialog::accept() Settings::setValue(Settings::Core::Language, I18N::nativeTo639Name(ui->comboLanguage->currentText())); Settings::setValue(Settings::Log::GuiDebug, ui->cbGuiDebug->isChecked()); Settings::setValue(Settings::Core::UseWlClipboard, ui->cbUseWlClipboard->isChecked()); + Settings::setValue(Settings::Gui::ShowVersionInTitle, ui->cbShowVersion->isChecked()); Settings::ProcessMode mode; if (ui->groupService->isChecked()) @@ -217,6 +218,7 @@ void SettingsDialog::loadFromConfig() ui->sbScrollSpeed->setValue(Settings::value(Settings::Client::ScrollSpeed).toInt()); ui->cbGuiDebug->setChecked(Settings::value(Settings::Log::GuiDebug).toBool()); ui->cbUseWlClipboard->setChecked(Settings::value(Settings::Core::UseWlClipboard).toBool()); + ui->cbShowVersion->setChecked(Settings::value(Settings::Gui::ShowVersionInTitle).toBool()); const auto processMode = Settings::value(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 8be36d3df..efcd23f30 100644 --- a/src/lib/gui/dialogs/SettingsDialog.ui +++ b/src/lib/gui/dialogs/SettingsDialog.ui @@ -111,6 +111,13 @@ + + + + Include version in the window title + + + diff --git a/translations/deskflow_es.ts b/translations/deskflow_es.ts index ac62f8e75..6a35d7889 100644 --- a/translations/deskflow_es.ts +++ b/translations/deskflow_es.ts @@ -1320,6 +1320,10 @@ Al habilitar esta opción, se deshabilitará la interfaz gráfica de usuario (GU Automatic Automática + + Include version in the window title + Incluir la versión en el título de la ventana + i18n diff --git a/translations/deskflow_it.ts b/translations/deskflow_it.ts index 1f0641c63..2f4c8be6e 100644 --- a/translations/deskflow_it.ts +++ b/translations/deskflow_it.ts @@ -1320,6 +1320,10 @@ L'abilitazione di questa impostazione disabiliterà l'interfaccia graf Automatic Automatica + + Include version in the window title + Includi la versione nel titolo della finestra + i18n diff --git a/translations/deskflow_ja.ts b/translations/deskflow_ja.ts index f8dcc2cb7..39eb7aa19 100644 --- a/translations/deskflow_ja.ts +++ b/translations/deskflow_ja.ts @@ -1321,6 +1321,10 @@ Enabling this setting will disable the server config GUI. Automatic 自動 + + Include version in the window title + ウィンドウタイトルにバージョン情報を含める + i18n diff --git a/translations/deskflow_ru.ts b/translations/deskflow_ru.ts index fd9c303fa..7fd548173 100644 --- a/translations/deskflow_ru.ts +++ b/translations/deskflow_ru.ts @@ -1319,6 +1319,10 @@ Enabling this setting will disable the server config GUI. Automatic Автоматически + + Include version in the window title + Включить номер версии в заголовок окна + i18n diff --git a/translations/deskflow_zh_CN.ts b/translations/deskflow_zh_CN.ts index e330d7353..97cf0d785 100644 --- a/translations/deskflow_zh_CN.ts +++ b/translations/deskflow_zh_CN.ts @@ -1321,6 +1321,10 @@ Enabling this setting will disable the server config GUI. Automatic 自动的 + + Include version in the window title + 在窗口标题中包含版本信息 + i18n