From d49831abc4b888e9b816e52372e0a3f880da7f5b Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 13 Jun 2018 23:14:26 +0200 Subject: [PATCH] Ref T280, QHash for aircraft and models and some minor improvements * CValueObject::comparePropertyByIndex * bool "true" if value has been changed --- .../aviation/aircraftsituationchangelist.h | 9 +++++++++ src/blackmisc/aviation/callsign.cpp | 3 ++- src/blackmisc/simulation/aircraftmodellist.h | 6 ++++++ src/blackmisc/simulation/simulatedaircraft.cpp | 14 ++++++++++++++ src/blackmisc/simulation/simulatedaircraft.h | 4 ++-- src/blackmisc/simulation/simulatedaircraftlist.h | 5 +++++ 6 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/blackmisc/aviation/aircraftsituationchangelist.h b/src/blackmisc/aviation/aircraftsituationchangelist.h index 9ad345e2a..1009b64a9 100644 --- a/src/blackmisc/aviation/aircraftsituationchangelist.h +++ b/src/blackmisc/aviation/aircraftsituationchangelist.h @@ -43,10 +43,19 @@ namespace BlackMisc //! Construct from initializer list. CAircraftSituationChangeList(std::initializer_list il); }; + + //! Change per callsign + using CAircraftSituationChangePerCallsign = QHash; + + //! Changes per callsign + using CAircraftSituationChangeListPerCallsign = QHash; + } //namespace } // namespace Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituationChangeList) +Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituationChangePerCallsign) +Q_DECLARE_METATYPE(BlackMisc::Aviation::CAircraftSituationChangeListPerCallsign) Q_DECLARE_METATYPE(BlackMisc::CCollection) Q_DECLARE_METATYPE(BlackMisc::CSequence) diff --git a/src/blackmisc/aviation/callsign.cpp b/src/blackmisc/aviation/callsign.cpp index 6bbeaf9ef..6bacd3ae2 100644 --- a/src/blackmisc/aviation/callsign.cpp +++ b/src/blackmisc/aviation/callsign.cpp @@ -191,7 +191,8 @@ namespace BlackMisc case IndexCallsignStringAsSet: return m_callsignAsSet.compare(compareValue.m_callsignAsSet, Qt::CaseInsensitive); case IndexTelephonyDesignator: return m_telephonyDesignator.compare(compareValue.m_telephonyDesignator, Qt::CaseInsensitive); case IndexSuffix: return this->getSuffix().compare(compareValue.getSuffix(), Qt::CaseInsensitive); - default: break; + default: + return CValueObject::comparePropertyByIndex(index, compareValue); } Q_ASSERT_X(false, Q_FUNC_INFO, "Compare failed"); return 0; diff --git a/src/blackmisc/simulation/aircraftmodellist.h b/src/blackmisc/simulation/aircraftmodellist.h index 66387ce5b..370b92c95 100644 --- a/src/blackmisc/simulation/aircraftmodellist.h +++ b/src/blackmisc/simulation/aircraftmodellist.h @@ -30,6 +30,7 @@ #include #include #include +#include namespace BlackMisc { @@ -353,10 +354,15 @@ namespace BlackMisc //! \remark checking for some criteria in the given model QString extCoverageSummary(const CAircraftModel &checkModel, const QString &separator = "\n") const; }; + + //! Model per callsign + using CAircraftModelPerCallsign = QHash; + } // ns } // ns Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftModelList) +Q_DECLARE_METATYPE(BlackMisc::Simulation::CAircraftModelPerCallsign) Q_DECLARE_METATYPE(BlackMisc::CCollection) Q_DECLARE_METATYPE(BlackMisc::CSequence) diff --git a/src/blackmisc/simulation/simulatedaircraft.cpp b/src/blackmisc/simulation/simulatedaircraft.cpp index 0dfe1c659..1ab3d49a8 100644 --- a/src/blackmisc/simulation/simulatedaircraft.cpp +++ b/src/blackmisc/simulation/simulatedaircraft.cpp @@ -117,6 +117,20 @@ namespace BlackMisc return m_enabled; } + bool CSimulatedAircraft::setFastPositionUpdates(bool useFastPositions) + { + if (m_fastPositionUpdates == useFastPositions) { return false; } + m_fastPositionUpdates = useFastPositions; + return true; + } + + bool CSimulatedAircraft::setRendered(bool rendered) + { + if (m_rendered == rendered) { return false; } + m_rendered = rendered; + return true; + } + const QString &CSimulatedAircraft::getAircraftIcaoCodeDesignator() const { return getAircraftIcaoCode().getDesignator(); diff --git a/src/blackmisc/simulation/simulatedaircraft.h b/src/blackmisc/simulation/simulatedaircraft.h index b6f0f7c36..5a27a8200 100644 --- a/src/blackmisc/simulation/simulatedaircraft.h +++ b/src/blackmisc/simulation/simulatedaircraft.h @@ -409,10 +409,10 @@ namespace BlackMisc bool fastPositionUpdates() const {return m_fastPositionUpdates;} //! Support fast position updates - void setFastPositionUpdates(bool useFastPositions) { m_fastPositionUpdates = useFastPositions; } + bool setFastPositionUpdates(bool useFastPositions); //! Rendered? - void setRendered(bool rendered) { m_rendered = rendered; } + bool setRendered(bool rendered); //! Have parts been synchronized with a remote client? bool isPartsSynchronized() const { return m_partsSynchronized; } diff --git a/src/blackmisc/simulation/simulatedaircraftlist.h b/src/blackmisc/simulation/simulatedaircraftlist.h index 94d8ce7f9..b5540579d 100644 --- a/src/blackmisc/simulation/simulatedaircraftlist.h +++ b/src/blackmisc/simulation/simulatedaircraftlist.h @@ -117,10 +117,15 @@ namespace BlackMisc //! Number of aircraft with parts int countAircraftPartsSynchronized() const; }; + + //! Aircraft per callsign + using CSimulatedAircraftPerCallsign = QHash; + } //namespace } // namespace Q_DECLARE_METATYPE(BlackMisc::Simulation::CSimulatedAircraftList) +Q_DECLARE_METATYPE(BlackMisc::Simulation::CSimulatedAircraftPerCallsign) Q_DECLARE_METATYPE(BlackMisc::CCollection) Q_DECLARE_METATYPE(BlackMisc::CSequence)