diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index 4046e3bd..f3534338 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -279,7 +279,6 @@ MainWindow::MainWindow(QWidget* parent) : // Configure Alert Dock p->alertDockWidget_ = new ui::AlertDockWidget(this); - p->alertDockWidget_->setVisible(false); addDockWidget(Qt::BottomDockWidgetArea, p->alertDockWidget_); // GPS Info Dialog @@ -294,7 +293,6 @@ MainWindow::MainWindow(QWidget* parent) : 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()); @@ -803,6 +801,7 @@ 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 dc131d96..647732fa 100644 --- a/scwx-qt/source/scwx/qt/settings/ui_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/ui_settings.cpp @@ -19,6 +19,7 @@ public: level3ProductsExpanded_.SetDefault(true); mapSettingsExpanded_.SetDefault(true); timelineExpanded_.SetDefault(true); + alertDockVisible_.SetDefault(false); } ~UiSettingsImpl() {} @@ -28,6 +29,7 @@ public: SettingsVariable level3ProductsExpanded_ {"level3_products_expanded"}; SettingsVariable mapSettingsExpanded_ {"map_settings_expanded"}; SettingsVariable timelineExpanded_ {"timeline_expanded"}; + SettingsVariable alertDockVisible_ {"alert_dock_visible"}; }; UiSettings::UiSettings() : @@ -37,7 +39,8 @@ UiSettings::UiSettings() : &p->level2SettingsExpanded_, &p->level3ProductsExpanded_, &p->mapSettingsExpanded_, - &p->timelineExpanded_}); + &p->timelineExpanded_, + &p->alertDockVisible_}); SetDefaults(); } UiSettings::~UiSettings() = default; @@ -70,6 +73,11 @@ SettingsVariable& UiSettings::timeline_expanded() const return p->timelineExpanded_; } +SettingsVariable& UiSettings::alert_dock_visible() const +{ + return p->alertDockVisible_; +} + bool UiSettings::Shutdown() { bool dataChanged = false; @@ -80,6 +88,7 @@ bool UiSettings::Shutdown() dataChanged |= p->level3ProductsExpanded_.Commit(); dataChanged |= p->mapSettingsExpanded_.Commit(); dataChanged |= p->timelineExpanded_.Commit(); + dataChanged |= p->alertDockVisible_.Commit(); return dataChanged; } @@ -96,7 +105,8 @@ bool operator==(const UiSettings& lhs, const UiSettings& rhs) lhs.p->level2SettingsExpanded_ == rhs.p->level2SettingsExpanded_ && lhs.p->level3ProductsExpanded_ == rhs.p->level3ProductsExpanded_ && lhs.p->mapSettingsExpanded_ == rhs.p->mapSettingsExpanded_ && - lhs.p->timelineExpanded_ == rhs.p->timelineExpanded_); + lhs.p->timelineExpanded_ == rhs.p->timelineExpanded_ && + lhs.p->alertDockVisible_ == rhs.p->alertDockVisible_); } } // 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 e3045bcb..d03812a6 100644 --- a/scwx-qt/source/scwx/qt/settings/ui_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/ui_settings.hpp @@ -32,6 +32,7 @@ public: SettingsVariable& level3_products_expanded() const; SettingsVariable& map_settings_expanded() const; SettingsVariable& timeline_expanded() const; + SettingsVariable& alert_dock_visible() const; bool Shutdown(); diff --git a/scwx-qt/source/scwx/qt/ui/alert_dock_widget.cpp b/scwx-qt/source/scwx/qt/ui/alert_dock_widget.cpp index 61fd160a..242c847e 100644 --- a/scwx-qt/source/scwx/qt/ui/alert_dock_widget.cpp +++ b/scwx-qt/source/scwx/qt/ui/alert_dock_widget.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -81,6 +82,15 @@ AlertDockWidget::AlertDockWidget(QWidget* parent) : // Check Active Alerts and trigger signal ui->actionActiveAlerts->setChecked(true); + + // Update setting on visiblity change. + connect(toggleViewAction(), + &QAction::triggered, + this, + [](bool checked) { + settings::UiSettings::Instance().alert_dock_visible().StageValue( + checked); + }); } AlertDockWidget::~AlertDockWidget()