From 3789845a366b34fe79f4aed99f524d1e7b5abb3a Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Thu, 12 Sep 2024 10:43:55 -0400 Subject: [PATCH] save radar toolbox dock's visibility on exit --- scwx-qt/source/scwx/qt/main/main_window.cpp | 18 +++++++++++++++++- .../source/scwx/qt/settings/ui_settings.cpp | 15 +++++++++++++-- .../source/scwx/qt/settings/ui_settings.hpp | 1 + 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index f3534338..02506176 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -277,9 +277,12 @@ MainWindow::MainWindow(QWidget* parent) : ui->radarSitePresetsButton->setVisible(!radarSitePresets.empty()); + auto& uiSettings = settings::UiSettings::Instance(); // Configure Alert Dock + bool alertDockVisible_ = uiSettings.alert_dock_visible().GetValue(); p->alertDockWidget_ = new ui::AlertDockWidget(this); addDockWidget(Qt::BottomDockWidgetArea, p->alertDockWidget_); + p->alertDockWidget_->setVisible(alertDockVisible_); // GPS Info Dialog p->gpsInfoDialog_ = new ui::GpsInfoDialog(this); @@ -289,10 +292,24 @@ MainWindow::MainWindow(QWidget* parent) : ui->radarToolboxDock->toggleViewAction()); ui->radarToolboxDock->toggleViewAction()->setText(tr("Radar &Toolbox")); ui->actionRadarToolbox->setVisible(false); + ui->radarToolboxDock->setVisible( + uiSettings.radar_toolbox_dock_visible().GetValue()); + + // Update dock setting on visiblity change. + connect(ui->radarToolboxDock->toggleViewAction(), + &QAction::triggered, + this, + [](bool checked) + { + settings::UiSettings::Instance() + .radar_toolbox_dock_visible() + .StageValue(checked); + }); ui->menuView->insertAction(ui->actionAlerts, p->alertDockWidget_->toggleViewAction()); p->alertDockWidget_->toggleViewAction()->setText(tr("&Alerts")); + ui->actionAlerts->setVisible(false); ui->menuDebug->menuAction()->setVisible( settings::GeneralSettings::Instance().debug_enabled().GetValue()); @@ -801,7 +818,6 @@ void MainWindowImpl::ConfigureUiSettings() mapSettingsGroup_->SetExpanded( uiSettings.map_settings_expanded().GetValue()); timelineGroup_->SetExpanded(uiSettings.timeline_expanded().GetValue()); - alertDockWidget_->setVisible(uiSettings.alert_dock_visible().GetValue()); connect(level2ProductsGroup_, &ui::CollapsibleGroup::StateChanged, diff --git a/scwx-qt/source/scwx/qt/settings/ui_settings.cpp b/scwx-qt/source/scwx/qt/settings/ui_settings.cpp index 647732fa..865b5c4a 100644 --- a/scwx-qt/source/scwx/qt/settings/ui_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/ui_settings.cpp @@ -20,6 +20,7 @@ public: mapSettingsExpanded_.SetDefault(true); timelineExpanded_.SetDefault(true); alertDockVisible_.SetDefault(false); + radarToolboxDockVisible_.SetDefault(true); } ~UiSettingsImpl() {} @@ -30,6 +31,7 @@ public: SettingsVariable mapSettingsExpanded_ {"map_settings_expanded"}; SettingsVariable timelineExpanded_ {"timeline_expanded"}; SettingsVariable alertDockVisible_ {"alert_dock_visible"}; + SettingsVariable radarToolboxDockVisible_ {"radar_toolbox_dock_visible"}; }; UiSettings::UiSettings() : @@ -40,7 +42,8 @@ UiSettings::UiSettings() : &p->level3ProductsExpanded_, &p->mapSettingsExpanded_, &p->timelineExpanded_, - &p->alertDockVisible_}); + &p->alertDockVisible_, + &p->radarToolboxDockVisible_}); SetDefaults(); } UiSettings::~UiSettings() = default; @@ -78,6 +81,12 @@ SettingsVariable& UiSettings::alert_dock_visible() const return p->alertDockVisible_; } +SettingsVariable& UiSettings::radar_toolbox_dock_visible() const +{ + return p->radarToolboxDockVisible_; +} + + bool UiSettings::Shutdown() { bool dataChanged = false; @@ -89,6 +98,7 @@ bool UiSettings::Shutdown() dataChanged |= p->mapSettingsExpanded_.Commit(); dataChanged |= p->timelineExpanded_.Commit(); dataChanged |= p->alertDockVisible_.Commit(); + dataChanged |= p->radarToolboxDockVisible_.Commit(); return dataChanged; } @@ -106,7 +116,8 @@ bool operator==(const UiSettings& lhs, const UiSettings& rhs) lhs.p->level3ProductsExpanded_ == rhs.p->level3ProductsExpanded_ && lhs.p->mapSettingsExpanded_ == rhs.p->mapSettingsExpanded_ && lhs.p->timelineExpanded_ == rhs.p->timelineExpanded_ && - lhs.p->alertDockVisible_ == rhs.p->alertDockVisible_); + lhs.p->alertDockVisible_ == rhs.p->alertDockVisible_ && + lhs.p->radarToolboxDockVisible_ == rhs.p->radarToolboxDockVisible_); } } // namespace settings diff --git a/scwx-qt/source/scwx/qt/settings/ui_settings.hpp b/scwx-qt/source/scwx/qt/settings/ui_settings.hpp index d03812a6..f05ce5d3 100644 --- a/scwx-qt/source/scwx/qt/settings/ui_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/ui_settings.hpp @@ -33,6 +33,7 @@ public: SettingsVariable& map_settings_expanded() const; SettingsVariable& timeline_expanded() const; SettingsVariable& alert_dock_visible() const; + SettingsVariable& radar_toolbox_dock_visible() const; bool Shutdown();