1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -125,10 +125,10 @@ namespace
QRegularExpression wcall_alphabet {"[A-Za-z0-9/,]*"};
QRegularExpression wcountry_alphabet {"[A-Za-z0-9/,*]*"};
QRegularExpression wgrid_alphabet {"([a-r]{2,2}[0-9]{2,2}[,]{1,1})*",QRegularExpression::CaseInsensitiveOption};
- QRegularExpression cqdir_alphabet {"[a-z]{0,2}",QRegularExpression::CaseInsensitiveOption};
+ QRegularExpression cqdir_alphabet {"[a-z]{0,4}",QRegularExpression::CaseInsensitiveOption};
QRegularExpression dxCall_alphabet {"[A-Za-z0-9/]*"};
QRegularExpression dxGrid_alphabet {"[A-Ra-r]{2,2}[0-9]{2,2}[A-Xa-x]{2,2}[0-9]{2,2}[A-Xa-x]{2,2}"};
- QRegularExpression words_re {R"(^(?:(?<word1>(?:CQ|DE|QRZ)(?:\s?DX|\s(?:[A-Z]{2}|\d{3}))|[A-Z0-9/]+)\s)(?:(?<word2>[A-Z0-9/]+)(?:\s(?<word3>[-+A-Z0-9]+)(?:\s(?<word4>(?:OOO|(?!RR73)[A-R]{2}[0-9]{2})))?)?)?)"};
+ QRegularExpression words_re {R"(^(?:(?<word1>(?:CQ|DE|QRZ)(?:\s?DX|\s(?:[A-Z]{1,4}|\d{3}))|[A-Z0-9/]+)\s)(?:(?<word2>[A-Z0-9/]+)(?:\s(?<word3>[-+A-Z0-9]+)(?:\s(?<word4>(?:OOO|(?!RR73)[A-R]{2}[0-9]{2})))?)?)?)"};
constexpr int default_rx_audio_buffer_frames {-1}; // lets Qt decide
constexpr int default_tx_audio_buffer_frames {-1}; // lets Qt decide
@@ -1343,7 +1343,7 @@ void MainWindow::readSettings()
m_cqdir = m_settings->value("CQdirection","").toString();
if(!m_cqdir.isEmpty()) {
- QRegularExpression cqdir_re("^[A-Za-z]{2,2}$"); QRegularExpressionMatch match = cqdir_re.match(m_cqdir);
+ QRegularExpression cqdir_re("^[A-Za-z]{1,4}$"); QRegularExpressionMatch match = cqdir_re.match(m_cqdir);
bool hasMatch = match.hasMatch(); if(!hasMatch) m_cqdir="";
}
ui->directionLineEdit->setText(m_cqdir);
@@ -5191,7 +5191,7 @@ void MainWindow::processMessage(QString
}
auto t3 = decodedtext.string ().left(47);
- auto t4 = t3.replace (QRegularExpression {" CQ ([A-Z]{1,2}|[0-9]{3,3}) "}, " CQ_\\1 ").split (" ", SkipEmptyParts);
+ auto t4 = t3.replace (QRegularExpression {" CQ ([A-Z]{1,4}|[0-9]{3,3}) "}, " CQ_\\1 ").split (" ", SkipEmptyParts);
if(t4.size () < 6) return; //Skip the rest if no decoded text
@@ -6071,14 +6071,14 @@ void MainWindow::on_directionLineEdit_te
{
QString cqdirection = dir.toUpper();
if(cqdirection.isEmpty ()) { ui->directionLineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#ffffff",m_useDarkStyle))); }
- else if(cqdirection.length() == 1 || cqdirection.length() > 2) { ui->directionLineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#fffa82",m_useDarkStyle))); }
- else if(cqdirection.length() == 2) { ui->directionLineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#82ff8c",m_useDarkStyle))); }
+ else if(cqdirection.length() > 4) { ui->directionLineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#fffa82",m_useDarkStyle))); }
+ else if(cqdirection.length() <= 4) { ui->directionLineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#82ff8c",m_useDarkStyle))); }
m_cqdir = cqdirection;
if (cqdirection.isEmpty ()) { ui->pbCallCQ->setText("CQ"); }
- else if (cqdirection.length() == 2) { ui->pbCallCQ->setText("CQ " + m_cqdir); }
+ else if (cqdirection.length() <= 4) { ui->pbCallCQ->setText("CQ " + m_cqdir); }
auto curpos = ui->directionLineEdit->cursorPosition(); ui->directionLineEdit->setText(m_cqdir);
ui->direction1LineEdit->setText(m_cqdir); ui->directionLineEdit->setCursorPosition(curpos);
- if (cqdirection.isEmpty () || cqdirection.length() == 2) {
+ if (cqdirection.length() <= 4) {
if(ui->genMsg->text().startsWith ("CQ ") && ui->txrb6->isChecked()) {
ui->pbCallCQ->click ();
}
@@ -6089,17 +6089,17 @@ void MainWindow::on_direction1LineEdit_t
{
QString cqdirection = dir.toUpper();
if(cqdirection.isEmpty ()) { ui->direction1LineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#ffffff",m_useDarkStyle))); }
- else if(cqdirection.length() == 1 || cqdirection.length() > 2) { ui->direction1LineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#fffa82",m_useDarkStyle))); }
- else if(cqdirection.length() == 2) { ui->direction1LineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#82ff8c",m_useDarkStyle))); }
+ else if(cqdirection.length() > 4) { ui->direction1LineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#fffa82",m_useDarkStyle))); }
+ else if(cqdirection.length() <= 4) { ui->direction1LineEdit->setStyleSheet(QString("QLineEdit {background: %1}").arg(Radio::convert_dark("#82ff8c",m_useDarkStyle))); }
m_cqdir = cqdirection;
if (cqdirection.isEmpty ()) { ui->pbCallCQ->setText("CQ"); }
- else if (cqdirection.length() == 2) { ui->pbCallCQ->setText("CQ " + m_cqdir); }
+ else if (cqdirection.length() <= 4) { ui->pbCallCQ->setText("CQ " + m_cqdir); }
auto curpos = ui->direction1LineEdit->cursorPosition(); ui->direction1LineEdit->setText(m_cqdir);
ui->directionLineEdit->setText(m_cqdir); ui->direction1LineEdit->setCursorPosition(curpos);
- if (cqdirection.isEmpty () || cqdirection.length() == 2) {
+ if (cqdirection.length() <= 4) {
if(ui->tx1->text().isEmpty()) { if(ui->txrb6->isChecked()) ui->txb6->click (); }
else {
- if(cqdirection.length() == 2) ui->tx6->setText("CQ " + m_cqdir + " " + m_config.my_callsign() + " " + m_config.my_grid().left(4));
+ if(!cqdirection.isEmpty() && cqdirection.length() <= 4) ui->tx6->setText("CQ " + m_cqdir + " " + m_config.my_callsign() + " " + m_config.my_grid().left(4));
else ui->tx6->setText("CQ " + m_config.my_callsign() + " " + m_config.my_grid().left(4));
}
}
--- a/decodedtext.cpp
+++ b/decodedtext.cpp
@@ -9,7 +9,7 @@ extern "C" { bool stdmsg_(char const *
namespace
{
- QRegularExpression words_re {R"(^(?:(?<word1>(?:CQ|DE|QRZ)(?:\s?DX|\s(?:[A-Z]{1,2}|\d{3}))|...|[A-Z0-9/]+)\s)(?:(?<word2>[A-Z0-9/]+)(?:\s(?<word3>[-+A-Z0-9]+)(?:\s(?<word4>(?:OOO|(?!RR73)[A-R]{2}[0-9]{2})))?)?)?)"};
+ QRegularExpression words_re {R"(^(?:(?<word1>(?:CQ|DE|QRZ)(?:\s?DX|\s(?:[A-Z]{1,4}|\d{3}))|...|[A-Z0-9/]+)\s)(?:(?<word2>[A-Z0-9/]+)(?:\s(?<word3>[-+A-Z0-9]+)(?:\s(?<word4>(?:OOO|(?!RR73)[A-R]{2}[0-9]{2})))?)?)?)"};
}
DecodedText::DecodedText (QString const& the_string, QObject *parent)
@@ -68,7 +68,7 @@ QString DecodedText::string()
QString DecodedText::CQersCall(QString& grid,QString& tyyp)
{
-// QRegularExpression callsign_re {R"(^(CQ|DE|QRZ)(\s?DX|\s([A-Z]{2}|\d{3}))?\s(?<callsign>(([2-9]{0,1}[A-Z]{1,2}[0-9]{0,1}[/]{1}){0,1})[2-9]{0,1}[A-Z]{1,2}[0-9]{1,4}[A-Z]{1,6}([A-Z0-9/]{1,4}){0,1})(?:\s(?<grid>[A-R]{2}[0-9]{2})?)?)"};
+// QRegularExpression callsign_re {R"(^(CQ|DE|QRZ)(\s?DX|\s([A-Z]{1,4}|\d{3}))?\s(?<callsign>(([2-9]{0,1}[A-Z]{1,2}[0-9]{0,1}[/]{1}){0,1})[2-9]{0,1}[A-Z]{1,2}[0-9]{1,4}[A-Z]{1,6}([A-Z0-9/]{1,4}){0,1})(?:\s(?<grid>[A-R]{2}[0-9]{2})?)?)"};
QRegularExpression callsign_re {R"(^(CQ|DE|QRZ)(\s?(?<tyyp>([A-Z]{1,4}|\d{3}))?)?\s(?<callsign>(([2-9]{0,1}[A-Z]{1,2}[0-9]{0,2}[/]{1}){0,1})[2-9]{0,1}[A-Z]{1,2}[0-9]{1,4}[A-Z]{0,6}([A-Z0-9/]{1,7}){0,1})(\s?(?<grid>[A-R]{2}[0-9]{2})?)?)"};
auto const& match = callsign_re.match (message_);
grid = match.captured ("grid");
--- a/decodedtext.h
+++ b/decodedtext.h
@@ -86,7 +86,7 @@ private:
column_mode = 19,
column_qsoText = 21};
QString string_;
- QRegularExpression _cqLongerRe = QRegularExpression(" CQ ([A-Z]{2,2}|[0-9]{3,3}) ");
+ QRegularExpression _cqLongerRe = QRegularExpression(" CQ ([A-Z]{1,4}|[0-9]{3,3}) ");
QRegularExpression _gridRe = QRegularExpression("^(?![Rr]{2}73)[A-Ra-r]{2,2}[0-9]{2,2}$");
QRegularExpression _repRe = QRegularExpression("[<>]");
// QRegularExpression _callRe = QRegularExpression("(([A-Z]{1,2})|([A-Z][0-9]))[0-9][A-Z]{1,3}");
|