mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
Ref T335, consolidation of models with "models on disk" yields also a list of removed aircraft
This commit is contained in:
@@ -159,7 +159,7 @@ namespace BlackCore
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
CAircraftModelList CDatabaseUtils::consolidateModelsWithSimulatorModelsAllowsGuiRefresh(const CAircraftModelList &models, const CAircraftModelList &simulatorModels, bool processEvents)
|
CAircraftModelList CDatabaseUtils::consolidateModelsWithSimulatorModelsAllowsGuiRefresh(const CAircraftModelList &models, const CAircraftModelList &simulatorModels, QStringList &removedModelStrings, bool processEvents)
|
||||||
{
|
{
|
||||||
if (models.isEmpty() || simulatorModels.isEmpty()) { return models; }
|
if (models.isEmpty() || simulatorModels.isEmpty()) { return models; }
|
||||||
|
|
||||||
@@ -167,19 +167,37 @@ namespace BlackCore
|
|||||||
timer.start();
|
timer.start();
|
||||||
const QSet<QString> allOwnModelsModelStrings = simulatorModels.getModelStringSet();
|
const QSet<QString> allOwnModelsModelStrings = simulatorModels.getModelStringSet();
|
||||||
CAircraftModelList consolidatedModels;
|
CAircraftModelList consolidatedModels;
|
||||||
|
removedModelStrings.clear();
|
||||||
|
|
||||||
int c = 0;
|
int c = 0;
|
||||||
for (const CAircraftModel &model : models)
|
for (const CAircraftModel &model : models)
|
||||||
{
|
{
|
||||||
c++;
|
c++;
|
||||||
if (processEvents && c % 125 == 0) { sApp->processEventsFor(25); }
|
if (processEvents && c % 125 == 0)
|
||||||
|
{
|
||||||
|
if (!sApp || sApp->isShuttingDown()) { return models; }
|
||||||
|
sApp->processEventsFor(25);
|
||||||
|
}
|
||||||
|
|
||||||
const QString ms(model.getModelString());
|
const QString ms(model.getModelString());
|
||||||
if (ms.isEmpty()) { continue; }
|
if (ms.isEmpty()) { continue; }
|
||||||
if (!allOwnModelsModelStrings.contains(ms)) { continue; }
|
if (!allOwnModelsModelStrings.contains(ms))
|
||||||
consolidatedModels.push_back(model);
|
{
|
||||||
|
removedModelStrings.push_back(ms);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
CAircraftModel consolidated = simulatorModels.findFirstByModelStringOrDefault(ms);
|
||||||
|
if (consolidated.hasModelString())
|
||||||
|
{
|
||||||
|
CDatabaseUtils::consolidateModelWithDbData(consolidated, true);
|
||||||
|
consolidatedModels.push_back(consolidated);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
consolidatedModels.push_back(model);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
CLogMessage(static_cast<CDatabaseUtils *>(nullptr)).info("Consolidated %1 vs. %2 in %3 ms") << models.size() << simulatorModels.size() << timer.elapsed() << "ms";
|
CLogMessage(static_cast<CDatabaseUtils *>(nullptr)).info("Consolidated %1 vs. %2 in %3 ms") << models.size() << simulatorModels.size() << timer.elapsed() << "ms";
|
||||||
return consolidatedModels;
|
return consolidatedModels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,10 @@ namespace BlackCore
|
|||||||
//! Log categories
|
//! Log categories
|
||||||
static const BlackMisc::CLogCategoryList &getLogCategories();
|
static const BlackMisc::CLogCategoryList &getLogCategories();
|
||||||
|
|
||||||
|
//! 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, QStringList &removedModelStrings, bool processEvents);
|
||||||
|
|
||||||
//! Consolidate own (aircraft) model data with DB data
|
//! Consolidate own (aircraft) model data with DB data
|
||||||
static BlackMisc::Simulation::CAircraftModel consolidateOwnAircraftModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force, bool *modified = nullptr);
|
static BlackMisc::Simulation::CAircraftModel consolidateOwnAircraftModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force, bool *modified = nullptr);
|
||||||
|
|
||||||
@@ -47,10 +51,6 @@ namespace BlackCore
|
|||||||
//! Consolidate models with DB data
|
//! Consolidate models with DB data
|
||||||
static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force);
|
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 simulator model data (aka "models on disk")
|
//! Consolidate models with simulator model data (aka "models on disk")
|
||||||
//! \remark kept here with the other consolidate functions, but actually DB independent
|
//! \remark kept here with the other consolidate functions, but actually DB independent
|
||||||
static int consolidateModelsWithDbData(const BlackMisc::Simulation::CAircraftModelList &dbModels, BlackMisc::Simulation::CAircraftModelList &simulatorModels, bool force);
|
static int consolidateModelsWithDbData(const BlackMisc::Simulation::CAircraftModelList &dbModels, BlackMisc::Simulation::CAircraftModelList &simulatorModels, bool force);
|
||||||
|
|||||||
Reference in New Issue
Block a user