From 82f7771882a60c968bf6f5164a04d5c943972581 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 25 Mar 2020 16:18:18 +0100 Subject: [PATCH] Set "ft" as default unit for altitude formatter See https://discordapp.com/channels/539048679160676382/539486489977946112/692158405145788437 --- src/blackgui/models/columnformatters.cpp | 13 ++++++++++--- src/blackgui/models/columnformatters.h | 7 +++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/blackgui/models/columnformatters.cpp b/src/blackgui/models/columnformatters.cpp index 97f95dc6c..508bf6f40 100644 --- a/src/blackgui/models/columnformatters.cpp +++ b/src/blackgui/models/columnformatters.cpp @@ -372,7 +372,7 @@ namespace BlackGui CVariant CBoolIconFormatter::displayRole(const CVariant &dataCVariant) const { - Q_UNUSED(dataCVariant); + Q_UNUSED(dataCVariant) Q_ASSERT_X(false, "CBoolIconFormatter", "this role should be disabled with icon boolean"); return CVariant(); } @@ -396,7 +396,14 @@ namespace BlackGui CVariant CAltitudeFormatter::displayRole(const CVariant &altitude) const { CAltitude alt(altitude.to()); - if (m_flightLevel) { alt.toFlightLevel(); } + if (m_flightLevel) + { + alt.toFlightLevel(); + } + else + { + alt.switchUnit(m_unit); + } return alt.toQString(m_useI18n); } @@ -405,7 +412,7 @@ namespace BlackGui CVariant CColorFormatter::displayRole(const CVariant &dataCVariant) const { - Q_UNUSED(dataCVariant); + Q_UNUSED(dataCVariant) Q_ASSERT_X(false, Q_FUNC_INFO, "this role should be disabled with RGB color"); return CVariant(); } diff --git a/src/blackgui/models/columnformatters.h b/src/blackgui/models/columnformatters.h index d22141ec6..e31f96d17 100644 --- a/src/blackgui/models/columnformatters.h +++ b/src/blackgui/models/columnformatters.h @@ -350,10 +350,17 @@ namespace BlackGui //! Constructor CAltitudeFormatter(bool flightlevel = false, int alignment = alignRightVCenter(), bool i18n = true) : CDefaultFormatter(alignment, i18n), m_flightLevel(flightlevel) {} + //! Constructor + CAltitudeFormatter(const BlackMisc::PhysicalQuantities::CLengthUnit &unit, bool flightlevel = false, int alignment = alignRightVCenter(), bool i18n = true) : CDefaultFormatter(alignment, i18n), m_unit(unit), m_flightLevel(flightlevel) {} + + //! Set the unit, normally ft/m + void setUnit(const BlackMisc::PhysicalQuantities::CLengthUnit &unit); + //! \copydoc CDefaultFormatter::displayRole virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &altitude) const override; private: + BlackMisc::PhysicalQuantities::CLengthUnit m_unit = BlackMisc::PhysicalQuantities::CLengthUnit::ft(); const bool m_flightLevel = false; };