diff --git a/src/blackmisc/simulation/data/modelcaches.h b/src/blackmisc/simulation/data/modelcaches.h index 856d4fba4..e645129d1 100644 --- a/src/blackmisc/simulation/data/modelcaches.h +++ b/src/blackmisc/simulation/data/modelcaches.h @@ -220,10 +220,18 @@ namespace BlackMisc //! \threadsafe virtual void synchronizeCache(const CSimulatorInfo &simulator) = 0; + //! Synchronize multiple simulators + //! \threadsafe + virtual void synchronizeMultiCaches(const CSimulatorInfo &simulator); + //! Admit the cache for given simulator //! \threadsafe virtual void admitCache(const CSimulatorInfo &simulator) = 0; + //! Synchronize multiple simulators + //! \threadsafe + virtual void admitMultiCaches(const CSimulatorInfo &simulator); + //! Info string about models in cache QString getInfoString() const; diff --git a/src/blackmisc/simulation/fscommon/aircraftcfgparser.cpp b/src/blackmisc/simulation/fscommon/aircraftcfgparser.cpp index 4a3c8fbeb..f1dbb00ac 100644 --- a/src/blackmisc/simulation/fscommon/aircraftcfgparser.cpp +++ b/src/blackmisc/simulation/fscommon/aircraftcfgparser.cpp @@ -72,6 +72,7 @@ namespace BlackMisc if (mode.testFlag(LoadInBackground)) { if (m_parserWorker && !m_parserWorker->isFinished()) { return; } + emit this->diskLoadingStarted(simulator, mode); m_parserWorker = BlackMisc::CWorker::fromTask(this, "CAircraftCfgParser::changeDirectory", [this, modelDirs, excludedDirectoryPatterns, simulator, modelConsolidation]() { @@ -110,6 +111,8 @@ namespace BlackMisc } else if (mode == LoadDirectly) { + emit this->diskLoadingStarted(simulator, mode); + bool ok; CStatusMessageList msgs; m_parsedCfgEntriesList = performParsing(modelDirs, excludedDirectoryPatterns, msgs, &ok); diff --git a/src/blackmisc/simulation/xplane/aircraftmodelloaderxplane.cpp b/src/blackmisc/simulation/xplane/aircraftmodelloaderxplane.cpp index 02769c1b7..16e2e887c 100644 --- a/src/blackmisc/simulation/xplane/aircraftmodelloaderxplane.cpp +++ b/src/blackmisc/simulation/xplane/aircraftmodelloaderxplane.cpp @@ -139,6 +139,7 @@ namespace BlackMisc if (mode.testFlag(LoadInBackground)) { if (m_parserWorker && !m_parserWorker->isFinished()) { return; } + emit this->diskLoadingStarted(simulator, mode); m_parserWorker = BlackMisc::CWorker::fromTask(this, "CAircraftModelLoaderXPlane::performParsing", [this, modelDirs, excludedDirectoryPatterns, modelConsolidation]() { @@ -157,8 +158,9 @@ namespace BlackMisc } else if (mode.testFlag(LoadDirectly)) { - CAircraftModelList models(performParsing(this->getFirstModelDirectoryOrDefault(), excludedDirectoryPatterns)); - updateInstalledModels(models); + emit this->diskLoadingStarted(simulator, mode); + CAircraftModelList models(this->performParsing(this->getFirstModelDirectoryOrDefault(), excludedDirectoryPatterns)); + this->updateInstalledModels(models); } }