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
This commit is contained in:
Bill Somerville 2017-09-24 21:14:10 +00:00
parent 42b9c5edb1
commit 881422bf6c

View File

@ -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) {