From b78011a2d30784a4b160e83f31b99052c1dfd8d2 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sat, 27 Nov 2021 19:17:31 -0600 Subject: [PATCH] Moving isActive from radar product view to map settings --- scwx-qt/scwx-qt.cmake | 1 + scwx-qt/source/scwx/qt/map/map_context.hpp | 4 ++- scwx-qt/source/scwx/qt/map/map_settings.hpp | 26 +++++++++++++++++++ scwx-qt/source/scwx/qt/map/map_widget.cpp | 12 ++------- scwx-qt/source/scwx/qt/map/overlay_layer.cpp | 2 +- .../scwx/qt/view/radar_product_view.cpp | 16 ++---------- .../scwx/qt/view/radar_product_view.hpp | 4 --- 7 files changed, 35 insertions(+), 30 deletions(-) create mode 100644 scwx-qt/source/scwx/qt/map/map_settings.hpp diff --git a/scwx-qt/scwx-qt.cmake b/scwx-qt/scwx-qt.cmake index 90d6da90..3bb34c5d 100644 --- a/scwx-qt/scwx-qt.cmake +++ b/scwx-qt/scwx-qt.cmake @@ -68,6 +68,7 @@ set(HDR_MAP source/scwx/qt/map/color_table_layer.hpp source/scwx/qt/map/generic_layer.hpp source/scwx/qt/map/layer_wrapper.hpp source/scwx/qt/map/map_context.hpp + source/scwx/qt/map/map_settings.hpp source/scwx/qt/map/map_widget.hpp source/scwx/qt/map/overlay_layer.hpp source/scwx/qt/map/radar_product_layer.hpp diff --git a/scwx-qt/source/scwx/qt/map/map_context.hpp b/scwx-qt/source/scwx/qt/map/map_context.hpp index dcbe1a1d..9087a6bc 100644 --- a/scwx-qt/source/scwx/qt/map/map_context.hpp +++ b/scwx-qt/source/scwx/qt/map/map_context.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include #include namespace scwx @@ -14,7 +15,7 @@ struct MapContext { explicit MapContext( std::shared_ptr radarProductView = nullptr) : - gl_ {}, radarProductView_ {radarProductView} + gl_ {}, settings_ {}, radarProductView_ {radarProductView} { } ~MapContext() = default; @@ -26,6 +27,7 @@ struct MapContext MapContext& operator=(MapContext&&) noexcept = default; gl::OpenGLFunctions gl_; + MapSettings settings_; std::shared_ptr radarProductView_; }; diff --git a/scwx-qt/source/scwx/qt/map/map_settings.hpp b/scwx-qt/source/scwx/qt/map/map_settings.hpp new file mode 100644 index 00000000..642c8fa1 --- /dev/null +++ b/scwx-qt/source/scwx/qt/map/map_settings.hpp @@ -0,0 +1,26 @@ +#pragma once + +namespace scwx +{ +namespace qt +{ +namespace map +{ + +struct MapSettings +{ + explicit MapSettings() : isActive_ {false} {} + ~MapSettings() = default; + + MapSettings(const MapSettings&) = delete; + MapSettings& operator=(const MapSettings&) = delete; + + MapSettings(MapSettings&&) noexcept = default; + MapSettings& operator=(MapSettings&&) noexcept = default; + + bool isActive_; +}; + +} // namespace map +} // namespace qt +} // namespace scwx diff --git a/scwx-qt/source/scwx/qt/map/map_widget.cpp b/scwx-qt/source/scwx/qt/map/map_widget.cpp index 389b9274..77d403d2 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.cpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.cpp @@ -58,7 +58,6 @@ public: radarProductLayer_ {nullptr}, overlayLayer_ {nullptr}, colorTableLayer_ {nullptr}, - isActive_ {false}, lastPos_(), currentStyleIndex_ {0}, frameDraws_(0), @@ -87,7 +86,6 @@ public: std::shared_ptr overlayLayer_; std::shared_ptr colorTableLayer_; - bool isActive_; QPointF lastPos_; uint8_t currentStyleIndex_; @@ -145,7 +143,6 @@ void MapWidget::SelectRadarProduct(common::Level2Product product) radarProductView = view::RadarProductViewFactory::Create( product, currentElevation, p->radarProductManager_); - radarProductView->SetActive(p->isActive_); connect( radarProductView.get(), @@ -184,13 +181,8 @@ void MapWidget::SelectRadarProduct(common::Level2Product product) void MapWidget::SetActive(bool isActive) { - p->isActive_ = isActive; - - if (p->context_->radarProductView_ != nullptr) - { - p->context_->radarProductView_->SetActive(isActive); - update(); - } + p->context_->settings_.isActive_ = isActive; + update(); } void MapWidget::SetMapParameters( diff --git a/scwx-qt/source/scwx/qt/map/overlay_layer.cpp b/scwx-qt/source/scwx/qt/map/overlay_layer.cpp index a1f5730f..f4e76cc5 100644 --- a/scwx-qt/source/scwx/qt/map/overlay_layer.cpp +++ b/scwx-qt/source/scwx/qt/map/overlay_layer.cpp @@ -159,7 +159,7 @@ void OverlayLayer::Render(const QMapbox::CustomLayerRenderParameters& params) gl.glUniformMatrix4fv( p->uMVPMatrixLocation_, 1, GL_FALSE, glm::value_ptr(projection)); - if (context()->radarProductView_->IsActive()) + if (context()->settings_.isActive_) { const float vertexLX = 1.0f; const float vertexRX = static_cast(params.width) - 1.0f; diff --git a/scwx-qt/source/scwx/qt/view/radar_product_view.cpp b/scwx-qt/source/scwx/qt/view/radar_product_view.cpp index e4d18638..0ddc78fa 100644 --- a/scwx-qt/source/scwx/qt/view/radar_product_view.cpp +++ b/scwx-qt/source/scwx/qt/view/radar_product_view.cpp @@ -24,10 +24,8 @@ static const uint16_t DEFAULT_COLOR_TABLE_MAX = 255u; class RadarProductViewImpl { public: - explicit RadarProductViewImpl() : isActive_ {false} {}; - ~RadarProductViewImpl() = default; - - bool isActive_; + explicit RadarProductViewImpl() = default; + ~RadarProductViewImpl() = default; }; RadarProductView::RadarProductView() : @@ -87,16 +85,6 @@ RadarProductView::GetCfpMomentData() const return std::tie(data, dataSize, componentSize); } -bool RadarProductView::IsActive() const -{ - return p->isActive_; -} - -void RadarProductView::SetActive(bool isActive) -{ - p->isActive_ = isActive; -} - void RadarProductView::ComputeSweep() { BOOST_LOG_TRIVIAL(debug) << logPrefix_ << "ComputeSweep()"; diff --git a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp index adb9d230..1f91b37c 100644 --- a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp +++ b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp @@ -42,10 +42,6 @@ public: virtual std::tuple GetMomentData() const = 0; virtual std::tuple GetCfpMomentData() const; - bool IsActive() const; - - void SetActive(bool isActive); - protected: virtual void UpdateColorTable() = 0;