diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index 3712cb5f..cbbfb0d0 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -121,6 +122,7 @@ public: void AsyncSetup(); void ConfigureMapLayout(); void ConfigureMapStyles(); + void ConfigureUiSettings(); void ConnectAnimationSignals(); void ConnectMapSignals(); void ConnectOtherSignals(); @@ -314,6 +316,7 @@ MainWindow::MainWindow(QWidget* parent) : p->PopulateMapStyles(); p->ConfigureMapStyles(); + p->ConfigureUiSettings(); p->ConnectMapSignals(); p->ConnectAnimationSignals(); p->ConnectOtherSignals(); @@ -671,6 +674,42 @@ void MainWindowImpl::ConfigureMapStyles() } } +void MainWindowImpl::ConfigureUiSettings() +{ + auto& uiSettings = settings::UiSettings::Instance(); + + level2ProductsGroup_->SetExpanded( + uiSettings.level2_products_expanded().GetValue()); + level2SettingsGroup_->SetExpanded( + uiSettings.level2_settings_expanded().GetValue()); + level3ProductsGroup_->SetExpanded( + uiSettings.level3_products_expanded().GetValue()); + mapSettingsGroup_->SetExpanded( + uiSettings.map_settings_expanded().GetValue()); + timelineGroup_->SetExpanded(uiSettings.timeline_expanded().GetValue()); + + connect(level2ProductsGroup_, + &ui::CollapsibleGroup::StateChanged, + [&](bool expanded) + { uiSettings.level2_products_expanded().StageValue(expanded); }); + connect(level2SettingsGroup_, + &ui::CollapsibleGroup::StateChanged, + [&](bool expanded) + { uiSettings.level2_settings_expanded().StageValue(expanded); }); + connect(level3ProductsGroup_, + &ui::CollapsibleGroup::StateChanged, + [&](bool expanded) + { uiSettings.level3_products_expanded().StageValue(expanded); }); + connect(mapSettingsGroup_, + &ui::CollapsibleGroup::StateChanged, + [&](bool expanded) + { uiSettings.map_settings_expanded().StageValue(expanded); }); + connect(timelineGroup_, + &ui::CollapsibleGroup::StateChanged, + [&](bool expanded) + { uiSettings.timeline_expanded().StageValue(expanded); }); +} + void MainWindowImpl::ConnectMapSignals() { for (const auto& mapWidget : maps_)