diff --git a/src/blackcore/context/contextsimulator.h b/src/blackcore/context/contextsimulator.h index 2ee5da9af..d38fb49d9 100644 --- a/src/blackcore/context/contextsimulator.h +++ b/src/blackcore/context/contextsimulator.h @@ -192,6 +192,12 @@ namespace BlackCore //! Model set completer string virtual QStringList getModelSetCompleterStrings(bool sorted) const = 0; + //! \copydoc CAircraftMatcher::disableModelsForMatching + virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) = 0; + + //! \copydoc CAircraftMatcher::restoreDisabledModels + virtual void restoreDisabledModels() = 0; + //! Known model? virtual bool isKnownModel(const QString &modelstring) const = 0; diff --git a/src/blackcore/context/contextsimulatorempty.h b/src/blackcore/context/contextsimulatorempty.h index 4df12b992..b4259ce13 100644 --- a/src/blackcore/context/contextsimulatorempty.h +++ b/src/blackcore/context/contextsimulatorempty.h @@ -132,6 +132,20 @@ namespace BlackCore return QStringList(); } + //! \copydoc CAircraftMatcher::disableModelsForMatching + virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) override + { + logEmptyContextWarning(Q_FUNC_INFO); + Q_UNUSED(removedModels); + Q_UNUSED(incremental); + } + + //! \copydoc CAircraftMatcher::restoreDisabledModels + virtual void restoreDisabledModels() override + { + logEmptyContextWarning(Q_FUNC_INFO); + } + //! \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 7981e38fc..942a3eb29 100644 --- a/src/blackcore/context/contextsimulatorimpl.cpp +++ b/src/blackcore/context/contextsimulatorimpl.cpp @@ -244,6 +244,20 @@ namespace BlackCore return this->getModelSet().size(); } + void CContextSimulator::disableModelsForMatching(const CAircraftModelList &removedModels, bool incremental) + { + if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return; } + m_aircraftMatcher.disableModelsForMatching(removedModels, incremental); + } + + void CContextSimulator::restoreDisabledModels() + { + if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; } + if (!m_simulatorPlugin.second || m_simulatorPlugin.first.isUnspecified()) { return; } + m_aircraftMatcher.restoreDisabledModels(); + } + 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 e43cb2c93..1071552bc 100644 --- a/src/blackcore/context/contextsimulatorimpl.h +++ b/src/blackcore/context/contextsimulatorimpl.h @@ -91,6 +91,8 @@ namespace BlackCore virtual QStringList getModelSetCompleterStrings(bool sorted) const override; 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 void restoreDisabledModels() 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 d326160ef..ed9994afe 100644 --- a/src/blackcore/context/contextsimulatorproxy.cpp +++ b/src/blackcore/context/contextsimulatorproxy.cpp @@ -169,6 +169,16 @@ namespace BlackCore return m_dBusInterface->callDBusRet(QLatin1String("getSimulatorInternals")); } + void CContextSimulatorProxy::disableModelsForMatching(const CAircraftModelList &removedModels, bool incremental) + { + m_dBusInterface->callDBus(QLatin1String("disableModelsForMatching"), removedModels, incremental); + } + + void CContextSimulatorProxy::restoreDisabledModels() + { + m_dBusInterface->callDBus(QLatin1String("restoreDisabledModels")); + } + bool CContextSimulatorProxy::setTimeSynchronization(bool enable, const CTime &offset) { return m_dBusInterface->callDBusRet(QLatin1String("setTimeSynchronization"), enable, offset); @@ -214,12 +224,12 @@ namespace BlackCore return m_dBusInterface->callDBusRet(QLatin1String("getTimeSynchronizationOffset")); } - bool CContextSimulatorProxy::startSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) + bool CContextSimulatorProxy::startSimulatorPlugin(const CSimulatorPluginInfo &simulatorInfo) { return m_dBusInterface->callDBusRet(QLatin1String("startSimulatorPlugin"), simulatorInfo); } - void CContextSimulatorProxy::stopSimulatorPlugin(const BlackMisc::Simulation::CSimulatorPluginInfo &simulatorInfo) + void CContextSimulatorProxy::stopSimulatorPlugin(const CSimulatorPluginInfo &simulatorInfo) { m_dBusInterface->callDBus(QLatin1String("stopSimulatorPlugin"), simulatorInfo); } diff --git a/src/blackcore/context/contextsimulatorproxy.h b/src/blackcore/context/contextsimulatorproxy.h index 9a4cdb01e..cfb920418 100644 --- a/src/blackcore/context/contextsimulatorproxy.h +++ b/src/blackcore/context/contextsimulatorproxy.h @@ -76,6 +76,8 @@ namespace BlackCore virtual BlackMisc::Simulation::CAircraftModelList getModelSetModelsStartingWith(const QString &modelString) const override; virtual int getModelSetCount() const override; virtual BlackMisc::Simulation::CSimulatorInternals getSimulatorInternals() const override; + virtual void disableModelsForMatching(const BlackMisc::Simulation::CAircraftModelList &removedModels, bool incremental) override; + virtual void restoreDisabledModels() override; virtual bool setTimeSynchronization(bool enable, const BlackMisc::PhysicalQuantities::CTime &offset) override; virtual bool isTimeSynchronized() const override; virtual BlackMisc::Simulation::CInterpolationAndRenderingSetupGlobal getInterpolationAndRenderingSetupGlobal() const override;