Connect map settings to main window

This commit is contained in:
Dan Paulat 2022-06-09 00:15:11 -05:00
parent bcf2d7bffc
commit dd311327db
3 changed files with 34 additions and 46 deletions

View file

@ -142,28 +142,13 @@ MainWindow::MainWindow(QWidget* parent) :
ui->settingsFrame->layout()->addWidget(p->level2SettingsWidget_); ui->settingsFrame->layout()->addWidget(p->level2SettingsWidget_);
p->level2SettingsWidget_->setVisible(false); p->level2SettingsWidget_->setVisible(false);
p->SelectRadarProduct( auto mapSettings = manager::SettingsManager::map_settings();
p->maps_.at(0), for (size_t i = 0; i < p->maps_.size(); i++)
common::RadarProductGroup::Level2,
common::GetLevel2Name(common::Level2Product::Reflectivity),
0);
if (p->maps_.size() > 1 && p->maps_.at(1) != nullptr)
{ {
p->SelectRadarProduct( p->SelectRadarProduct(p->maps_.at(i),
p->maps_.at(1), mapSettings->radar_product_group(i),
common::RadarProductGroup::Level2, mapSettings->radar_product(i),
common::GetLevel2Name(common::Level2Product::Velocity), 0);
0);
}
if (p->maps_.size() > 2 && p->maps_.at(2) != nullptr)
{
p->SelectRadarProduct(
p->maps_.at(2), common::RadarProductGroup::Level3, "N0B", 0);
}
if (p->maps_.size() > 3 && p->maps_.at(3) != nullptr)
{
p->SelectRadarProduct(
p->maps_.at(3), common::RadarProductGroup::Level3, "N0G", 0);
} }
connect(qApp, connect(qApp,

View file

@ -1,7 +1,6 @@
#include <scwx/qt/settings/map_settings.hpp> #include <scwx/qt/settings/map_settings.hpp>
#include <scwx/qt/config/radar_site.hpp> #include <scwx/qt/config/radar_site.hpp>
#include <scwx/qt/util/json.hpp> #include <scwx/qt/util/json.hpp>
#include <scwx/common/products.hpp>
#include <scwx/util/logger.hpp> #include <scwx/util/logger.hpp>
#include <array> #include <array>
@ -17,10 +16,11 @@ namespace settings
static const std::string logPrefix_ = "scwx::qt::settings::map_settings"; static const std::string logPrefix_ = "scwx::qt::settings::map_settings";
static const auto logger_ = scwx::util::Logger::Create(logPrefix_); static const auto logger_ = scwx::util::Logger::Create(logPrefix_);
static constexpr size_t kCount_ = 4u; static constexpr size_t kCount_ = 4u;
static const std::string kDefaultRadarSite_ = "KLSX"; static const std::string kDefaultRadarSite_ = "KLSX";
static const std::string kDefaultRadarProductGroup_ = "L3";
static const common::RadarProductGroup kDefaultRadarProductGroup_ =
common::RadarProductGroup::Level3;
static const std::array<std::string, kCount_> kDefaultRadarProduct_ { static const std::array<std::string, kCount_> kDefaultRadarProduct_ {
"N0B", "N0G", "N0C", "N0X"}; "N0B", "N0G", "N0C", "N0X"};
@ -29,9 +29,9 @@ class MapSettingsImpl
public: public:
struct MapData struct MapData
{ {
std::string radarSite_; std::string radarSite_;
std::string radarProductGroup_; common::RadarProductGroup radarProductGroup_;
std::string radarProduct_; std::string radarProduct_;
}; };
explicit MapSettingsImpl() { SetDefaults(); } explicit MapSettingsImpl() { SetDefaults(); }
@ -72,7 +72,7 @@ std::string MapSettings::radar_site(size_t i) const
return p->map_[i].radarSite_; return p->map_[i].radarSite_;
} }
std::string MapSettings::radar_product_group(size_t i) const common::RadarProductGroup MapSettings::radar_product_group(size_t i) const
{ {
return p->map_[i].radarProductGroup_; return p->map_[i].radarProductGroup_;
} }
@ -118,17 +118,18 @@ std::shared_ptr<MapSettings> MapSettings::Load(const boost::json::value* json,
MapSettingsImpl::MapData& mapRecordSettings = MapSettingsImpl::MapData& mapRecordSettings =
mapSettings->p->map_[i]; mapSettings->p->map_[i];
std::string radarProductGroup;
// Load JSON Elements // Load JSON Elements
jsonDirty |= jsonDirty |=
!util::json::FromJsonString(mapRecord, !util::json::FromJsonString(mapRecord,
"radar_site", "radar_site",
mapRecordSettings.radarSite_, mapRecordSettings.radarSite_,
kDefaultRadarSite_); kDefaultRadarSite_);
jsonDirty |= jsonDirty |= !util::json::FromJsonString(mapRecord,
!util::json::FromJsonString(mapRecord, "radar_product_group",
"radar_product_group", radarProductGroup,
mapRecordSettings.radarProductGroup_, kDefaultRadarSite_);
kDefaultRadarSite_);
jsonDirty |= jsonDirty |=
!util::json::FromJsonString(mapRecord, !util::json::FromJsonString(mapRecord,
"radar_product", "radar_product",
@ -143,20 +144,19 @@ std::shared_ptr<MapSettings> MapSettings::Load(const boost::json::value* json,
} }
// Validate Radar Product Group // Validate Radar Product Group
common::RadarProductGroup radarProductGroup = mapRecordSettings.radarProductGroup_ =
common::GetRadarProductGroup( common::GetRadarProductGroup(radarProductGroup);
mapRecordSettings.radarProductGroup_); if (mapRecordSettings.radarProductGroup_ ==
if (radarProductGroup == common::RadarProductGroup::Unknown) common::RadarProductGroup::Unknown)
{ {
mapRecordSettings.radarProductGroup_ = mapRecordSettings.radarProductGroup_ =
kDefaultRadarProductGroup_; kDefaultRadarProductGroup_;
radarProductGroup =
common::GetRadarProductGroup(kDefaultRadarProductGroup_);
jsonDirty = true; jsonDirty = true;
} }
// Validate Radar Product // Validate Radar Product
if (radarProductGroup == common::RadarProductGroup::Level2 && if (mapRecordSettings.radarProductGroup_ ==
common::RadarProductGroup::Level2 &&
common::GetLevel2Product(mapRecordSettings.radarProduct_) == common::GetLevel2Product(mapRecordSettings.radarProduct_) ==
common::Level2Product::Unknown) common::Level2Product::Unknown)
{ {
@ -200,7 +200,8 @@ void tag_invoke(boost::json::value_from_tag,
const MapSettingsImpl::MapData& data) const MapSettingsImpl::MapData& data)
{ {
jv = {{"radar_site", data.radarSite_}, jv = {{"radar_site", data.radarSite_},
{"radar_product_group", data.radarProductGroup_}, {"radar_product_group",
common::GetRadarProductGroupName(data.radarProductGroup_)},
{"radar_product", data.radarProduct_}}; {"radar_product", data.radarProduct_}};
} }

View file

@ -1,5 +1,7 @@
#pragma once #pragma once
#include <scwx/common/products.hpp>
#include <memory> #include <memory>
#include <string> #include <string>
@ -26,10 +28,10 @@ public:
MapSettings(MapSettings&&) noexcept; MapSettings(MapSettings&&) noexcept;
MapSettings& operator=(MapSettings&&) noexcept; MapSettings& operator=(MapSettings&&) noexcept;
size_t count() const; size_t count() const;
std::string radar_site(size_t i) const; std::string radar_site(size_t i) const;
std::string radar_product_group(size_t i) const; common::RadarProductGroup radar_product_group(size_t i) const;
std::string radar_product(size_t i) const; std::string radar_product(size_t i) const;
boost::json::value ToJson() const; boost::json::value ToJson() const;