refs #308 private slot for client status changes

This commit is contained in:
Roland Winklmeier
2014-09-02 20:24:23 +02:00
parent 65be5149ee
commit 7a02aff7b9
2 changed files with 23 additions and 0 deletions

View File

@@ -313,6 +313,27 @@ namespace BlackSimPlugin
}
}
void CSimulatorFs9::ps_changeClientStatus(const QString &callsign, CFs9Client::ClientStatus status)
{
switch (status)
{
case CFs9Client::Disconnected:
{
CFs9Client *client = m_hashFs9Clients.value(callsign);
Q_ASSERT(m_fs9ClientThreads.contains(client));
QThread *clientThread = m_fs9ClientThreads.value(client);
// Cleanup
client->deleteLater();
connect(clientThread, &QThread::finished, clientThread, &QThread::deleteLater);
clientThread->quit();
m_fs9ClientThreads.remove(client);
m_hashFs9Clients.remove(callsign);
}
}
}
void CSimulatorFs9::ps_removeAircraft(const QString &callsign)
{
removeRemoteAircraft(callsign);

View File

@@ -137,6 +137,8 @@ namespace BlackSimPlugin
//! Change DirectPlay host status
void ps_changeHostStatus(CFs9Host::HostStatus status);
void ps_changeClientStatus(const QString &callsign, BlackSimPlugin::Fs9::CFs9Client::ClientStatus status);
//! Remove client by callsign QString
void ps_removeAircraft(const QString &callsign);