From 10c70d042ccc3f19620d24a57b626af7a2ceb638 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 7 Dec 2022 11:45:05 -0500 Subject: [PATCH] Clean up the "Active Stations" display when used with Q65W. --- widgets/activeStations.cpp | 17 ++++++++++++++++- widgets/activeStations.h | 3 ++- widgets/activeStations.ui | 8 +++++++- widgets/mainwindow.cpp | 36 +++++++++++++++--------------------- 4 files changed, 40 insertions(+), 24 deletions(-) diff --git a/widgets/activeStations.cpp b/widgets/activeStations.cpp index b5ecbf737..00b922bef 100644 --- a/widgets/activeStations.cpp +++ b/widgets/activeStations.cpp @@ -57,8 +57,23 @@ void ActiveStations::write_settings () settings_->setValue("ReadyOnly",ui->cbReadyOnly->isChecked()); } -void ActiveStations::displayRecentStations(QString const& t) +void ActiveStations::displayRecentStations(QString mode, QString const& t) { + m_mode=mode; + bool b=(m_mode=="Q65"); + if(b) { + ui->header_label2->setText(" N Freq Call Age"); + ui->label->setText("QSOs:"); + } else { + ui->header_label2->setText(" N Call Grid Az S/N Freq Tx Age Pts"); + ui->label->setText("Rate:"); + } + ui->bandChanges->setVisible(!b); + ui->cbReadyOnly->setVisible(!b); + ui->label_2->setVisible(!b); + ui->label_3->setVisible(!b); + ui->score->setVisible(!b); + ui->sbMaxRecent->setVisible(!b); ui->RecentStationsPlainTextEdit->setPlainText(t); } diff --git a/widgets/activeStations.h b/widgets/activeStations.h index 1897f08d9..324908434 100644 --- a/widgets/activeStations.h +++ b/widgets/activeStations.h @@ -19,7 +19,7 @@ class ActiveStations public: explicit ActiveStations(QSettings *, QFont const&, QWidget * parent = 0); ~ActiveStations(); - void displayRecentStations(QString const&); + void displayRecentStations(QString mode, QString const&); void changeFont (QFont const&); int maxRecent(); int maxAge(); @@ -44,6 +44,7 @@ private: Q_SLOT void on_cbReadyOnly_toggled(bool b); qint64 m_msec0=0; + QString m_mode=""; QSettings * settings_; QScopedPointer ui; diff --git a/widgets/activeStations.ui b/widgets/activeStations.ui index 02b1f618a..427525853 100644 --- a/widgets/activeStations.ui +++ b/widgets/activeStations.ui @@ -50,7 +50,7 @@ - 16777215 + 80 16777215 @@ -82,6 +82,12 @@ 0 + + + 80 + 16777215 + + <html><head/><body><p>Set maximum elapsed number of T/R sequences.</p></body></html> diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ea9192dd5..03f3577b4 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1369,7 +1369,6 @@ void MainWindow::readSettings() if (displayContestLog) on_contest_log_action_triggered (); if(displayActiveStations) { on_actionActiveStations_triggered(); -// QFile f {m_config.writeable_data_dir ().absoluteFilePath ("activeCalls.txt")}; } } @@ -3645,7 +3644,7 @@ void MainWindow::ARRL_Digi_Display() t += (t1 + list[k] + "\n"); if(i>=maxRecent) break; } - if(m_ActiveStationsWidget!=NULL) m_ActiveStationsWidget->displayRecentStations(t); + if(m_ActiveStationsWidget!=NULL) m_ActiveStationsWidget->displayRecentStations(m_mode,t); m_ActiveStationsWidget->setClickOK(true); } @@ -9183,19 +9182,11 @@ void MainWindow::readWidebandDecodes() QString w3=msg.mid(i2+1,-1); m_EMECall[dxcall].fsked=fsked; m_EMECall[dxcall].t=60*nhr + nmin; - m_EMECall[dxcall].worked=false; + m_EMECall[dxcall].worked=false; //### TEMPORARY ### if(w3.contains(grid_regexp)) m_EMECall[dxcall].grid4=w3; } f.close(); - /* - if(m_ActiveStationsWidget != NULL) m_ActiveStationsWidget->erase(); - - if(m_ActiveStationsWidget!=NULL) m_ActiveStationsWidget->displayRecentStations(t); - QString t1; - if(!bReady) t1 = t1.asprintf(" %3d %+2.2d %4d %1d %2d %4d",az,snr,freq,itx,age,points); - */ - QMap::iterator i; QString t=""; QString t1; @@ -9203,20 +9194,23 @@ void MainWindow::readWidebandDecodes() QStringList list; float f[100]; int indx[100]; + int maxAge=m_ActiveStationsWidget->maxAge(); int k=0; for(i=m_EMECall.begin(); i!=m_EMECall.end(); i++) { int age=60*nhr + nmin - (i->t); if(age<0) age += 1440; - dxcall=(i.key()+" ").left(8); - if(i->worked) { - t1=t1.asprintf("%5.1f %8s %4d\n",i->fsked,dxcall.toLatin1().constData(),age); - } else { - t1=t1.asprintf("%5.1f * %8s %4d\n",i->fsked,dxcall.toLatin1().constData(),age); + if(age<=maxAge) { + dxcall=(i.key()+" ").left(8); + if(i->worked) { + t1=t1.asprintf("%5.1f %8s %4d\n",i->fsked,dxcall.toLatin1().constData(),age); + } else { + t1=t1.asprintf("%5.1f * %8s %4d\n",i->fsked,dxcall.toLatin1().constData(),age); + } + f[k]=i->fsked; + list.append(t1); + k++; } - f[k]=i->fsked; - list.append(t1); - k++; } if(k>0) { @@ -9225,7 +9219,7 @@ void MainWindow::readWidebandDecodes() indexx_(f,&kz,indx); for(int k=0; kerase(); - m_ActiveStationsWidget->displayRecentStations(t); + m_ActiveStationsWidget->displayRecentStations(m_mode,t); } } }