mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 11:00:06 +00:00 
			
		
		
		
	Include radar site in time update determination
This commit is contained in:
		
							parent
							
								
									266be01d8f
								
							
						
					
					
						commit
						f6de4d0742
					
				
					 1 changed files with 28 additions and 7 deletions
				
			
		|  | @ -31,9 +31,10 @@ public: | |||
|    void SelectTime(std::chrono::system_clock::time_point selectedTime = {}); | ||||
| 
 | ||||
|    std::string                           radarSite_ {"?"}; | ||||
|    std::string                           previousRadarSite_ {"?"}; | ||||
|    std::chrono::system_clock::time_point pinnedTime_ {}; | ||||
|    std::chrono::system_clock::time_point currentAdjustedTime_ {}; | ||||
|    std::chrono::system_clock::time_point currentSelectedTime_ {}; | ||||
|    std::chrono::system_clock::time_point adjustedTime_ {}; | ||||
|    std::chrono::system_clock::time_point selectedTime_ {}; | ||||
|    types::MapTime                        viewType_ {types::MapTime::Live}; | ||||
|    std::chrono::minutes                  loopTime_ {30}; | ||||
|    double                                loopSpeed_ {1.0}; | ||||
|  | @ -47,6 +48,17 @@ TimelineManager::~TimelineManager() = default; | |||
| void TimelineManager::SetRadarSite(const std::string& radarSite) | ||||
| { | ||||
|    p->radarSite_ = radarSite; | ||||
| 
 | ||||
|    if (p->viewType_ == types::MapTime::Live) | ||||
|    { | ||||
|       // If the selected view type is live, select the current products
 | ||||
|       p->SelectTime(); | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       // If the selected view type is archive, select using the selected time
 | ||||
|       p->SelectTime(p->selectedTime_); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| void TimelineManager::SetDateTime( | ||||
|  | @ -130,7 +142,7 @@ void TimelineManager::AnimationStepEnd() | |||
| void TimelineManager::Impl::SelectTime( | ||||
|    std::chrono::system_clock::time_point selectedTime) | ||||
| { | ||||
|    if (currentSelectedTime_ == selectedTime) | ||||
|    if (selectedTime_ == selectedTime && radarSite_ == previousRadarSite_) | ||||
|    { | ||||
|       // Nothing to do
 | ||||
|       return; | ||||
|  | @ -154,17 +166,26 @@ void TimelineManager::Impl::SelectTime( | |||
| 
 | ||||
|          if (elementPtr != nullptr) | ||||
|          { | ||||
|             // If the time was found, select it
 | ||||
|             currentAdjustedTime_ = *elementPtr; | ||||
|             currentSelectedTime_ = selectedTime; | ||||
|             selectedTime_ = selectedTime; | ||||
| 
 | ||||
|             emit self_->TimeUpdated(currentAdjustedTime_); | ||||
|             // If the adjusted time changed, or if a new radar site has been
 | ||||
|             // selected
 | ||||
|             if (adjustedTime_ != *elementPtr || | ||||
|                 radarSite_ != previousRadarSite_) | ||||
|             { | ||||
|                // If the time was found, select it
 | ||||
|                adjustedTime_ = *elementPtr; | ||||
| 
 | ||||
|                emit self_->TimeUpdated(adjustedTime_); | ||||
|             } | ||||
|          } | ||||
|          else | ||||
|          { | ||||
|             // No volume time was found
 | ||||
|             logger_->info("No volume scan found for {}", selectedTime); | ||||
|          } | ||||
| 
 | ||||
|          previousRadarSite_ = radarSite_; | ||||
|       }); | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat