diff --git a/src/plugins/simulator/fscommon/simulatorfscommon.h b/src/plugins/simulator/fscommon/simulatorfscommon.h index 4453e6d84..06d30687d 100644 --- a/src/plugins/simulator/fscommon/simulatorfscommon.h +++ b/src/plugins/simulator/fscommon/simulatorfscommon.h @@ -27,6 +27,11 @@ namespace BlackSimPlugin //! Common base class for MS flight simulators class CSimulatorFsCommon : public Common::CSimulatorPluginCommon { + Q_OBJECT + Q_INTERFACES(BlackCore::ISimulator) + Q_INTERFACES(BlackMisc::Simulation::ISimulationEnvironmentProvider) + Q_INTERFACES(BlackMisc::Simulation::IInterpolationSetupProvider) + public: //! Destructor virtual ~CSimulatorFsCommon() override; diff --git a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp index 2c38c4b24..6652b9019 100644 --- a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp +++ b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp @@ -134,11 +134,16 @@ namespace BlackSimPlugin CSimulatorFsxCommon *CFsxSettingsComponent::getFsxOrP3DSimulator() const { - if (!sGui || !sGui->getISimulator() || sGui->isShuttingDown()) { return nullptr; } + if (!sGui || sGui->isShuttingDown() || !sGui->getIContextSimulator() || !sGui->getISimulator()) { return nullptr; } + const CSimulatorPluginInfo plugin = sGui->getIContextSimulator()->getSimulatorPluginInfo(); + if (plugin.isEmulatedPlugin()) { return nullptr; } // cast would fail + ISimulator *simulator = sGui->getISimulator(); if (!simulator->getSimulatorInfo().isFsxP3DFamily()) { return nullptr; } - if (simulator->getSimulatorInfo() != m_simulator) { return nullptr; } - CSimulatorFsxCommon *fsx = static_cast(simulator); // wonder why qobject_cast does not work here + if (simulator->getSimulatorInfo() != m_simulator) { return nullptr; } + + //! \todo KB 11/18 wonder why qobject_cast does not work here + CSimulatorFsxCommon *fsx = static_cast(simulator); return fsx; } } // ns diff --git a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h index cfc1da4ba..bb98e09c5 100644 --- a/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h +++ b/src/plugins/simulator/fsxcommon/simulatorfsxcommon.h @@ -119,6 +119,8 @@ namespace BlackSimPlugin { Q_OBJECT Q_INTERFACES(BlackCore::ISimulator) + Q_INTERFACES(BlackMisc::Simulation::ISimulationEnvironmentProvider) + Q_INTERFACES(BlackMisc::Simulation::IInterpolationSetupProvider) public: //! Constructor, parameters as in \sa BlackCore::ISimulatorFactory::create