diff --git a/src/blackcore/context/contextsimulator.h b/src/blackcore/context/contextsimulator.h index 7926e03c7..5ae5defd2 100644 --- a/src/blackcore/context/contextsimulator.h +++ b/src/blackcore/context/contextsimulator.h @@ -206,6 +206,9 @@ namespace BlackCore //! \copydoc CAircraftMatcher::getDisabledModelsForMatching virtual BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const = 0; + //! \copydoc BlackMisc::Simulation::CBackgroundValidation::isValidating + virtual bool isValidationInProgress() const = 0; + //! Trigger model set validation virtual bool triggerModelSetValidation(const BlackMisc::Simulation::CSimulatorInfo &simulator) = 0; diff --git a/src/blackcore/context/contextsimulatorempty.h b/src/blackcore/context/contextsimulatorempty.h index f0e831129..3004c545b 100644 --- a/src/blackcore/context/contextsimulatorempty.h +++ b/src/blackcore/context/contextsimulatorempty.h @@ -161,6 +161,13 @@ namespace BlackCore return false; } + //! \copydoc BlackMisc::Simulation::CBackgroundValidation::isValidating + virtual bool isValidationInProgress() const override + { + logEmptyContextWarning(Q_FUNC_INFO); + return false; + } + //! \copydoc IContextSimulator::isKnownModelInSet virtual bool isKnownModelInSet(const QString &modelstring) const override { diff --git a/src/blackcore/context/contextsimulatorimpl.cpp b/src/blackcore/context/contextsimulatorimpl.cpp index ceb259fc1..4d982b16e 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -279,8 +279,16 @@ namespace BlackCore m_aircraftMatcher.restoreDisabledModels(); } + bool CContextSimulator::isValidationInProgress() const + { + if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + if (!m_validator) { return false; } + return m_validator->isValidating(); + } + bool CContextSimulator::triggerModelSetValidation(const CSimulatorInfo &simulator) { + if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } if (!m_validator) { return false; } return m_validator->triggerValidation(simulator); } diff --git a/src/blackcore/context/contextsimulatorimpl.h b/src/blackcore/context/contextsimulatorimpl.h index a0baaf09d..740b0a4ff 100644 --- a/src/blackcore/context/contextsimulatorimpl.h +++ b/src/blackcore/context/contextsimulatorimpl.h @@ -95,6 +95,7 @@ namespace BlackCore virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) override; virtual BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const override; virtual void restoreDisabledModels() override; + virtual bool isValidationInProgress() const override; virtual bool triggerModelSetValidation(const BlackMisc::Simulation::CSimulatorInfo &simulator) override; virtual BlackMisc::Simulation::CAircraftModelList getModelSetModelsStartingWith(const QString &modelString) const override; virtual BlackMisc::PhysicalQuantities::CTime getTimeSynchronizationOffset() const override; diff --git a/src/blackcore/context/contextsimulatorproxy.cpp b/src/blackcore/context/contextsimulatorproxy.cpp index 50dd013fb..13493acea 100644 --- a/src/blackcore/context/contextsimulatorproxy.cpp +++ b/src/blackcore/context/contextsimulatorproxy.cpp @@ -190,6 +190,11 @@ namespace BlackCore return m_dBusInterface->callDBusRet(QLatin1String("triggerModelSetValidation"), simulator); } + bool CContextSimulatorProxy::isValidationInProgress() const + { + return m_dBusInterface->callDBusRet(QLatin1String("isValidationInProgress")); + } + void CContextSimulatorProxy::restoreDisabledModels() { m_dBusInterface->callDBus(QLatin1String("restoreDisabledModels")); diff --git a/src/blackcore/context/contextsimulatorproxy.h b/src/blackcore/context/contextsimulatorproxy.h index 5b5d56687..423cbcc97 100644 --- a/src/blackcore/context/contextsimulatorproxy.h +++ b/src/blackcore/context/contextsimulatorproxy.h @@ -79,6 +79,7 @@ namespace BlackCore virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) override; virtual BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const override; virtual bool triggerModelSetValidation(const BlackMisc::Simulation::CSimulatorInfo &simulator) override; + virtual bool isValidationInProgress() const override; virtual void restoreDisabledModels() override; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; virtual bool isTimeSynchronized() const override; diff --git a/src/blackmisc/simulation/backgroundvalidation.h b/src/blackmisc/simulation/backgroundvalidation.h index 9dfa74fde..0f896929e 100644 --- a/src/blackmisc/simulation/backgroundvalidation.h +++ b/src/blackmisc/simulation/backgroundvalidation.h @@ -48,6 +48,10 @@ namespace BlackMisc //! \threadsafe bool wasAlreadyChecked(const CSimulatorInfo &simulator) const; + //! Validation in progress + //! \threadsafe + bool isValidating() const { return m_inWork; } + //! Reset checked for simulator //! \threadsafe void resetAlreadyChecked(const CSimulatorInfo &simulator);