diff --git a/src/blackcore/db/databaseutils.cpp b/src/blackcore/db/databaseutils.cpp index 2b388025f..4c1e75868 100644 --- a/src/blackcore/db/databaseutils.cpp +++ b/src/blackcore/db/databaseutils.cpp @@ -20,13 +20,32 @@ namespace BlackCore { namespace Db { - CAircraftModel CDatabaseUtils::consolidateModelWithDbData(const CAircraftModel &model, bool force) + CAircraftModel CDatabaseUtils::consolidateOwnAircraftModelWithDbData(const CAircraftModel &model, bool force, bool *modified) { - return CDatabaseUtils::consolidateModelWithDbData(model, force, nullptr); + bool myModified = false; + CAircraftModel ownModel = CDatabaseUtils::consolidateModelWithDbData(model, force, &myModified); + // special case here, as we have some specific values for a local model + + if (myModified) + { + ownModel.updateMissingParts(model); + ownModel.setFileName(model.getFileName()); + myModified = true; + } + if (ownModel.getModelType() != CAircraftModel::TypeOwnSimulatorModel) + { + ownModel.setModelType(CAircraftModel::TypeOwnSimulatorModel); + myModified = true; + } + if (modified) { *modified = myModified; } + return ownModel; } CAircraftModel CDatabaseUtils::consolidateModelWithDbData(const CAircraftModel &model, bool force, bool *modified) { + Q_ASSERT_X(sApp, Q_FUNC_INFO, "Missing application object"); + Q_ASSERT_X(sApp->hasWebDataServices(), Q_FUNC_INFO, "No web services"); + if (modified) { *modified = false; } if (!model.hasModelString()) { return model; } if (!force && model.hasValidDbKey()) { return model; } diff --git a/src/blackcore/db/databaseutils.h b/src/blackcore/db/databaseutils.h index c0fd59cfc..326c5f6fd 100644 --- a/src/blackcore/db/databaseutils.h +++ b/src/blackcore/db/databaseutils.h @@ -27,11 +27,11 @@ namespace BlackCore //! No constructor CDatabaseUtils() = delete; - //! Consolidate model data with DB data - static BlackMisc::Simulation::CAircraftModel consolidateModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force); + //! Consolidate own (aircraft) model data with DB data + static BlackMisc::Simulation::CAircraftModel consolidateOwnAircraftModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force, bool *modified = nullptr); //! Consolidate model data with DB data - static BlackMisc::Simulation::CAircraftModel consolidateModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force, bool *modified); + static BlackMisc::Simulation::CAircraftModel consolidateModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force, bool *modified = nullptr); //! Consolidate models with DB data static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force);