From 405de80945fa222d361ac2dfd62a05cdd1f121a5 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Fri, 15 May 2015 18:51:49 +0200 Subject: [PATCH] refs #420, simulator status now displayed in GUI (user can see if sim is stopped / paused) --- .../enablefordockwidgetinfoarea.cpp | 4 ++-- .../components/infobarstatuscomponent.cpp | 24 ++++++++++++++++--- src/blackgui/components/mappingcomponent.cpp | 15 +++++++++--- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/blackgui/components/enablefordockwidgetinfoarea.cpp b/src/blackgui/components/enablefordockwidgetinfoarea.cpp index 3e9e54c45..2d15e9f90 100644 --- a/src/blackgui/components/enablefordockwidgetinfoarea.cpp +++ b/src/blackgui/components/enablefordockwidgetinfoarea.cpp @@ -56,14 +56,14 @@ namespace BlackGui bool CEnableForDockWidgetInfoArea::isParentDockWidgetFloating() const { Q_ASSERT(this->m_parentDockableInfoArea); - if (!this->m_parentDockableInfoArea) return false; + if (!this->m_parentDockableInfoArea) { return false; } return this->m_parentDockableInfoArea->isFloating(); } bool CEnableForDockWidgetInfoArea::isVisibleWidget() const { Q_ASSERT(this->m_parentDockableInfoArea); - if (!this->m_parentDockableInfoArea) return false; + if (!this->m_parentDockableInfoArea) { return false; } return this->m_parentDockableInfoArea->isVisibleWidget(); } diff --git a/src/blackgui/components/infobarstatuscomponent.cpp b/src/blackgui/components/infobarstatuscomponent.cpp index 20767b4b4..dbb85ef27 100644 --- a/src/blackgui/components/infobarstatuscomponent.cpp +++ b/src/blackgui/components/infobarstatuscomponent.cpp @@ -104,10 +104,28 @@ namespace BlackGui void CInfoBarStatusComponent::ps_onSimulatorStatusChanged(int status) { - if (status > 0) + if (status > 0 && (status & ISimulator::Connected)) { - this->ui->led_Simulator->setOn(true); - this->ui->led_Simulator->setOnToolTip(getIContextSimulator()->getSimulatorPluginInfo().getDescription()); + QString s( + getIContextSimulator()->getSimulatorPluginInfo().getDescription() + ": " + + ISimulator::statusToString(status)); + // at least connected + if (status & ISimulator::Paused) + { + // in paused state + this->ui->led_Simulator->setTriState(); + this->ui->led_Simulator->setTriStateToolTip(s); + } + else if (status & ISimulator::Running) + { + this->ui->led_Simulator->setOn(true); + this->ui->led_Simulator->setOnToolTip(s); + } + else + { + this->ui->led_Simulator->setTriState(); + this->ui->led_Simulator->setTriStateToolTip(s); + } } else { diff --git a/src/blackgui/components/mappingcomponent.cpp b/src/blackgui/components/mappingcomponent.cpp index fd3a2f1d2..bf6feeda9 100644 --- a/src/blackgui/components/mappingcomponent.cpp +++ b/src/blackgui/components/mappingcomponent.cpp @@ -383,9 +383,18 @@ namespace BlackGui void CMappingComponent::updateSimulatedAircraftView() { - Q_ASSERT_X(getIContextNetwork(), "updateSimulatedAircraftView", "missing network context"); - const CSimulatedAircraftList aircraft = getIContextNetwork()->getAircraftInRange(); - this->ui->tvp_SimulatedAircraft->updateContainer(aircraft); + Q_ASSERT_X(getIContextNetwork(), Q_FUNC_INFO, "missing network context"); + Q_ASSERT_X(getIContextSimulator(), Q_FUNC_INFO, "missing simulator context"); + if (this->isVisibleWidget()) { return; } + if (getIContextSimulator()->isConnected()) + { + const CSimulatedAircraftList aircraft(getIContextNetwork()->getAircraftInRange()); + this->ui->tvp_SimulatedAircraft->updateContainer(aircraft); + } + else + { + this->ui->tvp_SimulatedAircraft->clear(); + } } } // namespace