mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-30 13:30:06 +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, | ||||
|            radarSiteDialog_, | ||||
|            &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) | ||||
|  |  | |||
|  | @ -383,6 +383,38 @@ void MapWidget::SelectRadarProduct( | |||
|    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) | ||||
| { | ||||
|    p->context_->settings().isActive_ = isActive; | ||||
|  |  | |||
|  | @ -48,6 +48,7 @@ public: | |||
|                            const std::string&        product, | ||||
|                            int16_t                   productCode); | ||||
|    void SelectRadarProduct(std::shared_ptr<types::RadarProductRecord> record); | ||||
|    void SelectRadarSite(const std::string& radarSite); | ||||
|    void SetActive(bool isActive); | ||||
|    void SetAutoRefresh(bool enabled); | ||||
|    void SetMapParameters(double latitude, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat