From 9b8b604a8cb73c754c9c649877a901ba46b0816c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 9 Apr 2022 15:04:56 -0400 Subject: [PATCH] Correct the way "Rate" is being updated. --- widgets/mainwindow.cpp | 36 +++++++++++++++++++++--------------- widgets/mainwindow.h | 1 + 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d0c19febd..86d3bb5b7 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3450,6 +3450,7 @@ void MainWindow::ARRL_Digi_Update(DecodedText dt) m_recentCall[deCall]=rc; m_points=m_activeCall.value(deCall).points; } + updateRate(); } void MainWindow::ARRL_Digi_Display() @@ -6325,28 +6326,33 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, al.band=band; al.points=points; m_arrl_log.append(al); - int iz=m_arrl_log.size(); - int rate=0; - int nbc=0; - - for(int i=iz-1; i>=0; i--) { - double hrDiff = m_arrl_log[i].time.msecsTo(al.time)/3600000.0; - if(hrDiff > 1.0) break; - rate += m_arrl_log[i].points; - if(isetRate(rate); - m_ActiveStationsWidget->setScore(m_score); - m_ActiveStationsWidget->setBandChanges(nbc); } - + updateRate(); m_xSent.clear (); m_xRcvd.clear (); if (m_config.clear_DXcall ()) ui->dxCallEntry->clear (); if (m_config.clear_DXgrid ()) ui->dxGridEntry->clear (); } +void MainWindow::updateRate() +{ + int iz=m_arrl_log.size(); + int rate=0; + int nbc=0; + double hrDiff; + + for(int i=iz-1; i>=0; i--) { + hrDiff = m_arrl_log[i].time.msecsTo(QDateTime::currentDateTimeUtc())/3600000.0; + if(hrDiff > 1.0) break; + rate += m_arrl_log[i].points; + if(isetRate(rate); + m_ActiveStationsWidget->setScore(m_score); + m_ActiveStationsWidget->setBandChanges(nbc); +} + + qint64 MainWindow::nWidgets(QString t) { Q_ASSERT(t.length()==N_WIDGETS); diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 8aff69d35..400b1b4ca 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -785,6 +785,7 @@ private: void CQTxFreq(); void useNextCall(); void abortQSO(); + void updateRate(); void write_all(QString txRx, QString message); bool isWorked(int itype, QString key, float fMHz=0, QString="");