diff --git a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp index 7530aefe1..f509304c8 100644 --- a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp +++ b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.cpp @@ -10,10 +10,15 @@ #include "fsxsettingscomponent.h" #include "ui_fsxsettingscomponent.h" #include "simulatorfsxcommon.h" +#include "blackgui/overlaymessagesframe.h" #include "blackgui/guiapplication.h" +#include "blackcore/context/contextsimulator.h" using namespace BlackCore; +using namespace BlackCore::Context; using namespace BlackGui; +using namespace BlackMisc; +using namespace BlackMisc::Simulation; namespace BlackSimPlugin { @@ -28,6 +33,7 @@ namespace BlackSimPlugin connect(ui->cb_TraceSimConnectCalls, &QCheckBox::released, this, &CFsxSettingsComponent::onSimConnectTraceChanged); connect(ui->cb_EnableTerrainProbe, &QCheckBox::released, this, &CFsxSettingsComponent::onEnableTerrainProbeChanged); + connect(ui->pb_CopyTerrainProbe, &QPushButton::released, this, &CFsxSettingsComponent::copyTerrainProbe); const CSimulatorFsxCommon *fsx = this->getFsxSimulator(); if (fsx) @@ -40,6 +46,12 @@ namespace BlackSimPlugin CFsxSettingsComponent::~CFsxSettingsComponent() { } + CSimulatorInfo CFsxSettingsComponent::getSimulator() const + { + const CSimulatorFsxCommon *fsx = this->getFsxSimulator(); + return fsx ? fsx->getSimulatorInfo() : m_simulator; + } + void CFsxSettingsComponent::onSimConnectTraceChanged() { CSimulatorFsxCommon *fsx = this->getFsxSimulator(); @@ -54,6 +66,16 @@ namespace BlackSimPlugin fsx->setUsingFsxTerrainProbe(ui->cb_EnableTerrainProbe->isChecked()); } + void CFsxSettingsComponent::copyTerrainProbe() + { + if (!sGui || !sGui->getIContextSimulator() || sGui->isShuttingDown()) { return; } + const CSimulatorInfo simulator(this->getSimulator()); + const CStatusMessageList msgs = sGui->getIContextSimulator()->copyFsxTerrainProbe(simulator); + CLogMessage::preformatted(msgs); + if (!m_mf) { m_mf = CGuiUtility::nextOverlayMessageFrame(this); } + if (m_mf) { m_mf->showOverlayMessages(msgs); } + } + CSimulatorFsxCommon *CFsxSettingsComponent::getFsxSimulator() const { if (!sGui || !sGui->getISimulator() || sGui->isShuttingDown()) { return nullptr; } diff --git a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.h b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.h index d014348f5..df269ec70 100644 --- a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.h +++ b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.h @@ -17,6 +17,7 @@ #include namespace Ui { class CFsxSettingsComponent; } +namespace BlackGui { class COverlayMessagesFrame; } namespace BlackSimPlugin { namespace FsxCommon @@ -38,6 +39,9 @@ namespace BlackSimPlugin //! Simulator, P3D/FSX void setSimulator(const BlackMisc::Simulation::CSimulatorInfo &simulator) { m_simulator = simulator; } + //! Represented simulator + BlackMisc::Simulation::CSimulatorInfo getSimulator() const; + private: //! Trace checkbox changed void onSimConnectTraceChanged(); @@ -45,10 +49,14 @@ namespace BlackSimPlugin //! Terrain probe checkbox changed void onEnableTerrainProbeChanged(); + //! Copy the terrain probe + void copyTerrainProbe(); + //! Access the concrete implementation - CSimulatorFsxCommon *getFsxSimulator () const; + CSimulatorFsxCommon *getFsxSimulator() const; BlackMisc::Simulation::CSimulatorInfo m_simulator { "FSX" }; + BlackGui::COverlayMessagesFrame *m_mf = nullptr; QScopedPointer ui; }; } // ns diff --git a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui index 808233454..e40aa2de8 100644 --- a/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui +++ b/src/plugins/simulator/fsxcommon/fsxsettingscomponent.ui @@ -7,13 +7,20 @@ 0 0 180 - 64 + 87 - FSX settings + FSX/P3D settings - + + + + + Use the terrain probe + + + @@ -21,6 +28,13 @@ + + + + copy terrain probe + + + @@ -38,13 +52,6 @@ - - - - Use the terrain probe - - - diff --git a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui index 0b1844cf9..363a72afa 100644 --- a/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui +++ b/src/plugins/simulator/fsxcommon/simconnectsettingscomponent.ui @@ -265,9 +265,22 @@ console=1 - - 3 + + 10 + + + + Qt::Horizontal + + + + 40 + 20 + + + +