mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 02:20:04 +00:00 
			
		
		
		
	Update radar site text
This commit is contained in:
		
							parent
							
								
									f6262bba65
								
							
						
					
					
						commit
						f71391e3b9
					
				
					 6 changed files with 70 additions and 7 deletions
				
			
		|  | @ -3,6 +3,7 @@ | |||
| #include <scwx/common/sites.hpp> | ||||
| #include <scwx/util/logger.hpp> | ||||
| 
 | ||||
| #include <format> | ||||
| #include <unordered_map> | ||||
| 
 | ||||
| namespace scwx | ||||
|  | @ -90,6 +91,29 @@ std::string RadarSite::place() const | |||
|    return p->place_; | ||||
| } | ||||
| 
 | ||||
| std::string RadarSite::location_name() const | ||||
| { | ||||
|    std::string locationName; | ||||
| 
 | ||||
|    if (p->country_ == "USA") | ||||
|    { | ||||
|       locationName = std::format("{}, {}", p->place_, p->state_); | ||||
|    } | ||||
|    else if (std::all_of(p->state_.cbegin(), | ||||
|                         p->state_.cend(), | ||||
|                         [](char c) { return std::isdigit(c); })) | ||||
|    { | ||||
|       locationName = std::format("{}, {}", p->place_, p->country_); | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       locationName = | ||||
|          std::format("{}, {}, {}", p->place_, p->state_, p->country_); | ||||
|    } | ||||
| 
 | ||||
|    return locationName; | ||||
| } | ||||
| 
 | ||||
| std::shared_ptr<RadarSite> RadarSite::Get(const std::string& id) | ||||
| { | ||||
|    std::shared_ptr<RadarSite> radarSite = nullptr; | ||||
|  |  | |||
|  | @ -31,6 +31,7 @@ public: | |||
|    std::string country() const; | ||||
|    std::string state() const; | ||||
|    std::string place() const; | ||||
|    std::string location_name() const; | ||||
| 
 | ||||
|    static std::shared_ptr<RadarSite> Get(const std::string& id); | ||||
| 
 | ||||
|  |  | |||
|  | @ -80,6 +80,7 @@ public: | |||
|    void UpdateRadarProductSelection(common::RadarProductGroup group, | ||||
|                                     const std::string&        product); | ||||
|    void UpdateRadarProductSettings(); | ||||
|    void UpdateRadarSite(); | ||||
|    void UpdateVcp(); | ||||
| 
 | ||||
|    MainWindow*       mainWindow_; | ||||
|  | @ -149,6 +150,8 @@ MainWindow::MainWindow(QWidget* parent) : | |||
|            &QApplication::focusChanged, | ||||
|            this, | ||||
|            [=](QWidget* old, QWidget* now) { p->HandleFocusChange(now); }); | ||||
| 
 | ||||
|    p->HandleFocusChange(p->activeMap_); | ||||
| } | ||||
| 
 | ||||
| MainWindow::~MainWindow() | ||||
|  | @ -355,6 +358,7 @@ void MainWindowImpl::ConfigureMapLayout() | |||
|                         activeMap_->GetRadarProductGroup(), | ||||
|                         activeMap_->GetRadarProductName()); | ||||
|                      UpdateRadarProductSettings(); | ||||
|                      UpdateRadarSite(); | ||||
|                      UpdateVcp(); | ||||
|                   } | ||||
|                }, | ||||
|  | @ -382,6 +386,7 @@ void MainWindowImpl::HandleFocusChange(QWidget* focused) | |||
|       UpdateRadarProductSelection(mapWidget->GetRadarProductGroup(), | ||||
|                                   mapWidget->GetRadarProductName()); | ||||
|       UpdateRadarProductSettings(); | ||||
|       UpdateRadarSite(); | ||||
|       UpdateVcp(); | ||||
|    } | ||||
| } | ||||
|  | @ -529,6 +534,26 @@ void MainWindowImpl::UpdateRadarProductSettings() | |||
|    UpdateElevationSelection(currentElevation); | ||||
| } | ||||
| 
 | ||||
| void MainWindowImpl::UpdateRadarSite() | ||||
| { | ||||
|    std::shared_ptr<config::RadarSite> radarSite = activeMap_->GetRadarSite(); | ||||
| 
 | ||||
|    if (radarSite != nullptr) | ||||
|    { | ||||
|       mainWindow_->ui->radarSiteValueLabel->setVisible(true); | ||||
|       mainWindow_->ui->radarLocationLabel->setVisible(true); | ||||
| 
 | ||||
|       mainWindow_->ui->radarSiteValueLabel->setText(radarSite->id().c_str()); | ||||
|       mainWindow_->ui->radarLocationLabel->setText( | ||||
|          radarSite->location_name().c_str()); | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       mainWindow_->ui->radarSiteValueLabel->setVisible(false); | ||||
|       mainWindow_->ui->radarLocationLabel->setVisible(false); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| void MainWindowImpl::UpdateVcp() | ||||
| { | ||||
|    uint16_t vcp = activeMap_->GetVcp(); | ||||
|  |  | |||
|  | @ -215,9 +215,20 @@ std::string MapWidget::GetRadarProductName() const | |||
|    } | ||||
| } | ||||
| 
 | ||||
| std::shared_ptr<config::RadarSite> MapWidget::GetRadarSite() const | ||||
| { | ||||
|    std::shared_ptr<config::RadarSite> radarSite = nullptr; | ||||
| 
 | ||||
|    if (p->radarProductManager_ != nullptr) | ||||
|    { | ||||
|       radarSite = p->radarProductManager_->radar_site(); | ||||
|    } | ||||
| 
 | ||||
|    return radarSite; | ||||
| } | ||||
| 
 | ||||
| uint16_t MapWidget::GetVcp() const | ||||
| { | ||||
| 
 | ||||
|    if (p->context_->radarProductView_ != nullptr) | ||||
|    { | ||||
|       return p->context_->radarProductView_->vcp(); | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <scwx/common/products.hpp> | ||||
| #include <scwx/qt/config/radar_site.hpp> | ||||
| #include <scwx/qt/types/radar_product_record.hpp> | ||||
| 
 | ||||
| #include <chrono> | ||||
|  | @ -33,11 +34,12 @@ public: | |||
|    explicit MapWidget(const QMapboxGLSettings&); | ||||
|    ~MapWidget(); | ||||
| 
 | ||||
|    float                     GetElevation() const; | ||||
|    std::vector<float>        GetElevationCuts() const; | ||||
|    common::RadarProductGroup GetRadarProductGroup() const; | ||||
|    std::string               GetRadarProductName() const; | ||||
|    uint16_t                  GetVcp() const; | ||||
|    float                              GetElevation() const; | ||||
|    std::vector<float>                 GetElevationCuts() const; | ||||
|    common::RadarProductGroup          GetRadarProductGroup() const; | ||||
|    std::string                        GetRadarProductName() const; | ||||
|    std::shared_ptr<config::RadarSite> GetRadarSite() const; | ||||
|    uint16_t                           GetVcp() const; | ||||
| 
 | ||||
|    void SelectElevation(float elevation); | ||||
|    void SelectRadarProduct(common::Level2Product product); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat