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;