mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 16:30:05 +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>
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue