diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index 5b25a91a..814ed0fb 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -267,6 +267,7 @@ MainWindow::MainWindow(QWidget* parent) : ui->vcpLabel->setVisible(false); ui->vcpValueLabel->setVisible(false); ui->vcpDescriptionLabel->setVisible(false); + ui->saveRadarProductsButton->setVisible(true); p->radarSitePresetsMenu_ = new QMenu(this); ui->radarSitePresetsButton->setMenu(p->radarSitePresetsMenu_); @@ -326,6 +327,8 @@ MainWindow::MainWindow(QWidget* parent) : ui->smoothRadarDataCheckBox); p->mapSettingsGroup_->GetContentsLayout()->addWidget( ui->trackLocationCheckBox); + p->mapSettingsGroup_->GetContentsLayout()->addWidget( + ui->saveRadarProductsButton); ui->radarToolboxScrollAreaContents->layout()->replaceWidget( ui->mapSettingsGroupBox, p->mapSettingsGroup_); ui->mapSettingsGroupBox->setVisible(false); @@ -1124,6 +1127,22 @@ void MainWindowImpl::ConnectOtherSignals() // Turn on location tracking positionManager_->TrackLocation(trackingEnabled); }); + connect(mainWindow_->ui->saveRadarProductsButton, + &QAbstractButton::clicked, + mainWindow_, + [this]() + { + auto& mapSettings = settings::MapSettings::Instance(); + for (std::size_t i = 0; i < maps_.size(); i++) + { + const auto& map = maps_.at(i); + mapSettings.radar_product_group(i).StageValue( + common::GetRadarProductGroupName( + map->GetRadarProductGroup())); + mapSettings.radar_product(i).StageValue( + map->GetRadarProductName()); + } + }); connect(level2ProductsWidget_, &ui::Level2ProductsWidget::RadarProductSelected, mainWindow_, @@ -1509,6 +1528,8 @@ void MainWindowImpl::UpdateRadarProductSettings() void MainWindowImpl::UpdateRadarSite() { std::shared_ptr radarSite = activeMap_->GetRadarSite(); + const std::string homeRadarSite = + settings::GeneralSettings::Instance().default_radar_site().GetValue(); if (radarSite != nullptr) { @@ -1523,6 +1544,9 @@ void MainWindowImpl::UpdateRadarSite() radarSite->location_name().c_str()); timelineManager_->SetRadarSite(radarSite->id()); + + mainWindow_->ui->saveRadarProductsButton->setVisible( + radarSite->id() == homeRadarSite); } else { @@ -1530,6 +1554,7 @@ void MainWindowImpl::UpdateRadarSite() mainWindow_->ui->radarSiteValueLabel->setVisible(false); mainWindow_->ui->radarLocationLabel->setVisible(false); + mainWindow_->ui->saveRadarProductsButton->setVisible(false); timelineManager_->SetRadarSite("?"); } diff --git a/scwx-qt/source/scwx/qt/main/main_window.ui b/scwx-qt/source/scwx/qt/main/main_window.ui index 5d856663..94346c68 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.ui +++ b/scwx-qt/source/scwx/qt/main/main_window.ui @@ -155,8 +155,8 @@ 0 0 - 190 - 680 + 205 + 701 @@ -181,32 +181,24 @@ QFrame::Shadow::Raised - - - - - 0 - 0 - - + + - KLSX + 35 - - - - - 0 - 0 - - - - Volume Coverage Pattern - + + - VCP + Clear Air Mode + + + + + + + St. Louis, MO @@ -271,34 +263,6 @@ - - - - Radar Site - - - - - - - St. Louis, MO - - - - - - - 35 - - - - - - - Clear Air Mode - - - @@ -312,6 +276,42 @@ + + + + + 0 + 0 + + + + Volume Coverage Pattern + + + VCP + + + + + + + Radar Site + + + + + + + + 0 + 0 + + + + KLSX + + + @@ -345,6 +345,13 @@ + + + + Set As Default Products + + + diff --git a/scwx-qt/source/scwx/qt/settings/map_settings.cpp b/scwx-qt/source/scwx/qt/settings/map_settings.cpp index 416c0a6d..76c09d30 100644 --- a/scwx-qt/source/scwx/qt/settings/map_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/map_settings.cpp @@ -76,7 +76,7 @@ public: { common::RadarProductGroup radarProductGroup = common::GetRadarProductGroup( - map_.at(i).radarProductGroup_.GetValue()); + map_.at(i).radarProductGroup_.GetStagedOrValue()); if (radarProductGroup == common::RadarProductGroup::Level2) { @@ -193,6 +193,8 @@ bool MapSettings::Shutdown() dataChanged |= mapRecordSettings.mapStyle_.Commit(); dataChanged |= mapRecordSettings.smoothingEnabled_.Commit(); + dataChanged |= mapRecordSettings.radarProductGroup_.Commit(); + dataChanged |= mapRecordSettings.radarProduct_.Commit(); } return dataChanged;