diff --git a/src/blackcore/aircraftmatcher.h b/src/blackcore/aircraftmatcher.h index 32b2d921d..8e4d701d2 100644 --- a/src/blackcore/aircraftmatcher.h +++ b/src/blackcore/aircraftmatcher.h @@ -193,6 +193,9 @@ namespace BlackCore //! \remark effective until new set is set void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental); + //! The disabled models for matching + BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const { return m_disabledModels; } + //! Restore the models removed with CAircraftMatcher::disableModelForMatching void restoreDisabledModels(); diff --git a/src/blackcore/context/contextsimulator.h b/src/blackcore/context/contextsimulator.h index 95539b710..0f1bfd22a 100644 --- a/src/blackcore/context/contextsimulator.h +++ b/src/blackcore/context/contextsimulator.h @@ -203,6 +203,12 @@ namespace BlackCore //! \copydoc CAircraftMatcher::disableModelsForMatching virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) = 0; + //! \copydoc CAircraftMatcher::getDisabledModelsForMatching + virtual BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const = 0; + + //! Trigger model set validation + virtual bool triggerModelSetValidation(const BlackMisc::Simulation::CSimulatorInfo &simulator) = 0; + //! \copydoc CAircraftMatcher::restoreDisabledModels virtual void restoreDisabledModels() = 0; diff --git a/src/blackcore/context/contextsimulatorempty.h b/src/blackcore/context/contextsimulatorempty.h index d5bbd6bda..9855bbe5b 100644 --- a/src/blackcore/context/contextsimulatorempty.h +++ b/src/blackcore/context/contextsimulatorempty.h @@ -140,12 +140,27 @@ namespace BlackCore Q_UNUSED(incremental); } + //! \copydoc CAircraftMatcher::getDisabledModelsForMatching + virtual BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const override + { + logEmptyContextWarning(Q_FUNC_INFO); + return BlackMisc::Simulation::CAircraftModelList(); + } + //! \copydoc CAircraftMatcher::restoreDisabledModels virtual void restoreDisabledModels() override { logEmptyContextWarning(Q_FUNC_INFO); } + //! \copydoc BlackMisc::Simulation::CBackgroundValidation::triggerValidation + virtual bool triggerModelSetValidation(const BlackMisc::Simulation::CSimulatorInfo &simulator) override + { + logEmptyContextWarning(Q_FUNC_INFO); + Q_UNUSED(simulator); + return false; + } + //! \copydoc IContextSimulator::isKnownModel virtual bool isKnownModel(const QString &modelstring) const override { diff --git a/src/blackcore/context/contextsimulatorimpl.cpp b/src/blackcore/context/contextsimulatorimpl.cpp index a92194018..9889b3ebc 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -265,6 +265,13 @@ namespace BlackCore m_aircraftMatcher.disableModelsForMatching(removedModels, incremental); } + CAircraftModelList CContextSimulator::getDisabledModelsForMatching() const + { + if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return CAircraftModelList(); } + return m_aircraftMatcher.getDisabledModelsForMatching(); + } + void CContextSimulator::restoreDisabledModels() { if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } @@ -272,6 +279,12 @@ namespace BlackCore m_aircraftMatcher.restoreDisabledModels(); } + bool CContextSimulator::triggerModelSetValidation(const CSimulatorInfo &simulator) + { + if (!m_validator) { return false; } + return m_validator->triggerValidation(simulator); + } + CAircraftModelList CContextSimulator::getModelSetModelsStartingWith(const QString &modelString) const { if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << modelString; } diff --git a/src/blackcore/context/contextsimulatorimpl.h b/src/blackcore/context/contextsimulatorimpl.h index 354311d30..1cd01af93 100644 --- a/src/blackcore/context/contextsimulatorimpl.h +++ b/src/blackcore/context/contextsimulatorimpl.h @@ -93,7 +93,9 @@ namespace BlackCore virtual bool isKnownModel(const QString &modelString) const override; virtual int getModelSetCount() const override; virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) override; + virtual BlackMisc::Simulation::CAircraftModelList getDisabledModelsForMatching() const override; virtual void restoreDisabledModels() 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; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; diff --git a/src/blackcore/context/contextsimulatorproxy.cpp b/src/blackcore/context/contextsimulatorproxy.cpp index d886a4fa9..5fcd48b33 100644 --- a/src/blackcore/context/contextsimulatorproxy.cpp +++ b/src/blackcore/context/contextsimulatorproxy.cpp @@ -180,6 +180,16 @@ namespace BlackCore m_dBusInterface->callDBus(QLatin1String("disableModelsForMatching"), removedModels, incremental); } + CAircraftModelList CContextSimulatorProxy::getDisabledModelsForMatching() const + { + return m_dBusInterface->callDBusRet(QLatin1String("getDisabledModelsForMatching")); + } + + bool CContextSimulatorProxy::triggerModelSetValidation(const CSimulatorInfo &simulator) + { + return m_dBusInterface->callDBusRet(QLatin1String("triggerModelSetValidation"), simulator); + } + void CContextSimulatorProxy::restoreDisabledModels() { m_dBusInterface->callDBus(QLatin1String("restoreDisabledModels")); diff --git a/src/blackcore/context/contextsimulatorproxy.h b/src/blackcore/context/contextsimulatorproxy.h index cfb920418..acae34ee5 100644 --- a/src/blackcore/context/contextsimulatorproxy.h +++ b/src/blackcore/context/contextsimulatorproxy.h @@ -77,6 +77,8 @@ namespace BlackCore virtual int getModelSetCount() const override; virtual BlackMisc::Simulation::CSimulatorInternals getSimulatorInternals() const override; 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 void restoreDisabledModels() override; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; virtual bool isTimeSynchronized() const override;