mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-31 12:55:33 +08:00
Improved handling in CContextNetwork::getUsersForCallsigns
CContextNetwork::readAtcBookingsFromSource(), URL from settings Helper method: BlackMisc::Settings::CSettingsNetwork getNetworkSettings()
This commit is contained in:
@@ -10,6 +10,7 @@
|
||||
#include "blackcore/network_vatlib.h"
|
||||
#include "blackcore/coreruntime.h"
|
||||
#include "blackcore/context_network_interface.h"
|
||||
#include "blackcore/context_settings_interface.h"
|
||||
#include "blackmisc/avcallsignlist.h"
|
||||
#include "blackmisc/statusmessagelist.h"
|
||||
#include "blackmisc/nwuserlist.h"
|
||||
@@ -34,7 +35,6 @@ namespace BlackCore
|
||||
public:
|
||||
/*!
|
||||
* \brief With link to server
|
||||
* \param server
|
||||
*/
|
||||
CContextNetwork(CCoreRuntime *runtime);
|
||||
|
||||
@@ -127,45 +127,37 @@ namespace BlackCore
|
||||
virtual BlackMisc::CStatusMessageList setOwnAircraft(const BlackMisc::Aviation::CAircraft &aircraft);
|
||||
|
||||
/*!
|
||||
* \brief Update own position
|
||||
* \param position own position
|
||||
* \param altitude own altitude
|
||||
* \copydoc IContextNetwork::updateOwnPosition()
|
||||
*/
|
||||
virtual void updateOwnPosition(const BlackMisc::Geo::CCoordinateGeodetic &position, const BlackMisc::Aviation::CAltitude &altitude);
|
||||
|
||||
/*!
|
||||
* \brief Update own situation
|
||||
* \param situation own situation
|
||||
* \copydoc IContextNetwork::updateOwnSituation()
|
||||
*/
|
||||
virtual void updateOwnSituation(const BlackMisc::Aviation::CAircraftSituation &situation);
|
||||
|
||||
/*!
|
||||
* \brief Update own cockpit
|
||||
* \param com1 my COM1 unit
|
||||
* \param com2 my COM2 unit
|
||||
* \param transponder my transponder
|
||||
* \copydoc IContextNetwork::updateOwnCockpit()
|
||||
*/
|
||||
virtual void updateOwnCockpit(const BlackMisc::Aviation::CComSystem &com1, const BlackMisc::Aviation::CComSystem &com2, const BlackMisc::Aviation::CTransponder &transponder);
|
||||
|
||||
/*!
|
||||
* \brief Get own aircraft
|
||||
* \copydoc IContextNetwork::getOwnAircraft()
|
||||
*/
|
||||
virtual BlackMisc::Aviation::CAircraft getOwnAircraft() const;
|
||||
|
||||
/*!
|
||||
* \brief Text messages (also private chat messages)
|
||||
* \copydoc IContextNetwork::sendTextMessages()
|
||||
*/
|
||||
virtual void sendTextMessages(const BlackMisc::Network::CTextMessageList &textMessages);
|
||||
|
||||
/*!
|
||||
* \brief Request METAR
|
||||
* \param airportIcaoCode e.g. EDDF, KLAX
|
||||
* \copydoc IContextNetwork::getMetar()
|
||||
*/
|
||||
virtual BlackMisc::Aviation::CInformationMessage getMetar(const QString &airportIcaoCode);
|
||||
|
||||
/*!
|
||||
* \brief Selected COM1/2 frequencies as voice rooms
|
||||
* \return COM1/2 voice rooms
|
||||
* \copydoc IContextNetwork::getSelectedVoiceRooms()
|
||||
*/
|
||||
virtual BlackMisc::Voice::CVoiceRoomList getSelectedVoiceRooms() const;
|
||||
|
||||
@@ -223,6 +215,16 @@ namespace BlackCore
|
||||
*/
|
||||
void initOwnAircraft();
|
||||
|
||||
/*!
|
||||
* \brief Get network settings
|
||||
*/
|
||||
BlackMisc::Settings::CSettingsNetwork getNetworkSettings() const
|
||||
{
|
||||
Q_ASSERT(this->getRuntime());
|
||||
Q_ASSERT(this->getRuntime()->getIContextSettings());
|
||||
return this->getRuntime()->getIContextSettings()->getNetworkSettings();
|
||||
}
|
||||
|
||||
private slots:
|
||||
/*!
|
||||
* \brief Connection status changed
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace BlackCore
|
||||
*/
|
||||
void CContextNetwork::readAtcBookingsFromSource() const
|
||||
{
|
||||
QUrl url("http://vatbook.euroutepro.com/xml2.php");
|
||||
QUrl url(this->getNetworkSettings().getBookingServiceUrl());
|
||||
QNetworkRequest request(url);
|
||||
this->m_networkManager->get(request);
|
||||
}
|
||||
@@ -108,13 +108,16 @@ namespace BlackCore
|
||||
CUserList CContextNetwork::getUsers() const
|
||||
{
|
||||
CUserList users;
|
||||
CUser user;
|
||||
foreach(CAtcStation station, this->m_atcStationsOnline)
|
||||
{
|
||||
users.push_back(station.getController());
|
||||
user = station.getController();
|
||||
users.push_back(user);
|
||||
}
|
||||
foreach(CAircraft aircraft, this->m_aircraftsInRange)
|
||||
{
|
||||
users.push_back(aircraft.getPilot());
|
||||
user = aircraft.getPilot();
|
||||
users.push_back(user);
|
||||
}
|
||||
return users;
|
||||
}
|
||||
@@ -126,15 +129,36 @@ namespace BlackCore
|
||||
{
|
||||
CUserList users;
|
||||
if (callsigns.isEmpty()) return users;
|
||||
CCallsignList searchList(callsigns);
|
||||
CUser user;
|
||||
CCallsign callsign;
|
||||
foreach(CAtcStation station, this->m_atcStationsOnline)
|
||||
{
|
||||
if (callsigns.contains(station.getCallsign()))
|
||||
users.push_back(station.getController());
|
||||
callsign = station.getCallsign();
|
||||
if (callsigns.contains(callsign))
|
||||
{
|
||||
user = station.getController();
|
||||
users.push_back(user);
|
||||
searchList.remove(callsign);
|
||||
}
|
||||
}
|
||||
foreach(CAircraft aircraft, this->m_aircraftsInRange)
|
||||
{
|
||||
if (callsigns.contains(aircraft.getCallsign()))
|
||||
users.push_back(aircraft.getPilot());
|
||||
callsign = aircraft.getCallsign();
|
||||
if (callsigns.contains(callsign))
|
||||
{
|
||||
user = aircraft.getPilot();
|
||||
users.push_back(user);
|
||||
searchList.remove(callsign);
|
||||
}
|
||||
}
|
||||
|
||||
// we might have unsresolved callsigns
|
||||
foreach(CCallsign unresolved, searchList)
|
||||
{
|
||||
user = CUser();
|
||||
user.setCallsign(unresolved);
|
||||
users.push_back(user);
|
||||
}
|
||||
return users;
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ namespace BlackCore
|
||||
|
||||
/*!
|
||||
* \brief Disconnect from network
|
||||
* \return messages gererated during disconnecting
|
||||
* \return messages generated during disconnecting
|
||||
*/
|
||||
virtual BlackMisc::CStatusMessageList disconnectFromNetwork();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user