From ac87e648ca9b971327c6f553172a10cc2dcc9af2 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 26 May 2018 21:14:09 +0200 Subject: [PATCH] Ref T270, fixed provider so signals are correctly emitted --- .../simulation/remoteaircraftprovider.cpp | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index 6b2f94721..f5df79437 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -232,6 +232,8 @@ namespace BlackMisc BLACK_VERIFY_X(situationList.isSortedAdjustedLatestFirstWithoutNullPositions(), Q_FUNC_INFO, "wrong sort order"); BLACK_VERIFY_X(situationList.size() <= IRemoteAircraftProvider::MaxSituationsPerCallsign, Q_FUNC_INFO, "Wrong size"); } + + emit this->addedAircraftSituation(situation); } void CRemoteAircraftProvider::storeAircraftParts(const CCallsign &callsign, const CAircraftParts &parts, bool removeOutdated) @@ -266,6 +268,22 @@ namespace BlackMisc const int c = situationList.adjustGroundFlag(parts); if (c > 0) { m_situationsLastModified[callsign] = ts; } } + + // update aircraft + { + QWriteLocker l(&m_lockAircraft); + const int c = m_aircraftInRange.setAircraftPartsSynchronized(callsign, parts); + Q_UNUSED(c); + } + + // update parts + { + // aircraft supporting parts + QWriteLocker l(&m_lockParts); + m_aircraftWithParts.insert(callsign); // mark as callsign which supports parts + } + + emit this->addedAircraftParts(callsign, parts); } void CRemoteAircraftProvider::storeAircraftParts(const CCallsign &callsign, const QJsonObject &jsonObject, int currentOffset) @@ -307,21 +325,6 @@ namespace BlackMisc // store part history (parts always absolute) this->storeAircraftParts(callsign, parts, false); - // update aircraft - { - QWriteLocker l(&m_lockAircraft); - const int c = m_aircraftInRange.setAircraftPartsSynchronized(callsign, parts); - Q_UNUSED(c); - } - - // update parts - { - // aircraft supporting parts - QWriteLocker l(&m_lockParts); - m_aircraftWithParts.insert(callsign); // mark as callsign which supports parts - } - emit this->addedAircraftParts(callsign, parts); - // history if (this->isAircraftPartsHistoryEnabled()) {