diff --git a/Configuration.cpp b/Configuration.cpp index bd6328a0c..66232d60a 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -735,7 +735,7 @@ bool Configuration::monitor_last_used () const {return m_->rig_is_dummy_ || m_-> bool Configuration::log_as_RTTY () const {return m_->log_as_RTTY_;} bool Configuration::report_in_comments () const {return m_->report_in_comments_;} bool Configuration::prompt_to_log () const {return m_->prompt_to_log_;} -bool Configuration::autoLog() const {return m_->autoLog_;} +bool Configuration::autoLog() const {return m_->autoLog_ && m_->bSpecialOp_;} bool Configuration::decodes_from_top () const {return m_->decodes_from_top_;} bool Configuration::insert_blank () const {return m_->insert_blank_;} bool Configuration::DXCC () const {return m_->DXCC_;} diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index b0da01439..5d3a9fb85 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4215,6 +4215,10 @@ void MainWindow::guiUpdate() { logQSOTimer.start(0); } + else + { + cease_auto_Tx_after_QSO (); + } } bool b=("FT8"==m_mode or "FT4"==m_mode or "Q65"==m_mode) and ui->cbAutoSeq->isVisible () && ui->cbAutoSeq->isEnabled () && ui->cbAutoSeq->isChecked (); @@ -5002,7 +5006,12 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_nextCall=""; //### Temporary: disable use of "TU;" message if(SpecOp::RTTY == m_config.special_op_id() and m_nextCall!="") { // We're in RTTY contest and have "nextCall" queued up: send a "TU; ..." message - logQSOTimer.start(0); + if (m_config.prompt_to_log() || m_config.autoLog()) { + logQSOTimer.start(0); + } + else { + cease_auto_Tx_after_QSO (); + } ui->tx3->setText(ui->tx3->text().remove("TU; ")); useNextCall(); QString t="TU; " + ui->tx3->text(); @@ -5013,7 +5022,12 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie && SpecOp::NONE < m_config.special_op_id () && SpecOp::FOX > m_config.special_op_id () && ("RR73" == word_3 || 73 == word_3_as_number)) { - logQSOTimer.start(0); + if (m_config.prompt_to_log() || m_config.autoLog()) { + logQSOTimer.start(0); + } + else { + cease_auto_Tx_after_QSO (); + } m_ntx=6; ui->txrb6->setChecked(true); } @@ -5031,7 +5045,12 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } else if (ROGERS == m_QSOProgress) { - logQSOTimer.start(0); + if (m_config.prompt_to_log() || m_config.autoLog()) { + logQSOTimer.start(0); + } + else { + cease_auto_Tx_after_QSO (); + } m_ntx=6; ui->txrb6->setChecked(true); } @@ -5865,7 +5884,7 @@ void MainWindow::on_genStdMsgsPushButton_clicked() //genStdMsgs button genStdMsgs(m_rpt); } -void MainWindow::on_logQSOButton_clicked() //Log QSO button +void MainWindow::cease_auto_Tx_after_QSO () { if (SpecOp::FOX != m_config.special_op_id () && ui->cbAutoSeq->isVisible () && ui->cbAutoSeq->isEnabled () && ui->cbAutoSeq->isChecked ()) @@ -5875,6 +5894,11 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button // to be a robot. auto_tx_mode (false); } +} + +void MainWindow::on_logQSOButton_clicked() //Log QSO button +{ + cease_auto_Tx_after_QSO (); if (!m_hisCall.size ()) { MessageBox::warning_message (this, tr ("Warning: DX Call field is empty.")); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 854afef2f..7c39e2c76 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -779,6 +779,7 @@ private: void writeFoxQSO (QString const& msg); void to_jt9(qint32 n, qint32 istart, qint32 idone); bool is77BitMode () const; + void cease_auto_Tx_after_QSO (); }; extern int killbyname(const char* progName);