diff --git a/src/blackcore/context/contextsimulator.h b/src/blackcore/context/contextsimulator.h index c17e3a323..87338ecbc 100644 --- a/src/blackcore/context/contextsimulator.h +++ b/src/blackcore/context/contextsimulator.h @@ -142,6 +142,9 @@ namespace BlackCore const BlackMisc::Simulation::CAircraftModelList &valid, const BlackMisc::Simulation::CAircraftModelList &invalid, bool stopped, const BlackMisc::CStatusMessageList &msgs); + //! Auto publish data written for simulator + void autoPublishDataWritten(const BlackMisc::Simulation::CSimulatorInfo &simulator); + public slots: //! Simulator info, currently loaded plugin virtual BlackMisc::Simulation::CSimulatorPluginInfo getSimulatorPluginInfo() const = 0; diff --git a/src/blackcore/context/contextsimulatorimpl.cpp b/src/blackcore/context/contextsimulatorimpl.cpp index cad92866e..6cd4880e4 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -486,6 +486,8 @@ namespace BlackCore Q_ASSERT(c); c = connect(simulator, &ISimulator::requestUiConsoleMessage, this, &IContextSimulator::requestUiConsoleMessage); Q_ASSERT(c); + c = connect(simulator, &ISimulator::autoPublishDataWritten, this, &IContextSimulator::autoPublishDataWritten); + Q_ASSERT(c); // log from context to simulator c = connect(CLogHandler::instance(), &CLogHandler::localMessageLogged, this, &CContextSimulator::relayStatusMessageToSimulator); diff --git a/src/blackcore/simulator.cpp b/src/blackcore/simulator.cpp index 3eb6b66f7..d15cd668e 100644 --- a/src/blackcore/simulator.cpp +++ b/src/blackcore/simulator.cpp @@ -997,7 +997,8 @@ namespace BlackCore void ISimulator::unload() { this->disconnectFrom(); // disconnect from simulator - m_autoPublishing.writeJsonToFile(); + const bool saved = m_autoPublishing.writeJsonToFile(); + if (saved) { emit this->autoPublishDataWritten(this->getSimulatorInfo()); } m_autoPublishing.clear(); m_remoteAircraftProviderConnections.disconnectAll(); // disconnect signals from provider } diff --git a/src/blackcore/simulator.h b/src/blackcore/simulator.h index edc02b2a1..f46be82f2 100644 --- a/src/blackcore/simulator.h +++ b/src/blackcore/simulator.h @@ -375,6 +375,9 @@ namespace BlackCore //! A requested elevation has been received void receivedRequestedElevation(const BlackMisc::Geo::CElevationPlane &plane, const BlackMisc::Aviation::CCallsign &callsign); + //! Auto publish data written for simulator + void autoPublishDataWritten(const BlackMisc::Simulation::CSimulatorInfo &simulator); + protected: //! Constructor with all the providers ISimulator(const BlackMisc::Simulation::CSimulatorPluginInfo &pluginInfo,