diff --git a/scwx-qt/source/scwx/qt/map/map_widget.cpp b/scwx-qt/source/scwx/qt/map/map_widget.cpp index 12b3acd9..3c96ac72 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.cpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.cpp @@ -83,6 +83,7 @@ public: const std::string& before = {}); void AutoRefreshConnect(); void AutoRefreshDisconnect(); + void InitializeNewRadarProductView(const std::string& colorPalette); void RadarProductViewConnect(); void RadarProductViewDisconnect(); void SetRadarSite(const std::string& radarSite); @@ -276,26 +277,7 @@ void MapWidget::SelectRadarProduct(common::Level2Product product) if (radarProductViewCreated) { - util::async( - [=]() - { - std::string colorTableFile = - manager::SettingsManager::palette_settings()->palette( - common::GetLevel2Palette(product)); - if (!colorTableFile.empty()) - { - std::shared_ptr colorTable = - common::ColorTable::Load(colorTableFile); - radarProductView->LoadColorTable(colorTable); - } - - radarProductView->Initialize(); - }); - - if (p->map_ != nullptr) - { - AddLayers(); - } + p->InitializeNewRadarProductView(common::GetLevel2Palette(product)); } else { @@ -364,26 +346,7 @@ void MapWidget::SelectRadarProduct( p->RadarProductViewConnect(); - util::async( - [=]() - { - std::string colorTableFile = - manager::SettingsManager::palette_settings()->palette( - common::GetLevel3Palette(productCode)); - if (!colorTableFile.empty()) - { - std::shared_ptr colorTable = - common::ColorTable::Load(colorTableFile); - radarProductView->LoadColorTable(colorTable); - } - - radarProductView->Initialize(); - }); - - if (p->map_ != nullptr) - { - AddLayers(); - } + p->InitializeNewRadarProductView(common::GetLevel3Palette(productCode)); } } @@ -676,6 +639,30 @@ void MapWidgetImpl::AutoRefreshDisconnect() } } +void MapWidgetImpl::InitializeNewRadarProductView( + const std::string& colorPalette) +{ + util::async( + [=]() + { + std::string colorTableFile = + manager::SettingsManager::palette_settings()->palette(colorPalette); + if (!colorTableFile.empty()) + { + std::shared_ptr colorTable = + common::ColorTable::Load(colorTableFile); + context_->radarProductView_->LoadColorTable(colorTable); + } + + context_->radarProductView_->Initialize(); + }); + + if (map_ != nullptr) + { + widget_->AddLayers(); + } +} + void MapWidgetImpl::RadarProductViewConnect() { if (context_->radarProductView_ != nullptr) diff --git a/scwx-qt/source/scwx/qt/map/map_widget.hpp b/scwx-qt/source/scwx/qt/map/map_widget.hpp index de2f1246..115110d9 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.hpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.hpp @@ -69,6 +69,8 @@ private: std::unique_ptr p; + friend class MapWidgetImpl; + private slots: void mapChanged(QMapboxGL::MapChange);