diff --git a/src/blackcore/context/contextnetwork.h b/src/blackcore/context/contextnetwork.h index 0339bbc07..4dd831bc2 100644 --- a/src/blackcore/context/contextnetwork.h +++ b/src/blackcore/context/contextnetwork.h @@ -291,10 +291,10 @@ namespace BlackCore //! Enable/disable support of gnd. flag virtual bool updateAircraftSupportingGndFLag(const BlackMisc::Aviation::CCallsign &callsign, bool supportGndFlag) = 0; - //! Change model + //! Change model (for remote aircraft) virtual bool updateAircraftModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0; - //! Change network model + //! Change network model (for remote aircraft) virtual bool updateAircraftNetworkModel(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Simulation::CAircraftModel &model, const BlackMisc::CIdentifier &originator) = 0; //! Change fast position updates @@ -333,6 +333,9 @@ namespace BlackCore //! Statistics enable/disable virtual bool setNetworkStatisticsEnable(bool enabled) = 0; + //! Network preset values + virtual QStringList getNetworkPresetValues() const = 0; + // ------------------------ testing ------------------------ //! Create dummy ATC stations for performance tests etc. diff --git a/src/blackcore/context/contextnetworkempty.h b/src/blackcore/context/contextnetworkempty.h index ac1952267..b89f84e15 100644 --- a/src/blackcore/context/contextnetworkempty.h +++ b/src/blackcore/context/contextnetworkempty.h @@ -136,6 +136,13 @@ namespace BlackCore return statusMessageEmptyContext(); } + //! \copydoc IContextNetwork::getNetworkPresetValues + virtual QStringList getNetworkPresetValues() const override + { + logEmptyContextWarning(Q_FUNC_INFO); + return {}; + } + //! \copydoc IContextNetwork::disconnectFromNetwork() virtual BlackMisc::CStatusMessage disconnectFromNetwork() override { diff --git a/src/blackcore/context/contextnetworkimpl.cpp b/src/blackcore/context/contextnetworkimpl.cpp index 7f51cf367..58c2a2dee 100644 --- a/src/blackcore/context/contextnetworkimpl.cpp +++ b/src/blackcore/context/contextnetworkimpl.cpp @@ -847,6 +847,12 @@ namespace BlackCore return m_airspace->testAddAltitudeOffset(callsign, offset); } + QStringList CContextNetwork::getNetworkPresetValues() const + { + if (!m_network) { return {}; } + return m_network->getPresetValues(); + } + CAtcStation CContextNetwork::getOnlineStationForCallsign(const CCallsign &callsign) const { if (this->isDebugEnabled()) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << callsign; } diff --git a/src/blackcore/context/contextnetworkimpl.h b/src/blackcore/context/contextnetworkimpl.h index b685ad00c..60e6cc3d6 100644 --- a/src/blackcore/context/contextnetworkimpl.h +++ b/src/blackcore/context/contextnetworkimpl.h @@ -105,9 +105,9 @@ namespace BlackCore virtual BlackMisc::Aviation::CAircraftSituationChangeList remoteAircraftSituationChanges(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual int remoteAircraftSituationChangesCount(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool updateAircraftRendered(const BlackMisc::Aviation::CCallsign &callsign, bool rendered) override; - virtual int updateMultipleAircraftRendered(const BlackMisc::Aviation::CCallsignSet &callsigns, bool rendered) override; - virtual int updateMultipleAircraftEnabled(const BlackMisc::Aviation::CCallsignSet &callsigns, bool enabled) override; - virtual int updateAircraftGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Geo::CElevationPlane &elevation, BlackMisc::Aviation::CAircraftSituation::GndElevationInfo info) override; + virtual int updateMultipleAircraftRendered(const BlackMisc::Aviation::CCallsignSet &callsigns, bool rendered) override; + virtual int updateMultipleAircraftEnabled(const BlackMisc::Aviation::CCallsignSet &callsigns, bool enabled) override; + virtual int updateAircraftGroundElevation(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Geo::CElevationPlane &elevation, BlackMisc::Aviation::CAircraftSituation::GndElevationInfo info) override; virtual void updateMarkAllAsNotRendered() override; virtual BlackMisc::PhysicalQuantities::CLength getCGFromDB(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual BlackMisc::PhysicalQuantities::CLength getCGFromDB(const QString &modelString) const override; @@ -171,12 +171,12 @@ namespace BlackCore // plain vanilla passing to airspace monitor virtual bool setAircraftEnabledFlag(const BlackMisc::Aviation::CCallsign &callsign, bool enabledForRendering) override; - virtual int reInitializeAllAircraft() override; + virtual int reInitializeAllAircraft() override; virtual bool updateCG(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &cg) override; virtual bool updateCGAndModelString(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &cg, const QString &modelString) override; virtual BlackMisc::Simulation::CSimulatedAircraftList getAircraftInRange() const override; virtual BlackMisc::Aviation::CCallsignSet getAircraftInRangeCallsigns() const override; - virtual int getAircraftInRangeCount() const override; + virtual int getAircraftInRangeCount() const override; virtual bool isAircraftInRange(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual bool isVtolAircraft(const BlackMisc::Aviation::CCallsign &callsign) const override; virtual BlackMisc::Simulation::CSimulatedAircraft getAircraftInRangeForCallsign(const BlackMisc::Aviation::CCallsign &callsign) const override; @@ -195,6 +195,7 @@ namespace BlackCore virtual QString getNetworkStatistics(bool reset, const QString &separator) override; virtual bool setNetworkStatisticsEnable(bool enabled) override; virtual bool testAddAltitudeOffset(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::PhysicalQuantities::CLength &offset = BlackMisc::PhysicalQuantities::CLength::null()) override; + virtual QStringList getNetworkPresetValues() const override; //! @} //! \ingroup clientprovider diff --git a/src/blackcore/context/contextnetworkproxy.cpp b/src/blackcore/context/contextnetworkproxy.cpp index a51e60cdb..e9401665d 100644 --- a/src/blackcore/context/contextnetworkproxy.cpp +++ b/src/blackcore/context/contextnetworkproxy.cpp @@ -318,6 +318,11 @@ namespace BlackCore return m_dBusInterface->callDBusRet(QLatin1String("setNetworkStatisticsEnable"), enabled); } + QStringList CContextNetworkProxy::getNetworkPresetValues() const + { + return m_dBusInterface->callDBusRet(QLatin1String("getNetworkPresetValues")); + } + void CContextNetworkProxy::testCreateDummyOnlineAtcStations(int number) { m_dBusInterface->callDBus(QLatin1String("testCreateDummyOnlineAtcStations"), number); diff --git a/src/blackcore/context/contextnetworkproxy.h b/src/blackcore/context/contextnetworkproxy.h index dee12c5f5..5ddb45ba4 100644 --- a/src/blackcore/context/contextnetworkproxy.h +++ b/src/blackcore/context/contextnetworkproxy.h @@ -129,6 +129,7 @@ namespace BlackCore virtual void enableAircraftPartsHistory(bool enabled) override; virtual QString getNetworkStatistics(bool reset, const QString &separator) override; virtual bool setNetworkStatisticsEnable(bool enabled) override; + virtual QStringList getNetworkPresetValues() const override; virtual void testCreateDummyOnlineAtcStations(int number) override; virtual void testAddAircraftParts(const BlackMisc::Aviation::CCallsign &callsign, const BlackMisc::Aviation::CAircraftParts &parts, bool incremental) override; virtual void testReceivedTextMessages(const BlackMisc::Network::CTextMessageList &textMessages) override; diff --git a/src/blackcore/network.h b/src/blackcore/network.h index bf57f2f1d..aec14eb30 100644 --- a/src/blackcore/network.h +++ b/src/blackcore/network.h @@ -32,7 +32,7 @@ #include "blackmisc/pq/time.h" #include -#include +#include #include #include #include @@ -178,6 +178,11 @@ namespace BlackCore */ virtual const BlackMisc::Network::CServer &getPresetServer() const = 0; + /*! + * Get preset values. + */ + virtual QStringList getPresetValues() const = 0; + /*! * Returns true if the current ConnectionStatus is in transition, e.g. connecting. */ diff --git a/src/blackcore/vatsim/networkvatlib.cpp b/src/blackcore/vatsim/networkvatlib.cpp index 6bb7f7032..917e20d2a 100644 --- a/src/blackcore/vatsim/networkvatlib.cpp +++ b/src/blackcore/vatsim/networkvatlib.cpp @@ -182,6 +182,19 @@ namespace BlackCore return detailed ? vd : vs; } + QStringList CNetworkVatlib::getPresetValues() const + { + const QStringList v = + { + m_ownModelString, + m_ownLivery, + m_ownAircraftIcaoCode.getDesignator(), + m_ownAirlineIcaoCode.getVDesignator(), + m_ownCallsign.asString() + }; + return v; + } + void CNetworkVatlib::process() { if (!m_net) { return; } @@ -1712,17 +1725,18 @@ namespace BlackCore void CNetworkVatlib::onErrorReceived(VatFsdClient *, VatServerError error, const char *msg, const char *data, void *cbvar) { auto *self = cbvar_cast(cbvar); + const QString sn = self->m_server.getName(); switch (error) { case vatServerErrorCsInUs: CLogMessage(self).error(u"The requested callsign is already taken"); emit self->terminate(); break; case vatServerErrorCallsignInvalid: CLogMessage(self).error(u"The requested callsign is not valid"); emit self->terminate(); break; - case vatServerErrorCidInvalid: CLogMessage(self).error(u"Wrong user ID or password, inactive account"); emit self->terminate(); break; - case vatServerErrorRevision: CLogMessage(self).error(u"This server does not support our protocol version"); emit self->terminate(); break; + case vatServerErrorCidInvalid: CLogMessage(self).error(u"Wrong user ID or password, inactive account. Server: '%1'") << sn; emit self->terminate(); break; + case vatServerErrorRevision: CLogMessage(self).error(u"This server '%1' does not support our protocol version") << sn; emit self->terminate(); break; case vatServerErrorLevel: CLogMessage(self).error(u"You are not authorized to use the requested pilot rating"); emit self->terminate(); break; - case vatServerErrorServFull: CLogMessage(self).error(u"The server is full"); emit self->terminate(); break; + case vatServerErrorServFull: CLogMessage(self).error(u"The server '%1' is full") << sn; emit self->terminate(); break; case vatServerErrorCsSuspended: CLogMessage(self).error(u"Your user account is suspended"); emit self->terminate(); break; case vatServerErrorInvPos: CLogMessage(self).error(u"You are not authorized to use the requested rating"); emit self->terminate(); break; - case vatServerErrorUnAuth: CLogMessage(self).error(u"This software is not authorized for use on this network %1") << self->m_server.getName(); emit self->terminate(); break; + case vatServerErrorUnAuth: CLogMessage(self).error(u"This software is not authorized for use on this network '%1'") << sn; emit self->terminate(); break; case vatServerErrorNone: CLogMessage(self).info(u"OK"); break; case vatServerErrorSyntax: CLogMessage(self).info(u"Malformed packet: Syntax error: %1") << self->fromFSD(data); break; diff --git a/src/blackcore/vatsim/networkvatlib.h b/src/blackcore/vatsim/networkvatlib.h index 8f31bb7af..750f2dfff 100644 --- a/src/blackcore/vatsim/networkvatlib.h +++ b/src/blackcore/vatsim/networkvatlib.h @@ -78,8 +78,9 @@ namespace BlackCore //! \name Network functions //! @{ virtual bool isConnected() const override { return m_status == vatStatusConnected; } - virtual const BlackMisc::Network::CServer &getPresetServer() const override { return m_server; } virtual bool isPendingConnection() const override { return m_status == vatStatusConnecting; } + virtual const BlackMisc::Network::CServer &getPresetServer() const override { return m_server; } + virtual QStringList getPresetValues() const override; virtual void presetLoginMode(LoginMode mode) override; virtual void presetServer(const BlackMisc::Network::CServer &server) override; virtual void presetCallsign(const BlackMisc::Aviation::CCallsign &callsign) override;