mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 08:10:05 +00:00
Connect map settings to main window
This commit is contained in:
parent
bcf2d7bffc
commit
dd311327db
3 changed files with 34 additions and 46 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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_}};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue