mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 22:10:05 +00:00
Refactoring phenomena info to impact based warnings header
This commit is contained in:
parent
9182d170de
commit
829d8a3152
3 changed files with 44 additions and 31 deletions
|
|
@ -23,36 +23,6 @@ namespace ui
|
||||||
static const std::string logPrefix_ =
|
static const std::string logPrefix_ =
|
||||||
"scwx::qt::ui::settings::alert_palette_settings_widget";
|
"scwx::qt::ui::settings::alert_palette_settings_widget";
|
||||||
|
|
||||||
struct PhenomenonInfo
|
|
||||||
{
|
|
||||||
bool hasObservedTag_ {false};
|
|
||||||
bool hasTornadoPossibleTag_ {false};
|
|
||||||
std::vector<awips::ThreatCategory> threatCategories_ {
|
|
||||||
awips::ThreatCategory::Base};
|
|
||||||
};
|
|
||||||
|
|
||||||
static const boost::unordered_flat_map<awips::Phenomenon, PhenomenonInfo>
|
|
||||||
phenomenaInfo_ {{awips::Phenomenon::Marine,
|
|
||||||
PhenomenonInfo {.hasTornadoPossibleTag_ {true}}},
|
|
||||||
{awips::Phenomenon::FlashFlood,
|
|
||||||
PhenomenonInfo {.threatCategories_ {
|
|
||||||
awips::ThreatCategory::Base,
|
|
||||||
awips::ThreatCategory::Considerable,
|
|
||||||
awips::ThreatCategory::Catastrophic}}},
|
|
||||||
{awips::Phenomenon::SevereThunderstorm,
|
|
||||||
PhenomenonInfo {.hasTornadoPossibleTag_ {true},
|
|
||||||
.threatCategories_ {
|
|
||||||
awips::ThreatCategory::Base,
|
|
||||||
awips::ThreatCategory::Considerable,
|
|
||||||
awips::ThreatCategory::Destructive}}},
|
|
||||||
{awips::Phenomenon::SnowSquall, PhenomenonInfo {}},
|
|
||||||
{awips::Phenomenon::Tornado,
|
|
||||||
PhenomenonInfo {.hasObservedTag_ {true},
|
|
||||||
.threatCategories_ {
|
|
||||||
awips::ThreatCategory::Base,
|
|
||||||
awips::ThreatCategory::Considerable,
|
|
||||||
awips::ThreatCategory::Catastrophic}}}};
|
|
||||||
|
|
||||||
class AlertPaletteSettingsWidget::Impl
|
class AlertPaletteSettingsWidget::Impl
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
@ -208,7 +178,7 @@ QWidget* AlertPaletteSettingsWidget::Impl::CreateStackedWidgetPage(
|
||||||
QGridLayout* gridLayout = new QGridLayout(self_);
|
QGridLayout* gridLayout = new QGridLayout(self_);
|
||||||
page->setLayout(gridLayout);
|
page->setLayout(gridLayout);
|
||||||
|
|
||||||
const auto& phenomenonInfo = phenomenaInfo_.at(phenomenon);
|
const auto& phenomenonInfo = awips::GetPhenomenonInfo(phenomenon);
|
||||||
|
|
||||||
int row = 0;
|
int row = 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <scwx/awips/phenomenon.hpp>
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
{
|
{
|
||||||
|
|
@ -17,6 +20,15 @@ enum class ThreatCategory : int
|
||||||
Unknown
|
Unknown
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct PhenomenonInfo
|
||||||
|
{
|
||||||
|
bool hasObservedTag_ {false};
|
||||||
|
bool hasTornadoPossibleTag_ {false};
|
||||||
|
std::vector<ThreatCategory> threatCategories_ {ThreatCategory::Base};
|
||||||
|
};
|
||||||
|
|
||||||
|
const PhenomenonInfo& GetPhenomenonInfo(Phenomenon phenomenon);
|
||||||
|
|
||||||
ThreatCategory GetThreatCategory(const std::string& name);
|
ThreatCategory GetThreatCategory(const std::string& name);
|
||||||
const std::string& GetThreatCategoryName(ThreatCategory threatCategory);
|
const std::string& GetThreatCategoryName(ThreatCategory threatCategory);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
|
#include <boost/unordered/unordered_flat_map.hpp>
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
{
|
{
|
||||||
|
|
@ -12,6 +13,26 @@ namespace awips
|
||||||
|
|
||||||
static const std::string logPrefix_ = "scwx::awips::impact_based_warnings";
|
static const std::string logPrefix_ = "scwx::awips::impact_based_warnings";
|
||||||
|
|
||||||
|
static const boost::unordered_flat_map<Phenomenon, PhenomenonInfo>
|
||||||
|
phenomenaInfo_ {
|
||||||
|
{Phenomenon::Marine, PhenomenonInfo {.hasTornadoPossibleTag_ {true}}},
|
||||||
|
{Phenomenon::FlashFlood,
|
||||||
|
PhenomenonInfo {.threatCategories_ {ThreatCategory::Base,
|
||||||
|
ThreatCategory::Considerable,
|
||||||
|
ThreatCategory::Catastrophic}}},
|
||||||
|
{Phenomenon::SevereThunderstorm,
|
||||||
|
PhenomenonInfo {.hasTornadoPossibleTag_ {true},
|
||||||
|
.threatCategories_ {ThreatCategory::Base,
|
||||||
|
ThreatCategory::Considerable,
|
||||||
|
ThreatCategory::Destructive}}},
|
||||||
|
{Phenomenon::SnowSquall, PhenomenonInfo {}},
|
||||||
|
{Phenomenon::Tornado,
|
||||||
|
PhenomenonInfo {.hasObservedTag_ {true},
|
||||||
|
.threatCategories_ {ThreatCategory::Base,
|
||||||
|
ThreatCategory::Considerable,
|
||||||
|
ThreatCategory::Catastrophic}}},
|
||||||
|
{Phenomenon::Unknown, PhenomenonInfo {}}};
|
||||||
|
|
||||||
static const std::unordered_map<ThreatCategory, std::string>
|
static const std::unordered_map<ThreatCategory, std::string>
|
||||||
threatCategoryName_ {{ThreatCategory::Base, "Base"},
|
threatCategoryName_ {{ThreatCategory::Base, "Base"},
|
||||||
{ThreatCategory::Significant, "Significant"},
|
{ThreatCategory::Significant, "Significant"},
|
||||||
|
|
@ -20,6 +41,16 @@ static const std::unordered_map<ThreatCategory, std::string>
|
||||||
{ThreatCategory::Catastrophic, "Catastrophic"},
|
{ThreatCategory::Catastrophic, "Catastrophic"},
|
||||||
{ThreatCategory::Unknown, "?"}};
|
{ThreatCategory::Unknown, "?"}};
|
||||||
|
|
||||||
|
const PhenomenonInfo& GetPhenomenonInfo(Phenomenon phenomenon)
|
||||||
|
{
|
||||||
|
auto it = phenomenaInfo_.find(phenomenon);
|
||||||
|
if (it != phenomenaInfo_.cend())
|
||||||
|
{
|
||||||
|
return it->second;
|
||||||
|
}
|
||||||
|
return phenomenaInfo_.at(Phenomenon::Unknown);
|
||||||
|
}
|
||||||
|
|
||||||
SCWX_GET_ENUM(ThreatCategory, GetThreatCategory, threatCategoryName_)
|
SCWX_GET_ENUM(ThreatCategory, GetThreatCategory, threatCategoryName_)
|
||||||
|
|
||||||
const std::string& GetThreatCategoryName(ThreatCategory threatCategory)
|
const std::string& GetThreatCategoryName(ThreatCategory threatCategory)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue