Merge branch 'sfox4' into sfox4_b2_otp

This commit is contained in:
Brian Moran 2024-08-30 08:05:00 -07:00
commit 2886979717
4 changed files with 26 additions and 7 deletions

View File

@ -567,11 +567,11 @@ void DisplayText::setHighlightedHoundText(QString t) {
set_colours(m_config, &bg, &fg, types); set_colours(m_config, &bg, &fg, types);
// t is multiple lines of text, each line is a hound calling // t is multiple lines of text, each line is a hound calling
// iterate through each line and highlight the callsign // iterate through each line and highlight the callsign
auto lines = t.split(QChar('\n'), Qt::SkipEmptyParts); auto lines = t.split(QChar('\n'), SkipEmptyParts);
clear(); clear();
foreach (auto line, lines) foreach (auto line, lines)
{ {
auto fields = line.split(QChar(' '), Qt::SkipEmptyParts); auto fields = line.split(QChar(' '), SkipEmptyParts);
insertText(line, bg, fg, fields.first(), QString{}); insertText(line, bg, fg, fields.first(), QString{});
} }
} }

View File

@ -4007,16 +4007,22 @@ void MainWindow::queueActiveWindowHound2(QString line) {
// houndcall rpt grid // houndcall rpt grid
if (w[7].contains(grid_regexp)) grid = w[7]; if (w[7].contains(grid_regexp)) grid = w[7];
if (w[7].contains(non_r_db_regexp)) { if (w[7].contains(non_r_db_regexp)) {
LOG_INFO(QString("%1 called with signal report %2").arg(caller).arg(w[7])); LOG_INFO(QString("ActiveStations Window click: %1 called with signal report %2").arg(caller).arg(w[7]));
} }
if (caller.length() > 2) { if (caller.length() > 2) {
// make sure it's not already in the queue // make sure it's not already in the queue
for ( QString hs : m_houndQueue) { for ( QString hs : m_houndQueue) {
if (hs.startsWith(caller)) { if (hs.startsWith(caller)) {
LOG_INFO(QString("%1 already in queue. Skipping").arg(hs)); //LOG_INFO(QString("ActiveStations Window click: %1 already in queue. Skipping").arg(hs));
return; return;
} }
} }
// make sure caller is not in fox queue either
if(m_foxQSO.contains(caller)) {
//LOG_INFO(QString("ActiveStations Window click: %1 already in progress. Skipping").arg(caller));
return;
}
QString caller_rpt = (caller+" ").mid(0,12)+db; QString caller_rpt = (caller+" ").mid(0,12)+db;
if (m_houndQueue.count() < MAX_HOUNDS_IN_QUEUE) { if (m_houndQueue.count() < MAX_HOUNDS_IN_QUEUE) {
// add it to the queue // add it to the queue
@ -4024,9 +4030,10 @@ void MainWindow::queueActiveWindowHound2(QString line) {
refreshHoundQueueDisplay(); refreshHoundQueueDisplay();
// TODO: remove from active stations window too? // TODO: remove from active stations window too?
} }
removeHoundFromCallingList(caller);
} }
} else { } else {
LOG_INFO(QString("queueActiveWindowHound2 - skipping %1").arg(line)); LOG_INFO(QString("ActiveStations Window click: skipping %1").arg(line));
} }
} }
} }
@ -4637,7 +4644,7 @@ void MainWindow::auto_sequence (DecodedText const& message, unsigned start_toler
} }
if (m_auto if (m_auto
&& (m_QSOProgress==REPLYING or (!ui->tx1->isEnabled () and m_QSOProgress==REPORT)) && (m_QSOProgress==REPLYING or (!ui->tx1->isEnabled () and m_QSOProgress==REPORT))
&& qAbs (ui->TxFreqSpinBox->value () - df) <= int (stop_tolerance) && !m_config.superFox() && (SpecOp::HOUND != m_specOp) && qAbs (ui->TxFreqSpinBox->value () - df) <= int (stop_tolerance) //
&& message_words.at (2) != "DE" && message_words.at (2) != "DE"
&& !message_words.at (2).contains (QRegularExpression {"(^(CQ|QRZ))|" + m_baseCall}) && !message_words.at (2).contains (QRegularExpression {"(^(CQ|QRZ))|" + m_baseCall})
&& message_words.at (3).contains (Radio::base_callsign (ui->dxCallEntry->text ()))) { && message_words.at (3).contains (Radio::base_callsign (ui->dxCallEntry->text ()))) {
@ -10306,6 +10313,17 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB)
return m_houndCallers; return m_houndCallers;
} }
void MainWindow::removeHoundFromCallingList(QString callsign)
{
QString text = m_houndCallers;
QRegularExpression re = QRegularExpression("^" + callsign + "[^\\n]+\\n", QRegularExpression::MultilineOption);
text.remove(re);
if (text != m_houndCallers) {
m_nSortedHounds--;
m_houndCallers = text;
ui->decodedTextBrowser->setHighlightedHoundText(m_houndCallers);
}
}
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
void MainWindow::selectHound(QString line, bool bTopQueue) void MainWindow::selectHound(QString line, bool bTopQueue)
{ {

View File

@ -876,6 +876,7 @@ private:
QChar current_submode () const; // returns QChar {0} if submode is not appropriate QChar current_submode () const; // returns QChar {0} if submode is not appropriate
void write_transmit_entry (QString const& file_name); void write_transmit_entry (QString const& file_name);
void selectHound(QString t, bool bTopQueue); void selectHound(QString t, bool bTopQueue);
void removeHoundFromCallingList(QString callsign);
void houndCallers(); void houndCallers();
void updateFoxQSOsInProgressDisplay(); void updateFoxQSOsInProgressDisplay();
void foxQueueTopCallCommand(); void foxQueueTopCallCommand();

View File

@ -2348,7 +2348,7 @@ Double-click to reset to the standard 73 message</string>
<string>Random</string> <string>Random</string>
</property> </property>
<property name="maxVisibleItems"> <property name="maxVisibleItems">
<number>5</number> <number>8</number>
</property> </property>
<item> <item>
<property name="text"> <property name="text">