refs #791, reverse lookup for own model in the utils class

This commit is contained in:
Klaus Basan
2016-10-29 03:43:06 +02:00
parent 0811536e57
commit a92b67db6b
2 changed files with 24 additions and 5 deletions

View File

@@ -20,13 +20,32 @@ namespace BlackCore
{ {
namespace Db 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) 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 (modified) { *modified = false; }
if (!model.hasModelString()) { return model; } if (!model.hasModelString()) { return model; }
if (!force && model.hasValidDbKey()) { return model; } if (!force && model.hasValidDbKey()) { return model; }

View File

@@ -27,11 +27,11 @@ namespace BlackCore
//! No constructor //! No constructor
CDatabaseUtils() = delete; CDatabaseUtils() = delete;
//! Consolidate model data with DB data //! Consolidate own (aircraft) model data with DB data
static BlackMisc::Simulation::CAircraftModel consolidateModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force); static BlackMisc::Simulation::CAircraftModel consolidateOwnAircraftModelWithDbData(const BlackMisc::Simulation::CAircraftModel &model, bool force, bool *modified = nullptr);
//! Consolidate model data with DB data //! 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 //! Consolidate models with DB data
static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force); static int consolidateModelsWithDbData(BlackMisc::Simulation::CAircraftModelList &models, bool force);