From fd2f63f2465851c8860d45ce4a71d9bea6432874 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 8 May 2018 04:18:00 +0200 Subject: [PATCH] Log. can also be triggered from internals UI --- .../components/internalscomponent.cpp | 22 ++++++++++++- src/blackgui/components/internalscomponent.h | 3 ++ src/blackgui/components/internalscomponent.ui | 33 +++++++++++++------ 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/src/blackgui/components/internalscomponent.cpp b/src/blackgui/components/internalscomponent.cpp index 41d41fe96..3992aa8eb 100644 --- a/src/blackgui/components/internalscomponent.cpp +++ b/src/blackgui/components/internalscomponent.cpp @@ -44,6 +44,7 @@ using namespace BlackMisc::Network; using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Simulation; using namespace BlackCore; +using namespace BlackCore::Context; namespace BlackGui { @@ -78,6 +79,7 @@ namespace BlackGui connect(ui->pb_LatestInterpolationLog, &QPushButton::pressed, this, &CInternalsComponent::showLogFiles); connect(ui->pb_LatestPartsLog, &QPushButton::pressed, this, &CInternalsComponent::showLogFiles); connect(ui->pb_RequestFromNetwork, &QPushButton::pressed, this, &CInternalsComponent::requestPartsFromNetwork); + connect(ui->pb_DisplayLog, &QPushButton::pressed, this, &CInternalsComponent::displayLogInSimulator); connect(ui->comp_RemoteAircraftSelector, &CRemoteAircraftSelector::changedCallsign, this, &CInternalsComponent::selectorChanged); this->contextFlagsToGui(); @@ -249,8 +251,10 @@ namespace BlackGui CLogMessage(this).info("Request aircraft config for '%1'") << callsign.asString(); // simple approach to update UI when parts are received - QTimer::singleShot(3000, this, [this] + const QPointer myself(this); + QTimer::singleShot(3000, this, [ = ] { + if (!myself) { return; } ui->pb_CurrentParts->click(); ui->pb_RequestFromNetwork->setEnabled(true); }); @@ -261,6 +265,22 @@ namespace BlackGui this->setCurrentParts(); } + void CInternalsComponent::displayLogInSimulator() + { + if (!sGui || sGui->isShuttingDown()) { return; } + if (!sGui->getIContextSimulator()) { return; } + const CCallsign callsign(ui->comp_RemoteAircraftSelector->getSelectedCallsign()); + if (callsign.isEmpty()) + { + CLogMessage(this).validationError("No valid callsign selected"); + return; + } + + const CIdentifier i(this->objectName()); + const QString dotCmd(".drv pos " + callsign.asString()); + sGui->getIContextSimulator()->parseCommandLine(dotCmd, i); + } + void CInternalsComponent::contextFlagsToGui() { ui->cb_DebugContextApplication->setChecked(sGui->getIContextApplication()->isDebugEnabled()); diff --git a/src/blackgui/components/internalscomponent.h b/src/blackgui/components/internalscomponent.h index 2f0b79c38..57a2a0300 100644 --- a/src/blackgui/components/internalscomponent.h +++ b/src/blackgui/components/internalscomponent.h @@ -68,6 +68,9 @@ namespace BlackGui //! Selector has been changed void selectorChanged(); + //! Log in simulator + void displayLogInSimulator(); + //! Set the context flags void contextFlagsToGui(); diff --git a/src/blackgui/components/internalscomponent.ui b/src/blackgui/components/internalscomponent.ui index 87e0ba666..6a820afaf 100644 --- a/src/blackgui/components/internalscomponent.ui +++ b/src/blackgui/components/internalscomponent.ui @@ -347,15 +347,8 @@ - - - - Network: - - - - - + + 0 @@ -369,7 +362,27 @@ 0 - + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + display log. + + + + Request from network