From d21a11963fdbf03d4921ee55f191952373517b71 Mon Sep 17 00:00:00 2001 From: AdenKoperczak Date: Sat, 3 May 2025 10:15:28 -0400 Subject: [PATCH] Add current radar site to map context --- scwx-qt/source/scwx/qt/map/map_context.cpp | 11 +++++++++++ scwx-qt/source/scwx/qt/map/map_context.hpp | 22 +++++++++++----------- scwx-qt/source/scwx/qt/map/map_widget.cpp | 3 +++ 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/scwx-qt/source/scwx/qt/map/map_context.cpp b/scwx-qt/source/scwx/qt/map/map_context.cpp index 46c2b6fa..a0c1e74a 100644 --- a/scwx-qt/source/scwx/qt/map/map_context.cpp +++ b/scwx-qt/source/scwx/qt/map/map_context.cpp @@ -27,6 +27,7 @@ public: common::RadarProductGroup::Unknown}; std::string radarProduct_ {"???"}; int16_t radarProductCode_ {0}; + std::shared_ptr radarSite_ {nullptr}; MapProvider mapProvider_ {MapProvider::Unknown}; std::string mapCopyrights_ {}; @@ -106,6 +107,11 @@ std::string MapContext::radar_product() const return p->radarProduct_; } +std::shared_ptr MapContext::radar_site() const +{ + return p->radarSite_; +} + int16_t MapContext::radar_product_code() const { return p->radarProductCode_; @@ -174,6 +180,11 @@ void MapContext::set_radar_product_code(int16_t radarProductCode) p->radarProductCode_ = radarProductCode; } +void MapContext::set_radar_site(const std::shared_ptr& site) +{ + p->radarSite_ = site; +} + void MapContext::set_widget(QWidget* widget) { p->widget_ = widget; diff --git a/scwx-qt/source/scwx/qt/map/map_context.hpp b/scwx-qt/source/scwx/qt/map/map_context.hpp index 680f9ddd..39a5c1be 100644 --- a/scwx-qt/source/scwx/qt/map/map_context.hpp +++ b/scwx-qt/source/scwx/qt/map/map_context.hpp @@ -4,13 +4,12 @@ #include #include #include +#include #include #include -namespace scwx -{ -namespace qt +namespace scwx::qt { namespace view { @@ -30,7 +29,7 @@ class MapContext : public gl::GlContext public: explicit MapContext( std::shared_ptr radarProductView = nullptr); - ~MapContext(); + ~MapContext() override; MapContext(const MapContext&) = delete; MapContext& operator=(const MapContext&) = delete; @@ -48,11 +47,12 @@ public: [[nodiscard]] std::shared_ptr overlay_product_view() const; [[nodiscard]] std::shared_ptr - radar_product_view() const; - [[nodiscard]] common::RadarProductGroup radar_product_group() const; - [[nodiscard]] std::string radar_product() const; - [[nodiscard]] int16_t radar_product_code() const; - [[nodiscard]] QWidget* widget() const; + radar_product_view() const; + [[nodiscard]] common::RadarProductGroup radar_product_group() const; + [[nodiscard]] std::string radar_product() const; + [[nodiscard]] int16_t radar_product_code() const; + [[nodiscard]] std::shared_ptr radar_site() const; + [[nodiscard]] QWidget* widget() const; void set_map(const std::shared_ptr& map); void set_map_copyrights(const std::string& copyrights); @@ -67,6 +67,7 @@ public: void set_radar_product_group(common::RadarProductGroup radarProductGroup); void set_radar_product(const std::string& radarProduct); void set_radar_product_code(int16_t radarProductCode); + void set_radar_site(const std::shared_ptr& site); void set_widget(QWidget* widget); private: @@ -76,5 +77,4 @@ private: }; } // namespace map -} // namespace qt -} // namespace scwx +} // namespace scwx::qt diff --git a/scwx-qt/source/scwx/qt/map/map_widget.cpp b/scwx-qt/source/scwx/qt/map/map_widget.cpp index abf5d484..f9b898c1 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.cpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.cpp @@ -2008,6 +2008,9 @@ void MapWidgetImpl::SelectNearestRadarSite(double latitude, void MapWidgetImpl::SetRadarSite(const std::string& radarSite, bool checkProductAvailability) { + // Set the radar site in the context + context_->set_radar_site(config::RadarSite::Get(radarSite)); + // Check if radar site has changed if (radarProductManager_ == nullptr || radarSite != radarProductManager_->radar_site()->id())