From 881422bf6c1d1f1f978985144e354cc08079f7ed Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Sun, 24 Sep 2017 21:14:10 +0000 Subject: [PATCH] Fix issues processing free text 73 messages git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8119 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- mainwindow.cpp | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index ab4b7187d..b57b77735 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -3804,7 +3804,9 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) if(!m_bFastMode and (!m_config.enable_VHF_features() or m_mode=="FT8")) { // Don't change Tx freq if in a fast mode, or VHF features enabled; also not if a // station is calling me, unless m_lockTxFreq is true or CTRL is held down. - if ((firstcall != m_config.my_callsign () && firstcall != m_baseCall && firstcall != "DE") + if ((Radio::is_callsign (firstcall) + && firstcall != m_config.my_callsign () && firstcall != m_baseCall + && firstcall != "DE") || m_lockTxFreq || ctrl) { if (ui->TxFreqSpinBox->isEnabled ()) { if(!m_bFastMode && !alt) ui->TxFreqSpinBox->setValue(frequency); @@ -3997,25 +3999,27 @@ void MainWindow::processMessage(DecodedText const& message, bool ctrl, bool alt) m_QSOText = s2; } - if (hiscall != "73" - && (base_call != qso_partner_base_call || base_call != hiscall)) + if (!is_73 && Radio::is_callsign (hiscall)) { - if (qso_partner_base_call != base_call) { - // clear the DX grid if the base call of his call is different - // from the current DX call - ui->dxGridEntry->clear (); + if (base_call != qso_partner_base_call || base_call != hiscall) + { + if (qso_partner_base_call != base_call) { + // clear the DX grid if the base call of his call is different + // from the current DX call + ui->dxGridEntry->clear (); + } + // his base call different or his call more qualified + // i.e. compound version of same base call + ui->dxCallEntry->setText (hiscall); + } + if (hisgrid.contains (grid_regexp)) { + if(ui->dxGridEntry->text().mid(0,4) != hisgrid) ui->dxGridEntry->setText(hisgrid); } - // his base call different or his call more qualified - // i.e. compound version of same base call - ui->dxCallEntry->setText (hiscall); + if (!ui->dxGridEntry->text ().size ()) + lookup(); + m_hisGrid = ui->dxGridEntry->text(); } - if (hisgrid.contains (grid_regexp)) { - if(ui->dxGridEntry->text().mid(0,4) != hisgrid) ui->dxGridEntry->setText(hisgrid); - } - if (!ui->dxGridEntry->text ().size ()) - lookup(); - m_hisGrid = ui->dxGridEntry->text(); - + QString rpt = message.report(); int n=rpt.toInt(); if(m_mode=="MSK144" and m_bShMsgs) {