diff --git a/scwx-qt/source/scwx/qt/map/map_context.cpp b/scwx-qt/source/scwx/qt/map/map_context.cpp index 68b94e8e..9b684eff 100644 --- a/scwx-qt/source/scwx/qt/map/map_context.cpp +++ b/scwx-qt/source/scwx/qt/map/map_context.cpp @@ -11,6 +11,7 @@ class MapContext::Impl { public: explicit Impl(std::shared_ptr radarProductView) : + map_ {}, settings_ {}, radarProductView_ {radarProductView}, radarProductGroup_ {common::RadarProductGroup::Unknown}, @@ -21,6 +22,7 @@ public: ~Impl() {} + std::weak_ptr map_; MapSettings settings_; std::shared_ptr radarProductView_; common::RadarProductGroup radarProductGroup_; @@ -38,6 +40,11 @@ MapContext::~MapContext() = default; MapContext::MapContext(MapContext&&) noexcept = default; MapContext& MapContext::operator=(MapContext&&) noexcept = default; +std::weak_ptr MapContext::map() const +{ + return p->map_; +} + MapSettings& MapContext::settings() { return p->settings_; @@ -63,6 +70,11 @@ int16_t MapContext::radar_product_code() const return p->radarProductCode_; } +void MapContext::set_map(std::shared_ptr map) +{ + p->map_ = map; +} + void MapContext::set_radar_product_view( std::shared_ptr radarProductView) { diff --git a/scwx-qt/source/scwx/qt/map/map_context.hpp b/scwx-qt/source/scwx/qt/map/map_context.hpp index 47f3cc11..373d8b6d 100644 --- a/scwx-qt/source/scwx/qt/map/map_context.hpp +++ b/scwx-qt/source/scwx/qt/map/map_context.hpp @@ -4,6 +4,8 @@ #include #include +class QMapboxGL; + namespace scwx { namespace qt @@ -24,12 +26,14 @@ public: MapContext(MapContext&&) noexcept; MapContext& operator=(MapContext&&) noexcept; + std::weak_ptr map() const; MapSettings& settings(); std::shared_ptr radar_product_view() const; common::RadarProductGroup radar_product_group() const; std::string radar_product() const; int16_t radar_product_code() const; + void set_map(std::shared_ptr map); void set_radar_product_view( std::shared_ptr radarProductView); void set_radar_product_group(common::RadarProductGroup radarProductGroup); diff --git a/scwx-qt/source/scwx/qt/map/map_widget.cpp b/scwx-qt/source/scwx/qt/map/map_widget.cpp index f2ac4e22..a543f2f4 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.cpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.cpp @@ -639,6 +639,7 @@ void MapWidget::initializeGL() p->context_->gl().initializeOpenGLFunctions(); p->map_.reset(new QMapboxGL(nullptr, p->settings_, size(), pixelRatio())); + p->context_->set_map(p->map_); connect(p->map_.get(), &QMapboxGL::needsRendering, p.get(),