diff --git a/widgets/activeStations.cpp b/widgets/activeStations.cpp
index 83f854d6b..fc93c6fec 100644
--- a/widgets/activeStations.cpp
+++ b/widgets/activeStations.cpp
@@ -103,3 +103,18 @@ void ActiveStations::on_cbReadyOnly_toggled(bool b)
m_bReadyOnly=b;
emit activeStationsDisplay();
}
+
+void ActiveStations::setRate(int n)
+{
+ ui->rate->setText(QString::number(n));
+}
+
+void ActiveStations::setScore(int n)
+{
+ ui->score->setText(QString::number(n));
+}
+
+void ActiveStations::setBandChanges(int n)
+{
+ ui->bandChanges->setText(QString::number(n));
+}
diff --git a/widgets/activeStations.h b/widgets/activeStations.h
index 8c3b57610..1897f08d9 100644
--- a/widgets/activeStations.h
+++ b/widgets/activeStations.h
@@ -26,6 +26,9 @@ public:
void setClickOK(bool b);
void erase();
bool readyOnly();
+ void setRate(int n);
+ void setBandChanges(int n);
+ void setScore(int n);
Q_SLOT void select();
bool m_clickOK=false;
diff --git a/widgets/activeStations.ui b/widgets/activeStations.ui
index a8f85b359..e12bc5331 100644
--- a/widgets/activeStations.ui
+++ b/widgets/activeStations.ui
@@ -6,7 +6,7 @@
0
0
- 466
+ 395
339
@@ -18,7 +18,54 @@
-
-
-
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 80
+ 0
+
+
+
+ <html><head/><body><p>Set maximum number of displayed lines.</p></body></html>
+
+
+ Max N
+
+
+ 50
+
+
+ 10
+
+
+
+ -
+
+
+
+ 16777215
+ 16777215
+
+
+
+ <html><head/><body><p>Rate of score increase, points per hour.</p></body></html>
+
+
+ 0
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
@@ -49,35 +96,37 @@
- -
-
-
-
- 0
- 0
-
+
-
+
+
+ Score:
-
-
- 80
- 0
-
-
-
- <html><head/><body><p>Set maximum number of displayed lines.</p></body></html>
-
-
- Max N
-
-
- 50
-
-
- 10
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
- -
+
-
+
+
+ Rate:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ 0
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
<html><head/><body><p>Check to list only stations immediately ready to be called.</p></body></html>
@@ -87,23 +136,23 @@
- -
-
+
-
+
- Rate:
+ Band Changes:
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
- -
-
-
-
- 50
- 16777215
-
+
-
+
+
+ 0
-
- <html><head/><body><p>Rate of score increase, points per hour.</p></body></html>
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp
index c9a30c98f..d1ea40863 100644
--- a/widgets/mainwindow.cpp
+++ b/widgets/mainwindow.cpp
@@ -3464,7 +3464,6 @@ void MainWindow::ARRL_Digi_Display()
int az=m_activeCall[deCall].az;
deGrid=m_activeCall[deCall].grid4;
points=m_activeCall[deCall].points;
-// qDebug() << "bb" << m_currentBand << deCall << bands;
if(points>maxPoints) maxPoints=points;
float x=float(age)/(maxAge+1);
if(x>1.0) x=0;
@@ -3519,7 +3518,6 @@ void MainWindow::callSandP2(int n)
void MainWindow::activeWorked(QString call, QString band)
{
QString bands=m_activeCall[call].bands;
-// qDebug() << "cc" << band << call << bands;
QByteArray ba=bands.toLatin1();
if(band=="160m") ba[0]='a';
if(band=="80m") ba[1]='b';
@@ -3529,7 +3527,6 @@ void MainWindow::activeWorked(QString call, QString band)
if(band=="10m") ba[5]='f';
if(band=="6m") ba[6]='g';
m_activeCall[call].bands=QString::fromLatin1(ba);
-// qDebug() << "dd" << band << call << m_activeCall[call].bands;
}
void MainWindow::readFromStdout() //readFromStdout
@@ -3673,8 +3670,6 @@ void MainWindow::readFromStdout() //readFromStdout
decodedtext.deCallAndGrid(/*out*/deCall,deGrid);
bool bWorkedOnBand=(ui->decodedTextBrowser->CQPriority()!="New Call on Band") and ui->decodedTextBrowser->CQPriority()!="";
if(bWorkedOnBand) activeWorked(deCall,m_currentBand);
-// qDebug() << "aa" << m_currentBand << deCall << bWorkedOnBand << m_activeCall[deCall].bands
-// << ui->decodedTextBrowser->CQPriority();
}
if (m_config.highlight_DXcall () && (m_hisCall!="") && ((decodedtext.string().contains(QRegularExpression {"(\\w+) " + m_hisCall}))
@@ -6233,6 +6228,8 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call,
, QString const& exchange_sent, QString const& exchange_rcvd
, QString const& propmode, QByteArray const& ADIF)
{
+ static QString lastBand{""};
+ static int nBandChanges{0};
QString date = QSO_date_on.toString("yyyyMMdd");
if (!m_logBook.add (call, grid, m_config.bands()->find(dial_freq), mode, ADIF))
{
@@ -6265,7 +6262,16 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call,
ui->sbSerialNumber->setValue(ui->sbSerialNumber->value() + 1);
}
- activeWorked(call,m_config.bands()->find(dial_freq));
+ QString band=m_config.bands()->find(dial_freq);
+ activeWorked(call,band);
+ int points=m_activeCall[call].points;
+ m_score += points;
+ if(band!=lastBand and lastBand!="") nBandChanges+=1;
+ lastBand=band;
+ m_ActiveStationsWidget->setRate(points);
+ m_ActiveStationsWidget->setScore(m_score);
+ m_ActiveStationsWidget->setBandChanges(nBandChanges);
+
m_xSent.clear ();
m_xRcvd.clear ();
if (m_config.clear_DXcall ()) ui->dxCallEntry->clear ();
@@ -7601,7 +7607,6 @@ void MainWindow::transmit (double snr)
}
if((m_mode=="FT4" or m_mode=="FT8") and m_maxPoints>0 and SpecOp::ARRL_DIGI==m_config.special_op_id()) {
-// qDebug() << "DD" << m_maxPoints << m_deCall << m_deGrid;
ui->dxCallEntry->setText(m_deCall);
ui->dxGridEntry->setText(m_deGrid);
genStdMsgs("-10");
diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h
index 0b478fdbe..623bf3d54 100644
--- a/widgets/mainwindow.h
+++ b/widgets/mainwindow.h
@@ -495,6 +495,7 @@ private:
qint32 m_maxPoints=-1;
qint32 m_latestDecodeTime=-1;
qint32 m_points=-99;
+ qint32 m_score=0;
bool m_btxok; //True if OK to transmit
bool m_diskData;