mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 08:00:06 +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_ =
|
||||
"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
|
||||
{
|
||||
public:
|
||||
|
|
@ -208,7 +178,7 @@ QWidget* AlertPaletteSettingsWidget::Impl::CreateStackedWidgetPage(
|
|||
QGridLayout* gridLayout = new QGridLayout(self_);
|
||||
page->setLayout(gridLayout);
|
||||
|
||||
const auto& phenomenonInfo = phenomenaInfo_.at(phenomenon);
|
||||
const auto& phenomenonInfo = awips::GetPhenomenonInfo(phenomenon);
|
||||
|
||||
int row = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/awips/phenomenon.hpp>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
|
|
@ -17,6 +20,15 @@ enum class ThreatCategory : int
|
|||
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);
|
||||
const std::string& GetThreatCategoryName(ThreatCategory threatCategory);
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include <unordered_map>
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/unordered/unordered_flat_map.hpp>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
|
|
@ -12,6 +13,26 @@ namespace awips
|
|||
|
||||
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>
|
||||
threatCategoryName_ {{ThreatCategory::Base, "Base"},
|
||||
{ThreatCategory::Significant, "Significant"},
|
||||
|
|
@ -20,6 +41,16 @@ static const std::unordered_map<ThreatCategory, std::string>
|
|||
{ThreatCategory::Catastrophic, "Catastrophic"},
|
||||
{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_)
|
||||
|
||||
const std::string& GetThreatCategoryName(ThreatCategory threatCategory)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue