mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 22:30:06 +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/common/sites.hpp>
|
||||||
#include <scwx/util/logger.hpp>
|
#include <scwx/util/logger.hpp>
|
||||||
|
|
||||||
|
#include <format>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
|
|
@ -90,6 +91,29 @@ std::string RadarSite::place() const
|
||||||
return p->place_;
|
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::Get(const std::string& id)
|
||||||
{
|
{
|
||||||
std::shared_ptr<RadarSite> radarSite = nullptr;
|
std::shared_ptr<RadarSite> radarSite = nullptr;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ public:
|
||||||
std::string country() const;
|
std::string country() const;
|
||||||
std::string state() const;
|
std::string state() const;
|
||||||
std::string place() const;
|
std::string place() const;
|
||||||
|
std::string location_name() const;
|
||||||
|
|
||||||
static std::shared_ptr<RadarSite> Get(const std::string& id);
|
static std::shared_ptr<RadarSite> Get(const std::string& id);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@ public:
|
||||||
void UpdateRadarProductSelection(common::RadarProductGroup group,
|
void UpdateRadarProductSelection(common::RadarProductGroup group,
|
||||||
const std::string& product);
|
const std::string& product);
|
||||||
void UpdateRadarProductSettings();
|
void UpdateRadarProductSettings();
|
||||||
|
void UpdateRadarSite();
|
||||||
void UpdateVcp();
|
void UpdateVcp();
|
||||||
|
|
||||||
MainWindow* mainWindow_;
|
MainWindow* mainWindow_;
|
||||||
|
|
@ -149,6 +150,8 @@ MainWindow::MainWindow(QWidget* parent) :
|
||||||
&QApplication::focusChanged,
|
&QApplication::focusChanged,
|
||||||
this,
|
this,
|
||||||
[=](QWidget* old, QWidget* now) { p->HandleFocusChange(now); });
|
[=](QWidget* old, QWidget* now) { p->HandleFocusChange(now); });
|
||||||
|
|
||||||
|
p->HandleFocusChange(p->activeMap_);
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
|
@ -355,6 +358,7 @@ void MainWindowImpl::ConfigureMapLayout()
|
||||||
activeMap_->GetRadarProductGroup(),
|
activeMap_->GetRadarProductGroup(),
|
||||||
activeMap_->GetRadarProductName());
|
activeMap_->GetRadarProductName());
|
||||||
UpdateRadarProductSettings();
|
UpdateRadarProductSettings();
|
||||||
|
UpdateRadarSite();
|
||||||
UpdateVcp();
|
UpdateVcp();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -382,6 +386,7 @@ void MainWindowImpl::HandleFocusChange(QWidget* focused)
|
||||||
UpdateRadarProductSelection(mapWidget->GetRadarProductGroup(),
|
UpdateRadarProductSelection(mapWidget->GetRadarProductGroup(),
|
||||||
mapWidget->GetRadarProductName());
|
mapWidget->GetRadarProductName());
|
||||||
UpdateRadarProductSettings();
|
UpdateRadarProductSettings();
|
||||||
|
UpdateRadarSite();
|
||||||
UpdateVcp();
|
UpdateVcp();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -529,6 +534,26 @@ void MainWindowImpl::UpdateRadarProductSettings()
|
||||||
UpdateElevationSelection(currentElevation);
|
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()
|
void MainWindowImpl::UpdateVcp()
|
||||||
{
|
{
|
||||||
uint16_t vcp = activeMap_->GetVcp();
|
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
|
uint16_t MapWidget::GetVcp() const
|
||||||
{
|
{
|
||||||
|
|
||||||
if (p->context_->radarProductView_ != nullptr)
|
if (p->context_->radarProductView_ != nullptr)
|
||||||
{
|
{
|
||||||
return p->context_->radarProductView_->vcp();
|
return p->context_->radarProductView_->vcp();
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <scwx/common/products.hpp>
|
#include <scwx/common/products.hpp>
|
||||||
|
#include <scwx/qt/config/radar_site.hpp>
|
||||||
#include <scwx/qt/types/radar_product_record.hpp>
|
#include <scwx/qt/types/radar_product_record.hpp>
|
||||||
|
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
@ -37,6 +38,7 @@ public:
|
||||||
std::vector<float> GetElevationCuts() const;
|
std::vector<float> GetElevationCuts() const;
|
||||||
common::RadarProductGroup GetRadarProductGroup() const;
|
common::RadarProductGroup GetRadarProductGroup() const;
|
||||||
std::string GetRadarProductName() const;
|
std::string GetRadarProductName() const;
|
||||||
|
std::shared_ptr<config::RadarSite> GetRadarSite() const;
|
||||||
uint16_t GetVcp() const;
|
uint16_t GetVcp() const;
|
||||||
|
|
||||||
void SelectElevation(float elevation);
|
void SelectElevation(float elevation);
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,7 @@
|
||||||
<context>
|
<context>
|
||||||
<name>scwx::qt::main::MainWindow</name>
|
<name>scwx::qt::main::MainWindow</name>
|
||||||
<message>
|
<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>
|
<source>Unrecognized NEXRAD Product:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue