Ref T492, alias in model lists and model

Search for alias and modelstring in matching
This commit is contained in:
Klaus Basan
2019-01-05 12:18:14 +01:00
committed by Mat Sutcliffe
parent 80e925fe80
commit 58cfdd1bb9
6 changed files with 31 additions and 6 deletions

View File

@@ -991,7 +991,7 @@ namespace BlackCore
return CAircraftModel();
}
CAircraftModel model = models.findFirstByModelStringOrDefault(remoteAircraft.getModelString());
CAircraftModel model = models.findFirstByModelStringAliasOrDefault(remoteAircraft.getModelString());
if (log)
{
if (model.hasModelString())

View File

@@ -748,7 +748,7 @@ namespace BlackCore
// load from file
CStatusMessage msg;
const CAircraftModel model(this->getModelSet().findFirstByModelStringOrDefault(modelString));
const CAircraftModel model(this->getModelSet().findFirstByModelStringAliasOrDefault(modelString));
const CPixmap pm(model.loadIcon(msg));
if (!msg.isEmpty()) { CLogMessage::preformatted(msg);}
return pm;

View File

@@ -186,7 +186,7 @@ namespace BlackCore
removedModelStrings.push_back(ms);
continue;
}
CAircraftModel consolidated = simulatorModels.findFirstByModelStringOrDefault(ms);
CAircraftModel consolidated = simulatorModels.findFirstByModelStringAliasOrDefault(ms);
if (consolidated.hasModelString())
{
CDatabaseUtils::consolidateModelWithDbData(consolidated, true);
@@ -237,7 +237,7 @@ namespace BlackCore
if (ms.isEmpty()) { continue; }
if (!dbModelsModelStrings.contains(ms)) { continue; }
bool modified = false;
const CAircraftModel consolidated = CDatabaseUtils::consolidateModelWithDbData(model, dbModels.findFirstByModelStringOrDefault(ms), force, &modified);
const CAircraftModel consolidated = CDatabaseUtils::consolidateModelWithDbData(model, dbModels.findFirstByModelStringAliasOrDefault(ms), force, &modified);
if (!modified) { continue; }
model = consolidated;
c++;
@@ -327,7 +327,7 @@ namespace BlackCore
if (ownModel.matchesSimulatorFlag(CSimulatorInfo::XPLANE)) { continue; }
// in DB
CAircraftModel dbModel = dbFsFamilyModels.findFirstByModelStringOrDefault(ownModel.getModelString());
CAircraftModel dbModel = dbFsFamilyModels.findFirstByModelStringAliasOrDefault(ownModel.getModelString());
if (!dbModel.isLoadedFromDb()) { continue; }
// update simulator and add

View File

@@ -112,7 +112,7 @@ namespace BlackGui
case Database:
m_columns.addColumn(CColumn::standardString("id", CAircraftModel::IndexDbIntegerKey, CDefaultFormatter::alignRightVCenter()));
m_columns.addColumn(CColumn::standardString("model", CAircraftModel::IndexModelString));
m_columns.addColumn(CColumn::standardString("model", CAircraftModel::IndexAllModelStrings));
m_columns.addColumn(CColumn("mode", "model mode(include, exclude)", CAircraftModel::IndexModelModeAsIcon, new CPixmapFormatter()));
m_columns.addColumn(CColumn::standardString("dist.", "distributor", { CAircraftModel::IndexDistributor, CDistributor::IndexDbStringKey}));

View File

@@ -114,6 +114,15 @@ namespace BlackMisc
});
}
CAircraftModel CAircraftModelList::findFirstByModelStringAliasOrDefault(const QString &modelString, Qt::CaseSensitivity sensitivity) const
{
if (modelString.isEmpty()) { return CAircraftModel(); }
return this->findFirstByOrDefault([ & ](const CAircraftModel & model)
{
return model.matchesModelStringOrAlias(modelString, sensitivity);
});
}
CAircraftModel CAircraftModelList::findFirstByCallsignOrDefault(const CCallsign &callsign) const
{
if (callsign.isEmpty()) { return CAircraftModel(); }
@@ -817,6 +826,16 @@ namespace BlackMisc
return this->getCombinedTypes().size();
}
int CAircraftModelList::countAliases() const
{
int count = 0;
for (const CAircraftModel &model : (*this))
{
if (model.hasModelStringAlias()) { count++; }
}
return count;
}
void CAircraftModelList::updateDistributor(const CDistributor &distributor)
{
for (CAircraftModel &model : *this)

View File

@@ -113,6 +113,9 @@ namespace BlackMisc
//! Find first by model string
CAircraftModel findFirstByModelStringOrDefault(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const;
//! Find first by model string
CAircraftModel findFirstByModelStringAliasOrDefault(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const;
//! Find first by callsign
CAircraftModel findFirstByCallsignOrDefault(const Aviation::CCallsign &callsign) const;
@@ -323,6 +326,9 @@ namespace BlackMisc
//! Count different combined types
int countCombinedTypes() const;
//! Models with aliases
int countAliases() const;
//! Update distributor, all models in list are set to given distributor
void updateDistributor(const CDistributor &distributor);