Process double-clicks of Fox multi-caller replies correctly

This change also ignores attempts to double-click other Hound calls.
This commit is contained in:
Bill Somerville 2020-07-18 14:47:20 +01:00
parent 46162fe94c
commit 28c5bfc1bd
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F
2 changed files with 14 additions and 1 deletions

View File

@ -165,7 +165,13 @@ QString DecodedText::call() const
// get the second word, most likely the de call and the third word, most likely grid
void DecodedText::deCallAndGrid(/*out*/QString& call, QString& grid) const
{
auto const& match = words_re.match (message_);
auto msg = message_;
auto p = msg.indexOf ("; ");
if (p >= 0)
{
msg = msg.mid (p + 2);
}
auto const& match = words_re.match (msg);
call = match.captured ("word2");
grid = match.captured ("word3");
if ("R" == grid) grid = match.captured ("word4");

View File

@ -4607,6 +4607,13 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
return;
}
// ignore calls by other hounds
if (SpecOp::HOUND == m_config.special_op_id()
&& message.messageWords ().indexOf (QRegularExpression {R"(R\+-[0-9]+)"}) >= 0)
{
return;
}
QString firstcall = message.call();
if(firstcall.length()==5 and firstcall.mid(0,3)=="CQ ") firstcall="CQ";
if(!m_bFastMode and (!m_config.enable_VHF_features() or m_mode=="FT8")) {