From 7bf474a54a1bf35bc246b71913b615e68dc8e3a9 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Wed, 13 Nov 2024 10:42:08 -0500 Subject: [PATCH] feat: SettingsDialog, Allow user to toggle the check for updates settings fixes: #7890 --- src/gui/src/dialogs/SettingsDialog.cpp | 10 +++++++++- src/gui/src/dialogs/SettingsDialog.h | 7 +++---- src/gui/src/dialogs/SettingsDialog.ui | 7 +++++++ 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/gui/src/dialogs/SettingsDialog.cpp b/src/gui/src/dialogs/SettingsDialog.cpp index 0268a91d8..c3bf55894 100644 --- a/src/gui/src/dialogs/SettingsDialog.cpp +++ b/src/gui/src/dialogs/SettingsDialog.cpp @@ -38,7 +38,7 @@ using namespace deskflow::gui; SettingsDialog::SettingsDialog( - QWidget *parent, IAppConfig &appConfig, const IServerConfig &serverConfig, const CoreProcess &coreProcess + QWidget *parent, AppConfig &appConfig, const IServerConfig &serverConfig, const CoreProcess &coreProcess ) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), ui{std::make_unique()}, @@ -188,6 +188,7 @@ void SettingsDialog::accept() m_appConfig.setLogFilename(ui->m_pLineEditLogFilename->text()); m_appConfig.setElevateMode(static_cast(ui->m_pComboElevate->currentIndex())); m_appConfig.setAutoHide(ui->m_pCheckBoxAutoHide->isChecked()); + m_appConfig.setEnableUpdateCheck(ui->m_pCheckBoxAutoUpdate->isChecked()); m_appConfig.setPreventSleep(ui->m_pCheckBoxPreventSleep->isChecked()); m_appConfig.setTlsCertPath(ui->m_pLineEditTlsCertPath->text()); m_appConfig.setTlsKeyLength(ui->m_pComboBoxTlsKeyLength->currentText().toInt()); @@ -228,6 +229,12 @@ void SettingsDialog::loadFromConfig() ui->m_pCheckBoxCloseToTray->setChecked(m_appConfig.closeToTray()); ui->m_pComboElevate->setCurrentIndex(static_cast(m_appConfig.elevateMode())); + if (m_appConfig.enableUpdateCheck().has_value()) { + ui->m_pCheckBoxAutoUpdate->setChecked(m_appConfig.enableUpdateCheck().value()); + } else { + ui->m_pCheckBoxAutoUpdate->setChecked(false); + } + if (m_appConfig.isActiveScopeSystem()) { ui->m_pRadioSystemScope->setChecked(true); } else { @@ -311,6 +318,7 @@ void SettingsDialog::updateControls() ui->m_pComboLogLevel->setEnabled(writable); ui->m_pCheckBoxLogToFile->setEnabled(writable); ui->m_pCheckBoxAutoHide->setEnabled(writable); + ui->m_pCheckBoxAutoUpdate->setEnabled(writable); ui->m_pCheckBoxPreventSleep->setEnabled(writable); ui->m_pLineEditTlsCertPath->setEnabled(writable); ui->m_pComboBoxTlsKeyLength->setEnabled(writable); diff --git a/src/gui/src/dialogs/SettingsDialog.h b/src/gui/src/dialogs/SettingsDialog.h index fdd44a6fd..c0ab0bffc 100644 --- a/src/gui/src/dialogs/SettingsDialog.h +++ b/src/gui/src/dialogs/SettingsDialog.h @@ -19,7 +19,7 @@ #pragma once #include -#include "gui/config/IAppConfig.h" +#include "gui/config/AppConfig.h" #include "gui/config/IServerConfig.h" #include "gui/core/CoreProcess.h" #include "gui/tls/TlsUtility.h" @@ -31,7 +31,6 @@ class SettingsDialog; class SettingsDialog : public QDialog { - using IAppConfig = deskflow::gui::IAppConfig; using IServerConfig = deskflow::gui::IServerConfig; using CoreProcess = deskflow::gui::CoreProcess; @@ -40,7 +39,7 @@ class SettingsDialog : public QDialog public: void extracted(); SettingsDialog( - QWidget *parent, IAppConfig &appConfig, const IServerConfig &serverConfig, const CoreProcess &coreProcess + QWidget *parent, AppConfig &appConfig, const IServerConfig &serverConfig, const CoreProcess &coreProcess ); ~SettingsDialog() override; @@ -85,7 +84,7 @@ private: bool m_wasOriginallySystemScope = false; std::unique_ptr ui; - IAppConfig &m_appConfig; + AppConfig &m_appConfig; const IServerConfig &m_serverConfig; const CoreProcess &m_coreProcess; deskflow::gui::TlsUtility m_tlsUtility; diff --git a/src/gui/src/dialogs/SettingsDialog.ui b/src/gui/src/dialogs/SettingsDialog.ui index 87af71b59..38aa5b0a4 100644 --- a/src/gui/src/dialogs/SettingsDialog.ui +++ b/src/gui/src/dialogs/SettingsDialog.ui @@ -118,6 +118,13 @@ App + + + + Check for updates on startup + + +