diff --git a/src/blackmisc/aviation/livery.cpp b/src/blackmisc/aviation/livery.cpp index 288fee75f..092c6c7ca 100644 --- a/src/blackmisc/aviation/livery.cpp +++ b/src/blackmisc/aviation/livery.cpp @@ -91,11 +91,18 @@ namespace BlackMisc QString CLivery::convertToQString(bool i18n) const { QString s(i18n ? QCoreApplication::translate("Aviation", "Livery") : "Livery"); - s.append(m_combinedCode); + if (this->hasCombinedCode()) + { + s.append(' '); + s.append(m_combinedCode); + } + s.append(' '); + s.append(this->m_airline.toQString(i18n)); + s.append(' '); if (!this->m_description.isEmpty()) { s.append(' ').append(this->m_description); } if (this->m_colorFuselage.isValid()) { s.append(" F: ").append(this->m_colorFuselage.hex()); } if (this->m_colorTail.isValid()) { s.append(" T: ").append(this->m_colorTail.hex()); } - if (this->isMilitary()) { s.append(" Military");} + s.append(" Mil: ").append(boolToYesNo(this->isMilitary())); return s; // force strings for translation in resource files diff --git a/src/blackmisc/simulation/aircraftmodel.cpp b/src/blackmisc/simulation/aircraftmodel.cpp index 97db1fa8e..704cef42d 100644 --- a/src/blackmisc/simulation/aircraftmodel.cpp +++ b/src/blackmisc/simulation/aircraftmodel.cpp @@ -44,10 +44,12 @@ namespace BlackMisc QString CAircraftModel::convertToQString(bool i18n) const { QString s = this->m_modelString; - if (!s.isEmpty()) { s += " tpye: "; } + if (!s.isEmpty()) { s += " type: "; } s += this->getModelTypeAsString(); s += ' '; - s += this->m_aircraftIcao.toQString(i18n); + s += this->getAircraftIcaoCode().toQString(i18n); + s += ' '; + s += this->m_livery.toQString(i18n); if (!this->m_fileName.isEmpty()) { s += ' '; @@ -417,6 +419,7 @@ namespace BlackMisc case TypeModelMatchingDefaultModel: return "map. default"; case TypeOwnSimulatorModel: return "own simulator"; case TypeManuallySet: return "set"; + case TypeFsdData: return "FSD"; case TypeUnknown: default: return "unknown"; } diff --git a/src/blackmisc/simulation/simulatedaircraft.cpp b/src/blackmisc/simulation/simulatedaircraft.cpp index c2f4121d1..da0d4f3c9 100644 --- a/src/blackmisc/simulation/simulatedaircraft.cpp +++ b/src/blackmisc/simulation/simulatedaircraft.cpp @@ -28,6 +28,7 @@ namespace BlackMisc CSimulatedAircraft::CSimulatedAircraft(const CAircraftModel &model) : m_model(model) { + this->setCallsign(model.getCallsign()); init(); } @@ -43,7 +44,6 @@ namespace BlackMisc // set get/set thing here updates the redundant data (e.g. livery / model.livery) this->setCallsign(this->getCallsign()); this->setIcaoCodes(this->getAircraftIcaoCode(), this->getAirlineIcaoCode()); - this->setLivery(this->getLivery()); this->setModel(this->getModel()); } @@ -108,13 +108,20 @@ namespace BlackMisc bool CSimulatedAircraft::setIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode) { - bool c = this->m_model.setAircraftIcaoCode(aircraftIcaoCode); - return m_livery.setAirlineIcaoCode(airlineIcaoCode) || c; + //! \note to be compatible with old version I still allow to set airline here but I should actually set a livery + + if (this->getLivery().getAirlineIcaoCode() != airlineIcaoCode) + { + // create a dummy livery for given ICAO code + CLivery newLivery(CLivery::getStandardCode(airlineIcaoCode), airlineIcaoCode, "Standard auto generated"); + this->m_model.setLivery(newLivery); + } + return this->m_model.setAircraftIcaoCode(aircraftIcaoCode); } const CAirlineIcaoCode &CSimulatedAircraft::getAirlineIcaoCode() const { - return m_livery.getAirlineIcaoCode(); + return this->m_model.getAirlineIcaoCode(); } const QString &CSimulatedAircraft::getAirlineIcaoCodeDesignator() const @@ -134,7 +141,7 @@ namespace BlackMisc bool CSimulatedAircraft::hasAircraftAndAirlineDesignator() const { - return this->getAircraftIcaoCode().hasDesignator() && m_livery.hasValidAirlineDesignator(); + return this->getAircraftIcaoCode().hasDesignator() && this->m_model.getLivery().hasValidAirlineDesignator(); } const CComSystem CSimulatedAircraft::getComSystem(CComSystem::ComUnit unit) const @@ -289,7 +296,7 @@ namespace BlackMisc case IndexAircraftIcaoCode: return this->getAircraftIcaoCode().propertyByIndex(index.copyFrontRemoved()); case IndexLivery: - return this->m_livery.propertyByIndex(index.copyFrontRemoved()); + return this->getLivery().propertyByIndex(index.copyFrontRemoved()); case IndexParts: return this->m_parts.propertyByIndex(index.copyFrontRemoved()); case IndexIsVtol: @@ -327,13 +334,6 @@ namespace BlackMisc case IndexTransponder: this->m_transponder.setPropertyByIndex(variant, index.copyFrontRemoved()); break; - case IndexAircraftIcaoCode: - // intentionally not removing front, delegating - this->m_livery.setPropertyByIndex(variant, index); - break; - case IndexLivery: - this->m_livery.setPropertyByIndex(variant, index.copyFrontRemoved()); - break; case IndexSituation: this->m_situation.setPropertyByIndex(variant, index.copyFrontRemoved()); break; @@ -356,6 +356,9 @@ namespace BlackMisc case IndexFastPositionUpdates: this->m_fastPositionUpdates = variant.toBool(); break; + case IndexLivery: + Q_ASSERT_X(false, Q_FUNC_INFO, "Unsupported"); + break; default: CValueObject::setPropertyByIndex(variant, index); break; @@ -382,7 +385,7 @@ namespace BlackMisc case IndexTransponder: return Compare::compare(m_transponder.getTransponderCode(), compareValue.getTransponder().getTransponderCode()); case IndexLivery: - return this->m_livery.comparePropertyByIndex(compareValue.getLivery(), index.copyFrontRemoved()); + return this->getLivery().comparePropertyByIndex(compareValue.getLivery(), index.copyFrontRemoved()); case IndexParts: return this->m_parts.comparePropertyByIndex(compareValue.getParts(), index.copyFrontRemoved()); case IndexModel: diff --git a/src/blackmisc/simulation/simulatedaircraft.h b/src/blackmisc/simulation/simulatedaircraft.h index 8e2896e6b..1d27baeb7 100644 --- a/src/blackmisc/simulation/simulatedaircraft.h +++ b/src/blackmisc/simulation/simulatedaircraft.h @@ -106,10 +106,11 @@ namespace BlackMisc bool setAircraftIcaoCode(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode) { return m_model.setAircraftIcaoCode(aircraftIcaoCode);} //! Set ICAO info + //! \deprecated bool setIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode); //! Get livery - const BlackMisc::Aviation::CLivery &getLivery() const { return m_livery; } + const BlackMisc::Aviation::CLivery &getLivery() const { return m_model.getLivery(); } //! Airline ICAO code if any const BlackMisc::Aviation::CAirlineIcaoCode &getAirlineIcaoCode() const; @@ -117,11 +118,8 @@ namespace BlackMisc //! Airline ICAO code designator const QString &getAirlineIcaoCodeDesignator() const; - //! Livery - virtual void setLivery(const BlackMisc::Aviation::CLivery &livery) { this->m_livery = livery; } - //! Set aircraft ICAO designator - virtual void setAircraftIcaoDesignator(const QString &designator); + void setAircraftIcaoDesignator(const QString &designator); //! Has valid realname? bool hasValidRealName() const { return this->m_pilot.hasValidRealName(); } @@ -133,7 +131,7 @@ namespace BlackMisc bool hasAircraftDesignator() const; //! Valid airline designator - bool hasAirlineDesignator() const { return this->m_livery.hasValidAirlineDesignator(); } + bool hasAirlineDesignator() const { return this->m_model.getLivery().hasValidAirlineDesignator(); } //! Valid designators? bool hasAircraftAndAirlineDesignator() const; @@ -366,9 +364,8 @@ namespace BlackMisc BlackMisc::Aviation::CTransponder m_transponder; BlackMisc::Aviation::CAircraftParts m_parts; BlackMisc::Aviation::CSelcal m_selcal; - BlackMisc::Aviation::CLivery m_livery; BlackMisc::Simulation::CAircraftModel m_model; - bool m_enabled = true; //!< to be displayed in sim + bool m_enabled = true; //!< to be displayed in simulator bool m_rendered = false; //!< really shown in simulator bool m_partsSynchronized = false; //!< sync.parts bool m_fastPositionUpdates = false; //!