From 0902f183fcdd74b6ff81edbfcc36a999320a6675 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Tue, 11 Jul 2023 23:25:39 -0500 Subject: [PATCH] Connect radar product view signals in layer constructor, rather than initialize If the radar product view updates at precisely the right time, color tables might not be initialized properly. The Initialize function would not have been able to properly update color tables, and the view signal would be emitted prior to the signals and slots being connected. --- .../scwx/qt/map/radar_product_layer.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp b/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp index 514b7e5c..710ca3d6 100644 --- a/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp +++ b/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp @@ -77,6 +77,15 @@ public: RadarProductLayer::RadarProductLayer(std::shared_ptr context) : GenericLayer(context), p(std::make_unique()) { + auto radarProductView = context->radar_product_view(); + connect(radarProductView.get(), + &view::RadarProductView::ColorTableUpdated, + this, + [this]() { p->colorTableNeedsUpdate_ = true; }); + connect(radarProductView.get(), + &view::RadarProductView::SweepComputed, + this, + [this]() { p->sweepNeedsUpdate_ = true; }); } RadarProductLayer::~RadarProductLayer() = default; @@ -144,16 +153,6 @@ void RadarProductLayer::Initialize() gl.glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); gl.glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); gl.glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - - auto radarProductView = context()->radar_product_view(); - connect(radarProductView.get(), - &view::RadarProductView::ColorTableUpdated, - this, - [this]() { p->colorTableNeedsUpdate_ = true; }); - connect(radarProductView.get(), - &view::RadarProductView::SweepComputed, - this, - [this]() { p->sweepNeedsUpdate_ = true; }); } void RadarProductLayer::UpdateSweep()