diff --git a/src/blackmisc/avaircraft.cpp b/src/blackmisc/avaircraft.cpp index eb35a6291..749e29163 100644 --- a/src/blackmisc/avaircraft.cpp +++ b/src/blackmisc/avaircraft.cpp @@ -97,7 +97,7 @@ namespace BlackMisc bool CAircraft::operator ==(const CAircraft &other) const { if (this == &other) return true; - return this->getValueHash() == other.getValueHash(); + return compare(*this, other) == 0; } /* diff --git a/src/blackmisc/avaircrafticao.cpp b/src/blackmisc/avaircrafticao.cpp index cc52a7045..8971af5d3 100644 --- a/src/blackmisc/avaircrafticao.cpp +++ b/src/blackmisc/avaircrafticao.cpp @@ -100,7 +100,7 @@ namespace BlackMisc bool CAircraftIcao::operator ==(const CAircraftIcao &other) const { if (this == &other) return true; - return this->getValueHash() == other.getValueHash(); + return compare(*this, other) == 0; } /* diff --git a/src/blackmisc/avaircraftsituation.cpp b/src/blackmisc/avaircraftsituation.cpp index c0febe914..c64502153 100644 --- a/src/blackmisc/avaircraftsituation.cpp +++ b/src/blackmisc/avaircraftsituation.cpp @@ -44,9 +44,19 @@ namespace BlackMisc /* * Compare */ - int CAircraftSituation::compareImpl(const CValueObject &/*otherBase*/) const + int CAircraftSituation::compareImpl(const CValueObject &otherBase) const { - qFatal("not implemented"); + const auto &other = static_cast(otherBase); + + int result; + if ((result = compare(this->m_position, other.m_position))) { return result; } + if ((result = compare(this->m_altitude, other.m_altitude))) { return result; } + if ((result = compare(this->m_heading, other.m_heading))) { return result; } + if ((result = compare(this->m_pitch, other.m_pitch))) { return result; } + if ((result = compare(this->m_bank, other.m_bank))) { return result; } + if ((result = compare(this->m_groundspeed, other.m_groundspeed))) { return result; } + if (this->m_timestamp < other.m_timestamp) { return -1; } + if (this->m_timestamp > other.m_timestamp) { return 1; } return 0; } @@ -84,7 +94,7 @@ namespace BlackMisc bool CAircraftSituation::operator ==(const CAircraftSituation &other) const { if (this == &other) return true; - return this->getValueHash() == other.getValueHash(); + return compare(*this, other) == 0; } /* diff --git a/src/blackmisc/nwserver.cpp b/src/blackmisc/nwserver.cpp index 195d54837..788d81006 100644 --- a/src/blackmisc/nwserver.cpp +++ b/src/blackmisc/nwserver.cpp @@ -90,7 +90,7 @@ namespace BlackMisc bool CServer::operator ==(const CServer &other) const { if (this == &other) return true; - return this->getValueHash() == other.getValueHash(); + return compare(*this, other) == 0; } /* diff --git a/src/blackmisc/nwtextmessage.cpp b/src/blackmisc/nwtextmessage.cpp index 3936ced1a..aa5e71b9b 100644 --- a/src/blackmisc/nwtextmessage.cpp +++ b/src/blackmisc/nwtextmessage.cpp @@ -54,6 +54,12 @@ namespace BlackMisc { const auto &other = static_cast(otherBase); + int result; + if ((result = compare(this->m_senderCallsign, other.m_senderCallsign))) { return result; } + if ((result = compare(this->m_recipientCallsign, other.m_recipientCallsign))) { return result; } + if ((result = compare(this->m_frequency, other.m_frequency))) { return result; } + if (this->m_received < other.m_received) { return -1; } + if (this->m_received > other.m_received) { return 1; } return this->m_message.compare(other.m_message); } @@ -229,7 +235,7 @@ namespace BlackMisc bool CTextMessage::operator ==(const CTextMessage &other) const { if (this == &other) return true; - return this->getValueHash() == other.getValueHash(); + return compare(*this, other); } /* diff --git a/src/blackmisc/setnetwork.cpp b/src/blackmisc/setnetwork.cpp index 560dd1e54..f20069013 100644 --- a/src/blackmisc/setnetwork.cpp +++ b/src/blackmisc/setnetwork.cpp @@ -55,9 +55,13 @@ namespace BlackMisc /* * Compare */ - int CSettingsNetwork::compareImpl(const CValueObject &/*otherBase*/) const + int CSettingsNetwork::compareImpl(const CValueObject &otherBase) const { - qFatal("not implemented"); + const auto &other = static_cast(otherBase); + + int result; + if ((result = compare(this->m_trafficNetworkServerCurrent, other.m_trafficNetworkServerCurrent))) { return result; } + if ((result = compare(this->m_trafficNetworkServers, other.m_trafficNetworkServers))) { return result; } return 0; } @@ -85,7 +89,7 @@ namespace BlackMisc bool CSettingsNetwork::operator ==(const CSettingsNetwork &other) const { if (this == &other) return true; - return this->getValueHash() == other.getValueHash(); + return compare(*this, other) == 0; } /*