Add features Highlight DX Call / DX Grid and Clear DX Call / DX Grid after QSO

This commit is contained in:
Uwe Risse 2022-01-11 10:51:48 +01:00
parent fb4eb56508
commit 947ab4eb25
4 changed files with 101 additions and 34 deletions

View File

@ -670,6 +670,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 +791,10 @@ 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_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)
{
@ -1422,6 +1430,10 @@ void Configuration::impl::initialize_models ()
ui_->only_fields_check_box->setChecked (highlight_only_fields_);
ui_->include_WAE_check_box->setChecked (include_WAE_entities_);
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 ();
}
@ -1578,6 +1590,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 ()
@ -1709,6 +1725,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 ();
}
@ -2196,6 +2216,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
}

View File

@ -184,6 +184,10 @@ public:
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;

View File

@ -181,29 +181,6 @@
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="DXCC_check_box">
<property name="toolTip">
<string>Show if decoded stations are new DXCC entities or worked before.</string>
</property>
<property name="text">
<string>Show &amp;DXCC, grid, and worked-before status</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="decodes_from_top_check_box">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Start new period decodes at top</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="ppfx_check_box">
<property name="text">
@ -265,13 +242,10 @@
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="insert_blank_check_box">
<property name="toolTip">
<string>Include a separator line between periods in the band activity window.</string>
</property>
<item row="5" column="0">
<widget class="QCheckBox" name="cbHighlightDXcall">
<property name="text">
<string>&amp;Blank line between decoding periods</string>
<string>Highlight DX Call in message</string>
</property>
</widget>
</item>
@ -285,6 +259,60 @@
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="DXCC_check_box">
<property name="toolTip">
<string>Show if decoded stations are new DXCC entities or worked before.</string>
</property>
<property name="text">
<string>Show &amp;DXCC, grid, and worked-before status</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="decodes_from_top_check_box">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Start new period decodes at top</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QCheckBox" name="cbClearDXgrid">
<property name="text">
<string>Clear DX Grid after QSO</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="insert_blank_check_box">
<property name="toolTip">
<string>Include a separator line between periods in the band activity window.</string>
</property>
<property name="text">
<string>&amp;Blank line between decoding periods</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="cbHighlightDXgrid">
<property name="text">
<string>Highlight DX Grid in message</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="cbClearDXcall">
<property name="text">
<string>Clear DX Call after QSO</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@ -3233,13 +3261,13 @@ Right click for insert and delete options.</string>
</connection>
</connections>
<buttongroups>
<buttongroup name="PTT_method_button_group"/>
<buttongroup name="TX_mode_button_group"/>
<buttongroup name="split_mode_button_group"/>
<buttongroup name="CAT_handshake_button_group"/>
<buttongroup name="TX_audio_source_button_group"/>
<buttongroup name="CAT_stop_bits_button_group"/>
<buttongroup name="CAT_handshake_button_group"/>
<buttongroup name="CAT_data_bits_button_group"/>
<buttongroup name="TX_mode_button_group"/>
<buttongroup name="special_op_activity_button_group"/>
<buttongroup name="PTT_method_button_group"/>
<buttongroup name="split_mode_button_group"/>
<buttongroup name="CAT_data_bits_button_group"/>
</buttongroups>
</ui>

View File

@ -3457,6 +3457,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 +6022,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)