From 14545fd83abbda8b809592e2ef56bce75073543f Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 11 Sep 2022 08:29:31 -0500 Subject: [PATCH] Fix Level 3 Products Widget product selection status --- .../scwx/qt/ui/level3_products_widget.cpp | 2 +- wxdata/include/scwx/common/products.hpp | 4 +++- wxdata/source/scwx/common/products.cpp | 23 +++++++++++++++---- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/scwx-qt/source/scwx/qt/ui/level3_products_widget.cpp b/scwx-qt/source/scwx/qt/ui/level3_products_widget.cpp index b84aead9..24804baf 100644 --- a/scwx-qt/source/scwx/qt/ui/level3_products_widget.cpp +++ b/scwx-qt/source/scwx/qt/ui/level3_products_widget.cpp @@ -256,7 +256,7 @@ void Level3ProductsWidget::UpdateProductSelection( if (group == common::RadarProductGroup::Level3) { common::Level3ProductCategory category = - common::GetLevel3CategoryByProduct(productName); + common::GetLevel3CategoryByAwipsId(productName); p->UpdateProductSelection(category); } else diff --git a/wxdata/include/scwx/common/products.hpp b/wxdata/include/scwx/common/products.hpp index a9966855..0e10e470 100644 --- a/wxdata/include/scwx/common/products.hpp +++ b/wxdata/include/scwx/common/products.hpp @@ -73,7 +73,9 @@ const std::string& GetLevel3CategoryDefaultProduct(Level3ProductCategory category); Level3ProductCategory GetLevel3Category(const std::string& categoryName); Level3ProductCategory - GetLevel3CategoryByProduct(const std::string& productName); +GetLevel3CategoryByProduct(const std::string& productName); +Level3ProductCategory +GetLevel3CategoryByAwipsId(const std::string& awipsId); const std::string& GetLevel3Palette(int16_t productCode); std::string GetLevel3ProductByAwipsId(const std::string& awipsId); diff --git a/wxdata/source/scwx/common/products.cpp b/wxdata/source/scwx/common/products.cpp index b503ea0a..391754ea 100644 --- a/wxdata/source/scwx/common/products.cpp +++ b/wxdata/source/scwx/common/products.cpp @@ -266,12 +266,18 @@ Level3ProductCategory GetLevel3Category(const std::string& categoryName) Level3ProductCategory GetLevel3CategoryByProduct(const std::string& productName) { auto result = std::find_if( - level3CategoryDefaultAwipsId_.cbegin(), - level3CategoryDefaultAwipsId_.cend(), - [&](const std::pair& pair) -> bool - { return pair.second == productName; }); + level3CategoryProductList_.cbegin(), + level3CategoryProductList_.cend(), + [&]( + const std::pair>& pair) + -> bool + { + return std::find(pair.second.cbegin(), + pair.second.cend(), + productName) != pair.second.cend(); + }); - if (result != level3CategoryDefaultAwipsId_.cend()) + if (result != level3CategoryProductList_.cend()) { return result->first; } @@ -281,6 +287,13 @@ Level3ProductCategory GetLevel3CategoryByProduct(const std::string& productName) } } +Level3ProductCategory GetLevel3CategoryByAwipsId(const std::string& awipsId) +{ + std::string productName = GetLevel3ProductByAwipsId(awipsId); + + return GetLevel3CategoryByProduct(productName); +} + const std::string& GetLevel3Palette(int16_t productCode) { auto it = level3Palette_.find(productCode);