From 72557280491c1f0940aab5597202fada2d129441 Mon Sep 17 00:00:00 2001 From: Jordan Sherer Date: Sat, 7 Jul 2018 22:02:11 -0400 Subject: [PATCH] Added distance to the calls list --- Configuration.ui | 2 +- mainwindow.cpp | 30 +++++++++++++++++++++++++----- mainwindow.h | 1 + mainwindow.ui | 5 +++++ 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Configuration.ui b/Configuration.ui index 90d6ac0..265729c 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -225,7 +225,7 @@ - false + true Show distance to DX station in miles rather than kilometers. diff --git a/mainwindow.cpp b/mainwindow.cpp index 306a8c8..e53edb9 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -199,16 +199,16 @@ namespace int days = delta; if(days){ - return QString("%1 d").arg(days); + return QString("%1d").arg(days); } if(hours){ - return QString("%1 h").arg(hours); + return QString("%1h").arg(hours); } if(minutes){ - return QString("%1 m").arg(minutes); + return QString("%1m").arg(minutes); } if(seconds){ - return QString("%1 s").arg(seconds - seconds%15); + return QString("%1s").arg(seconds - seconds%15); } return QString {}; @@ -5443,6 +5443,23 @@ void MainWindow::prepareBeacon(){ scheduleBeacon(); } + +QString MainWindow::calculateDistance(QString const& grid) +{ + qint64 nsec = (QDateTime::currentMSecsSinceEpoch()/1000) % 86400; + double utch=nsec/3600.0; + int nAz,nEl,nDmiles,nDkm,nHotAz,nHotABetter; + azdist_(const_cast ((m_config.my_grid () + " ").left (6).toLatin1().constData()), + const_cast ((grid + " ").left (6).toLatin1().constData()),&utch, + &nAz,&nEl,&nDmiles,&nDkm,&nHotAz,&nHotABetter,6,6); + + if(m_config.miles()){ + return QString("%1 mi").arg(nDmiles); + } + + return QString("%1 km").arg(nDkm); +} + // this function is called by auto_tx_mode, which is called by autoButton.clicked void MainWindow::on_startTxButton_toggled(bool checked) { @@ -7652,7 +7669,10 @@ void MainWindow::postDecode (bool is_new, QString const& message) ui->tableWidgetCalls->insertRow(ui->tableWidgetCalls->rowCount()); ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, new QTableWidgetItem(call)); ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 1, new QTableWidgetItem(QString("(%1)").arg(since(d.utcTimestamp)))); - //ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 1, new QTableWidgetItem(d.grid)); + + auto distanceItem = new QTableWidgetItem(calculateDistance(d.grid)); + distanceItem->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter); + ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 2, distanceItem); if(call == selectedCall){ ui->tableWidgetCalls->selectRow(ui->tableWidgetCalls->rowCount() - 1); diff --git a/mainwindow.h b/mainwindow.h index 1bc3297..39c3c6f 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -255,6 +255,7 @@ private slots: int findFreeFreqOffset(int fmin, int fmax, int bw); void scheduleBeacon(bool first=false); void prepareBeacon(); + QString calculateDistance(QString const& grid); void on_rptSpinBox_valueChanged(int n); void killFile(); void on_tuneButton_clicked (bool); diff --git a/mainwindow.ui b/mainwindow.ui index 035c32c..a00e48c 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -936,6 +936,11 @@ QTextEdit[readOnly="true"] { Age + + + Distance + +