refs #614, refs #638 removed redundant m_livery from CSimulatedAircraft and improved convertTOQString

* removed some leftovers in simulated aircraft such as virtual functions
* use livery from model instead of keeping a redundant copy
This commit is contained in:
Klaus Basan
2016-04-09 23:09:20 +02:00
parent fdd7fa62d5
commit 368d803d42
4 changed files with 36 additions and 27 deletions

View File

@@ -91,11 +91,18 @@ namespace BlackMisc
QString CLivery::convertToQString(bool i18n) const QString CLivery::convertToQString(bool i18n) const
{ {
QString s(i18n ? QCoreApplication::translate("Aviation", "Livery") : "Livery"); 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_description.isEmpty()) { s.append(' ').append(this->m_description); }
if (this->m_colorFuselage.isValid()) { s.append(" F: ").append(this->m_colorFuselage.hex()); } 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->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; return s;
// force strings for translation in resource files // force strings for translation in resource files

View File

@@ -44,10 +44,12 @@ namespace BlackMisc
QString CAircraftModel::convertToQString(bool i18n) const QString CAircraftModel::convertToQString(bool i18n) const
{ {
QString s = this->m_modelString; QString s = this->m_modelString;
if (!s.isEmpty()) { s += " tpye: "; } if (!s.isEmpty()) { s += " type: "; }
s += this->getModelTypeAsString(); s += this->getModelTypeAsString();
s += ' '; s += ' ';
s += this->m_aircraftIcao.toQString(i18n); s += this->getAircraftIcaoCode().toQString(i18n);
s += ' ';
s += this->m_livery.toQString(i18n);
if (!this->m_fileName.isEmpty()) if (!this->m_fileName.isEmpty())
{ {
s += ' '; s += ' ';
@@ -417,6 +419,7 @@ namespace BlackMisc
case TypeModelMatchingDefaultModel: return "map. default"; case TypeModelMatchingDefaultModel: return "map. default";
case TypeOwnSimulatorModel: return "own simulator"; case TypeOwnSimulatorModel: return "own simulator";
case TypeManuallySet: return "set"; case TypeManuallySet: return "set";
case TypeFsdData: return "FSD";
case TypeUnknown: case TypeUnknown:
default: return "unknown"; default: return "unknown";
} }

View File

@@ -28,6 +28,7 @@ namespace BlackMisc
CSimulatedAircraft::CSimulatedAircraft(const CAircraftModel &model) : m_model(model) CSimulatedAircraft::CSimulatedAircraft(const CAircraftModel &model) : m_model(model)
{ {
this->setCallsign(model.getCallsign());
init(); init();
} }
@@ -43,7 +44,6 @@ namespace BlackMisc
// set get/set thing here updates the redundant data (e.g. livery / model.livery) // set get/set thing here updates the redundant data (e.g. livery / model.livery)
this->setCallsign(this->getCallsign()); this->setCallsign(this->getCallsign());
this->setIcaoCodes(this->getAircraftIcaoCode(), this->getAirlineIcaoCode()); this->setIcaoCodes(this->getAircraftIcaoCode(), this->getAirlineIcaoCode());
this->setLivery(this->getLivery());
this->setModel(this->getModel()); this->setModel(this->getModel());
} }
@@ -108,13 +108,20 @@ namespace BlackMisc
bool CSimulatedAircraft::setIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode) bool CSimulatedAircraft::setIcaoCodes(const CAircraftIcaoCode &aircraftIcaoCode, const CAirlineIcaoCode &airlineIcaoCode)
{ {
bool c = this->m_model.setAircraftIcaoCode(aircraftIcaoCode); //! \note to be compatible with old version I still allow to set airline here but I should actually set a livery
return m_livery.setAirlineIcaoCode(airlineIcaoCode) || c;
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 const CAirlineIcaoCode &CSimulatedAircraft::getAirlineIcaoCode() const
{ {
return m_livery.getAirlineIcaoCode(); return this->m_model.getAirlineIcaoCode();
} }
const QString &CSimulatedAircraft::getAirlineIcaoCodeDesignator() const const QString &CSimulatedAircraft::getAirlineIcaoCodeDesignator() const
@@ -134,7 +141,7 @@ namespace BlackMisc
bool CSimulatedAircraft::hasAircraftAndAirlineDesignator() const 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 const CComSystem CSimulatedAircraft::getComSystem(CComSystem::ComUnit unit) const
@@ -289,7 +296,7 @@ namespace BlackMisc
case IndexAircraftIcaoCode: case IndexAircraftIcaoCode:
return this->getAircraftIcaoCode().propertyByIndex(index.copyFrontRemoved()); return this->getAircraftIcaoCode().propertyByIndex(index.copyFrontRemoved());
case IndexLivery: case IndexLivery:
return this->m_livery.propertyByIndex(index.copyFrontRemoved()); return this->getLivery().propertyByIndex(index.copyFrontRemoved());
case IndexParts: case IndexParts:
return this->m_parts.propertyByIndex(index.copyFrontRemoved()); return this->m_parts.propertyByIndex(index.copyFrontRemoved());
case IndexIsVtol: case IndexIsVtol:
@@ -327,13 +334,6 @@ namespace BlackMisc
case IndexTransponder: case IndexTransponder:
this->m_transponder.setPropertyByIndex(variant, index.copyFrontRemoved()); this->m_transponder.setPropertyByIndex(variant, index.copyFrontRemoved());
break; 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: case IndexSituation:
this->m_situation.setPropertyByIndex(variant, index.copyFrontRemoved()); this->m_situation.setPropertyByIndex(variant, index.copyFrontRemoved());
break; break;
@@ -356,6 +356,9 @@ namespace BlackMisc
case IndexFastPositionUpdates: case IndexFastPositionUpdates:
this->m_fastPositionUpdates = variant.toBool(); this->m_fastPositionUpdates = variant.toBool();
break; break;
case IndexLivery:
Q_ASSERT_X(false, Q_FUNC_INFO, "Unsupported");
break;
default: default:
CValueObject::setPropertyByIndex(variant, index); CValueObject::setPropertyByIndex(variant, index);
break; break;
@@ -382,7 +385,7 @@ namespace BlackMisc
case IndexTransponder: case IndexTransponder:
return Compare::compare(m_transponder.getTransponderCode(), compareValue.getTransponder().getTransponderCode()); return Compare::compare(m_transponder.getTransponderCode(), compareValue.getTransponder().getTransponderCode());
case IndexLivery: case IndexLivery:
return this->m_livery.comparePropertyByIndex(compareValue.getLivery(), index.copyFrontRemoved()); return this->getLivery().comparePropertyByIndex(compareValue.getLivery(), index.copyFrontRemoved());
case IndexParts: case IndexParts:
return this->m_parts.comparePropertyByIndex(compareValue.getParts(), index.copyFrontRemoved()); return this->m_parts.comparePropertyByIndex(compareValue.getParts(), index.copyFrontRemoved());
case IndexModel: case IndexModel:

View File

@@ -106,10 +106,11 @@ namespace BlackMisc
bool setAircraftIcaoCode(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode) { return m_model.setAircraftIcaoCode(aircraftIcaoCode);} bool setAircraftIcaoCode(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode) { return m_model.setAircraftIcaoCode(aircraftIcaoCode);}
//! Set ICAO info //! Set ICAO info
//! \deprecated
bool setIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode); bool setIcaoCodes(const BlackMisc::Aviation::CAircraftIcaoCode &aircraftIcaoCode, const BlackMisc::Aviation::CAirlineIcaoCode &airlineIcaoCode);
//! Get livery //! 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 //! Airline ICAO code if any
const BlackMisc::Aviation::CAirlineIcaoCode &getAirlineIcaoCode() const; const BlackMisc::Aviation::CAirlineIcaoCode &getAirlineIcaoCode() const;
@@ -117,11 +118,8 @@ namespace BlackMisc
//! Airline ICAO code designator //! Airline ICAO code designator
const QString &getAirlineIcaoCodeDesignator() const; const QString &getAirlineIcaoCodeDesignator() const;
//! Livery
virtual void setLivery(const BlackMisc::Aviation::CLivery &livery) { this->m_livery = livery; }
//! Set aircraft ICAO designator //! Set aircraft ICAO designator
virtual void setAircraftIcaoDesignator(const QString &designator); void setAircraftIcaoDesignator(const QString &designator);
//! Has valid realname? //! Has valid realname?
bool hasValidRealName() const { return this->m_pilot.hasValidRealName(); } bool hasValidRealName() const { return this->m_pilot.hasValidRealName(); }
@@ -133,7 +131,7 @@ namespace BlackMisc
bool hasAircraftDesignator() const; bool hasAircraftDesignator() const;
//! Valid airline designator //! Valid airline designator
bool hasAirlineDesignator() const { return this->m_livery.hasValidAirlineDesignator(); } bool hasAirlineDesignator() const { return this->m_model.getLivery().hasValidAirlineDesignator(); }
//! Valid designators? //! Valid designators?
bool hasAircraftAndAirlineDesignator() const; bool hasAircraftAndAirlineDesignator() const;
@@ -366,9 +364,8 @@ namespace BlackMisc
BlackMisc::Aviation::CTransponder m_transponder; BlackMisc::Aviation::CTransponder m_transponder;
BlackMisc::Aviation::CAircraftParts m_parts; BlackMisc::Aviation::CAircraftParts m_parts;
BlackMisc::Aviation::CSelcal m_selcal; BlackMisc::Aviation::CSelcal m_selcal;
BlackMisc::Aviation::CLivery m_livery;
BlackMisc::Simulation::CAircraftModel m_model; 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_rendered = false; //!< really shown in simulator
bool m_partsSynchronized = false; //!< sync.parts bool m_partsSynchronized = false; //!< sync.parts
bool m_fastPositionUpdates = false; //!<use fast position updates bool m_fastPositionUpdates = false; //!<use fast position updates
@@ -385,7 +382,6 @@ namespace BlackMisc
BLACK_METAMEMBER(com2system), BLACK_METAMEMBER(com2system),
BLACK_METAMEMBER(transponder), BLACK_METAMEMBER(transponder),
BLACK_METAMEMBER(parts), BLACK_METAMEMBER(parts),
BLACK_METAMEMBER(livery),
BLACK_METAMEMBER(distanceToOwnAircraft), BLACK_METAMEMBER(distanceToOwnAircraft),
BLACK_METAMEMBER(bearingToOwnAircraft), BLACK_METAMEMBER(bearingToOwnAircraft),
BLACK_METAMEMBER(model), BLACK_METAMEMBER(model),