diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake index 32d900ce..becb5901 100644 --- a/scwx-qt/scwx-qt.cmake +++ b/scwx-qt/scwx-qt.cmake @@ -129,12 +129,14 @@ set(SRC_SETTINGS source/scwx/qt/settings/general_settings.cpp source/scwx/qt/settings/settings_interface_base.cpp source/scwx/qt/settings/settings_variable.cpp source/scwx/qt/settings/settings_variable_base.cpp) -set(HDR_TYPES source/scwx/qt/types/font_types.hpp +set(HDR_TYPES source/scwx/qt/types/alert_types.hpp + source/scwx/qt/types/font_types.hpp source/scwx/qt/types/github_types.hpp source/scwx/qt/types/qt_types.hpp source/scwx/qt/types/radar_product_record.hpp source/scwx/qt/types/text_event_key.hpp) -set(SRC_TYPES source/scwx/qt/types/github_types.cpp +set(SRC_TYPES source/scwx/qt/types/alert_types.cpp + source/scwx/qt/types/github_types.cpp source/scwx/qt/types/radar_product_record.cpp source/scwx/qt/types/text_event_key.cpp) set(HDR_UI source/scwx/qt/ui/about_dialog.hpp diff --git a/scwx-qt/source/scwx/qt/types/alert_types.cpp b/scwx-qt/source/scwx/qt/types/alert_types.cpp new file mode 100644 index 00000000..34e44a95 --- /dev/null +++ b/scwx-qt/source/scwx/qt/types/alert_types.cpp @@ -0,0 +1,42 @@ +#include + +#include + +namespace scwx +{ +namespace qt +{ +namespace types +{ + +static const std::unordered_map alertActionName_ { + {AlertAction::Go, "Go"}, + {AlertAction::View, "View"}, + {AlertAction::Unknown, "?"}}; + +AlertAction GetAlertAction(const std::string& name) +{ + auto result = + std::find_if(alertActionName_.cbegin(), + alertActionName_.cend(), + [&](const std::pair& pair) -> bool + { return boost::iequals(pair.second, name); }); + + if (result != alertActionName_.cend()) + { + return result->first; + } + else + { + return AlertAction::Unknown; + } +} + +std::string GetAlertActionName(AlertAction alertAction) +{ + return alertActionName_.at(alertAction); +} + +} // namespace types +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/types/alert_types.hpp b/scwx-qt/source/scwx/qt/types/alert_types.hpp new file mode 100644 index 00000000..19431d4c --- /dev/null +++ b/scwx-qt/source/scwx/qt/types/alert_types.hpp @@ -0,0 +1,28 @@ +#pragma once + +#include + +#include + +namespace scwx +{ +namespace qt +{ +namespace types +{ + +enum class AlertAction +{ + Go, + View, + Unknown +}; +typedef scwx::util::Iterator + AlertActionIterator; + +AlertAction GetAlertAction(const std::string& name); +std::string GetAlertActionName(AlertAction alertAction); + +} // namespace types +} // namespace qt +} // namespace scwx