mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-30 11:55:35 +08:00
refs #452, adjusted aircraft/aviation classes
* support for loading from datastore * improved timestamp handling * new color and country classes * new attributes * updates for missing parts in CUser
This commit is contained in:
committed by
Mathew Sutcliffe
parent
c5f7179588
commit
ae24700299
@@ -38,8 +38,70 @@ namespace BlackMisc
|
||||
|
||||
CAircraftModel CAircraftModelList::findFirstByModelString(const QString &modelString, Qt::CaseSensitivity sensitivity) const
|
||||
{
|
||||
CAircraftModelList ml = findByModelString(modelString, sensitivity);
|
||||
return ml.frontOrDefault();
|
||||
return this->findFirstBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return model.matchesModelString(modelString, sensitivity);
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByIcaoDesignators(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode) const
|
||||
{
|
||||
const QString aircraft(aircraftIcaoCode.getDesignator());
|
||||
const QString airline(airlineIcaoCode.getDesignator());
|
||||
|
||||
if (airline.isEmpty())
|
||||
{
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return model.getAircraftIcaoCode().getDesignator() == aircraft;
|
||||
});
|
||||
}
|
||||
if (aircraft.isEmpty())
|
||||
{
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return model.getAirlineIcaoCode().getDesignator() == airline;
|
||||
});
|
||||
}
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return model.getAirlineIcaoCode().getDesignator() == airline &&
|
||||
model.getAircraftIcaoCode().getDesignator() == aircraft;
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByAircraftDesignatorAndLiveryCombinedCode(const QString &aircraftDesignator, const QString &combinedCode) const
|
||||
{
|
||||
if (aircraftDesignator.isEmpty()) { return CAircraftModelList(); }
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
if (!model.getAircraftIcaoCode().matchesDesignator(aircraftDesignator)) { return false; }
|
||||
return model.getLivery().matchesCombinedCode(combinedCode);
|
||||
});
|
||||
}
|
||||
|
||||
void CAircraftModelList::setSimulatorInfo(const CSimulatorInfo &info)
|
||||
{
|
||||
for (CAircraftModel &model : (*this))
|
||||
{
|
||||
model.setSimulatorInfo(info);
|
||||
}
|
||||
}
|
||||
|
||||
int CAircraftModelList::keepModelsWithString(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity)
|
||||
{
|
||||
int cs = this->size();
|
||||
(*this) = (findByModelStrings(modelStrings, sensitivity));
|
||||
int d = cs - this->size();
|
||||
return d;
|
||||
}
|
||||
|
||||
int CAircraftModelList::removeModelsWithString(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity)
|
||||
{
|
||||
int cs = this->size();
|
||||
(*this) = (findByNotInModelStrings(modelStrings, sensitivity));
|
||||
int d = cs - this->size();
|
||||
return d;
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findModelsStartingWith(const QString &modelString, Qt::CaseSensitivity sensitivity) const
|
||||
@@ -50,6 +112,22 @@ namespace BlackMisc
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByModelStrings(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity) const
|
||||
{
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return modelStrings.contains(model.getModelString(), sensitivity);
|
||||
});
|
||||
}
|
||||
|
||||
CAircraftModelList CAircraftModelList::findByNotInModelStrings(const QStringList &modelStrings, Qt::CaseSensitivity sensitivity) const
|
||||
{
|
||||
return this->findBy([ = ](const CAircraftModel & model)
|
||||
{
|
||||
return !modelStrings.contains(model.getModelString(), sensitivity);
|
||||
});
|
||||
}
|
||||
|
||||
QStringList CAircraftModelList::getSortedModelStrings() const
|
||||
{
|
||||
QStringList ms;
|
||||
|
||||
Reference in New Issue
Block a user