diff --git a/src/blackgui/models/aircraftmodellistmodel.cpp b/src/blackgui/models/aircraftmodellistmodel.cpp index beb450a89..737068b63 100644 --- a/src/blackgui/models/aircraftmodellistmodel.cpp +++ b/src/blackgui/models/aircraftmodellistmodel.cpp @@ -93,7 +93,7 @@ namespace BlackGui } m_columns.addColumn(CColumn::standardString("ac", "aircraft ICAO", { CAircraftModel::IndexAircraftIcaoCode, CAircraftIcaoCode::IndexAircraftDesignator })); m_columns.addColumn(CColumn::standardString("fam.", "aircraft family", { CAircraftModel::IndexAircraftIcaoCode, CAircraftIcaoCode::IndexFamily })); - m_columns.addColumn(CColumn::standardString("cat.", "category", { CAircraftModel::IndexAircraftIcaoCode, CAircraftIcaoCode::IndexCategory, CAircraftCategory::IndexPath })); + m_columns.addColumn(CColumn::standardString("cat.", "category", { CAircraftModel::IndexAircraftIcaoCode, CAircraftIcaoCode::IndexCategory, CAircraftCategory::IndexLevelStringAndPath })); m_columns.addColumn(CColumn::standardString("livery", { CAircraftModel::IndexLivery, CLivery::IndexCombinedCode})); m_columns.addColumn(CColumn::standardString("al", "airline ICAO", { CAircraftModel::IndexLivery, CLivery::IndexAirlineIcaoCode, CAirlineIcaoCode::IndexAirlineDesignator })); m_columns.addColumn(CColumn("CG", CAircraftModel::IndexCG, new CPhysiqalQuantiyFormatter(CLengthUnit::ft(), 1))); diff --git a/src/blackmisc/aviation/aircraftcategory.cpp b/src/blackmisc/aviation/aircraftcategory.cpp index cd561550d..99cff17d5 100644 --- a/src/blackmisc/aviation/aircraftcategory.cpp +++ b/src/blackmisc/aviation/aircraftcategory.cpp @@ -123,14 +123,22 @@ namespace BlackMisc QString CAircraftCategory::getLevelString() const { + if (this->isNull()) { return {}; } return QStringLiteral("%1.%2.%3").arg(m_l1).arg(m_l2).arg(m_l3); } QString CAircraftCategory::getLevelAndName() const { + if (this->isNull()) { return {}; } return QStringLiteral("%1 %2").arg(this->getLevelString(), this->getName()); } + QString CAircraftCategory::getLevelAndPath() const + { + if (this->isNull()) { return {}; } + return QStringLiteral("%1 %2").arg(this->getLevelString(), this->getPath()); + } + bool CAircraftCategory::matchesPath(const QString &path, Qt::CaseSensitivity cs) { return stringCompare(path, this->getPath(), cs); @@ -165,6 +173,8 @@ namespace BlackMisc case IndexAssignable: return CVariant::fromValue(m_assignable); case IndexPath: return CVariant::fromValue(m_path); case IndexLevelString: return CVariant::fromValue(this->getLevelString()); + case IndexLevelStringAndName: return CVariant::fromValue(this->getLevelAndName()); + case IndexLevelStringAndPath: return CVariant::fromValue(this->getLevelAndPath()); default: return CValueObject::propertyByIndex(index); } } @@ -194,6 +204,8 @@ namespace BlackMisc case IndexPath: return m_path.compare(compareValue.getPath(), Qt::CaseInsensitive); case IndexDescription: return m_description.compare(compareValue.getDescription(), Qt::CaseInsensitive); case IndexAssignable: return Compare::compare(this->isAssignable(), compareValue.isAssignable()); + case IndexLevelStringAndName: + case IndexLevelStringAndPath: case IndexLevelString: return this->compareByLevel(compareValue); default: return CValueObject::comparePropertyByIndex(index, *this); } diff --git a/src/blackmisc/aviation/aircraftcategory.h b/src/blackmisc/aviation/aircraftcategory.h index c738ed663..c3dcf18df 100644 --- a/src/blackmisc/aviation/aircraftcategory.h +++ b/src/blackmisc/aviation/aircraftcategory.h @@ -41,6 +41,8 @@ namespace BlackMisc IndexName = CPropertyIndex::GlobalIndexCAircraftCategory, IndexDescription, IndexLevelString, + IndexLevelStringAndName, + IndexLevelStringAndPath, IndexPath, IndexAssignable }; @@ -108,6 +110,9 @@ namespace BlackMisc //! Level and name QString getLevelAndName() const; + //! Level and path + QString getLevelAndPath() const; + //! Matching path? bool matchesPath(const QString &path, Qt::CaseSensitivity cs);