Ref T109, make sure liveries and ICAO are compared correctly

* isDbEqual function
* used in getXXDifference functions
This commit is contained in:
Klaus Basan
2017-07-16 03:45:09 +02:00
committed by Mathew Sutcliffe
parent d64bfcabce
commit 551d9326fe
2 changed files with 9 additions and 3 deletions

View File

@@ -73,6 +73,9 @@ namespace BlackMisc
//! Has valid DB key
bool hasValidDbKey() const { return m_dbKey >= 0; }
//! Same DB key and hence equal
bool isDbEqual(const IDatastoreObjectWithIntegerKey &other) const { return other.isLoadedFromDb() && this->isLoadedFromDb() && other.getDbKey() == this->getDbKey(); }
//! Loaded from DB
//! \remarks here not really needed, but added to have similar signature as IDatastoreObjectWithStringKey
bool isLoadedFromDb() const;
@@ -143,6 +146,9 @@ namespace BlackMisc
//! Has valid DB key
bool hasValidDbKey() const { return !m_dbKey.isEmpty(); }
//! Same DB key and hence equal
bool isDbEqual(const IDatastoreObjectWithStringKey &other) const { return other.isLoadedFromDb() && this->isLoadedFromDb() && other.getDbKey() == this->getDbKey(); }
//! Loaded from DB
bool isLoadedFromDb() const { return m_loadedFromDb; }

View File

@@ -476,7 +476,7 @@ namespace BlackMisc
{
const CAircraftIcaoCode icao(this->getModel().getAircraftIcaoCode());
const CAircraftIcaoCode icaoNw(this->getNetworkModel().getAircraftIcaoCode());
if (icao == icaoNw || icao.getDesignator() == icaoNw.getDesignator()) { return "[=] " + icao.getDesignator(); }
if (icao.isDbEqual(icaoNw) || icao == icaoNw) { return QStringLiteral("[=] ") + icao.getDesignator(); }
static const QString diff("%1 -> %2");
return diff.arg(icaoNw.getDesignator(), icao.getDesignator());
}
@@ -485,7 +485,7 @@ namespace BlackMisc
{
const CAirlineIcaoCode icao(this->getModel().getAirlineIcaoCode());
const CAirlineIcaoCode icaoNw(this->getNetworkModel().getAirlineIcaoCode());
if (icao == icaoNw || icao.getDesignator() == icaoNw.getDesignator()) { return "[=] " + icao.getDesignator(); }
if (icao.isDbEqual(icaoNw) || icao == icaoNw) { return QStringLiteral("[=] ") + icao.getDesignator(); }
static const QString diff("%1 -> %2");
return diff.arg(icaoNw.getDesignator(), icao.getDesignator());
}
@@ -496,7 +496,7 @@ namespace BlackMisc
const CLivery livery(this->getModel().getLivery());
const CLivery liveryNw(this->getNetworkModel().getLivery());
if (livery == liveryNw) { return "[=] " + livery.getCombinedCodePlusInfo(); }
if (livery.isDbEqual(liveryNw) || livery == liveryNw) { return QStringLiteral("[=] ") + livery.getCombinedCodePlusInfo(); }
static const QString diff("%1 -> %2");
return diff.arg(liveryNw.getCombinedCodePlusInfo(), livery.getCombinedCodePlusInfo());
}