Ref T472, allow to pass already existing values for model parsing

* list to map: toDbKeyValueMap
* categories can also be passed, hence the categories can be seen in model views
This commit is contained in:
Klaus Basan
2019-02-19 23:54:14 +01:00
committed by Mat Sutcliffe
parent 7a2ed1433d
commit 9cee34f4cc
7 changed files with 53 additions and 12 deletions

View File

@@ -10,7 +10,6 @@
#include "blackmisc/simulation/aircraftmodellist.h"
#include "blackmisc/simulation/matchingutils.h"
#include "blackmisc/aviation/callsign.h"
#include "blackmisc/aviation/liverylist.h"
#include "blackmisc/math/mathutils.h"
#include "blackmisc/compare.h"
#include "blackmisc/iterator.h"
@@ -1507,16 +1506,23 @@ namespace BlackMisc
return stats;
}
CAircraftModelList CAircraftModelList::fromDatabaseJsonCaching(const QJsonArray &array)
CAircraftModelList CAircraftModelList::fromDatabaseJsonCaching(
const QJsonArray &array,
const CAircraftIcaoCodeList &icaos,
const CAircraftCategoryList &categories,
const CLiveryList &liveries,
const CDistributorList &distributors
)
{
AircraftIcaoIdMap aircraftIcaos;
LiveryIdMap liveries;
DistributorIdMap distributors;
AircraftIcaoIdMap aircraftIcaosMap = icaos.toDbKeyValueMap();
LiveryIdMap liveriesMap = liveries.toDbKeyValueMap();
DistributorIdMap distributorsMap = distributors.toDbKeyValueMap();
const AircraftCategoryIdMap categoriesMap = categories.toDbKeyValueMap();
CAircraftModelList models;
for (const QJsonValue &value : array)
{
models.push_back(CAircraftModel::fromDatabaseJsonCaching(value.toObject(), aircraftIcaos, liveries, distributors));
models.push_back(CAircraftModel::fromDatabaseJsonCaching(value.toObject(), aircraftIcaosMap, categoriesMap, liveriesMap, distributorsMap));
}
return models;
}