From b1c41932b19b695e92465aa360a05b12fcaf5eac Mon Sep 17 00:00:00 2001
From: Joe Taylor <joe@princeton.edu>
Date: Sat, 6 Feb 2021 13:01:28 -0500
Subject: [PATCH] Another try at keeping signal report constant within a QSO.

---
 widgets/mainwindow.cpp | 6 ++++--
 widgets/mainwindow.h   | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp
index 132f8aa4c..620c110fb 100644
--- a/widgets/mainwindow.cpp
+++ b/widgets/mainwindow.cpp
@@ -4036,6 +4036,8 @@ void MainWindow::guiUpdate()
     if(m_tune or m_mode=="Echo") {
       itone[0]=0;
     } else {
+      if(m_QSOProgress==2 or m_QSOProgress==3) m_bSentReport=true;
+      if(m_bSentReport and (m_QSOProgress<2 or m_QSOProgress>3)) m_bSentReport=false;
       if(m_mode=="ISCAT") {
         geniscat_(message, msgsent, const_cast<int *> (itone), 28, 28);
         msgsent[28]=0;
@@ -5188,10 +5190,10 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
     rpt=QString::number(n);
   }
 
-  ui->rptSpinBox->setValue(n);
+  if(!m_bSentReport) ui->rptSpinBox->setValue(n);    //Don't change report within a QSO
 // Don't genStdMsgs if we're already sending 73, or a "TU; " msg is queued.
   m_bTUmsg=false;   //### Temporary: disable use of "TU;" messages
-  if (!m_nTx73 and !m_bTUmsg) {
+  if (!m_bSentReport and !m_nTx73 and !m_bTUmsg) {
     genStdMsgs(rpt);
   }
   if(m_transmitting) m_restart=true;
diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h
index d71a400f4..3b2074b24 100644
--- a/widgets/mainwindow.h
+++ b/widgets/mainwindow.h
@@ -538,6 +538,7 @@ private:
   bool    m_bTUmsg;
   bool    m_bBestSPArmed=false;
   bool    m_bOK_to_chk=false;
+  bool    m_bSentReport=false;
 
   enum
     {