Added offset to call activity display and sort menu
This commit is contained in:
parent
0ecbbd0da1
commit
c8c4f98610
@ -7207,14 +7207,15 @@ QString MainWindow::getSortBy(QString key, QString defaultValue){
|
|||||||
return m_sortCache.value(key, QVariant(defaultValue)).toString();
|
return m_sortCache.value(key, QVariant(defaultValue)).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::buildSortByMenu(QMenu * menu, QString key, QString defaultValue, QMap<QString, QString> values){
|
void MainWindow::buildSortByMenu(QMenu * menu, QString key, QString defaultValue, QList<QPair<QString, QString>> values){
|
||||||
auto currentSortBy = getSortBy(key, defaultValue);
|
auto currentSortBy = getSortBy(key, defaultValue);
|
||||||
|
|
||||||
QActionGroup * g = new QActionGroup(menu);
|
QActionGroup * g = new QActionGroup(menu);
|
||||||
g->setExclusive(true);
|
g->setExclusive(true);
|
||||||
|
|
||||||
foreach(auto k, values.keys()){
|
foreach(auto p, values){
|
||||||
auto v = values[k];
|
auto k = p.first;
|
||||||
|
auto v = p.second;
|
||||||
auto a = menu->addAction(k);
|
auto a = menu->addAction(k);
|
||||||
a->setCheckable(true);
|
a->setCheckable(true);
|
||||||
a->setChecked(v == currentSortBy);
|
a->setChecked(v == currentSortBy);
|
||||||
@ -7241,6 +7242,7 @@ void MainWindow::buildBandActivitySortByMenu(QMenu * menu){
|
|||||||
void MainWindow::buildCallActivitySortByMenu(QMenu * menu){
|
void MainWindow::buildCallActivitySortByMenu(QMenu * menu){
|
||||||
buildSortByMenu(menu, "callActivity", "callsign", {
|
buildSortByMenu(menu, "callActivity", "callsign", {
|
||||||
{"Callsign", "callsign"},
|
{"Callsign", "callsign"},
|
||||||
|
{"Frequency Offset", "offset"},
|
||||||
{"Distance (closest first)", "distance"},
|
{"Distance (closest first)", "distance"},
|
||||||
{"Distance (farthest first)", "-distance"},
|
{"Distance (farthest first)", "-distance"},
|
||||||
{"Last heard timestamp (oldest first)", "timestamp"},
|
{"Last heard timestamp (oldest first)", "timestamp"},
|
||||||
@ -9558,6 +9560,13 @@ void MainWindow::displayCallActivity() {
|
|||||||
// Build the table
|
// Build the table
|
||||||
QList < QString > keys = m_callActivity.keys();
|
QList < QString > keys = m_callActivity.keys();
|
||||||
|
|
||||||
|
auto compareOffset = [this](const QString left, QString right) {
|
||||||
|
auto leftActivity = m_callActivity[left];
|
||||||
|
auto rightActivity = m_callActivity[right];
|
||||||
|
|
||||||
|
return leftActivity.freq < rightActivity.freq;
|
||||||
|
};
|
||||||
|
|
||||||
auto compareDistance = [this](const QString left, QString right) {
|
auto compareDistance = [this](const QString left, QString right) {
|
||||||
auto leftActivity = m_callActivity[left];
|
auto leftActivity = m_callActivity[left];
|
||||||
auto rightActivity = m_callActivity[right];
|
auto rightActivity = m_callActivity[right];
|
||||||
@ -9599,7 +9608,9 @@ void MainWindow::displayCallActivity() {
|
|||||||
reverse = true;
|
reverse = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sortBy == "distance"){
|
if(sortBy == "offset"){
|
||||||
|
qSort(keys.begin(), keys.end(), compareOffset);
|
||||||
|
} else if(sortBy == "distance"){
|
||||||
qSort(keys.begin(), keys.end(), compareDistance);
|
qSort(keys.begin(), keys.end(), compareDistance);
|
||||||
} else if(sortBy == "timestamp"){
|
} else if(sortBy == "timestamp"){
|
||||||
qSort(keys.begin(), keys.end(), compareTimestamp);
|
qSort(keys.begin(), keys.end(), compareTimestamp);
|
||||||
@ -9629,12 +9640,13 @@ void MainWindow::displayCallActivity() {
|
|||||||
displayItem->setData(Qt::UserRole, QVariant((d.call)));
|
displayItem->setData(Qt::UserRole, QVariant((d.call)));
|
||||||
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, displayItem);
|
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, displayItem);
|
||||||
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(QString("(%1)").arg(since(d.utcTimestamp))));
|
||||||
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 2, new QTableWidgetItem(QString("%1").arg(Varicode::formatSNR(d.snr))));
|
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 2, new QTableWidgetItem(QString("%1").arg(d.freq)));
|
||||||
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 3, new QTableWidgetItem(QString("%1").arg(d.grid)));
|
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 3, new QTableWidgetItem(QString("%1").arg(Varicode::formatSNR(d.snr))));
|
||||||
|
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 4, new QTableWidgetItem(QString("%1").arg(d.grid)));
|
||||||
|
|
||||||
auto distanceItem = new QTableWidgetItem(calculateDistance(d.grid));
|
auto distanceItem = new QTableWidgetItem(calculateDistance(d.grid));
|
||||||
distanceItem->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
distanceItem->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||||
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 4, distanceItem);
|
ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 5, distanceItem);
|
||||||
|
|
||||||
if (call == selectedCall) {
|
if (call == selectedCall) {
|
||||||
ui->tableWidgetCalls->selectRow(ui->tableWidgetCalls->rowCount() - 1);
|
ui->tableWidgetCalls->selectRow(ui->tableWidgetCalls->rowCount() - 1);
|
||||||
@ -9646,6 +9658,7 @@ void MainWindow::displayCallActivity() {
|
|||||||
ui->tableWidgetCalls->resizeColumnToContents(1);
|
ui->tableWidgetCalls->resizeColumnToContents(1);
|
||||||
ui->tableWidgetCalls->resizeColumnToContents(2);
|
ui->tableWidgetCalls->resizeColumnToContents(2);
|
||||||
ui->tableWidgetCalls->resizeColumnToContents(3);
|
ui->tableWidgetCalls->resizeColumnToContents(3);
|
||||||
|
ui->tableWidgetCalls->resizeColumnToContents(4);
|
||||||
|
|
||||||
// Reset the scroll position
|
// Reset the scroll position
|
||||||
ui->tableWidgetCalls->verticalScrollBar()->setValue(currentScrollPos);
|
ui->tableWidgetCalls->verticalScrollBar()->setValue(currentScrollPos);
|
||||||
|
@ -262,7 +262,7 @@ private slots:
|
|||||||
void on_qthMacroButton_clicked();
|
void on_qthMacroButton_clicked();
|
||||||
void setSortBy(QString key, QString value);
|
void setSortBy(QString key, QString value);
|
||||||
QString getSortBy(QString key, QString defaultValue);
|
QString getSortBy(QString key, QString defaultValue);
|
||||||
void buildSortByMenu(QMenu * menu, QString key, QString defaultValue, QMap<QString, QString> values);
|
void buildSortByMenu(QMenu * menu, QString key, QString defaultValue, QList<QPair<QString, QString> > values);
|
||||||
void buildBandActivitySortByMenu(QMenu * menu);
|
void buildBandActivitySortByMenu(QMenu * menu);
|
||||||
void buildCallActivitySortByMenu(QMenu * menu);
|
void buildCallActivitySortByMenu(QMenu * menu);
|
||||||
void buildQueryMenu(QMenu *, QString callsign);
|
void buildQueryMenu(QMenu *, QString callsign);
|
||||||
|
@ -221,7 +221,7 @@ QPushButton[oob="true"] {
|
|||||||
</string>
|
</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>14.074 000</string>
|
<string>14.078 000</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="flat">
|
<property name="flat">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@ -1178,6 +1178,11 @@ QTextEdit[transmitting="true"] {
|
|||||||
<string>Callsign</string>
|
<string>Callsign</string>
|
||||||
</property>
|
</property>
|
||||||
</column>
|
</column>
|
||||||
|
<column>
|
||||||
|
<property name="text">
|
||||||
|
<string>Offset</string>
|
||||||
|
</property>
|
||||||
|
</column>
|
||||||
<column>
|
<column>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Age</string>
|
<string>Age</string>
|
||||||
@ -1250,15 +1255,15 @@ QTextEdit[transmitting="true"] {
|
|||||||
</item>
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="1" column="4">
|
||||||
<widget class="QPushButton" name="qthMacroButton">
|
<widget class="QPushButton" name="qthMacroButton">
|
||||||
<property name="visible">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>0</width>
|
||||||
<height>30</height>
|
<height>30</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="visible">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string><html><head/><body><p>Send your station location message</p></body></html></string>
|
<string><html><head/><body><p>Send your station location message</p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
|
Loading…
Reference in New Issue
Block a user