Update radar site text

This commit is contained in:
Dan Paulat 2022-05-28 22:45:30 -05:00
parent f6262bba65
commit f71391e3b9
6 changed files with 70 additions and 7 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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();

View file

@ -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();

View file

@ -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>
@ -37,6 +38,7 @@ public:
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);

View file

@ -102,7 +102,7 @@
<context>
<name>scwx::qt::main::MainWindow</name>
<message>
<location filename="../source/scwx/qt/main/main_window.cpp" line="283"/>
<location filename="../source/scwx/qt/main/main_window.cpp" line="286"/>
<source>Unrecognized NEXRAD Product:</source>
<translation type="unfinished"></translation>
</message>