Mapping component, set simulator selector when simulator is connected

This commit is contained in:
Klaus Basan
2018-09-25 21:06:23 +02:00
parent d62e904371
commit 8416431e48
2 changed files with 18 additions and 3 deletions

View File

@@ -132,6 +132,7 @@ namespace BlackGui
connect(sGui->getIContextSimulator(), &IContextSimulator::airspaceSnapshotHandled, this, &CMappingComponent::tokenBucketUpdate, Qt::QueuedConnection);
connect(sGui->getIContextSimulator(), &IContextSimulator::addingRemoteModelFailed, this, &CMappingComponent::onAddingRemoteAircraftFailed, Qt::QueuedConnection);
connect(sGui->getIContextSimulator(), &IContextSimulator::simulatorPluginChanged, this, &CMappingComponent::onSimulatorPluginChanged, Qt::QueuedConnection);
connect(sGui->getIContextSimulator(), &IContextSimulator::simulatorStatusChanged, this, &CMappingComponent::onSimulatorStatusChanged, Qt::QueuedConnection);
connect(sGui->getIContextNetwork(), &IContextNetwork::changedRemoteAircraftModel, this, &CMappingComponent::onRemoteAircraftModelChanged, Qt::QueuedConnection);
connect(sGui->getIContextNetwork(), &IContextNetwork::changedRemoteAircraftEnabled, this, &CMappingComponent::tokenBucketUpdateAircraft, Qt::QueuedConnection);
connect(sGui->getIContextNetwork(), &IContextNetwork::changedFastPositionUpdates, this, &CMappingComponent::tokenBucketUpdateAircraft, Qt::QueuedConnection);
@@ -149,7 +150,7 @@ namespace BlackGui
QPointer<CMappingComponent> myself(this);
QTimer::singleShot(10000, this, [ = ]
{
if (!myself) { return; }
if (!myself || !sGui || sGui->isShuttingDown()) { return; }
const CSimulatorInfo simulator(myself->getConnectedOrSelectedSimulator());
myself->onModelSetSimulatorChanged(simulator);
myself->onModelSetChanged(simulator);
@@ -185,7 +186,7 @@ namespace BlackGui
void CMappingComponent::onModelSetChanged(const CSimulatorInfo &dummy)
{
// change model set, which can be any model set
// changed model set, which can be any model set
Q_UNUSED(dummy); // we do not use the passed simulator
const CSimulatorInfo simulator(ui->comp_SimulatorSelector->getValue()); // UI value
@@ -295,6 +296,17 @@ namespace BlackGui
ui->comp_SimulatorSelector->setToConnectedSimulator(50);
}
void CMappingComponent::onSimulatorStatusChanged(int status)
{
const ISimulator::SimulatorStatus simStatus = static_cast<ISimulator::SimulatorStatus>(status);
// make sure the selector represents connected simulator
if (simStatus.testFlag(ISimulator::Connected) && sGui && sGui->getIContextSimulator())
{
ui->comp_SimulatorSelector->setToConnectedSimulator(50);
}
}
void CMappingComponent::doMatchingsAgain()
{
if (!sGui || !sGui->getISimulator() || !sGui->getISimulator()->isConnected()) { return; }

View File

@@ -167,13 +167,16 @@ namespace BlackGui
//! Plugin info has been changed
void onSimulatorPluginChanged(const BlackMisc::Simulation::CSimulatorPluginInfo &pluginInfo);
//! Simulator connected
void onSimulatorStatusChanged(int status);
//! Do re-matching
void doMatchingsAgain();
static constexpr int OverlayMessageMs = 5000;
QScopedPointer<Ui::CMappingComponent> ui;
bool m_missedRenderedAircraftUpdate = true; //! Rendered aircraft need update
QTimer m_updateTimer;
bool m_missedRenderedAircraftUpdate = true; //! Rendered aircraft need update
BlackMisc::CTokenBucket m_bucket { 3, BlackMisc::PhysicalQuantities::CTime(5.0, BlackMisc::PhysicalQuantities::CTimeUnit::s()), 1};
BlackMisc::CSettingReadOnly<BlackGui::Settings::TViewUpdateSettings> m_settings { this, &CMappingComponent::settingsChanged }; //!< settings changed
Views::CCheckBoxDelegate *m_currentMappingsViewDelegate = nullptr; //! checkbox in view