From 4325f352b12c9a52862233f453e968498238cb05 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 11 Sep 2022 08:07:48 -0500 Subject: [PATCH] Add level 3 product selection --- .../scwx/qt/ui/level3_products_widget.cpp | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) 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 91a5fbad..b84aead9 100644 --- a/scwx-qt/source/scwx/qt/ui/level3_products_widget.cpp +++ b/scwx-qt/source/scwx/qt/ui/level3_products_widget.cpp @@ -63,7 +63,43 @@ public: for (size_t tilt = 1; tilt <= common::kLevel3ProductMaxTilts; ++tilt) { - productMenu->addAction(tr("Tilt %1").arg(tilt)); + QAction* action = + productMenu->addAction(tr("Tilt %1").arg(tilt)); + + QObject::connect( + action, + &QAction::triggered, + this, + [=]() + { + std::shared_lock lock {availableCategoryMutex_}; + + // Find product map associated with current category + auto productMapIt = availableCategoryMap_.find(category); + if (productMapIt != availableCategoryMap_.cend()) + { + // Find tilt list associated with current product + auto tiltListIt = productMapIt->second.find(product); + if (tiltListIt != productMapIt->second.cend()) + { + // Find AWIPS product in tilt list + if (tilt <= tiltListIt->second.size()) + { + std::string awipsProductName = + tiltListIt->second.at(tilt - 1); + + self_->UpdateProductSelection( + common::RadarProductGroup::Level3, + awipsProductName); + + emit self_->RadarProductSelected( + common::RadarProductGroup::Level3, + awipsProductName, + 0); + } + } + } + }); } productMenus[product] = productMenu;