mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-20 20:40:29 +08:00
Ref T70, filters and model
* added model descriptions in view model * filtering for family and all 3 descriptions * completers for filter fields
This commit is contained in:
@@ -18,21 +18,24 @@ namespace BlackGui
|
||||
{
|
||||
CAircraftIcaoFilter::CAircraftIcaoFilter(
|
||||
int id,
|
||||
const QString &designator, const QString &name,
|
||||
const QString &designator, const QString &family, const QString &manufacturer,
|
||||
const QString &description, const QString &combinedType) :
|
||||
m_id(id),
|
||||
m_designator(designator.trimmed().toUpper()), m_manufacturer(name.trimmed()),
|
||||
m_description(description.trimmed()), m_combinedType(combinedType.trimmed().toUpper())
|
||||
m_designator(designator.trimmed().toUpper()),
|
||||
m_family(family.trimmed().toUpper()),
|
||||
m_manufacturer(manufacturer.trimmed()),
|
||||
m_description(description.trimmed()),
|
||||
m_combinedType(combinedType.trimmed().toUpper())
|
||||
{
|
||||
this->m_valid = !(this->m_id < 0 && this->m_combinedType.isEmpty() && this->m_designator.isEmpty() &&
|
||||
this->m_description.isEmpty() && this->m_manufacturer.isEmpty());
|
||||
this->m_family.isEmpty() && this->m_description.isEmpty() && this->m_manufacturer.isEmpty());
|
||||
}
|
||||
|
||||
CAircraftIcaoCodeList CAircraftIcaoFilter::filter(const CAircraftIcaoCodeList &inContainer) const
|
||||
{
|
||||
if (!this->isValid()) { return inContainer; }
|
||||
CAircraftIcaoCodeList outContainer;
|
||||
bool filterCombinedCode = !this->m_combinedType.isEmpty() && !this->m_combinedType.contains('-') && CAircraftIcaoCode::isValidCombinedType(this->m_combinedType);
|
||||
const bool filterCombinedCode = !this->m_combinedType.isEmpty() && !this->m_combinedType.contains('-') && CAircraftIcaoCode::isValidCombinedType(this->m_combinedType);
|
||||
|
||||
for (const CAircraftIcaoCode &icao : inContainer)
|
||||
{
|
||||
@@ -50,13 +53,21 @@ namespace BlackGui
|
||||
{
|
||||
if (!this->stringMatchesFilterExpression(icao.getDesignator(), m_designator)) { continue; }
|
||||
}
|
||||
if (!m_family.isEmpty())
|
||||
{
|
||||
if (!this->stringMatchesFilterExpression(icao.getFamily(), m_family)) { continue; }
|
||||
}
|
||||
if (!m_manufacturer.isEmpty())
|
||||
{
|
||||
if (!this->stringMatchesFilterExpression(icao.getManufacturer(), m_manufacturer)) { continue; }
|
||||
}
|
||||
if (!m_description.isEmpty())
|
||||
{
|
||||
if (!this->stringMatchesFilterExpression(icao.getModelDescription(), m_description)) { continue; }
|
||||
const bool ignore =
|
||||
!this->stringMatchesFilterExpression(icao.getModelDescription(), m_description) &&
|
||||
!this->stringMatchesFilterExpression(icao.getModelSwiftDescription(), m_description) &&
|
||||
!this->stringMatchesFilterExpression(icao.getModelIataDescription(), m_description);
|
||||
if (ignore) { continue; }
|
||||
}
|
||||
if (filterCombinedCode)
|
||||
{
|
||||
|
||||
@@ -22,7 +22,6 @@ namespace BlackGui
|
||||
{
|
||||
namespace Models
|
||||
{
|
||||
|
||||
//! Filter for aircraft ICAO data
|
||||
class BLACKGUI_EXPORT CAircraftIcaoFilter :
|
||||
public IModelFilter<BlackMisc::Aviation::CAircraftIcaoCodeList>
|
||||
@@ -31,6 +30,7 @@ namespace BlackGui
|
||||
//! Constructor
|
||||
CAircraftIcaoFilter(int id,
|
||||
const QString &designator,
|
||||
const QString &family,
|
||||
const QString &manufacturer,
|
||||
const QString &description,
|
||||
const QString &combinedType);
|
||||
@@ -41,11 +41,11 @@ namespace BlackGui
|
||||
private:
|
||||
int m_id = -1;
|
||||
QString m_designator;
|
||||
QString m_family;
|
||||
QString m_manufacturer;
|
||||
QString m_description;
|
||||
QString m_combinedType;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
||||
|
||||
@@ -32,12 +32,13 @@ namespace BlackGui
|
||||
this->m_columns.addColumn(CColumn::standardValueObject("rank", CAircraftIcaoCode::IndexRank, CDefaultFormatter::alignRightVCenter()));
|
||||
this->m_columns.addColumn(CColumn::standardString("manufacturer", CAircraftIcaoCode::IndexManufacturer));
|
||||
this->m_columns.addColumn(CColumn::standardString("family", CAircraftIcaoCode::IndexFamily));
|
||||
this->m_columns.addColumn(CColumn::standardString("desc.", "description", CAircraftIcaoCode::IndexModelDescription));
|
||||
this->m_columns.addColumn(CColumn::standardString("code", "combined code", CAircraftIcaoCode::IndexCombinedAircraftType));
|
||||
this->m_columns.addColumn(CColumn::standardString("ICAO desc.", "ICAO description", CAircraftIcaoCode::IndexModelDescription));
|
||||
this->m_columns.addColumn(CColumn::standardString("IATA desc.", "IATA description", CAircraftIcaoCode::IndexModelIataDescription));
|
||||
this->m_columns.addColumn(CColumn::standardString("swift desc.", "swift description", CAircraftIcaoCode::IndexModelSwiftDescription));
|
||||
this->m_columns.addColumn(CColumn::standardString("type", "combined type", CAircraftIcaoCode::IndexCombinedAircraftType));
|
||||
this->m_columns.addColumn(CColumn::standardString("WTC", "wake turbulence category", CAircraftIcaoCode::IndexWtc));
|
||||
this->m_columns.addColumn(CColumn("mil.", "military", CAircraftIcaoCode::IndexIsMilitary, new CBoolIconFormatter("military", "civil")));
|
||||
this->m_columns.addColumn(CColumn("VTOL", "vertical take-off and landing", CAircraftIcaoCode::IndexIsVtol, new CBoolIconFormatter("VTOL", "non VTOL")));
|
||||
this->m_columns.addColumn(CColumn("leg.", "legacy", CAircraftIcaoCode::IndexIsLegacy, new CBoolIconFormatter("legacy", "operating")));
|
||||
this->m_columns.addColumn(CColumn("VTOL", "vertical take-off and landing", CAircraftIcaoCode::IndexIsVtol, new CBoolIconFormatter("VTOL", "non VTOL"))); this->m_columns.addColumn(CColumn("leg.", "legacy", CAircraftIcaoCode::IndexIsLegacy, new CBoolIconFormatter("legacy", "operating")));
|
||||
this->m_columns.addColumn(CColumn("real.", "real world aircraft", CAircraftIcaoCode::IndexIsRealworld, new CBoolIconFormatter("real", "non real")));
|
||||
this->m_columns.addColumn(CColumn::standardString("changed", CAircraftIcaoCode::IndexUtcTimestampFormattedYmdhms));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user