From 27281e438d00f4df9cbb18e785ca28ab555289c4 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 2 Oct 2017 21:49:50 +0200 Subject: [PATCH] Ref T129, aircraft ICAO and parsed remarks can be obtained from flight plan --- src/blackmisc/aviation/flightplan.cpp | 15 ++++++++++++++- src/blackmisc/aviation/flightplan.h | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/blackmisc/aviation/flightplan.cpp b/src/blackmisc/aviation/flightplan.cpp index 22413af8e..0de01a8d9 100644 --- a/src/blackmisc/aviation/flightplan.cpp +++ b/src/blackmisc/aviation/flightplan.cpp @@ -7,7 +7,8 @@ * contained in the LICENSE file. */ -#include "blackmisc/aviation/flightplan.h" +#include "flightplan.h" +#include "flightplanutils.h" #include "blackmisc/iconlist.h" #include "blackmisc/icons.h" #include @@ -39,6 +40,18 @@ namespace BlackMisc m_callsign.setTypeHint(CCallsign::Aircraft); } + void CFlightPlan::setEquipmentIcao(const QString &equipmentIcao) + { + m_equipmentIcao = equipmentIcao; + const QString aircraftIcao = CFlightPlanUtils::aircraftIcaoCodeFromEquipmentCode(equipmentIcao); + m_aircraftIcao = CAircraftIcaoCode::isValidDesignator(aircraftIcao) ? aircraftIcao : ""; + } + + CFlightPlanUtils::FlightPlanRemarks CFlightPlan::getParsedRemarks() const + { + return CFlightPlanUtils::parseFlightPlanRemarks(this->getRemarks()); + } + CVariant CFlightPlan::propertyByIndex(const CPropertyIndex &index) const { if (index.isMyself()) { return CVariant::from(*this); } diff --git a/src/blackmisc/aviation/flightplan.h b/src/blackmisc/aviation/flightplan.h index eeab367eb..45bad6674 100644 --- a/src/blackmisc/aviation/flightplan.h +++ b/src/blackmisc/aviation/flightplan.h @@ -13,8 +13,10 @@ #define BLACKMISC_AVIATION_FLIGHTPLAN_H #include "airporticaocode.h" +#include "aircrafticaocode.h" #include "altitude.h" #include "callsign.h" +#include "flightplanutils.h" #include "blackmisc/pq/speed.h" #include "blackmisc/pq/time.h" #include "blackmisc/pq/units.h" @@ -75,7 +77,7 @@ namespace BlackMisc void setCallsign(const CCallsign &callsign); //! Set ICAO aircraft equipment code string (e.g. "T/A320/F") - void setEquipmentIcao(const QString &equipmentIcao) { m_equipmentIcao = equipmentIcao; } + void setEquipmentIcao(const QString &equipmentIcao); //! Set origin airport ICAO code void setOriginAirportIcao(const QString &originAirportIcao) { m_originAirportIcao = originAirportIcao; } @@ -200,6 +202,16 @@ namespace BlackMisc //! Get remarks string const QString &getRemarks() const { return m_remarks; } + //! Get the parsed remarks + //! \remark parsing when calling the function, so avoid unnecessary calls + CFlightPlanUtils::FlightPlanRemarks getParsedRemarks() const; + + //! Get aircraft ICAO, derived from equipment ICAO as in getEquipmentIcao() + const CAircraftIcaoCode &getAircraftIcao() const { return m_aircraftIcao; } + + //! Has aircraft ICAO? + bool hasAircraftIcao() const { return m_aircraftIcao.hasDesignator(); } + //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const CPropertyIndex &index) const; @@ -218,6 +230,7 @@ namespace BlackMisc private: CCallsign m_callsign; QString m_equipmentIcao; //!< e.g. "T/A320/F" + CAircraftIcaoCode m_aircraftIcao; //!< Aircraft ICAO code derived from equipment ICAO CAirportIcaoCode m_originAirportIcao; CAirportIcaoCode m_destinationAirportIcao; CAirportIcaoCode m_alternateAirportIcao;