refs #793, display mismatch between rendered and network model

* utility functions to display that info
* added in aircraft model
This commit is contained in:
Klaus Basan
2016-11-05 01:16:23 +01:00
parent 8a5d50a167
commit f1ce5fc173
3 changed files with 45 additions and 1 deletions

View File

@@ -96,8 +96,10 @@ namespace BlackGui
this->m_columns.addColumn(CColumn::standardString("realname", "pilot's real name", { CSimulatedAircraft::IndexPilot, CUser::IndexRealName }));
this->m_columns.addColumn(CColumn::standardString("icao", CSimulatedAircraft::IndexCombinedIcaoLiveryString));
this->m_columns.addColumn(CColumn::standardString("model", { CSimulatedAircraft::IndexModel, CAircraftModel::IndexModelString}));
this->m_columns.addColumn(CColumn::standardString("desc.", "description", { CSimulatedAircraft::IndexModel, CAircraftModel::IndexDescription}));
this->m_columns.addColumn(CColumn::standardString("type", { CSimulatedAircraft::IndexModel, CAircraftModel::IndexModelTypeAsString}));
this->m_columns.addColumn(CColumn::standardString("desc.", "description", { CSimulatedAircraft::IndexModel, CAircraftModel::IndexDescription}));
this->m_columns.addColumn(CColumn::standardString("aircraft", "rendered vs. network aircraft ICAO", CSimulatedAircraft::IndexNetworkModelAircraftIcaoDifference));
this->m_columns.addColumn(CColumn::standardString("livery", "rendered vs. network livery", CSimulatedAircraft::IndexNetworkModelLiveryDifference));
// default sort order
this->setSortColumnByPropertyIndex(CSimulatedAircraft::IndexRelativeDistance);

View File

@@ -280,6 +280,12 @@ namespace BlackMisc
return this->getModel().propertyByIndex(index.copyFrontRemoved());
case IndexNetworkModel:
return this->getNetworkModel().propertyByIndex(index.copyFrontRemoved());
case IndexNetworkModelAircraftIcaoDifference:
return this->getNetworkModelAircraftIcaoDifference();
case IndexNetworkModelAirlineIcaoDifference:
return this->getNetworkModelAirlineIcaoDifference();
case IndexNetworkModelLiveryDifference:
return this->getNetworkModelLiveryDifference();
case IndexEnabled:
return CVariant::fromValue(this->isEnabled());
case IndexRendered:
@@ -451,6 +457,33 @@ namespace BlackMisc
return this->m_networkModel.hasModelString() || !this->m_networkModel.getCallsign().isEmpty();
}
QString CSimulatedAircraft::getNetworkModelAircraftIcaoDifference() const
{
const CAircraftIcaoCode icao(this->getModel().getAircraftIcaoCode());
const CAircraftIcaoCode icaoNw(this->getNetworkModel().getAircraftIcaoCode());
if (icao == icaoNw || icao.getDesignator() == icaoNw.getDesignator()) { return "[=] " + icao.getDesignator(); }
static const QString diff("%1 -> %2");
return diff.arg(icaoNw.getDesignator(), icao.getDesignator());
}
QString CSimulatedAircraft::getNetworkModelAirlineIcaoDifference() const
{
const CAirlineIcaoCode icao(this->getModel().getAirlineIcaoCode());
const CAirlineIcaoCode icaoNw(this->getNetworkModel().getAirlineIcaoCode());
if (icao == icaoNw || icao.getDesignator() == icaoNw.getDesignator()) { return "[=] " + icao.getDesignator(); }
static const QString diff("%1 -> %2");
return diff.arg(icaoNw.getDesignator(), icao.getDesignator());
}
QString CSimulatedAircraft::getNetworkModelLiveryDifference() const
{
const CLivery livery(this->getModel().getLivery());
const CLivery liveryNw(this->getNetworkModel().getLivery());
if (livery == liveryNw) { return "[=] " + livery.getCombinedCodePlusInfo(); }
static const QString diff("%1 -> %2");
return diff.arg(liveryNw.getCombinedCodePlusInfo(), livery.getCombinedCodePlusInfo());
}
void CSimulatedAircraft::setModel(const CAircraftModel &model)
{
// sync the callsigns

View File

@@ -353,6 +353,15 @@ namespace BlackMisc
//! Has a network model been set?
bool hasNetworkModel() const;
//! Difference of network and (rendered) aircraft ICAO code
QString getNetworkModelAircraftIcaoDifference() const;
//! Difference of network and (rendered) airline ICAO code
QString getNetworkModelAirlineIcaoDifference() const;
//! Difference of network and (rendered) livery code
QString getNetworkModelLiveryDifference() const;
//! \copydoc BlackMisc::Simulation::CAircraftModel::getIconPath
const QString &getIconPath() const { return m_model.getIconPath(); }