mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 16:30:05 +00:00
Select radar site capability
This commit is contained in:
parent
5dd1a327c8
commit
43e0d69379
3 changed files with 45 additions and 0 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue