diff --git a/Configuration.cpp b/Configuration.cpp index e9f5a997d..cfc9a0f43 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -465,6 +465,8 @@ private: Q_SLOT void on_rbRTTYroundup_toggled(); Q_SLOT void on_FieldDay_Exchange_textChanged(); Q_SLOT void on_RTTY_Exchange_textChanged(); + Q_SLOT void on_prompt_to_log_check_box_clicked(bool); + Q_SLOT void on_cbAutoLog_clicked(bool); // typenames used as arguments must match registered type names :( Q_SIGNAL void start_transceiver (unsigned seqeunce_number) const; @@ -586,6 +588,7 @@ private: bool log_as_RTTY_; bool report_in_comments_; bool prompt_to_log_; + bool autoLog_; bool insert_blank_; bool DXCC_; bool ppfx_; @@ -695,6 +698,7 @@ bool Configuration::monitor_last_used () const {return m_->rig_is_dummy_ || m_-> bool Configuration::log_as_RTTY () const {return m_->log_as_RTTY_;} bool Configuration::report_in_comments () const {return m_->report_in_comments_;} bool Configuration::prompt_to_log () const {return m_->prompt_to_log_;} +bool Configuration::autoLog() const {return m_->autoLog_;} bool Configuration::insert_blank () const {return m_->insert_blank_;} bool Configuration::DXCC () const {return m_->DXCC_;} bool Configuration::ppfx() const {return m_->ppfx_;} @@ -1223,6 +1227,7 @@ void Configuration::impl::initialize_models () ui_->log_as_RTTY_check_box->setChecked (log_as_RTTY_); ui_->report_in_comments_check_box->setChecked (report_in_comments_); ui_->prompt_to_log_check_box->setChecked (prompt_to_log_); + ui_->cbAutoLog->setChecked(autoLog_); ui_->insert_blank_check_box->setChecked (insert_blank_); ui_->DXCC_check_box->setChecked (DXCC_); ui_->ppfx_check_box->setChecked (ppfx_); @@ -1476,6 +1481,7 @@ void Configuration::impl::read_settings () rig_params_.ptt_port = settings_->value ("PTTport").toString (); data_mode_ = settings_->value ("DataMode", QVariant::fromValue (data_mode_none)).value (); prompt_to_log_ = settings_->value ("PromptToLog", false).toBool (); + autoLog_ = settings_->value ("AutoLog", false).toBool (); insert_blank_ = settings_->value ("InsertBlank", false).toBool (); DXCC_ = settings_->value ("DXCCEntity", false).toBool (); ppfx_ = settings_->value ("PrincipalPrefix", false).toBool (); @@ -1588,6 +1594,7 @@ void Configuration::impl::write_settings () settings_->setValue ("CATHandshake", QVariant::fromValue (rig_params_.handshake)); settings_->setValue ("DataMode", QVariant::fromValue (data_mode_)); settings_->setValue ("PromptToLog", prompt_to_log_); + settings_->setValue ("AutoLog", autoLog_); settings_->setValue ("InsertBlank", insert_blank_); settings_->setValue ("DXCCEntity", DXCC_); settings_->setValue ("PrincipalPrefix", ppfx_); @@ -2009,6 +2016,7 @@ void Configuration::impl::accept () log_as_RTTY_ = ui_->log_as_RTTY_check_box->isChecked (); report_in_comments_ = ui_->report_in_comments_check_box->isChecked (); prompt_to_log_ = ui_->prompt_to_log_check_box->isChecked (); + autoLog_ = ui_->cbAutoLog->isChecked(); insert_blank_ = ui_->insert_blank_check_box->isChecked (); DXCC_ = ui_->DXCC_check_box->isChecked (); ppfx_ = ui_->ppfx_check_box->isChecked (); @@ -2606,6 +2614,16 @@ void Configuration::impl::on_calibration_slope_ppm_spin_box_valueChanged (double rig_active_ = false; // force reset } +void Configuration::impl::on_prompt_to_log_check_box_clicked(bool checked) +{ + if(checked) ui_->cbAutoLog->setChecked(false); +} + +void Configuration::impl::on_cbAutoLog_clicked(bool checked) +{ + if(checked) ui_->prompt_to_log_check_box->setChecked(false); +} + void Configuration::impl::on_cbFox_clicked (bool checked) { if(checked) { diff --git a/Configuration.hpp b/Configuration.hpp index 10e915f26..557dcc175 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -117,6 +117,7 @@ public: bool log_as_RTTY () const; bool report_in_comments () const; bool prompt_to_log () const; + bool autoLog() const; bool insert_blank () const; bool DXCC () const; bool ppfx() const; diff --git a/Configuration.ui b/Configuration.ui index 47cd2147c..5e2993de9 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -1702,24 +1702,7 @@ QListView::item:hover { - - - - <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> - - - - - - - Some logging programs will not accept JT-65 or JT9 as a recognized mode. - - - Con&vert mode to RTTY - - - - + Some logging programs will not accept the type of reports @@ -1732,7 +1715,7 @@ comments field. - + Check this option to force the clearing of the DX Call @@ -1743,6 +1726,30 @@ and DX Grid fields when a 73 or free text message is sent. + + + + Some logging programs will not accept JT-65 or JT9 as a recognized mode. + + + Con&vert mode to RTTY + + + + + + + <html><head/><body><p>The callsign of the operator, if different from the station callsign.</p></body></html> + + + + + + + Log automatically + + + diff --git a/logqso.cpp b/logqso.cpp index 980cdcef2..e66f2e696 100644 --- a/logqso.cpp +++ b/logqso.cpp @@ -59,7 +59,8 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff, Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid, - bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox, QString const& opCall) + bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox, + bool bAutoLog, QString const& opCall) { if(!isHidden()) return; ui->call->setText(hisCall); @@ -87,7 +88,7 @@ void LogQSO::initLogQSO(QString const& hisCall, QString const& hisGrid, QString m_myGrid=myGrid; ui->band->setText (m_config->bands ()->find (dialFreq)); ui->loggedOperator->setText(opCall); - if(bFox) { + if(bFox or bAutoLog) { accept(); } else { show (); diff --git a/logqso.h b/logqso.h index fb92201e1..971117dd8 100644 --- a/logqso.h +++ b/logqso.h @@ -33,7 +33,8 @@ public: QString const& rptSent, QString const& rptRcvd, QDateTime const& dateTimeOn, QDateTime const& dateTimeOff, Radio::Frequency dialFreq, QString const& myCall, QString const& myGrid, - bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox, QString const& opCall); + bool noSuffix, bool toRTTY, bool dBtoComments, bool bFox, + bool bAutoLog, QString const& opCall); public slots: void accept(); diff --git a/mainwindow.cpp b/mainwindow.cpp index ed48651e6..b07da1832 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2388,13 +2388,12 @@ void MainWindow::on_actionColors_triggered() void MainWindow::on_actionMessage_averaging_triggered() { - if (!m_msgAvgWidget) - { - m_msgAvgWidget.reset (new MessageAveraging {m_settings, m_config.decoded_text_font ()}); + if(!m_msgAvgWidget) { + m_msgAvgWidget.reset (new MessageAveraging {m_settings, m_config.decoded_text_font ()}); - // Connect signals from Message Averaging window - connect (this, &MainWindow::finished, m_msgAvgWidget.data (), &MessageAveraging::close); - } + // Connect signals from Message Averaging window + connect (this, &MainWindow::finished, m_msgAvgWidget.data (), &MessageAveraging::close); + } m_msgAvgWidget->showNormal(); m_msgAvgWidget->raise (); m_msgAvgWidget->activateWindow (); @@ -3611,8 +3610,8 @@ void MainWindow::guiUpdate() if(m_config.id_after_73 ()) { icw[0] = m_ncw; } - if (m_config.prompt_to_log () && !m_tune) { - logQSOTimer.start (0); + if ((m_config.prompt_to_log() or m_config.autoLog()) && !m_tune) { + logQSOTimer.start(0); } } @@ -3735,7 +3734,7 @@ void MainWindow::guiUpdate() //Once per second: if(nsec != m_sec0) { -// qDebug() << "OneSec:"; +// qDebug() << "OneSec:" << m_config.autoLog(); if(m_freqNominal!=0 and m_freqNominal<50000000 and m_config.enable_VHF_features()) { if(!m_bVHFwarned) vhfWarning(); @@ -5166,11 +5165,12 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button if (dateTimeQSOOff < m_dateTimeQSOOn) dateTimeQSOOff = m_dateTimeQSOOn; QString grid=m_hisGrid; if(grid=="....") grid=""; + bool bAutoLog=m_config.autoLog() and m_nContest>0; m_logDlg->initLogQSO (m_hisCall, grid, m_modeTx, m_rptSent, m_rptRcvd, m_dateTimeQSOOn, dateTimeQSOOff, m_freqNominal + ui->TxFreqSpinBox->value(), m_config.my_callsign(), m_config.my_grid(), m_noSuffix, m_config.log_as_RTTY(), m_config.report_in_comments(), - m_config.bFox(), m_opCall); + m_config.bFox(), bAutoLog, m_opCall); if(m_nContest!=NONE) { if(m_nContest==NA_VHF) { m_xSent=m_config.my_grid().left(4); @@ -5198,6 +5198,9 @@ void MainWindow::cabLog() QTextStream out(&f); out << t << endl; f.close(); + if(m_msgAvgWidget != NULL and m_msgAvgWidget->isVisible()) { + m_msgAvgWidget->foxAddLog(t); + } } else { MessageBox::warning_message (this, tr("File Open Error"), tr("Cannot open \"%1\" for append: %2").arg(f.fileName()).arg(f.errorString())); @@ -6754,7 +6757,7 @@ void::MainWindow::VHF_features_enabled(bool b) ui->actionMessage_averaging->setEnabled(b); ui->actionEnable_AP_DXcall->setVisible (m_mode=="QRA64"); ui->actionEnable_AP_JT65->setVisible (b && m_mode=="JT65"); - if(!b && m_msgAvgWidget and !m_config.bFox()) { + if(!b && m_msgAvgWidget and !m_config.bFox() and !m_config.autoLog()) { if(m_msgAvgWidget->isVisible()) m_msgAvgWidget->close(); } } diff --git a/mainwindow.ui b/mainwindow.ui index 152684dc8..428c2872d 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -3287,13 +3287,13 @@ QPushButton[state="ok"] { - Fox Log + Fox or Contest Log - Fox Log + Fox or Contest Log - Fox Log + Fox or Contest Log