diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp index 7c60e933..117d681d 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.cpp @@ -938,17 +938,29 @@ void RadarProductManager::UpdateAvailableProducts() std::shared_ptr RadarProductManager::Instance(const std::string& radarSite) { - std::lock_guard guard(instanceMutex_); + std::shared_ptr instance = nullptr; + bool instanceCreated = false; - if (!instanceMap_.contains(radarSite)) { - instanceMap_[radarSite] = - std::make_shared(radarSite); + std::lock_guard guard(instanceMutex_); + + if (!instanceMap_.contains(radarSite)) + { + instanceMap_[radarSite] = + std::make_shared(radarSite); + instanceCreated = true; + } + + instance = instanceMap_[radarSite]; + } + + if (instanceCreated) + { emit RadarProductManagerNotifier::Instance().RadarProductManagerCreated( radarSite); } - return instanceMap_[radarSite]; + return instance; } } // namespace manager diff --git a/scwx-qt/source/scwx/qt/model/radar_product_model.cpp b/scwx-qt/source/scwx/qt/model/radar_product_model.cpp index d965a23d..e29e9e72 100644 --- a/scwx-qt/source/scwx/qt/model/radar_product_model.cpp +++ b/scwx-qt/source/scwx/qt/model/radar_product_model.cpp @@ -48,6 +48,8 @@ RadarProductModelImpl::RadarProductModelImpl(RadarProductModel* self) : this, [=](const std::string& radarSite) { + logger_->debug("Adding radar site: {}", radarSite); + const QModelIndex rootIndex = self_->createIndex(rootItem_->row(), 0, rootItem_.get()); const int rootChildren = rootItem_->child_count(); @@ -134,8 +136,7 @@ RadarProductModelImpl::RadarProductModelImpl(RadarProductModel* self) : self_->endInsertRows(); }, Qt::QueuedConnection); - }, - Qt::QueuedConnection); + }); } #include "radar_product_model.moc"