diff --git a/mainwindow.cpp b/mainwindow.cpp index 714f7d8..ceba1de 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -5830,11 +5830,13 @@ void MainWindow::clearActivity(){ clearTableWidget(ui->tableWidgetCalls); // this is now duplicated in three places :( - ui->tableWidgetCalls->insertRow(ui->tableWidgetCalls->rowCount()); - auto item = new QTableWidgetItem("ALLCALL"); - item->setData(Qt::UserRole, QVariant("ALLCALL")); - ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, item); - ui->tableWidgetCalls->setSpan(ui->tableWidgetCalls->rowCount() - 1, 0, 1, ui->tableWidgetCalls->columnCount()); + if(!ui->selcalButton->isChecked()){ + ui->tableWidgetCalls->insertRow(ui->tableWidgetCalls->rowCount()); + auto item = new QTableWidgetItem("ALLCALL"); + item->setData(Qt::UserRole, QVariant("ALLCALL")); + ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, item); + ui->tableWidgetCalls->setSpan(ui->tableWidgetCalls->rowCount() - 1, 0, 1, ui->tableWidgetCalls->columnCount()); + } clearTableWidget(ui->tableWidgetRXAll); @@ -7057,11 +7059,13 @@ void MainWindow::on_clearAction_triggered(QObject * sender){ m_callActivity.clear(); clearTableWidget((ui->tableWidgetCalls)); - auto item = new QTableWidgetItem("ALLCALL"); - item->setData(Qt::UserRole, QVariant("ALLCALL")); - ui->tableWidgetCalls->insertRow(ui->tableWidgetCalls->rowCount()); - ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, item); - ui->tableWidgetCalls->setSpan(ui->tableWidgetCalls->rowCount() - 1, 0, 1, ui->tableWidgetCalls->columnCount()); + if(!ui->selcalButton->isChecked()){ + auto item = new QTableWidgetItem("ALLCALL"); + item->setData(Qt::UserRole, QVariant("ALLCALL")); + ui->tableWidgetCalls->insertRow(ui->tableWidgetCalls->rowCount()); + ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, item); + ui->tableWidgetCalls->setSpan(ui->tableWidgetCalls->rowCount() - 1, 0, 1, ui->tableWidgetCalls->columnCount()); + } } if(sender == ui->extFreeTextMsgEdit){ @@ -7913,6 +7917,18 @@ void MainWindow::on_beaconButton_clicked() } } +void MainWindow::on_selcalButton_clicked(){ + if(ui->selcalButton->isChecked()){ + if(callsignSelected() == "ALLCALL"){ + clearCallsignSelected(); + } + if(ui->tableWidgetRXAll->isVisible()){ + ui->tableWidgetRXAll->setVisible(false); + } + } + displayCallActivity(); +} + void MainWindow::on_readFreq_clicked() { if (m_transmitting) return; @@ -8955,6 +8971,10 @@ void MainWindow::processRxActivity() { continue; } + if(ui->selcalButton->isChecked()){ + continue; + } + // use the actual frequency and check its delta from our current frequency // meaning, if our current offset is 1502 and the d.freq is 1492, the delta is <= 10; bool shouldDisplay = abs(d.freq - currentFreqOffset()) <= 10; @@ -9233,11 +9253,10 @@ void MainWindow::processCommandActivity() { continue; } -#if ENABLE_SELCAL + // if selcal is enabled and this isnt directed to us, take no action. if (isAllCall && ui->selcalButton->isChecked()) { continue; } -#endif // if this is an allcall, check to make sure we haven't replied to their allcall recently (in the past beacon interval) // that way we never get spammed by allcalls at a higher frequency than what we would normally beacon @@ -9994,16 +10013,17 @@ void MainWindow::displayCallActivity() { clearTableWidget(ui->tableWidgetCalls); // Create the ALLCALL item - auto item = new QTableWidgetItem("ALLCALL"); - ui->tableWidgetCalls->insertRow(ui->tableWidgetCalls->rowCount()); - item->setData(Qt::UserRole, QVariant("ALLCALL")); - ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, item); - ui->tableWidgetCalls->setSpan(ui->tableWidgetCalls->rowCount() - 1, 0, 1, ui->tableWidgetCalls->columnCount()); - if (isAllCallIncluded(selectedCall)) { - ui->tableWidgetCalls->item(0, 0)->setSelected(true); + if(!ui->selcalButton->isChecked()){ + auto item = new QTableWidgetItem("ALLCALL"); + ui->tableWidgetCalls->insertRow(ui->tableWidgetCalls->rowCount()); + item->setData(Qt::UserRole, QVariant("ALLCALL")); + ui->tableWidgetCalls->setItem(ui->tableWidgetCalls->rowCount() - 1, 0, item); + ui->tableWidgetCalls->setSpan(ui->tableWidgetCalls->rowCount() - 1, 0, 1, ui->tableWidgetCalls->columnCount()); + if (isAllCallIncluded(selectedCall)) { + ui->tableWidgetCalls->item(0, 0)->setSelected(true); + } } - // Build the table QList < QString > keys = m_callActivity.keys(); diff --git a/mainwindow.h b/mainwindow.h index 111a8e6..ed61391 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -316,6 +316,7 @@ private slots: void on_pbR2T_clicked(); void on_pbT2R_clicked(); void on_beaconButton_clicked(); + void on_selcalButton_clicked(); void acceptQSO (QDateTime const&, QString const& call, QString const& grid , Frequency dial_freq, QString const& mode , QString const& rpt_sent, QString const& rpt_received diff --git a/mainwindow.ui b/mainwindow.ui index f2480fc..6e9ce5f 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -481,72 +481,6 @@ color : white; QFrame::Plain - - - - true - - - - 0 - 0 - - - - - 75 - 30 - - - - - 0 - 30 - - - - false - - - <html><head/><body><p>Enable or disable selective calling (i.e., only directed messages to you will be displayed)</p></body></html> - - - QPushButton { -font-family: helvetica; -font-weight: bold; -background-color: lightgray; -color: black; -border-style: solid; -border-radius:2px; -border-width:0px; -border-color: gray; -font-size:90%; -min-width:75px; -min-height:30px; -/*max-width:60px;*/ -max-height:30px; -} -QPushButton[state="error"] { -background-color: red; -} -QPushButton[state="warning"] { -background-color: orange; -} -QPushButton[state="ok"] { -background-color: #00ff00; -} -QPushButton:checked { -background-color: #6699ff; -} - - - SELCAL - - - true - - - @@ -560,82 +494,6 @@ background-color: #6699ff; - - - - true - - - - 0 - 0 - - - - - 75 - 30 - - - - - 0 - 30 - - - - <html><head/><body><p>Enable or disable spotting of callsigns heard to PSKReporter</p></body></html> - - - QPushButton { -font-family: helvetica; -font-weight: bold; -background-color: lightgray; -color: black; -border-style: solid; -border-radius:2px; -border-width:0px; -border-color: gray; -font-size:90%; -min-width:75px; -min-height:30px; -/*max-width:60px;*/ -max-height:30px; -} -QPushButton[state="error"] { -background-color: red; -} -QPushButton[state="warning"] { -background-color: orange; -} -QPushButton[state="ok"] { -background-color: #00ff00; -} -QPushButton:checked { -background-color: #00ff00; -} - - - SPOT - - - true - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - @@ -785,8 +643,8 @@ background-color: yellow; - - + + Qt::Vertical @@ -798,69 +656,6 @@ background-color: yellow; - - - - true - - - - 0 - 0 - - - - - 75 - 30 - - - - - 16777215 - 30 - - - - <html><head/><body><p>Transmit a tuning tone</p></body></html> - - - QPushButton { -font-family: helvetica; -font-weight: bold; -background-color: lightgray; -color: black; -border-style: solid; -border-radius:2px; -border-width:0px; -border-color: gray; -font-size:90%; -min-width:75px; -min-height:30px; -/*max-width:60px;*/ -max-height:30px; -} -QPushButton[state="error"] { -background-color: red; -} -QPushButton[state="warning"] { -background-color: orange; -} -QPushButton[state="ok"] { -background-color: #00ff00; -} -QPushButton:checked { -background-color: #6699ff; -} - - - TUNE - - - true - - - @@ -927,13 +722,13 @@ background-color: #6699ff; - - + + true - + 0 0 @@ -946,12 +741,12 @@ background-color: #6699ff; - 0 + 16777215 30 - <html><head/><body><p>Enable or disable automatic station replies to directed queries</p></body></html> + <html><head/><body><p>Transmit a tuning tone</p></body></html> QPushButton { @@ -983,14 +778,27 @@ background-color: #6699ff; } - AUTO + TUNE true - + + + + Qt::Vertical + + + + 20 + 40 + + + + + true @@ -1053,7 +861,199 @@ background-color: #6699ff; - + + + + true + + + + 0 + 0 + + + + + 75 + 30 + + + + + 0 + 30 + + + + <html><head/><body><p>Enable or disable automatic station replies to directed queries</p></body></html> + + + QPushButton { +font-family: helvetica; +font-weight: bold; +background-color: lightgray; +color: black; +border-style: solid; +border-radius:2px; +border-width:0px; +border-color: gray; +font-size:90%; +min-width:75px; +min-height:30px; +/*max-width:60px;*/ +max-height:30px; +} +QPushButton[state="error"] { +background-color: red; +} +QPushButton[state="warning"] { +background-color: orange; +} +QPushButton[state="ok"] { +background-color: #00ff00; +} +QPushButton:checked { +background-color: #6699ff; +} + + + AUTO + + + true + + + + + + + true + + + + 0 + 0 + + + + + 75 + 30 + + + + + 0 + 30 + + + + true + + + <html><head/><body><p>Enable or disable selective calling (i.e., only directed messages to you will be displayed in the RX area)</p></body></html> + + + QPushButton { +font-family: helvetica; +font-weight: bold; +background-color: lightgray; +color: black; +border-style: solid; +border-radius:2px; +border-width:0px; +border-color: gray; +font-size:90%; +min-width:75px; +min-height:30px; +/*max-width:60px;*/ +max-height:30px; +} +QPushButton[state="error"] { +background-color: red; +} +QPushButton[state="warning"] { +background-color: orange; +} +QPushButton[state="ok"] { +background-color: #00ff00; +} +QPushButton:checked { +background-color: #6699ff; +} + + + SELCAL + + + true + + + + + + + true + + + + 0 + 0 + + + + + 75 + 30 + + + + + 0 + 30 + + + + <html><head/><body><p>Enable or disable spotting of callsigns heard to PSKReporter</p></body></html> + + + QPushButton { +font-family: helvetica; +font-weight: bold; +background-color: lightgray; +color: black; +border-style: solid; +border-radius:2px; +border-width:0px; +border-color: gray; +font-size:90%; +min-width:75px; +min-height:30px; +/*max-width:60px;*/ +max-height:30px; +} +QPushButton[state="error"] { +background-color: red; +} +QPushButton[state="warning"] { +background-color: orange; +} +QPushButton[state="ok"] { +background-color: #00ff00; +} +QPushButton:checked { +background-color: #00ff00; +} + + + SPOT + + + true + + + + true @@ -1266,7 +1266,7 @@ background-color: #00ff00; true - Incoming and outgoing directed messages will appear here. + Incoming and outgoing messages will appear here.