mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-05-04 08:55:43 +08:00
Ref T492, alias in model lists and model
Search for alias and modelstring in matching
This commit is contained in:
committed by
Mat Sutcliffe
parent
80e925fe80
commit
58cfdd1bb9
@@ -991,7 +991,7 @@ namespace BlackCore
|
|||||||
return CAircraftModel();
|
return CAircraftModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
CAircraftModel model = models.findFirstByModelStringOrDefault(remoteAircraft.getModelString());
|
CAircraftModel model = models.findFirstByModelStringAliasOrDefault(remoteAircraft.getModelString());
|
||||||
if (log)
|
if (log)
|
||||||
{
|
{
|
||||||
if (model.hasModelString())
|
if (model.hasModelString())
|
||||||
|
|||||||
@@ -748,7 +748,7 @@ namespace BlackCore
|
|||||||
|
|
||||||
// load from file
|
// load from file
|
||||||
CStatusMessage msg;
|
CStatusMessage msg;
|
||||||
const CAircraftModel model(this->getModelSet().findFirstByModelStringOrDefault(modelString));
|
const CAircraftModel model(this->getModelSet().findFirstByModelStringAliasOrDefault(modelString));
|
||||||
const CPixmap pm(model.loadIcon(msg));
|
const CPixmap pm(model.loadIcon(msg));
|
||||||
if (!msg.isEmpty()) { CLogMessage::preformatted(msg);}
|
if (!msg.isEmpty()) { CLogMessage::preformatted(msg);}
|
||||||
return pm;
|
return pm;
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ namespace BlackCore
|
|||||||
removedModelStrings.push_back(ms);
|
removedModelStrings.push_back(ms);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
CAircraftModel consolidated = simulatorModels.findFirstByModelStringOrDefault(ms);
|
CAircraftModel consolidated = simulatorModels.findFirstByModelStringAliasOrDefault(ms);
|
||||||
if (consolidated.hasModelString())
|
if (consolidated.hasModelString())
|
||||||
{
|
{
|
||||||
CDatabaseUtils::consolidateModelWithDbData(consolidated, true);
|
CDatabaseUtils::consolidateModelWithDbData(consolidated, true);
|
||||||
@@ -237,7 +237,7 @@ namespace BlackCore
|
|||||||
if (ms.isEmpty()) { continue; }
|
if (ms.isEmpty()) { continue; }
|
||||||
if (!dbModelsModelStrings.contains(ms)) { continue; }
|
if (!dbModelsModelStrings.contains(ms)) { continue; }
|
||||||
bool modified = false;
|
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; }
|
if (!modified) { continue; }
|
||||||
model = consolidated;
|
model = consolidated;
|
||||||
c++;
|
c++;
|
||||||
@@ -327,7 +327,7 @@ namespace BlackCore
|
|||||||
if (ownModel.matchesSimulatorFlag(CSimulatorInfo::XPLANE)) { continue; }
|
if (ownModel.matchesSimulatorFlag(CSimulatorInfo::XPLANE)) { continue; }
|
||||||
|
|
||||||
// in DB
|
// in DB
|
||||||
CAircraftModel dbModel = dbFsFamilyModels.findFirstByModelStringOrDefault(ownModel.getModelString());
|
CAircraftModel dbModel = dbFsFamilyModels.findFirstByModelStringAliasOrDefault(ownModel.getModelString());
|
||||||
if (!dbModel.isLoadedFromDb()) { continue; }
|
if (!dbModel.isLoadedFromDb()) { continue; }
|
||||||
|
|
||||||
// update simulator and add
|
// update simulator and add
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
case Database:
|
case Database:
|
||||||
m_columns.addColumn(CColumn::standardString("id", CAircraftModel::IndexDbIntegerKey, CDefaultFormatter::alignRightVCenter()));
|
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("mode", "model mode(include, exclude)", CAircraftModel::IndexModelModeAsIcon, new CPixmapFormatter()));
|
||||||
|
|
||||||
m_columns.addColumn(CColumn::standardString("dist.", "distributor", { CAircraftModel::IndexDistributor, CDistributor::IndexDbStringKey}));
|
m_columns.addColumn(CColumn::standardString("dist.", "distributor", { CAircraftModel::IndexDistributor, CDistributor::IndexDbStringKey}));
|
||||||
|
|||||||
@@ -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
|
CAircraftModel CAircraftModelList::findFirstByCallsignOrDefault(const CCallsign &callsign) const
|
||||||
{
|
{
|
||||||
if (callsign.isEmpty()) { return CAircraftModel(); }
|
if (callsign.isEmpty()) { return CAircraftModel(); }
|
||||||
@@ -817,6 +826,16 @@ namespace BlackMisc
|
|||||||
return this->getCombinedTypes().size();
|
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)
|
void CAircraftModelList::updateDistributor(const CDistributor &distributor)
|
||||||
{
|
{
|
||||||
for (CAircraftModel &model : *this)
|
for (CAircraftModel &model : *this)
|
||||||
|
|||||||
@@ -113,6 +113,9 @@ namespace BlackMisc
|
|||||||
//! Find first by model string
|
//! Find first by model string
|
||||||
CAircraftModel findFirstByModelStringOrDefault(const QString &modelString, Qt::CaseSensitivity sensitivity = Qt::CaseInsensitive) const;
|
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
|
//! Find first by callsign
|
||||||
CAircraftModel findFirstByCallsignOrDefault(const Aviation::CCallsign &callsign) const;
|
CAircraftModel findFirstByCallsignOrDefault(const Aviation::CCallsign &callsign) const;
|
||||||
|
|
||||||
@@ -323,6 +326,9 @@ namespace BlackMisc
|
|||||||
//! Count different combined types
|
//! Count different combined types
|
||||||
int countCombinedTypes() const;
|
int countCombinedTypes() const;
|
||||||
|
|
||||||
|
//! Models with aliases
|
||||||
|
int countAliases() const;
|
||||||
|
|
||||||
//! Update distributor, all models in list are set to given distributor
|
//! Update distributor, all models in list are set to given distributor
|
||||||
void updateDistributor(const CDistributor &distributor);
|
void updateDistributor(const CDistributor &distributor);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user