diff --git a/src/blackcore/db/databaseutils.cpp b/src/blackcore/db/databaseutils.cpp index 90fee482e..cc4477845 100644 --- a/src/blackcore/db/databaseutils.cpp +++ b/src/blackcore/db/databaseutils.cpp @@ -101,6 +101,30 @@ namespace BlackCore return CDatabaseUtils::consolidateModelsWithDbDataAllowsGuiRefresh(models, force, false); } + CAircraftModelList CDatabaseUtils::consolidateModelsWithSimulatorModelsAllowsGuiRefresh(const CAircraftModelList &models, const CAircraftModelList &simulatorModels, bool processEvents) + { + QTime timer; + timer.start(); + if (models.isEmpty() || simulatorModels.isEmpty()) { return models; } + + const QSet allOwnModelsModelStrings = simulatorModels.getModelStringSet(); + CAircraftModelList consolidatedModels; + + int c = 0; + for (const CAircraftModel &model : models) + { + c++; + if (processEvents && c % 125 == 0) { sApp->processEventsFor(25); } + + const QString ms(model.getModelString()); + if (ms.isEmpty()) { continue; } + if (!allOwnModelsModelStrings.contains(ms)) { continue; } + consolidatedModels.push_back(model); + } + CLogMessage().debug() << "Consolidated " << models.size() << " vs. " << simulatorModels.size() << " in " << timer.elapsed() << "ms"; + return consolidatedModels; + } + int CDatabaseUtils::consolidateModelsWithDbDataAllowsGuiRefresh(CAircraftModelList &models, bool force, bool processEvents) { QTime timer; diff --git a/src/blackcore/db/databaseutils.h b/src/blackcore/db/databaseutils.h index 788dc545a..1e0d58c54 100644 --- a/src/blackcore/db/databaseutils.h +++ b/src/blackcore/db/databaseutils.h @@ -36,6 +36,10 @@ namespace BlackCore //! Consolidate models with DB data static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force); + //! Consolidate models with simulator model data (aka "models on disk") + //! \remark kept here with the other consolidate functions, but actually DB independent + static BlackMisc::Simulation::CAircraftModelList consolidateModelsWithSimulatorModelsAllowsGuiRefresh(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CAircraftModelList &simulatorModels, bool processEvents); + //! Consolidate models with DB data static int consolidateModelsWithDbDataAllowsGuiRefresh(BlackMisc::Simulation::CAircraftModelList &models, bool force, bool processEvents);