Select radar site capability

This commit is contained in:
Dan Paulat 2022-10-08 23:08:20 -05:00
parent 5dd1a327c8
commit 43e0d69379
3 changed files with 45 additions and 0 deletions

View file

@ -415,6 +415,18 @@ void MainWindowImpl::ConnectOtherSignals()
&MainWindow::ActiveMapMoved, &MainWindow::ActiveMapMoved,
radarSiteDialog_, radarSiteDialog_,
&ui::RadarSiteDialog::HandleMapUpdate); &ui::RadarSiteDialog::HandleMapUpdate);
connect(radarSiteDialog_,
&ui::RadarSiteDialog::accepted,
this,
[&]()
{
std::string selectedRadarSite = radarSiteDialog_->radar_site();
for (map::MapWidget* map : maps_)
{
map->SelectRadarSite(selectedRadarSite);
}
});
} }
void MainWindowImpl::HandleFocusChange(QWidget* focused) void MainWindowImpl::HandleFocusChange(QWidget* focused)

View file

@ -383,6 +383,38 @@ void MapWidget::SelectRadarProduct(
SelectRadarProduct(group, product, productCode); SelectRadarProduct(group, product, productCode);
} }
void MapWidget::SelectRadarSite(const std::string& id)
{
logger_->debug("Selecting radar site: {}", id);
std::shared_ptr<config::RadarSite> radarSite = config::RadarSite::Get(id);
// Verify radar site is valid and has changed
if (radarSite != nullptr &&
(p->radarProductManager_ == nullptr ||
id != p->radarProductManager_->radar_site()->id()))
{
auto radarProductView = p->context_->radar_product_view();
p->map_->setCoordinate({radarSite->latitude(), radarSite->longitude()});
p->SetRadarSite(id);
p->Update();
// Select products from new site
if (radarProductView != nullptr)
{
radarProductView->set_radar_product_manager(p->radarProductManager_);
SelectRadarProduct(radarProductView->GetRadarProductGroup(),
radarProductView->GetRadarProductName(),
0);
}
AddLayers();
// TODO: Disable refresh from old site
}
}
void MapWidget::SetActive(bool isActive) void MapWidget::SetActive(bool isActive)
{ {
p->context_->settings().isActive_ = isActive; p->context_->settings().isActive_ = isActive;

View file

@ -48,6 +48,7 @@ public:
const std::string& product, const std::string& product,
int16_t productCode); int16_t productCode);
void SelectRadarProduct(std::shared_ptr<types::RadarProductRecord> record); void SelectRadarProduct(std::shared_ptr<types::RadarProductRecord> record);
void SelectRadarSite(const std::string& radarSite);
void SetActive(bool isActive); void SetActive(bool isActive);
void SetAutoRefresh(bool enabled); void SetAutoRefresh(bool enabled);
void SetMapParameters(double latitude, void SetMapParameters(double latitude,