diff --git a/src/blackcore/simulator.cpp b/src/blackcore/simulator.cpp index 5c22d2e09..4050f6d1d 100644 --- a/src/blackcore/simulator.cpp +++ b/src/blackcore/simulator.cpp @@ -10,6 +10,7 @@ #include "blackcore/simulator.h" #include "blackcore/webdataservices.h" #include "blackcore/application.h" +#include "blackmisc/simulation/data/modelcaches.h" #include "blackmisc/directoryutils.h" #include "blackmisc/threadutils.h" #include "blackmisc/logmessage.h" @@ -34,6 +35,7 @@ using namespace BlackMisc::Aviation; using namespace BlackMisc::Geo; using namespace BlackMisc::Math; using namespace BlackMisc::Simulation; +using namespace BlackMisc::Simulation::Data; using namespace BlackMisc::Simulation::Settings; using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Network; @@ -1052,6 +1054,15 @@ namespace BlackCore // can be overridden } + CAircraftModelList ISimulator::getModelSet() const + { + const CSimulatorInfo simulator = this->getSimulatorInfo(); + if (!simulator.isSingleSimulator()) { return CAircraftModelList(); } + + CCentralMultiSimulatorModelSetCachesProvider::modelCachesInstance().synchronizeCache(simulator); + return CCentralMultiSimulatorModelSetCachesProvider::modelCachesInstance().getCachedModels(simulator); + } + QString ISimulator::latestLoggedDataFormatted(const CCallsign &cs) const { const SituationLog s = m_interpolationLogger.getLastSituationLog(cs); @@ -1062,8 +1073,8 @@ namespace BlackCore if (s.tsCurrent > 0) { dm = u"Setup: " % s.usedSetup.toQString(true) % - u"\n\n" % - u"Situation: " % s.toQString(false, true, true, true, true, sep); + u"\n\n" % + u"Situation: " % s.toQString(false, true, true, true, true, sep); } if (p.tsCurrent > 0) { dm += (dm.isEmpty() ? u"Parts: " : u"\n\nParts: ") % p.toQString(sep); } return dm; diff --git a/src/blackcore/simulator.h b/src/blackcore/simulator.h index 45659bd9f..a2650e526 100644 --- a/src/blackcore/simulator.h +++ b/src/blackcore/simulator.h @@ -535,6 +535,9 @@ namespace BlackCore //! Own model has been changed virtual void onOwnModelChanged(const BlackMisc::Simulation::CAircraftModel &newModel); + //! Get the model set + BlackMisc::Simulation::CAircraftModelList getModelSet() const; + //! Lookup against DB data static BlackMisc::Simulation::CAircraftModel reverseLookupModel(const BlackMisc::Simulation::CAircraftModel &model); diff --git a/src/plugins/simulator/xplane/simulatorxplane.cpp b/src/plugins/simulator/xplane/simulatorxplane.cpp index 0223e83bf..b9e25f2ac 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.cpp +++ b/src/plugins/simulator/xplane/simulatorxplane.cpp @@ -540,7 +540,7 @@ namespace BlackSimPlugin QList packages; Q_ASSERT(isConnected()); - const CAircraftModelList models = m_modelSet.getThreadLocal(); + const CAircraftModelList models = this->getModelSet(); for (const auto &model : models) { const QString &modelFile = model.getFileName(); diff --git a/src/plugins/simulator/xplane/simulatorxplane.h b/src/plugins/simulator/xplane/simulatorxplane.h index 6231dac7d..7287d1cb1 100644 --- a/src/plugins/simulator/xplane/simulatorxplane.h +++ b/src/plugins/simulator/xplane/simulatorxplane.h @@ -235,7 +235,6 @@ namespace BlackSimPlugin QTimer m_airportUpdater; QTimer m_pendingAddedTimer; BlackMisc::Aviation::CAirportList m_airportsInRange; //!< aiports in range of own aircraft - BlackMisc::CData m_modelSet { this }; //!< XPlane model set BlackMisc::Simulation::CSimulatedAircraftList m_pendingToBeAddedAircraft; //!< aircraft to be added QHash m_addingInProgressAircraft; //!< aircraft just adding BlackMisc::Simulation::CSimulatedAircraftList m_aircraftAddedFailed; //! aircraft for which adding failed