From 0a8247cc12e58fcc2934ef1ecfafd7df619127d3 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Mon, 7 Jan 2019 13:18:58 +0100 Subject: [PATCH] Ref T506, for some reasons "pressed" sometimes fired twice, used "released" Remark: No idea why this happened, but using "released" solved the issue --- .../components/internalscomponent.cpp | 30 +++++--- src/blackgui/components/internalscomponent.ui | 70 +++++++++++++------ 2 files changed, 69 insertions(+), 31 deletions(-) diff --git a/src/blackgui/components/internalscomponent.cpp b/src/blackgui/components/internalscomponent.cpp index a84825c72..423704abc 100644 --- a/src/blackgui/components/internalscomponent.cpp +++ b/src/blackgui/components/internalscomponent.cpp @@ -65,9 +65,9 @@ namespace BlackGui ui->le_TxtMsgTo->setValidator(new CUpperCaseValidator(ui->le_TxtMsgFrom)); ui->le_AtisCallsign->setValidator(new CUpperCaseValidator(ui->le_AtisCallsign)); - connect(ui->pb_SendAircraftPartsGui, &QPushButton::pressed, this, &CInternalsComponent::sendAircraftParts); - connect(ui->pb_SendAircraftPartsJson, &QPushButton::pressed, this, &CInternalsComponent::sendAircraftParts); - connect(ui->pb_CurrentParts, &QPushButton::pressed, this, &CInternalsComponent::setCurrentParts); + connect(ui->pb_SendAircraftPartsGui, &QPushButton::released, this, &CInternalsComponent::sendAircraftParts); + connect(ui->pb_SendAircraftPartsJson, &QPushButton::released, this, &CInternalsComponent::sendAircraftParts); + connect(ui->pb_CurrentParts, &QPushButton::released, this, &CInternalsComponent::setCurrentParts); connect(ui->cb_DebugContextAudio, &QCheckBox::stateChanged, this, &CInternalsComponent::enableDebug); connect(ui->cb_DebugContextApplication, &QCheckBox::stateChanged, this, &CInternalsComponent::enableDebug); @@ -75,16 +75,18 @@ namespace BlackGui connect(ui->cb_DebugContextOwnAircraft, &QCheckBox::stateChanged, this, &CInternalsComponent::enableDebug); connect(ui->cb_DebugContextSimulator, &QCheckBox::stateChanged, this, &CInternalsComponent::enableDebug); - connect(ui->pb_SendTextMessage, &QPushButton::pressed, this, &CInternalsComponent::sendTextMessage); - connect(ui->tb_LogStatusMessage, &QPushButton::pressed, this, &CInternalsComponent::logStatusMessage); + connect(ui->pb_SendTextMessageDirectly, &QPushButton::released, this, &CInternalsComponent::sendTextMessage, Qt::QueuedConnection); + connect(ui->pb_SendTextMessageDeferred, &QPushButton::released, this, &CInternalsComponent::sendTextMessage, Qt::QueuedConnection); + + connect(ui->tb_LogStatusMessage, &QPushButton::released, this, &CInternalsComponent::logStatusMessage); connect(ui->le_StatusMessage, &QLineEdit::returnPressed, this, &CInternalsComponent::logStatusMessage); - 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->pb_LatestInterpolationLog, &QPushButton::released, this, &CInternalsComponent::showLogFiles); + connect(ui->pb_LatestPartsLog, &QPushButton::released, this, &CInternalsComponent::showLogFiles); + connect(ui->pb_RequestFromNetwork, &QPushButton::released, this, &CInternalsComponent::requestPartsFromNetwork); + connect(ui->pb_DisplayLog, &QPushButton::released, this, &CInternalsComponent::displayLogInSimulator); - connect(ui->pb_SendAtis, &QPushButton::pressed, this, &CInternalsComponent::sendAtis); + connect(ui->pb_SendAtis, &QPushButton::released, this, &CInternalsComponent::sendAtis); connect(ui->comp_RemoteAircraftSelector, &CRemoteAircraftSelector::changedCallsign, this, &CInternalsComponent::selectorChanged); this->contextFlagsToGui(); @@ -187,6 +189,14 @@ namespace BlackGui if (ui->pte_TxtMsg->toPlainText().isEmpty()) { return; } if (ui->le_TxtMsgTo->text().isEmpty() && ui->dsb_TxtMsgFrequency->text().isEmpty()) { return; } + // send in some time + const QObject *senderObj = QObject::sender(); + if (senderObj == ui->pb_SendTextMessageDeferred) + { + QTimer::singleShot(5000, this, &CInternalsComponent::sendTextMessage); + return; + } + const CCallsign sender(ui->le_TxtMsgFrom->text().trimmed()); const CCallsign recipient(ui->le_TxtMsgTo->text().trimmed()); const QString msgTxt(ui->pte_TxtMsg->toPlainText().trimmed()); diff --git a/src/blackgui/components/internalscomponent.ui b/src/blackgui/components/internalscomponent.ui index bd0556022..c9b1e6b90 100644 --- a/src/blackgui/components/internalscomponent.ui +++ b/src/blackgui/components/internalscomponent.ui @@ -185,21 +185,28 @@ 4 - - - - send + + + + Text message - + from - + + + + to + + + + MHz @@ -221,18 +228,36 @@ - - - - to - - - - - - - Text message - + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + send + + + + + + + send deferred + + + + @@ -651,18 +676,21 @@ le_TxtMsgFrom le_TxtMsgTo dsb_TxtMsgFrequency - pb_SendTextMessage + pb_SendTextMessageDirectly + pb_SendTextMessageDeferred pte_TxtMsg le_AtisCallsign pb_SendAtis pte_Atis + pb_LatestInterpolationLog + pb_LatestPartsLog pb_DisplayLog pb_RequestFromNetwork tb_History + pb_CurrentParts + pb_SendAircraftPartsJson pb_SendAircraftPartsGui cb_AircraftPartsIncremental - pb_SendAircraftPartsJson - pb_CurrentParts