Display clock format defined in settings on map

This commit is contained in:
Dan Paulat 2024-03-29 01:06:28 -05:00
parent a7cb459e20
commit 5fb9dc6a5f
4 changed files with 55 additions and 9 deletions

View file

@ -52,6 +52,20 @@ public:
{
auto& generalSettings = settings::GeneralSettings::Instance();
clockFormatCallbackUuid_ =
generalSettings.clock_format().RegisterValueChangedCallback(
[this](const std::string&)
{
sweepTimeNeedsUpdate_ = true;
Q_EMIT self_->NeedsRendering();
});
defaultTimeZoneCallbackUuid_ =
generalSettings.default_time_zone().RegisterValueChangedCallback(
[this](const std::string&)
{
sweepTimeNeedsUpdate_ = true;
Q_EMIT self_->NeedsRendering();
});
showMapAttributionCallbackUuid_ =
generalSettings.show_map_attribution().RegisterValueChangedCallback(
[this](const bool&) { Q_EMIT self_->NeedsRendering(); });
@ -64,6 +78,10 @@ public:
{
auto& generalSettings = settings::GeneralSettings::Instance();
generalSettings.clock_format().UnregisterValueChangedCallback(
clockFormatCallbackUuid_);
generalSettings.default_time_zone().UnregisterValueChangedCallback(
defaultTimeZoneCallbackUuid_);
generalSettings.show_map_attribution().UnregisterValueChangedCallback(
showMapAttributionCallbackUuid_);
generalSettings.show_map_logo().UnregisterValueChangedCallback(
@ -72,6 +90,8 @@ public:
OverlayLayer* self_;
boost::uuids::uuid clockFormatCallbackUuid_;
boost::uuids::uuid defaultTimeZoneCallbackUuid_;
boost::uuids::uuid showMapAttributionCallbackUuid_;
boost::uuids::uuid showMapLogoCallbackUuid_;
@ -263,8 +283,11 @@ void OverlayLayer::Render(const QMapLibre::CustomLayerRenderParameters& params)
p->sweepTimePicked_ = false;
if (p->sweepTimeNeedsUpdate_ && radarProductView != nullptr)
if (radarProductView != nullptr)
{
scwx::util::ClockFormat clockFormat = scwx::util::GetClockFormat(
settings::GeneralSettings::Instance().clock_format().GetValue());
const scwx::util::time_zone* currentZone;
#if defined(_MSC_VER)
@ -274,7 +297,7 @@ void OverlayLayer::Render(const QMapLibre::CustomLayerRenderParameters& params)
#endif
p->sweepTimeString_ = scwx::util::TimeString(
radarProductView->sweep_time(), currentZone, false);
radarProductView->sweep_time(), clockFormat, currentZone, false);
p->sweepTimeNeedsUpdate_ = false;
}

View file

@ -1,4 +1,5 @@
#include <scwx/qt/view/level3_product_view.hpp>
#include <scwx/qt/settings/general_settings.hpp>
#include <scwx/common/characters.hpp>
#include <scwx/common/constants.hpp>
#include <scwx/util/logger.hpp>
@ -176,6 +177,9 @@ Level3ProductView::GetDescriptionFields() const
if (p->graphicMessage_ != nullptr)
{
util::ClockFormat clockFormat = util::GetClockFormat(
settings::GeneralSettings::Instance().clock_format().GetValue());
const scwx::util::time_zone* currentZone;
#if defined(_MSC_VER)
@ -197,10 +201,12 @@ Level3ProductView::GetDescriptionFields() const
description.emplace_back(
"Volume Time",
scwx::util::TimeString(volumeTime, currentZone, false));
scwx::util::TimeString(
volumeTime, clockFormat, currentZone, false));
description.emplace_back(
"Product Time",
scwx::util::TimeString(productTime, currentZone, false));
scwx::util::TimeString(
productTime, clockFormat, currentZone, false));
description.emplace_back(
"Sequence Number",