diff --git a/Configuration.cpp b/Configuration.cpp
index 386c1ee1d..661a42d6e 100644
--- a/Configuration.cpp
+++ b/Configuration.cpp
@@ -593,6 +593,7 @@ private:
bool highlight_by_mode_;
bool highlight_only_fields_;
bool include_WAE_entities_;
+ bool highlight_73_;
int LotW_days_since_upload_;
TransceiverFactory::ParameterPack rig_params_;
@@ -670,6 +671,10 @@ private:
bool bLowSidelobes_;
bool pwrBandTxMemory_;
bool pwrBandTuneMemory_;
+ bool highlight_DXcall_;
+ bool clear_DXcall_;
+ bool highlight_DXgrid_;
+ bool clear_DXgrid_;
QAudioDeviceInfo audio_input_device_;
QAudioDeviceInfo next_audio_input_device_;
@@ -787,6 +792,11 @@ DecodeHighlightingModel const& Configuration::decode_highlighting () const {retu
bool Configuration::highlight_by_mode () const {return m_->highlight_by_mode_;}
bool Configuration::highlight_only_fields () const {return m_->highlight_only_fields_;}
bool Configuration::include_WAE_entities () const {return m_->include_WAE_entities_;}
+bool Configuration::highlight_73 () const {return m_->highlight_73_;}
+bool Configuration::highlight_DXcall () const {return m_->highlight_DXcall_;}
+bool Configuration::clear_DXcall () const {return m_->clear_DXcall_;}
+bool Configuration::highlight_DXgrid () const {return m_->highlight_DXgrid_;}
+bool Configuration::clear_DXgrid () const {return m_->clear_DXgrid_;}
void Configuration::set_calibration (CalibrationParams params)
{
@@ -1008,6 +1018,7 @@ Configuration::impl::impl (Configuration * self, QNetworkAccessManager * network
, highlight_by_mode_ {false}
, highlight_only_fields_ {false}
, include_WAE_entities_ {false}
+ , highlight_73_ {false}
, LotW_days_since_upload_ {0}
, last_port_type_ {TransceiverFactory::Capabilities::none}
, rig_is_dummy_ {false}
@@ -1421,7 +1432,12 @@ void Configuration::impl::initialize_models ()
ui_->highlight_by_mode_check_box->setChecked (highlight_by_mode_);
ui_->only_fields_check_box->setChecked (highlight_only_fields_);
ui_->include_WAE_check_box->setChecked (include_WAE_entities_);
+ ui_->highlight_73_check_box->setChecked (highlight_73_);
ui_->LotW_days_since_upload_spin_box->setValue (LotW_days_since_upload_);
+ ui_->cbHighlightDXcall->setChecked(highlight_DXcall_);
+ ui_->cbClearDXcall->setChecked(clear_DXcall_);
+ ui_->cbHighlightDXgrid->setChecked(highlight_DXgrid_);
+ ui_->cbClearDXgrid->setChecked(clear_DXgrid_);
set_rig_invariants ();
}
@@ -1516,6 +1532,7 @@ void Configuration::impl::read_settings ()
highlight_by_mode_ = settings_->value("HighlightByMode", false).toBool ();
highlight_only_fields_ = settings_->value("OnlyFieldsSought", false).toBool ();
include_WAE_entities_ = settings_->value("IncludeWAEEntities", false).toBool ();
+ highlight_73_ = settings_->value("Highlight73", false).toBool ();
LotW_days_since_upload_ = settings_->value ("LotWDaysSinceLastUpload", 365).toInt ();
lotw_users_.set_age_constraint (LotW_days_since_upload_);
@@ -1578,6 +1595,10 @@ void Configuration::impl::read_settings ()
calibration_.slope_ppm = settings_->value ("CalibrationSlopePPM", 0.).toDouble ();
pwrBandTxMemory_ = settings_->value("pwrBandTxMemory",false).toBool ();
pwrBandTuneMemory_ = settings_->value("pwrBandTuneMemory",false).toBool ();
+ highlight_DXcall_ = settings_->value("highlight_DXcall",false).toBool ();
+ clear_DXcall_ = settings_->value("clear_DXcall",false).toBool ();
+ highlight_DXgrid_ = settings_->value("highlight_DXgrid",false).toBool ();
+ clear_DXgrid_ = settings_->value("clear_DXgrid",false).toBool ();
}
void Configuration::impl::find_audio_devices ()
@@ -1650,6 +1671,7 @@ void Configuration::impl::write_settings ()
settings_->setValue ("HighlightByMode", highlight_by_mode_);
settings_->setValue ("OnlyFieldsSought", highlight_only_fields_);
settings_->setValue ("IncludeWAEEntities", include_WAE_entities_);
+ settings_->setValue ("Highlight73", highlight_73_);
settings_->setValue ("LotWDaysSinceLastUpload", LotW_days_since_upload_);
settings_->setValue ("toRTTY", log_as_RTTY_);
settings_->setValue ("dBtoComments", report_in_comments_);
@@ -1709,6 +1731,10 @@ void Configuration::impl::write_settings ()
settings_->setValue ("pwrBandTuneMemory", pwrBandTuneMemory_);
settings_->setValue ("Region", QVariant::fromValue (region_));
settings_->setValue ("AutoGrid", use_dynamic_grid_);
+ settings_->setValue ("highlight_DXcall", highlight_DXcall_);
+ settings_->setValue ("clear_DXcall", clear_DXcall_);
+ settings_->setValue ("highlight_DXgrid", highlight_DXgrid_);
+ settings_->setValue ("clear_DXgrid", clear_DXgrid_);
settings_->sync ();
}
@@ -2187,6 +2213,7 @@ void Configuration::impl::accept ()
highlight_by_mode_ = ui_->highlight_by_mode_check_box->isChecked ();
highlight_only_fields_ = ui_->only_fields_check_box->isChecked ();
include_WAE_entities_ = ui_->include_WAE_check_box->isChecked ();
+ highlight_73_ = ui_->highlight_73_check_box->isChecked ();
LotW_days_since_upload_ = ui_->LotW_days_since_upload_spin_box->value ();
lotw_users_.set_age_constraint (LotW_days_since_upload_);
@@ -2196,6 +2223,10 @@ void Configuration::impl::accept ()
dynamic_grid_.clear ();
}
use_dynamic_grid_ = ui_->use_dynamic_grid->isChecked();
+ highlight_DXcall_ = ui_->cbHighlightDXcall->isChecked();
+ clear_DXcall_ = ui_->cbClearDXcall->isChecked();
+ highlight_DXgrid_ = ui_->cbHighlightDXgrid->isChecked();
+ clear_DXgrid_ = ui_->cbClearDXgrid->isChecked();
write_settings (); // make visible to all
}
diff --git a/Configuration.hpp b/Configuration.hpp
index 5f9e30bbf..c4cf068ec 100644
--- a/Configuration.hpp
+++ b/Configuration.hpp
@@ -181,9 +181,14 @@ public:
bool highlight_by_mode () const;
bool highlight_only_fields () const;
bool include_WAE_entities () const;
+ bool highlight_73 () const;
void setSpecial_Hound();
void setSpecial_Fox();
void setSpecial_None();
+ bool highlight_DXcall () const;
+ bool clear_DXcall () const;
+ bool highlight_DXgrid () const;
+ bool clear_DXgrid () const;
enum class SpecialOperatingActivity {NONE, NA_VHF, EU_VHF, FIELD_DAY, RTTY, WW_DIGI, FOX, HOUND};
SpecialOperatingActivity special_op_id () const;
diff --git a/Configuration.ui b/Configuration.ui
index 17fd1a326..c64160476 100644
--- a/Configuration.ui
+++ b/Configuration.ui
@@ -7,7 +7,7 @@
0
0
554
- 560
+ 599
@@ -17,7 +17,7 @@
-
- 0
+ 6
@@ -181,29 +181,6 @@
- -
-
-
- Show if decoded stations are new DXCC entities or worked before.
-
-
- Show &DXCC, grid, and worked-before status
-
-
- false
-
-
-
- -
-
-
- <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html>
-
-
- Start new period decodes at top
-
-
-
-
@@ -265,13 +242,10 @@
- -
-
-
- Include a separator line between periods in the band activity window.
-
+
-
+
- &Blank line between decoding periods
+ Highlight DX Call in message
@@ -285,6 +259,60 @@
+ -
+
+
+ Show if decoded stations are new DXCC entities or worked before.
+
+
+ Show &DXCC, grid, and worked-before status
+
+
+ false
+
+
+
+ -
+
+
+ <html><head/><body><p>Check to have decodes for a new period start at the top of the Band Activity window and not scroll off the top when the window is full.</p><p>This is to aid selecting decodes to double-click while decoding is still in progress. Use the Band Activity vertical scroll bar to reveal decodes past the bottom of the window.</p></body></html>
+
+
+ Start new period decodes at top
+
+
+
+ -
+
+
+ Clear DX Grid after QSO
+
+
+
+ -
+
+
+ Include a separator line between periods in the band activity window.
+
+
+ &Blank line between decoding periods
+
+
+
+ -
+
+
+ Highlight DX Grid in message
+
+
+
+ -
+
+
+ Clear DX Call after QSO
+
+
+
@@ -2302,6 +2330,23 @@ Right click for insert and delete options.
+ -
+
+
+ Include extra WAE entities
+
+
+
+ -
+
+
+ Check to for grid highlighting to only apply to unworked grid fields
+
+
+ Only grid Fields sought
+
+
+
-
@@ -2349,20 +2394,10 @@ Right click for insert and delete options.
- -
-
+
-
+
- Include extra WAE entities
-
-
-
- -
-
-
- Check to for grid highlighting to only apply to unworked grid fields
-
-
- Only grid Fields sought
+ Highlight also messages with 73 or RR73
@@ -3233,13 +3268,13 @@ Right click for insert and delete options.
+
+
+
+
+
+
-
-
-
-
-
-
diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp
index d784ead1b..d588573a9 100644
--- a/widgets/displaytext.cpp
+++ b/widgets/displaytext.cpp
@@ -404,6 +404,7 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con
QColor bg;
QColor fg;
bool CQcall = false;
+ auto is_73 = decodedText.messageWords().filter (QRegularExpression {"^(73|RR73)$"}).size();
if (decodedText.string ().contains (" CQ ")
|| decodedText.string ().contains (" CQDX ")
|| decodedText.string ().contains (" QRZ "))
@@ -446,14 +447,14 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con
message = message.left (ap_pos).trimmed ();
}
m_CQPriority="";
- if (CQcall)
+ if (CQcall || (is_73 && (m_config->highlight_73 ())))
{
if (displayDXCCEntity)
{
// if enabled add the DXCC entity and B4 status to the end of the
// preformated text line t1
auto currentMode = mode;
- message = appendWorkedB4 (message, decodedText.CQersCall(), dxGrid, &bg, &fg
+ message = appendWorkedB4 (message, dxCall, dxGrid, &bg, &fg
, logBook, currentBand, currentMode, extra);
}
else
diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp
index 5138b1253..a92e1c359 100644
--- a/widgets/mainwindow.cpp
+++ b/widgets/mainwindow.cpp
@@ -604,6 +604,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
ui->actionSave_decoded->setActionGroup(saveGroup);
ui->actionSave_all->setActionGroup(saveGroup);
+ QActionGroup* alltxtGroup = new QActionGroup(this);
+ ui->actionDon_t_split_ALL_TXT->setActionGroup(alltxtGroup);
+ ui->actionSplit_ALL_TXT_yearly->setActionGroup(alltxtGroup);
+ ui->actionSplit_ALL_TXT_monthly->setActionGroup(alltxtGroup);
+ ui->actionDisable_writing_of_ALL_TXT->setActionGroup(alltxtGroup);
+
QActionGroup* DepthGroup = new QActionGroup(this);
ui->actionQuickDecode->setActionGroup(DepthGroup);
ui->actionMediumDecode->setActionGroup(DepthGroup);
@@ -1188,6 +1194,10 @@ void MainWindow::writeSettings()
}
m_settings->setValue ("PhaseEqualizationCoefficients", QVariant {coeffs});
}
+ m_settings->setValue ("actionDontSplitALLTXT", ui->actionDon_t_split_ALL_TXT->isChecked() );
+ m_settings->setValue ("splitAllTxtYearly", ui->actionSplit_ALL_TXT_yearly->isChecked() );
+ m_settings->setValue ("splitAllTxtMonthly", ui->actionSplit_ALL_TXT_monthly->isChecked() );
+ m_settings->setValue ("disableWritingOfAllTxt", ui->actionDisable_writing_of_ALL_TXT->isChecked() );
m_settings->endGroup();
}
@@ -1230,6 +1240,10 @@ void MainWindow::readSettings()
ui->actionAstronomical_data->setChecked (displayAstro);
m_settings->beginGroup("Common");
+ ui->actionDon_t_split_ALL_TXT->setChecked(m_settings->value("actionDontSplitALLTXT", true).toBool());
+ ui->actionSplit_ALL_TXT_yearly->setChecked(m_settings->value("splitAllTxtYearly", false).toBool());
+ ui->actionSplit_ALL_TXT_monthly->setChecked(m_settings->value("splitAllTxtMonthly", false).toBool());
+ ui->actionDisable_writing_of_ALL_TXT->setChecked(m_settings->value("disableWritingOfAllTxt", false).toBool());
m_mode=m_settings->value("Mode","JT9").toString();
ui->actionNone->setChecked(m_settings->value("SaveNone",true).toBool());
ui->actionSave_decoded->setChecked(m_settings->value("SaveDecoded",false).toBool());
@@ -3457,6 +3471,15 @@ void MainWindow::readFromStdout() //readFromStdout
ui->cbCQonly->isVisible() && ui->cbCQonly->isChecked(),
haveFSpread, fSpread);
+ if (m_config.highlight_DXcall () && (m_hisCall!="") && ((decodedtext.string().contains(QRegularExpression {"(\\w+) " + m_hisCall}))
+ || (decodedtext.string().contains(QRegularExpression {"(\\w+) <" + m_hisCall +">"}))
+ || (decodedtext.string().contains(QRegularExpression {"<(\\w+)> " + m_hisCall})))) {
+ ui->decodedTextBrowser->highlight_callsign(m_hisCall, QColor(255,0,0), QColor(255,255,255), true); // highlight dxCallEntry
+ }
+ if (m_config.highlight_DXgrid () && (m_hisGrid!="") && (decodedtext.string().contains(m_hisGrid))) {
+ ui->decodedTextBrowser->highlight_callsign(m_hisGrid, QColor(0,0,255), QColor(255,255,255), true); // highlight dxGridEntry
+ }
+
if(m_bBestSPArmed && m_mode=="FT4" && CALLING == m_QSOProgress) {
QString messagePriority=ui->decodedTextBrowser->CQPriority();
if(messagePriority!="") {
@@ -6013,6 +6036,8 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call,
m_xSent.clear ();
m_xRcvd.clear ();
+ if (m_config.clear_DXcall ()) ui->dxCallEntry->clear ();
+ if (m_config.clear_DXgrid ()) ui->dxGridEntry->clear ();
}
qint64 MainWindow::nWidgets(QString t)
@@ -7038,7 +7063,7 @@ void MainWindow::on_rptSpinBox_valueChanged(int n)
void MainWindow::on_tuneButton_clicked (bool checked)
{
- tuneATU_Timer.start (60000); // tune watchdog (60s)
+ tuneATU_Timer.start (120000); // tune watchdog (120s)
static bool lastChecked = false;
if (lastChecked == checked) return;
lastChecked = checked;
@@ -9226,6 +9251,7 @@ void MainWindow::foxTest()
void MainWindow::write_all(QString txRx, QString message)
{
+ if (!(ui->actionDisable_writing_of_ALL_TXT->isChecked())) {
QString line;
QString t;
QString msg;
@@ -9266,6 +9292,8 @@ void MainWindow::write_all(QString txRx, QString message)
}
QString file_name="ALL.TXT";
+ if (ui->actionSplit_ALL_TXT_yearly->isChecked()) file_name=(time.toString("yyyy") + "-" + "ALL.TXT");
+ if (ui->actionSplit_ALL_TXT_monthly->isChecked()) file_name=(time.toString("yyyy-MM") + "-" + "ALL.TXT");
if (m_mode=="WSPR") file_name="ALL_WSPR.TXT";
QFile f{m_config.writeable_data_dir().absoluteFilePath(file_name)};
if (f.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append)) {
@@ -9284,6 +9312,7 @@ void MainWindow::write_all(QString txRx, QString message)
QTimer::singleShot (0, [=] { // don't block guiUpdate
MessageBox::warning_message(this, tr ("Log File Error"), message2); });
}
+ }
}
void MainWindow::chkFT4()
diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui
index e77826657..ce38d9c6c 100644
--- a/widgets/mainwindow.ui
+++ b/widgets/mainwindow.ui
@@ -7,7 +7,7 @@
0
0
882
- 718
+ 658
@@ -560,7 +560,7 @@
-
-
+
-
@@ -2871,7 +2871,7 @@ QLabel[oob="true"] {
- Toggle FT8 hound mode on/off
+ Toggle FT8 hound mode On/Off
H
@@ -3036,6 +3036,11 @@ QLabel[oob="true"] {
+
+
+
+
+