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_);
p->level2SettingsWidget_->setVisible(false);
p->SelectRadarProduct(
p->maps_.at(0),
common::RadarProductGroup::Level2,
common::GetLevel2Name(common::Level2Product::Reflectivity),
0);
if (p->maps_.size() > 1 && p->maps_.at(1) != nullptr)
auto mapSettings = manager::SettingsManager::map_settings();
for (size_t i = 0; i < p->maps_.size(); i++)
{
p->SelectRadarProduct(
p->maps_.at(1),
common::RadarProductGroup::Level2,
common::GetLevel2Name(common::Level2Product::Velocity),
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);
p->SelectRadarProduct(p->maps_.at(i),
mapSettings->radar_product_group(i),
mapSettings->radar_product(i),
0);
}
connect(qApp,

View file

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

View file

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