Added sort activity tables by speed

This commit is contained in:
Jordan Sherer 2019-11-10 13:47:17 -05:00
parent d7985797a0
commit 05c45ed794

View File

@ -1910,7 +1910,7 @@ void MainWindow::initializeDummyData(){
cd.utcTimestamp = dt; cd.utcTimestamp = dt;
cd.grid = i == 5 ? "J042" : i == 6 ? " FN42FN42FN" : ""; cd.grid = i == 5 ? "J042" : i == 6 ? " FN42FN42FN" : "";
cd.tdrift = 0.1*i; cd.tdrift = 0.1*i;
cd.submode = i % 4; cd.submode = i % 3;
logCallActivity(cd, false); logCallActivity(cd, false);
ActivityDetail ad = {}; ActivityDetail ad = {};
@ -7968,11 +7968,11 @@ void MainWindow::buildShowColumnsMenu(QMenu *menu, QString tableKey){
{"Last heard timestamp", "timestamp"}, {"Last heard timestamp", "timestamp"},
{"SNR", "snr"}, {"SNR", "snr"},
{"Time Delta", "tdrift"}, {"Time Delta", "tdrift"},
{"Mode Speed", "mode"}, {"Mode Speed", "submode"},
}; };
QMap<QString, bool> defaultOverride = { QMap<QString, bool> defaultOverride = {
{"mode", false}, {"submode", false},
{"tdrift", false}, {"tdrift", false},
{"grid", false}, {"grid", false},
{"distance", false} {"distance", false}
@ -8055,7 +8055,9 @@ void MainWindow::buildBandActivitySortByMenu(QMenu * menu){
{"Last heard timestamp (oldest first)", "timestamp"}, {"Last heard timestamp (oldest first)", "timestamp"},
{"Last heard timestamp (recent first)", "-timestamp"}, {"Last heard timestamp (recent first)", "-timestamp"},
{"SNR (weakest first)", "snr"}, {"SNR (weakest first)", "snr"},
{"SNR (strongest first)", "-snr"} {"SNR (strongest first)", "-snr"},
{"Mode Speed (slowest first)", "submode"},
{"Mode Speed (fastest first)", "-submode"}
}); });
} }
@ -8069,7 +8071,9 @@ void MainWindow::buildCallActivitySortByMenu(QMenu * menu){
{"Last heard timestamp (oldest first)", "timestamp"}, {"Last heard timestamp (oldest first)", "timestamp"},
{"Last heard timestamp (recent first)", "-timestamp"}, {"Last heard timestamp (recent first)", "-timestamp"},
{"SNR (weakest first)", "snr"}, {"SNR (weakest first)", "snr"},
{"SNR (strongest first)", "-snr"} {"SNR (strongest first)", "-snr"},
{"Mode Speed (slowest first)", "submode"},
{"Mode Speed (fastest first)", "-submode"}
}); });
} }
@ -11548,6 +11552,24 @@ void MainWindow::displayBandActivity() {
return leftActivity.snr < rightActivity.snr; return leftActivity.snr < rightActivity.snr;
}; };
auto compareSubmode = [this](const int left, int right) {
auto leftItems = m_bandActivity[left];
auto rightItems = m_bandActivity[right];
if(leftItems.isEmpty()){
return false;
}
if(rightItems.isEmpty()){
return true;
}
auto leftLast = leftItems.last();
auto rightLast = rightItems.last();
return leftLast.submode < rightLast.submode;
};
// compare offset // compare offset
qStableSort(keys.begin(), keys.end()); qStableSort(keys.begin(), keys.end());
@ -11555,6 +11577,8 @@ void MainWindow::displayBandActivity() {
qStableSort(keys.begin(), keys.end(), compareTimestamp); qStableSort(keys.begin(), keys.end(), compareTimestamp);
} else if(sortBy == "snr"){ } else if(sortBy == "snr"){
qStableSort(keys.begin(), keys.end(), compareSNR); qStableSort(keys.begin(), keys.end(), compareSNR);
} else if(sortBy == "submode"){
qStableSort(keys.begin(), keys.end(), compareSubmode);
} }
if(reverse){ if(reverse){
@ -11764,7 +11788,7 @@ void MainWindow::displayBandActivity() {
ui->tableWidgetRXAll->setColumnHidden(1, !showColumn("band", "timestamp")); ui->tableWidgetRXAll->setColumnHidden(1, !showColumn("band", "timestamp"));
ui->tableWidgetRXAll->setColumnHidden(2, !showColumn("band", "snr")); ui->tableWidgetRXAll->setColumnHidden(2, !showColumn("band", "snr"));
ui->tableWidgetRXAll->setColumnHidden(3, !showColumn("band", "tdrift", false)); ui->tableWidgetRXAll->setColumnHidden(3, !showColumn("band", "tdrift", false));
ui->tableWidgetRXAll->setColumnHidden(4, !showColumn("band", "mode", false)); ui->tableWidgetRXAll->setColumnHidden(4, !showColumn("band", "submode", false));
// Resize the table columns // Resize the table columns
ui->tableWidgetRXAll->resizeColumnToContents(0); ui->tableWidgetRXAll->resizeColumnToContents(0);
@ -11857,6 +11881,13 @@ void MainWindow::displayCallActivity() {
return leftActivity.snr < rightActivity.snr; return leftActivity.snr < rightActivity.snr;
}; };
auto compareSubmode= [this](const QString left, QString right) {
auto leftActivity = m_callActivity[left];
auto rightActivity = m_callActivity[right];
return leftActivity.submode < rightActivity.submode;
};
// compare callsign // compare callsign
qStableSort(keys.begin(), keys.end()); qStableSort(keys.begin(), keys.end());
@ -11871,6 +11902,8 @@ void MainWindow::displayCallActivity() {
qStableSort(keys.begin(), keys.end(), compareAckTimestamp); qStableSort(keys.begin(), keys.end(), compareAckTimestamp);
} else if(sortBy == "snr"){ } else if(sortBy == "snr"){
qStableSort(keys.begin(), keys.end(), compareSNR); qStableSort(keys.begin(), keys.end(), compareSNR);
} else if(sortBy == "submode"){
qStableSort(keys.begin(), keys.end(), compareSubmode);
} }
if(reverse){ if(reverse){
@ -12093,7 +12126,7 @@ void MainWindow::displayCallActivity() {
ui->tableWidgetCalls->setColumnHidden(3, !showColumn("call", "snr")); ui->tableWidgetCalls->setColumnHidden(3, !showColumn("call", "snr"));
ui->tableWidgetCalls->setColumnHidden(4, !showColumn("call", "offset")); ui->tableWidgetCalls->setColumnHidden(4, !showColumn("call", "offset"));
ui->tableWidgetCalls->setColumnHidden(5, !showColumn("call", "tdrift", false)); ui->tableWidgetCalls->setColumnHidden(5, !showColumn("call", "tdrift", false));
ui->tableWidgetCalls->setColumnHidden(6, !showColumn("call", "mode", false)); ui->tableWidgetCalls->setColumnHidden(6, !showColumn("call", "submode", false));
ui->tableWidgetCalls->setColumnHidden(7, !showColumn("call", "grid", false)); ui->tableWidgetCalls->setColumnHidden(7, !showColumn("call", "grid", false));
ui->tableWidgetCalls->setColumnHidden(8, !showColumn("call", "distance", false)); ui->tableWidgetCalls->setColumnHidden(8, !showColumn("call", "distance", false));
ui->tableWidgetCalls->setColumnHidden(9, !showColumn("call", "log")); ui->tableWidgetCalls->setColumnHidden(9, !showColumn("call", "log"));