Autoreply is now off at startup by default. Rebranding the feature as networking and autoreply and is a 'mode' decision

This commit is contained in:
Jordan Sherer 2019-08-26 12:08:35 -04:00
parent d2210dc8c9
commit daa8cc2c3e
6 changed files with 412 additions and 313 deletions

View File

@ -631,7 +631,7 @@ private:
bool tx_qsy_allowed_;
bool spot_to_reporting_networks_;
bool transmit_directed_;
bool autoreply_off_at_startup_;
bool autoreply_on_at_startup_;
bool heartbeat_anywhere_;
bool heartbeat_qso_pause_;
bool relay_disabled_;
@ -770,12 +770,12 @@ void Configuration::set_spot_to_reporting_networks (bool spot)
}
bool Configuration::transmit_directed() const { return m_->transmit_directed_; }
bool Configuration::autoreply_off_at_startup () const {
bool Configuration::autoreply_on_at_startup () const {
// auto-reply cannot be on at startup if the callsign or grid is empty
if(my_callsign().isEmpty() || my_grid().isEmpty()){
return true;
return false;
}
return m_->autoreply_off_at_startup_;
return m_->autoreply_on_at_startup_;
}
bool Configuration::heartbeat_anywhere() const { return m_->heartbeat_anywhere_;}
bool Configuration::heartbeat_qso_pause() const { return m_->heartbeat_qso_pause_;}
@ -1451,7 +1451,7 @@ void Configuration::impl::initialize_models ()
ui_->tx_qsy_check_box->setChecked (tx_qsy_allowed_);
ui_->psk_reporter_check_box->setChecked (spot_to_reporting_networks_);
ui_->transmit_directed_check_box->setChecked(transmit_directed_);
ui_->autoreply_off_check_box->setChecked (autoreply_off_at_startup_);
ui_->autoreply_on_check_box->setChecked (autoreply_on_at_startup_);
ui_->heartbeat_anywhere_check_box->setChecked(heartbeat_anywhere_);
ui_->heartbeat_qso_pause_check_box->setChecked(heartbeat_qso_pause_);
ui_->relay_disabled_check_box->setChecked(relay_disabled_);
@ -1725,7 +1725,7 @@ void Configuration::impl::read_settings ()
type_2_msg_gen_ = settings_->value ("Type2MsgGen", QVariant::fromValue (Configuration::type_2_msg_3_full)).value<Configuration::Type2MsgGen> ();
transmit_directed_ = settings_->value ("TransmitDirected", true).toBool();
autoreply_off_at_startup_ = settings_->value ("AutoreplyOFF", false).toBool ();
autoreply_on_at_startup_ = settings_->value ("AutoreplyOnAtStartup", false).toBool ();
heartbeat_anywhere_ = settings_->value("BeaconAnywhere", false).toBool();
heartbeat_qso_pause_ = settings_->value("HeartbeatQSOPause", true).toBool();
relay_disabled_ = settings_->value ("RelayOFF", false).toBool ();
@ -1907,7 +1907,7 @@ void Configuration::impl::write_settings ()
settings_->setValue ("AudioOutputChannel", AudioDevice::toString (audio_output_channel_));
settings_->setValue ("Type2MsgGen", QVariant::fromValue (type_2_msg_gen_));
settings_->setValue ("TransmitDirected", transmit_directed_);
settings_->setValue ("AutoreplyOFF", autoreply_off_at_startup_);
settings_->setValue ("AutoreplyOnAtStartup", autoreply_on_at_startup_);
settings_->setValue ("BeaconAnywhere", heartbeat_anywhere_);
settings_->setValue ("HeartbeatQSOPause", heartbeat_qso_pause_);
settings_->setValue ("RelayOFF", relay_disabled_);
@ -2469,7 +2469,7 @@ void Configuration::impl::accept ()
id_after_73_ = ui_->CW_id_after_73_check_box->isChecked ();
tx_qsy_allowed_ = ui_->tx_qsy_check_box->isChecked ();
transmit_directed_ = ui_->transmit_directed_check_box->isChecked();
autoreply_off_at_startup_ = ui_->autoreply_off_check_box->isChecked ();
autoreply_on_at_startup_ = ui_->autoreply_on_check_box->isChecked ();
heartbeat_anywhere_ = ui_->heartbeat_anywhere_check_box->isChecked();
heartbeat_qso_pause_ = ui_->heartbeat_qso_pause_check_box->isChecked();
relay_disabled_ = ui_->relay_disabled_check_box->isChecked();

View File

@ -129,7 +129,7 @@ public:
bool spot_to_reporting_networks () const;
void set_spot_to_reporting_networks (bool);
bool transmit_directed() const;
bool autoreply_off_at_startup () const;
bool autoreply_on_at_startup () const;
bool heartbeat_anywhere() const;
bool heartbeat_qso_pause() const;
bool relay_off() const;

View File

@ -63,7 +63,7 @@
<x>0</x>
<y>0</y>
<width>738</width>
<height>447</height>
<height>453</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
@ -279,7 +279,7 @@
<x>0</x>
<y>0</y>
<width>724</width>
<height>789</height>
<height>508</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_26">
@ -373,20 +373,6 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="heartbeat_anywhere_check_box">
<property name="text">
<string>Allow heartbeat transmissions outside of heartbeat sub-channel (500Hz - 1000Hz)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="heartbeat_qso_pause_check_box">
<property name="text">
<string>Pause heartbeat transmissions while in a QSO (i.e., callsign is selected)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="transmit_directed_check_box">
<property name="text">
@ -565,59 +551,6 @@ text message.</string>
</widget>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_9">
<property name="title">
<string>Autoreply</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="autoreply_off_check_box">
<property name="text">
<string>Autoreply (AUTO) off at startup</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="relay_disabled_check_box">
<property name="text">
<string>Disable message relay (&gt;) when AUTO is enabled</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_23">
<property name="text">
<string>Only autoreply to these callsigns (comma separated):</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="auto_whitelist_line_edit"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Never autoreply to these callsigns (comma separated):</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="auto_blacklist_line_edit"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_26">
<property name="text">
<string>Never ACK HBs from these callsigns (comma separated):</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="hb_blacklist_line_edit"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_15">
<property name="title">
@ -711,57 +644,6 @@ text message.</string>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_8">
<property name="title">
<string>Idle Timeout</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_32">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_12">
<item>
<widget class="QLabel" name="label_10">
<property name="text">
<string>Disable automatic transmissions after:</string>
</property>
<property name="buddy">
<cstring>tx_watchdog_spin_box</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="tx_watchdog_spin_box">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Number of minutes before unattended heartbeat transmissions are aborted.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="specialValueText">
<string>Disabled</string>
</property>
<property name="suffix">
<string> minutes of inactivity</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>1440</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>60</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="heartbeatGroupBox">
<property name="visible">
@ -887,6 +769,200 @@ text message.</string>
</item>
</layout>
</widget>
<widget class="QWidget" name="autoreplyTab">
<attribute name="title">
<string>Networking &amp;&amp; Autoreply</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_17">
<item>
<widget class="QScrollArea" name="scrollArea_11">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents_8">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>738</width>
<height>453</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_16">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QGroupBox" name="groupBox_13">
<property name="title">
<string>Heartbeat Network</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_34">
<item>
<widget class="QCheckBox" name="heartbeat_anywhere_check_box">
<property name="text">
<string>Allow heartbeat transmissions outside of heartbeat sub-channel (500Hz - 1000Hz)</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="heartbeat_qso_pause_check_box">
<property name="text">
<string>Pause heartbeat transmissions while in a QSO (i.e., callsign is selected)</string>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_16">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_26">
<property name="text">
<string>Never ACK HBs from these callsigns (comma separated):</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="hb_blacklist_line_edit"/>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_9">
<property name="title">
<string>Autoreply</string>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QCheckBox" name="autoreply_on_check_box">
<property name="text">
<string>Turn autoreply on at startup</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="relay_disabled_check_box">
<property name="text">
<string>Disable message relay (&gt;) when autoreply is enabled</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_23">
<property name="text">
<string>Only autoreply to these callsigns (comma separated):</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="auto_whitelist_line_edit"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Never autoreply to these callsigns (comma separated):</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="auto_blacklist_line_edit"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_8">
<property name="title">
<string>Idle Timeout</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_32">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_12">
<item>
<widget class="QLabel" name="label_10">
<property name="text">
<string>Disable automatic transmissions after:</string>
</property>
<property name="buddy">
<cstring>tx_watchdog_spin_box</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="tx_watchdog_spin_box">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Number of minutes before unattended heartbeat transmissions are aborted.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="specialValueText">
<string>Disabled</string>
</property>
<property name="suffix">
<string> minutes of inactivity</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>1440</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>60</number>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_18">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>220</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
@ -1033,8 +1109,8 @@ radio interface behave as expected.</string>
<rect>
<x>0</x>
<y>0</y>
<width>283</width>
<height>397</height>
<width>264</width>
<height>435</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_27">
@ -1455,7 +1531,7 @@ a few, particularly some Kenwood rigs, require it).</string>
<x>0</x>
<y>0</y>
<width>718</width>
<height>449</height>
<height>490</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_28">
@ -1859,7 +1935,7 @@ this setting allows you to select which audio input will be used
<x>0</x>
<y>0</y>
<width>760</width>
<height>498</height>
<height>502</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_29">
@ -2172,7 +2248,7 @@ both here.</string>
<x>0</x>
<y>0</y>
<width>746</width>
<height>630</height>
<height>663</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_30">
@ -2573,7 +2649,7 @@ for assessing propagation and system performance.</string>
</widget>
</item>
<item row="1" column="0">
<layout class="QFormLayout" name="formLayout_20">
<layout class="QFormLayout" name="formLayout_22">
<item row="0" column="0">
<widget class="QLabel" name="n1mm_server_name_label">
<property name="text">
@ -2667,7 +2743,7 @@ for assessing propagation and system performance.</string>
<x>0</x>
<y>0</y>
<width>760</width>
<height>498</height>
<height>502</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_31">
@ -2871,24 +2947,24 @@ Right click for insert and delete options.</string>
<attribute name="horizontalHeaderCascadingSectionResizes">
<bool>true</bool>
</attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>100</number>
</attribute>
<attribute name="horizontalHeaderDefaultSectionSize">
<number>120</number>
</attribute>
<attribute name="horizontalHeaderMinimumSectionSize">
<number>100</number>
</attribute>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>24</number>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize">
<number>30</number>
</attribute>
<attribute name="verticalHeaderMinimumSectionSize">
<number>24</number>
</attribute>
</widget>
</item>
</layout>
@ -3048,7 +3124,7 @@ QListView::item:hover {
<x>0</x>
<y>0</y>
<width>724</width>
<height>434</height>
<height>418</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_14">
@ -3501,7 +3577,7 @@ QListView::item:hover {
<x>0</x>
<y>0</y>
<width>233</width>
<height>263</height>
<height>253</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_5">
@ -3704,8 +3780,8 @@ QListView::item:hover {
<rect>
<x>0</x>
<y>0</y>
<width>287</width>
<height>99</height>
<width>277</width>
<height>93</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_8">
@ -4126,19 +4202,12 @@ soundcard changes</string>
<tabstop>monitor_off_check_box</tabstop>
<tabstop>tx_qsy_check_box</tabstop>
<tabstop>avoid_forced_identify_check_box</tabstop>
<tabstop>heartbeat_anywhere_check_box</tabstop>
<tabstop>heartbeat_qso_pause_check_box</tabstop>
<tabstop>transmit_directed_check_box</tabstop>
<tabstop>spellcheck_check_box</tabstop>
<tabstop>reset_activity_check_box</tabstop>
<tabstop>checkForUpdates_checkBox</tabstop>
<tabstop>autoreply_off_check_box</tabstop>
<tabstop>relay_disabled_check_box</tabstop>
<tabstop>auto_whitelist_line_edit</tabstop>
<tabstop>auto_blacklist_line_edit</tabstop>
<tabstop>callsign_aging_spin_box</tabstop>
<tabstop>activity_aging_spin_box</tabstop>
<tabstop>tx_watchdog_spin_box</tabstop>
<tabstop>eot_line_edit</tabstop>
<tabstop>rig_combo_box</tabstop>
<tabstop>CAT_poll_interval_spin_box</tabstop>
@ -4315,11 +4384,11 @@ soundcard changes</string>
</connections>
<buttongroups>
<buttongroup name="PTT_method_button_group"/>
<buttongroup name="split_mode_button_group"/>
<buttongroup name="CAT_stop_bits_button_group"/>
<buttongroup name="TX_mode_button_group"/>
<buttongroup name="CAT_data_bits_button_group"/>
<buttongroup name="TX_audio_source_button_group"/>
<buttongroup name="CAT_handshake_button_group"/>
<buttongroup name="TX_mode_button_group"/>
<buttongroup name="TX_audio_source_button_group"/>
<buttongroup name="split_mode_button_group"/>
<buttongroup name="CAT_data_bits_button_group"/>
<buttongroup name="CAT_stop_bits_button_group"/>
</buttongroups>
</ui>

View File

@ -1152,9 +1152,12 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
setFreqOffsetForRestore(f, false);
ui->cbVHFcontest->setChecked(false); // this needs to always be false
ui->actionModeAutoreply->setChecked(m_config.autoreply_on_at_startup());
ui->spotButton->setChecked(m_config.spot_to_reporting_networks());
//m_checker = new JSCChecker(ui->extFreeTextMsgEdit, this);
// prep
prepareAutoreplyMode(ui->actionModeAutoreply->isChecked());
prepareSpotting();
auto enterFilter = new EnterKeyPressEater();
connect(enterFilter, &EnterKeyPressEater::enterKeyPressed, this, [this](QObject *, QKeyEvent *, bool *pProcessed){
@ -2772,7 +2775,6 @@ void MainWindow::on_menuControl_aboutToShow(){
#endif
ui->actionEnable_Spotting->setChecked(ui->spotButton->isChecked());
ui->actionEnable_Auto_Reply->setChecked(ui->autoReplyButton->isChecked());
QMenu * heartbeatMenu = new QMenu(this->menuBar());
buildHeartbeatMenu(heartbeatMenu);
@ -2797,10 +2799,6 @@ void MainWindow::on_actionEnable_Spotting_toggled(bool checked){
ui->spotButton->setChecked(checked);
}
void MainWindow::on_actionEnable_Auto_Reply_toggled(bool checked){
ui->autoReplyButton->setChecked(checked);
}
void MainWindow::on_menuWindow_aboutToShow(){
ui->actionShow_Fullscreen->setChecked((windowState() & Qt::WindowFullScreen) == Qt::WindowFullScreen);
@ -3194,13 +3192,6 @@ void MainWindow::on_autoButton_clicked (bool checked)
}
}
void MainWindow::on_autoReplyButton_toggled(bool checked){
resetPushButtonToggleText(ui->autoReplyButton);
// update the HB button immediately
updateRepeatButtonDisplay();
}
void MainWindow::on_monitorButton_toggled(bool checked){
resetPushButtonToggleText(ui->monitorButton);
}
@ -6926,6 +6917,23 @@ void MainWindow::displayWidgets(qint64 n)
m_lastCallsign.clear (); // ensures Tx5 is updated for new modes
}
void MainWindow::on_actionModeJS8_triggered(){
// TODO: uncheck all other modes
}
void MainWindow::on_actionModeAutoreply_toggled(bool checked){
prepareAutoreplyMode(checked);
}
void MainWindow::prepareAutoreplyMode(bool enabled){
// heartbeat is now only available in autoreply mode
ui->hbMacroButton->setVisible(enabled);
ui->actionHeartbeat->setVisible(enabled);
// update the HB button immediately
updateRepeatButtonDisplay();
}
void MainWindow::on_actionFT8_triggered()
{
m_mode="FT8";
@ -7419,10 +7427,10 @@ void MainWindow::buildFrequencyMenu(QMenu *menu){
void MainWindow::buildHeartbeatMenu(QMenu *menu){
auto selectedCallsign = callsignSelected();
bool enabled = ui->autoReplyButton->isChecked() && selectedCallsign.isEmpty();
bool enabled = ui->actionModeAutoreply->isChecked() && selectedCallsign.isEmpty();
auto text = "Send Heartbeat Acknowledgments (ACK)";
if(!ui->autoReplyButton->isChecked()){
text = "Send Heartbeat Acknowledgments (ACK) (Disabled: AUTO is off)";
if(!ui->actionModeAutoreply->isChecked()){
text = "Send Heartbeat Acknowledgments (ACK) (Disabled: Autoreply is off)";
}
if(!selectedCallsign.isEmpty()){
text = "Send Heartbeat Acknowledgments (ACK) (Disabled: Currently in QSO)";
@ -8911,8 +8919,6 @@ void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const&
{
// initializing
on_monitorButton_clicked (!m_config.monitor_off_at_startup ());
ui->autoReplyButton->setChecked(!m_config.autoreply_off_at_startup());
}
if (s.frequency () != old_state.frequency () || s.split () != m_splitMode)
@ -9418,7 +9424,7 @@ void MainWindow::updateButtonDisplay(){
void MainWindow::updateRepeatButtonDisplay(){
auto selectedCallsign = callsignSelected();
auto hbBase = m_hbAutoAck && ui->autoReplyButton->isChecked() && selectedCallsign.isEmpty() ? "HB + ACK" : "HB";
auto hbBase = m_hbAutoAck && ui->actionModeAutoreply->isChecked() && selectedCallsign.isEmpty() ? "HB + ACK" : "HB";
if(ui->hbMacroButton->isChecked() && m_hbInterval > 0 && m_nextHeartbeat.isValid()){
auto secs = DriftingDateTime::currentDateTimeUtc().secsTo(m_nextHeartbeat);
if(secs > 0){
@ -10193,15 +10199,15 @@ QStringList MainWindow::generateStatusFlags() {
flags.append("HB");
}
if(ui->autoReplyButton->isChecked()){
if(ui->actionModeAutoreply->isChecked()){
flags.append("AUTO");
}
if(ui->autoReplyButton->isChecked() && !m_config.relay_off()){
if(ui->actionModeAutoreply->isChecked() && !m_config.relay_off()){
flags.append("RELAY");
}
if(ui->spotButton->isChecked()){
if(m_config.spot_to_reporting_networks()){
flags.append("SPOT");
}
@ -10663,7 +10669,7 @@ void MainWindow::processCommandActivity() {
// PROCESS ACTIVE HEARTBEAT
// if we have auto reply enabled and auto ack enabled and no callsign is selected
else if (d.cmd == " HB" && ui->autoReplyButton->isChecked() && m_hbAutoAck && selectedCallsign.isEmpty()){
else if (d.cmd == " HB" && ui->actionModeAutoreply->isChecked() && m_hbAutoAck && selectedCallsign.isEmpty()){
// check to make sure this callsign isn't blacklisted
if(m_config.hb_blacklist().contains(d.from) || m_config.hb_blacklist().contains(Radio::base_callsign(d.from))){
@ -10806,7 +10812,7 @@ void MainWindow::processCommandActivity() {
}
// PROCESS BUFFERED QUERY MSGS
else if (d.cmd == " QUERY MSGS" && ui->autoReplyButton->isChecked()){
else if (d.cmd == " QUERY MSGS" && ui->actionModeAutoreply->isChecked()){
auto who = d.from; // keep in mind, this is the sender, not the original requestor if relayed
auto replyPath = d.from;
@ -10830,7 +10836,7 @@ void MainWindow::processCommandActivity() {
}
// PROCESS BUFFERED QUERY CALL
else if (d.cmd == " QUERY CALL" && ui->autoReplyButton->isChecked()){
else if (d.cmd == " QUERY CALL" && ui->actionModeAutoreply->isChecked()){
auto replyPath = d.from;
if(d.relayPath.contains(">")){
replyPath = d.relayPath;
@ -10900,7 +10906,7 @@ void MainWindow::processCommandActivity() {
}
// do not queue @ALLCALL replies if auto-reply is not checked
if(!ui->autoReplyButton->isChecked() && isAllCall){
if(!ui->actionModeAutoreply->isChecked() && isAllCall){
continue;
}
@ -11140,7 +11146,7 @@ void MainWindow::processAlertReplyForCommand(CommandDetail d, QString from, QStr
}
void MainWindow::processSpots() {
if(!ui->spotButton->isChecked()){
if(!m_config.spot_to_reporting_networks()){
m_rxCallQueue.clear();
return;
}
@ -11231,7 +11237,7 @@ void MainWindow::processTxQueue(){
if(message.priority >= PriorityHigh ||
message.message.contains(" HB ") ||
message.message.contains(" ACK ") ||
ui->autoReplyButton->isChecked()
ui->actionModeAutoreply->isChecked()
){
// then try to set the frequency...
setFreqOffsetForRestore(f, true);
@ -12652,12 +12658,12 @@ void MainWindow::tx_watchdog (bool triggered)
tx_status_label.setText ("Idle timeout");
// if the watchdog is triggered...we're no longer active
bool wasAuto = ui->autoReplyButton->isChecked();
bool wasAuto = ui->actionModeAutoreply->isChecked();
bool wasHB = ui->hbMacroButton->isChecked();
bool wasCQ = ui->cqMacroButton->isChecked();
// save the button states
ui->autoReplyButton->setChecked(false);
ui->actionModeAutoreply->setChecked(false);
ui->hbMacroButton->setChecked(false);
ui->cqMacroButton->setChecked(false);
@ -12672,7 +12678,7 @@ void MainWindow::tx_watchdog (bool triggered)
connect(msgBox, &QMessageBox::finished, this, [this, wasAuto, wasHB, wasCQ](int /*result*/) {
// restore the button states
ui->autoReplyButton->setChecked(wasAuto);
ui->actionModeAutoreply->setChecked(wasAuto);
ui->hbMacroButton->setChecked(wasHB);
ui->cqMacroButton->setChecked(wasCQ);
@ -12690,7 +12696,7 @@ void MainWindow::tx_watchdog (bool triggered)
resetMessageTransmitQueue();
// restore the button states
ui->autoReplyButton->setChecked(wasAuto);
ui->actionModeAutoreply->setChecked(wasAuto);
ui->hbMacroButton->setChecked(wasHB);
ui->cqMacroButton->setChecked(wasCQ);
#endif

View File

@ -180,7 +180,6 @@ private slots:
void on_menuControl_aboutToShow();
void on_actionCheck_for_Updates_triggered();
void on_actionEnable_Spotting_toggled(bool checked);
void on_actionEnable_Auto_Reply_toggled(bool checked);
void on_menuWindow_aboutToShow();
void on_actionFocus_Message_Reply_Area_triggered();
void on_actionFocus_Band_Activity_Table_triggered();
@ -260,6 +259,9 @@ private slots:
void on_dxCallEntry_returnPressed ();
void on_genStdMsgsPushButton_clicked();
void on_logQSOButton_clicked();
void on_actionModeJS8_triggered();
void on_actionModeAutoreply_toggled(bool checked);
void prepareAutoreplyMode(bool enabled);
void on_actionFT8_triggered();
void on_TxFreqSpinBox_valueChanged(int arg1);
void on_actionSave_decoded_triggered();
@ -369,7 +371,6 @@ private slots:
void stop_tuning ();
void stopTuneATU();
void auto_tx_mode(bool);
void on_autoReplyButton_toggled(bool checked);
void on_monitorButton_toggled(bool checked);
void on_monitorTxButton_toggled(bool checked);
void on_tuneButton_toggled(bool checked);

View File

@ -533,7 +533,7 @@ QPushButton:checked {
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QGridLayout" name="gridLayout_8" columnstretch="1,1,1" columnminimumwidth="75,75,75">
<layout class="QGridLayout" name="gridLayout_8" rowstretch="0,0,0,0" columnstretch="1,1,1">
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
@ -552,8 +552,8 @@ QPushButton:checked {
<property name="spacing">
<number>10</number>
</property>
<item row="2" column="0">
<widget class="QPushButton" name="spotButton">
<item row="1" column="1">
<widget class="QPushButton" name="monitorTxButton">
<property name="enabled">
<bool>true</bool>
</property>
@ -580,8 +580,8 @@ QPushButton:checked {
<pointsize>9</pointsize>
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enable or disable spotting of callsigns heard to PSKReporter&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<property name="visible">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
@ -593,11 +593,11 @@ QPushButton:checked {
}
QPushButton:checked {
background-color:#6699ff;
background-color:#FF2222;
}</string>
</property>
<property name="text">
<string>SPOT</string>
<string>TX</string>
</property>
<property name="checkable">
<bool>true</bool>
@ -662,6 +662,93 @@ QPushButton:checked {
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="logQSOButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="visible">
<bool>true</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Insert a new entry into the log&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color:lightgray;
padding:0.25em 0.25em; font-weight:normal;
border-style:solid;
border-width:0px;
border-radius:2px;
}
QPushButton:checked {
background-color:#6699ff;
}</string>
</property>
<property name="text">
<string>LOG</string>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="tuneButton">
<property name="enabled">
@ -717,95 +804,8 @@ QPushButton:checked {
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="monitorTxButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="visible">
<bool>true</bool>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color:lightgray;
padding:0.25em 0.25em; font-weight:normal;
border-style:solid;
border-width:0px;
border-radius:2px;
}
QPushButton:checked {
background-color:#FF2222;
}</string>
</property>
<property name="text">
<string>TX</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="autoReplyButton">
<widget class="QPushButton" name="miscButton">
<property name="enabled">
<bool>true</bool>
</property>
@ -833,23 +833,23 @@ QPushButton:checked {
</font>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enable or disable automatic station replies to directed queries&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color:lightgray;
padding:0.25em 0.25em; font-weight:normal;
border-style:solid;
border-width:0px;
border-radius:2px;
}
background-color:lightgray;
padding:0.25em 0.25em; font-weight:normal;
border-style:solid;
border-width:0px;
border-radius:2px;
}
QPushButton:checked {
background-color:#6699ff;
QPushButton:checked {
background-color:#6699ff;
}</string>
</property>
<property name="text">
<string>AUTO</string>
<string>...</string>
</property>
<property name="checkable">
<bool>true</bool>
@ -859,8 +859,8 @@ QPushButton:checked {
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="logQSOButton">
<item row="2" column="0">
<widget class="QPushButton" name="spotButton">
<property name="enabled">
<bool>true</bool>
</property>
@ -887,27 +887,27 @@ QPushButton:checked {
<pointsize>9</pointsize>
</font>
</property>
<property name="visible">
<bool>true</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Insert a new entry into the log&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Transmit a tuning tone&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="styleSheet">
<string notr="true">QPushButton {
background-color:lightgray;
padding:0.25em 0.25em; font-weight:normal;
border-style:solid;
border-width:0px;
border-radius:2px;
background-color:lightgray;
padding:0.25em 0.25em; font-weight:normal;
border-style:solid;
border-width:0px;
border-radius:2px;
}
QPushButton:checked {
QPushButton:checked {
background-color:#6699ff;
}</string>
</property>
<property name="text">
<string>LOG</string>
<string>SPOT</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="flat">
<bool>false</bool>
@ -4790,9 +4790,6 @@ list. The list can be maintained in Settings (F2).</string>
<addaction name="actionSetOffset"/>
<addaction name="menuFocus"/>
<addaction name="separator"/>
<addaction name="actionEnable_Spotting"/>
<addaction name="actionEnable_Auto_Reply"/>
<addaction name="separator"/>
<addaction name="actionHeartbeat"/>
<addaction name="actionCQ"/>
<addaction name="separator"/>
@ -4802,6 +4799,8 @@ list. The list can be maintained in Settings (F2).</string>
<string>Mode</string>
</property>
<addaction name="actionModeJS8"/>
<addaction name="separator"/>
<addaction name="actionModeAutoreply"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuConfig"/>
@ -5745,6 +5744,30 @@ list. The list can be maintained in Settings (F2).</string>
<string>AUTO</string>
</property>
</action>
<action name="actionModeAutoreply">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Enable Networking &amp;&amp; Autoreply</string>
</property>
</action>
<action name="actionModeRelay">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Messaging</string>
</property>
</action>
<action name="actionModeHeartbeat">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Heartbeat</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>