mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 12:10:06 +00:00 
			
		
		
		
	First attempt at using current radar site for alerts
This commit is contained in:
		
							parent
							
								
									dea53bddb4
								
							
						
					
					
						commit
						91eb3d3b87
					
				
					 3 changed files with 41 additions and 5 deletions
				
			
		|  | @ -1466,6 +1466,7 @@ void MainWindowImpl::UpdateRadarSite() | |||
|       timelineManager_->SetRadarSite("?"); | ||||
|    } | ||||
| 
 | ||||
|    alertManager_->SetRadarSite(radarSite); | ||||
|    placefileManager_->SetRadarSite(radarSite); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -76,6 +76,8 @@ public: | |||
|       PositionManager::Instance()}; | ||||
|    std::shared_ptr<TextEventManager> textEventManager_ { | ||||
|       TextEventManager::Instance()}; | ||||
| 
 | ||||
|    std::shared_ptr<config::RadarSite> radarSite_ {}; | ||||
| }; | ||||
| 
 | ||||
| AlertManager::AlertManager() : p(std::make_unique<Impl>(this)) {} | ||||
|  | @ -104,11 +106,23 @@ common::Coordinate AlertManager::Impl::CurrentCoordinate( | |||
|    } | ||||
|    else if (locationMethod == types::LocationMethod::RadarSite) | ||||
|    { | ||||
|       std::string siteId = | ||||
|          settings::GeneralSettings::Instance().default_radar_site().GetValue(); | ||||
|       auto radarSite = config::RadarSite::Get(siteId); | ||||
|       coordinate.latitude_  = radarSite->latitude(); | ||||
|       coordinate.longitude_ = radarSite->longitude(); | ||||
|       std::shared_ptr<config::RadarSite> radarSite; | ||||
|       if (radarSite_ == nullptr) | ||||
|       { | ||||
|          std::string siteId = | ||||
|             settings::GeneralSettings::Instance().default_radar_site().GetValue(); | ||||
|          radarSite = config::RadarSite::Get(siteId); | ||||
|       } | ||||
|       else | ||||
|       { | ||||
|          radarSite = radarSite_; | ||||
|       } | ||||
| 
 | ||||
|       if (radarSite != nullptr) | ||||
|       { | ||||
|          coordinate.latitude_  = radarSite->latitude(); | ||||
|          coordinate.longitude_ = radarSite->longitude(); | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
|    return coordinate; | ||||
|  | @ -198,6 +212,26 @@ void AlertManager::Impl::UpdateLocationTracking( | |||
|    positionManager_->EnablePositionUpdates(uuid_, locationEnabled); | ||||
| } | ||||
| 
 | ||||
| void AlertManager::SetRadarSite(std::shared_ptr<config::RadarSite> radarSite) | ||||
| { | ||||
|    if (p->radarSite_ == radarSite) | ||||
|    { | ||||
|       // No action needed
 | ||||
|       return; | ||||
|    } | ||||
| 
 | ||||
|    if (radarSite == nullptr) | ||||
|    { | ||||
|       logger_->debug("SetRadarSite: ?"); | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       logger_->debug("SetRadarSite: {}", radarSite->id()); | ||||
|    } | ||||
| 
 | ||||
|    p->radarSite_ = radarSite; | ||||
| } | ||||
| 
 | ||||
| std::shared_ptr<AlertManager> AlertManager::Instance() | ||||
| { | ||||
|    static std::weak_ptr<AlertManager> alertManagerReference_ {}; | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ public: | |||
|    explicit AlertManager(); | ||||
|    ~AlertManager(); | ||||
| 
 | ||||
|    void AlertManager::SetRadarSite(const std::string& radarSite); | ||||
|    static std::shared_ptr<AlertManager> Instance(); | ||||
| 
 | ||||
| private: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 AdenKoperczak
						AdenKoperczak