diff --git a/src/blackmisc/simulation/interpolationrenderingsetup.cpp b/src/blackmisc/simulation/interpolationrenderingsetup.cpp index fc582e9cf..e32306b2d 100644 --- a/src/blackmisc/simulation/interpolationrenderingsetup.cpp +++ b/src/blackmisc/simulation/interpolationrenderingsetup.cpp @@ -322,5 +322,11 @@ namespace BlackMisc } CInterpolationAndRenderingSetupBase::setPropertyByIndex(index, variant); } + + const CInterpolationAndRenderingSetupPerCallsign &CInterpolationAndRenderingSetupPerCallsign::null() + { + static const CInterpolationAndRenderingSetupPerCallsign null; + return null; + } } // ns } // ns diff --git a/src/blackmisc/simulation/interpolationrenderingsetup.h b/src/blackmisc/simulation/interpolationrenderingsetup.h index 9e9d74e94..3f40bbe1e 100644 --- a/src/blackmisc/simulation/interpolationrenderingsetup.h +++ b/src/blackmisc/simulation/interpolationrenderingsetup.h @@ -219,12 +219,18 @@ namespace BlackMisc //! Set callsign void setCallsign(const Aviation::CCallsign &callsign) { m_callsign = callsign; } + //! NULL? + bool isNull() const { return m_callsign.isEmpty(); } + //! \copydoc BlackMisc::Mixin::Index::propertyByIndex CVariant propertyByIndex(const CPropertyIndex &index) const; //! \copydoc BlackMisc::Mixin::Index::setPropertyByIndex void setPropertyByIndex(const CPropertyIndex &index, const CVariant &variant); + //! NULL object + static const CInterpolationAndRenderingSetupPerCallsign &null(); + private: Aviation::CCallsign m_callsign; diff --git a/src/blackmisc/simulation/interpolationsetupprovider.cpp b/src/blackmisc/simulation/interpolationsetupprovider.cpp index bb580621f..2501926ef 100644 --- a/src/blackmisc/simulation/interpolationsetupprovider.cpp +++ b/src/blackmisc/simulation/interpolationsetupprovider.cpp @@ -18,7 +18,8 @@ namespace BlackMisc CInterpolationAndRenderingSetupPerCallsign IInterpolationSetupProvider::getInterpolationSetupPerCallsignOrDefault(const CCallsign &callsign) const { QReadLocker l(&m_lockSetup); - return m_setups.contains(callsign) ? m_setups.value(callsign) : CInterpolationAndRenderingSetupPerCallsign(callsign, m_globalSetup); + if (!m_setups.contains(callsign)) { return CInterpolationAndRenderingSetupPerCallsign(callsign, m_globalSetup); } + return m_setups.value(callsign); } CInterpolationSetupList IInterpolationSetupProvider::getInterpolationSetupsPerCallsign() const