mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 16:30: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_);
|
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,
|
||||||
|
|
|
||||||
|
|
@ -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_}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue