refs #283 CAirspaceMonitor: added signals to notify when an aircraft is added or removed

This commit is contained in:
Mathew Sutcliffe
2014-08-22 21:05:35 +01:00
parent f1150361b7
commit a6fd2bdeb2
2 changed files with 18 additions and 2 deletions

View File

@@ -484,6 +484,8 @@ namespace BlackCore
this->m_network->sendServerQuery(callsign);
this->sendFsipirCustomPacket(callsign); // own aircraft model
}
emit this->addedAircraft(callsign, situation);
}
else
{
@@ -495,18 +497,26 @@ namespace BlackCore
vm.addValue(CAircraft::IndexSituation, situation);
vm.addValue(CAircraft::IndexDistance, distance);
this->m_aircraftsInRange.applyIf(BlackMisc::Predicates::MemberEqual(&CAircraft::getCallsign, callsign), vm);
emit this->changedAircraftSituation(callsign, situation);
}
emit this->changedAircraftsInRange();
emit changedAircraftSituation(callsign, situation);
}
void CAirspaceMonitor::ps_pilotDisconnected(const CCallsign &callsign)
{
Q_ASSERT(BlackCore::isCurrentThreadCreatingThread(this));
bool contains = this->m_aircraftsInRange.contains(&CAircraft::getCallsign, callsign);
this->m_aircraftsInRange.removeIf(&CAircraft::getCallsign, callsign);
this->m_otherClients.removeIf(&CClient::getCallsign, callsign);
if (contains)
{
emit this->removedAircraft(callsign);
}
}
void CAirspaceMonitor::ps_frequencyReceived(const CCallsign &callsign, const CFrequency &frequency)

View File

@@ -85,8 +85,14 @@ namespace BlackCore
//! Aircrafts were changed
void changedAircraftsInRange();
//! A new aircraft appeared
void addedAircraft(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &initialSituation);
//! An aircraft's situation was changed
void changedAircraftSituation(const BlackMisc::Aviation::CCallsign, const BlackMisc::Aviation::CAircraftSituation &situation);
void changedAircraftSituation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftSituation &situation);
//! An aircraft disappeared
void removedAircraft(const BlackMisc::Aviation::CCallsign &callsign);
//! Sent a status message
void statusMessage(const BlackMisc::CStatusMessage &msg);