diff --git a/Network/NetworkMessage.hpp b/Network/NetworkMessage.hpp index d1cbc67cb..c211abb0f 100644 --- a/Network/NetworkMessage.hpp +++ b/Network/NetworkMessage.hpp @@ -197,9 +197,9 @@ * 3 -> FIELD DAY * 4 -> RTTY RU * 5 -> WW DIGI - * 6 -> ARRL DIGI - * 7 -> FOX - * 8 -> HOUND + * 6 -> FOX + * 7 -> HOUND + * 8 -> ARRL DIGI * * The Frequency Tolerance and T/R period fields may have a value * of the maximum quint32 value which implies the field is not diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ef59a5668..6175d00b4 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -1373,12 +1373,12 @@ void MainWindow::readSettings() void MainWindow::checkMSK144ContestType() { - if(SpecOp::NONE != m_config.special_op_id()) + if(SpecOp::NONE != m_specOp) { - if(m_mode=="MSK144" && SpecOp::EU_VHF < m_config.special_op_id()) + if(m_mode=="MSK144" && SpecOp::EU_VHF < m_specOp) { MessageBox::warning_message (this, tr ("Improper mode"), - "Mode will be changed to FT8. MSK144 not available if Field Day, WW Digi, RTTY or Fox/Hound is selected."); + "Mode will be changed to FT8. MSK144 not available if Fox, Hound, Field Day, FT Roundup, WW Digi. or ARRL Digi contest is selected."); on_actionFT8_triggered(); } } @@ -1898,7 +1898,7 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog // things that might change that we need know about auto callsign = m_config.my_callsign (); auto my_grid = m_config.my_grid (); - SpecOp nContest0=m_config.special_op_id(); + SpecOp nContest0=m_specOp; auto psk_on = m_config.spot_to_psk_reporter (); if (QDialog::Accepted == m_config.exec ()) { checkMSK144ContestType(); @@ -1964,16 +1964,17 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog ui->actionEnable_AP_JT65->setVisible(false); ui->actionAuto_Clear_Avg->setVisible(false); } - if(m_config.special_op_id()!=nContest0) { + m_specOp=m_config.special_op_id(); + if(m_specOp!=nContest0) { ui->tx1->setEnabled(true); ui->txb1->setEnabled(true); } chkFT4(); - if(SpecOp::EU_VHF==m_config.special_op_id() and m_config.my_grid().size()<6) { + if(SpecOp::EU_VHF==m_specOp and m_config.my_grid().size()<6) { MessageBox::information_message (this, "EU VHF Contest messages require a 6-character locator."); } - if((m_config.special_op_id()==SpecOp::FOX or m_config.special_op_id()==SpecOp::HOUND) and + if((m_specOp==SpecOp::FOX or m_specOp==SpecOp::HOUND) and m_mode!="FT8") { MessageBox::information_message (this, "Fox-and-Hound operation is available only in FT8 mode.\nGo back and change your selection."); @@ -2062,7 +2063,7 @@ void MainWindow::auto_tx_mode (bool state) void MainWindow::keyPressEvent (QKeyEvent * e) { - if(SpecOp::FOX == m_config.special_op_id()) { + if(SpecOp::FOX == m_specOp) { switch (e->key()) { case Qt::Key_Return: doubleClickOnCall2(Qt::KeyboardModifier(Qt::ShiftModifier + Qt::ControlModifier + Qt::AltModifier)); @@ -2077,7 +2078,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e) QMainWindow::keyPressEvent (e); } - if(SpecOp::HOUND == m_config.special_op_id()) { + if(SpecOp::HOUND == m_specOp) { switch (e->key()) { case Qt::Key_Return: auto_tx_mode(true); @@ -2212,11 +2213,11 @@ void MainWindow::keyPressEvent (QKeyEvent * e) abortQSO(); return; case Qt::Key_E: - if((e->modifiers() & Qt::ShiftModifier) and SpecOp::FOX > m_config.special_op_id()) { + if((e->modifiers() & Qt::ShiftModifier) and m_specOp!=SpecOp::FOX and m_specOp!=SpecOp::HOUND) { ui->txFirstCheckBox->setChecked(false); return; } - else if((e->modifiers() & Qt::ControlModifier) and SpecOp::FOX > m_config.special_op_id()) { + else if((e->modifiers() & Qt::ControlModifier) and m_specOp!=SpecOp::FOX and m_specOp!=SpecOp::HOUND) { ui->txFirstCheckBox->setChecked(true); return; } @@ -3218,8 +3219,8 @@ void MainWindow::decode() //decode() dec_data.params.nfa=m_wideGraph->nStartFreq(); dec_data.params.nfSplit=m_wideGraph->Fmin(); dec_data.params.nfb=m_wideGraph->Fmax(); - if(m_mode=="FT8" and SpecOp::HOUND == m_config.special_op_id() and !ui->cbRxAll->isChecked()) dec_data.params.nfb=1000; - if(m_mode=="FT8" and SpecOp::FOX == m_config.special_op_id() ) dec_data.params.nfqso=200; + if(m_mode=="FT8" and SpecOp::HOUND == m_specOp and !ui->cbRxAll->isChecked()) dec_data.params.nfb=1000; + if(m_mode=="FT8" and SpecOp::FOX == m_specOp ) dec_data.params.nfqso=200; dec_data.params.ntol=ui->sbFtol->value (); if(!m_config.enable_VHF_features()) { dec_data.params.ntol=20; @@ -3272,7 +3273,7 @@ void MainWindow::decode() //decode() dec_data.params.emedelay=0.0; if(m_config.decode_at_52s()) dec_data.params.emedelay=2.5; dec_data.params.minSync=ui->syncSpinBox->isVisible () ? m_minSync : 0; - dec_data.params.nexp_decode = static_cast<int> (m_config.special_op_id()); + dec_data.params.nexp_decode = static_cast<int> (m_specOp); if(m_config.single_decode()) dec_data.params.nexp_decode += 32; if(m_config.enable_VHF_features()) dec_data.params.nexp_decode += 64; if(m_mode.startsWith("FST4")) dec_data.params.nexp_decode += 256*(ui->sbNB->value()+3); @@ -3435,7 +3436,7 @@ void MainWindow::decodeDone () ui->DecodeButton->setChecked (false); decodeBusy(false); m_RxLog=0; - if(SpecOp::FOX == m_config.special_op_id()) houndCallers(); + if(SpecOp::FOX == m_specOp) houndCallers(); to_jt9(m_ihsym,-1,1); //Tell jt9 we know it has finished m_startAnother=m_loopall; @@ -3628,7 +3629,7 @@ void MainWindow::readFromStdout() //readFromStdout bool bDisplayPoints = false; if(m_ActiveStationsWidget!=NULL) { bDisplayPoints=(m_mode=="FT4" or m_mode=="FT8") and - (m_config.special_op_id()==SpecOp::ARRL_DIGI or m_ActiveStationsWidget->isVisible()); + (m_specOp==SpecOp::ARRL_DIGI or m_ActiveStationsWidget->isVisible()); } while(proc_jt9.canReadLine()) { auto line_read = proc_jt9.readLine (); @@ -3710,7 +3711,7 @@ void MainWindow::readFromStdout() //readFromStdout if (line_read.left(ntime) != m_tBlankLine) { ui->decodedTextBrowser->new_period (); if (m_config.insert_blank () - && SpecOp::FOX != m_config.special_op_id()) { + && SpecOp::FOX != m_specOp) { QString band; if(((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*int(m_TRperiod)/4) or m_displayBand) { @@ -3727,7 +3728,7 @@ void MainWindow::readFromStdout() //readFromStdout DecodedText decodedtext0 {QString::fromUtf8(line_read.constData())}; DecodedText decodedtext {QString::fromUtf8(line_read.constData()).remove("TU; ")}; - if(m_mode=="FT8" and SpecOp::FOX == m_config.special_op_id() and + if(m_mode=="FT8" and SpecOp::FOX == m_specOp and (decodedtext.string().contains("R+") or decodedtext.string().contains("R-"))) { auto for_us = decodedtext.string().contains(" " + m_config.my_callsign() + " ") or decodedtext.string().contains(" "+m_baseCall) or @@ -3743,7 +3744,7 @@ void MainWindow::readFromStdout() //readFromStdout //Left (Band activity) window if(!bAvgMsg) { - if(m_mode=="FT8" and SpecOp::FOX == m_config.special_op_id()) { + if(m_mode=="FT8" and SpecOp::FOX == m_specOp) { if(!m_bDisplayedOnce) { // This hack sets the font. Surely there's a better way! DecodedText dt{"."}; @@ -3827,7 +3828,7 @@ void MainWindow::readFromStdout() //readFromStdout for_us = false; } } - if(m_bCallingCQ && !m_bAutoReply && for_us && SpecOp::FOX > m_config.special_op_id()) { + if(m_bCallingCQ && !m_bAutoReply && for_us && m_specOp!=SpecOp::FOX && m_specOp!=SpecOp::HOUND) { bool bProcessMsgNormally=ui->respondComboBox->currentText()=="CQ: First" or (ui->respondComboBox->currentText()=="CQ: Max Dist" and m_ActiveStationsWidget==NULL) or (m_ActiveStationsWidget!=NULL and !m_ActiveStationsWidget->isVisible()); @@ -3865,7 +3866,7 @@ void MainWindow::readFromStdout() //readFromStdout m_bDoubleClicked=true; ui->dxCallEntry->setText(deCall); int m_ntx=2; - bool bContest=m_config.special_op_id()==SpecOp::NA_VHF or m_config.special_op_id()==SpecOp::ARRL_DIGI; + bool bContest=m_specOp==SpecOp::NA_VHF or m_specOp==SpecOp::ARRL_DIGI; if(bContest) m_ntx=3; if(deGrid.contains(grid_regexp)) { m_deGrid=deGrid; @@ -3884,9 +3885,9 @@ void MainWindow::readFromStdout() //readFromStdout } } - if(SpecOp::FOX==m_config.special_op_id() and decodedtext.string().contains(" DE ")) for_us=true; //Hound with compound callsign - if(SpecOp::FOX==m_config.special_op_id() and for_us and (audioFreq<1000)) bDisplayRight=true; - if(SpecOp::FOX!=m_config.special_op_id() and (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10))) bDisplayRight=true; + if(SpecOp::FOX==m_specOp and decodedtext.string().contains(" DE ")) for_us=true; //Hound with compound callsign + if(SpecOp::FOX==m_specOp and for_us and (audioFreq<1000)) bDisplayRight=true; + if(SpecOp::FOX!=m_specOp and (for_us or (abs(audioFreq - m_wideGraph->rxFreq()) <= 10))) bDisplayRight=true; } } else { if((abs(audioFreq - m_wideGraph->rxFreq()) <= 10) and @@ -3905,7 +3906,7 @@ void MainWindow::readFromStdout() //readFromStdout postDecode (true, decodedtext.string ()); - if(m_mode=="FT8" and SpecOp::HOUND==m_config.special_op_id()) { + if(m_mode=="FT8" and SpecOp::HOUND==m_specOp) { if(decodedtext.string().contains(";")) { QStringList w=decodedtext.string().mid(24).split(" ",SkipEmptyParts); QString foxCall=w.at(3); @@ -3947,7 +3948,7 @@ void MainWindow::readFromStdout() //readFromStdout } //### I think this is where we are preventing Hounds from spotting Fox ### - if(m_mode!="FT8" or (SpecOp::HOUND != m_config.special_op_id())) { + if(m_mode!="FT8" or (SpecOp::HOUND != m_specOp)) { if(m_mode=="FT8" or m_mode=="FT4" or m_mode=="Q65" or m_mode=="JT4" or m_mode=="JT65" or m_mode=="JT9" or m_mode=="FST4") { auto_sequence (decodedtext, 25, 50); @@ -4071,7 +4072,7 @@ void MainWindow::auto_sequence (DecodedText const& message, unsigned start_toler // look for type 2 compound call replies on our Tx and Rx offsets && ((within_tolerance && "DE" == message_words.at (2)) || message_words.at (2).contains (m_baseCall))))) { - if(SpecOp::FOX != m_config.special_op_id()) processMessage (message); + if(SpecOp::FOX != m_specOp) processMessage (message); } } } @@ -4239,7 +4240,7 @@ void MainWindow::guiUpdate() } } - if(m_mode=="FT8" and SpecOp::FOX==m_config.special_op_id()) { + if(m_mode=="FT8" and SpecOp::FOX==m_specOp) { // Don't allow Fox mode in any of the default FT8 sub-bands. qint32 ft8Freq[]={1840,3573,7074,10136,14074,18100,21074,24915,28074,50313,70100}; for(int i=0; i<11; i++) { @@ -4281,12 +4282,12 @@ void MainWindow::guiUpdate() g_iptt = 1; setRig (); if(m_mode=="FT8") { - if (SpecOp::FOX == m_config.special_op_id()) { + if (SpecOp::FOX == m_specOp) { if (ui->TxFreqSpinBox->value() > 900) { ui->TxFreqSpinBox->setValue(300); } } - else if (SpecOp::HOUND == m_config.special_op_id()) { + else if (SpecOp::HOUND == m_specOp) { if(m_auto && !m_tune) { if (ui->TxFreqSpinBox->value() < 999 && m_ntx != 3) { // Hound randomized range: 1000-3000 Hz @@ -4312,7 +4313,7 @@ void MainWindow::guiUpdate() // If HoldTxFreq is not checked, randomize Fox's Tx Freq // NB: Maybe this should be done no more than once every 5 minutes or so ? - if(m_mode=="FT8" and SpecOp::FOX==m_config.special_op_id() and !ui->cbHoldTxFreq->isChecked()) { + if(m_mode=="FT8" and SpecOp::FOX==m_specOp and !ui->cbHoldTxFreq->isChecked()) { #if QT_VERSION >= QT_VERSION_CHECK (5, 15, 0) ui->TxFreqSpinBox->setValue (QRandomGenerator::global ()->bounded (300, 599)); #else @@ -4354,7 +4355,7 @@ void MainWindow::guiUpdate() if(m_mode=="WSPR") { ba=WSPR_message().toLatin1(); } else { - if(SpecOp::HOUND == m_config.special_op_id() and m_ntx!=3) { //Hound transmits only Tx1 or Tx3 + if(SpecOp::HOUND == m_specOp and m_ntx!=3) { //Hound transmits only Tx1 or Tx3 m_ntx=1; ui->txrb1->setChecked(true); } @@ -4408,7 +4409,7 @@ void MainWindow::guiUpdate() } if(m_mode=="FT8") { - if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==1) { + if(SpecOp::FOX==m_specOp and ui->tabWidget->currentIndex()==1) { foxTxSequencer(); } else { int i3=0; @@ -4425,7 +4426,7 @@ void MainWindow::guiUpdate() int nwave=nsym*nsps; gen_ft8wave_(const_cast<int *>(itone),&nsym,&nsps,&bt,&fsample,&f0,foxcom_.wave, foxcom_.wave,&icmplx,&nwave); - if(SpecOp::FOX == m_config.special_op_id()) { + if(SpecOp::FOX == m_specOp) { //Fox must generate the full Tx waveform, not just an itone[] array. QString fm = QString::fromStdString(message).trimmed(); foxGenWaveform(0,fm); @@ -4508,12 +4509,12 @@ void MainWindow::guiUpdate() &fsample,&hmod,&f0,&icmplx,foxcom_.wave,foxcom_.wave); } - if(SpecOp::EU_VHF==m_config.special_op_id()) { + if(SpecOp::EU_VHF==m_specOp) { if(m_ntx==2) m_xSent=ui->tx2->text().right(13); if(m_ntx==3) m_xSent=ui->tx3->text().right(13); } - if(SpecOp::FIELD_DAY==m_config.special_op_id() or SpecOp::RTTY==m_config.special_op_id()) { + if(SpecOp::FIELD_DAY==m_specOp or SpecOp::RTTY==m_specOp) { if(m_ntx==2 or m_ntx==3) { QStringList t=ui->tx2->text().split(' ', SkipEmptyParts); int n=t.size(); @@ -4644,7 +4645,7 @@ void MainWindow::guiUpdate() if (m_mode != "FST4W" && m_mode != "WSPR") { if(!m_tune) write_all("Tx",m_currentMessage); - if (m_config.TX_messages () && !m_tune && SpecOp::FOX!=m_config.special_op_id()) + if (m_config.TX_messages () && !m_tune && SpecOp::FOX!=m_specOp) { ui->decodedTextBrowser2->displayTransmittedText(current_message.trimmed(), m_mode,ui->TxFreqSpinBox->value(),m_bFastMode,m_TRperiod); @@ -4687,16 +4688,16 @@ void MainWindow::guiUpdate() if(m_mode=="FT8" or m_mode=="MSK144" or m_mode=="FT4" || "Q65" == m_mode) { if(ui->txrb1->isEnabled() and - (SpecOp::NA_VHF==m_config.special_op_id() or - SpecOp::FIELD_DAY==m_config.special_op_id() or - SpecOp::RTTY==m_config.special_op_id() or - SpecOp::WW_DIGI==m_config.special_op_id() or - SpecOp::ARRL_DIGI==m_config.special_op_id()) ) { + (SpecOp::NA_VHF==m_specOp or + SpecOp::FIELD_DAY==m_specOp or + SpecOp::RTTY==m_specOp or + SpecOp::WW_DIGI==m_specOp or + SpecOp::ARRL_DIGI==m_specOp) ) { //We're in a contest-like mode other than EU_VHF: start QSO with Tx2. ui->tx1->setEnabled(false); ui->txb1->setEnabled(false); } - if(!ui->tx1->isEnabled() and SpecOp::EU_VHF==m_config.special_op_id()) { + if(!ui->tx1->isEnabled() and SpecOp::EU_VHF==m_specOp) { //We're in EU_VHF mode: start QSO with Tx1. ui->tx1->setEnabled(true); ui->txb1->setEnabled(true); @@ -4705,11 +4706,11 @@ void MainWindow::guiUpdate() //Once per second (onesec) if(nsec != m_sec0) { -// qDebug() << "AAA" << nsec << (int)m_config.special_op_id() << (int)SpecOp::FOX; +// qDebug() << "AAA" << nsec; if(m_mode=="FST4") chk_FST4_freq_range(); m_currentBand=m_config.bands()->find(m_freqNominal); - if( SpecOp::HOUND == m_config.special_op_id() ) { + if( SpecOp::HOUND == m_specOp ) { qint32 tHound=QDateTime::currentMSecsSinceEpoch()/1000 - m_tAutoOn; //To keep calling Fox, Hound must reactivate Enable Tx at least once every 2 minutes if(tHound >= 120 and m_ntx==1) auto_tx_mode(false); @@ -4742,7 +4743,7 @@ void MainWindow::guiUpdate() if(m_transmitting) { char s[42]; - if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==1) { + if(SpecOp::FOX==m_specOp and ui->tabWidget->currentIndex()==1) { sprintf(s,"Tx: %d Slots",foxcom_.nslots); } else { sprintf(s,"Tx: %s",msgsent); @@ -4764,7 +4765,7 @@ void MainWindow::guiUpdate() } else { s[40]=0; QString t{QString::fromLatin1(s)}; - if(SpecOp::FOX==m_config.special_op_id() and ui->tabWidget->currentIndex()==1 and foxcom_.nslots==1) { + if(SpecOp::FOX==m_specOp and ui->tabWidget->currentIndex()==1 and foxcom_.nslots==1) { t=m_fm1.trimmed(); } if(m_mode=="FT4") t="Tx: "+ m_currentMessage; @@ -4943,7 +4944,7 @@ bool MainWindow::elide_tx1_not_allowed () const { auto const& my_callsign = m_config.my_callsign (); return - (m_mode=="FT8" && SpecOp::HOUND == m_config.special_op_id()) + (m_mode=="FT8" && SpecOp::HOUND == m_specOp) || ((m_mode.startsWith ("FT") || "MSK144" == m_mode || "Q65" == m_mode || "FST4" == m_mode) && Radio::is_77bit_nonstandard_callsign (my_callsign)) || (my_callsign != m_baseCall && !shortList (my_callsign)); @@ -5117,7 +5118,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) cursor.setPosition(cursor.selectionStart()); } - if(SpecOp::FOX==m_config.special_op_id() and m_decodedText2) { + if(SpecOp::FOX==m_specOp and m_decodedText2) { if(m_houndQueue.count()<10 and m_nSortedHounds>0) { QString t=cursor.block().text(); selectHound(t); @@ -5175,8 +5176,8 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie int nmod = fmod(double(message.timeInSeconds()),2.0*m_TRperiod); m_txFirst=(nmod!=0); - if( SpecOp::HOUND == m_config.special_op_id() ) m_txFirst=false; //Hound must not transmit first - if( SpecOp::FOX == m_config.special_op_id() ) m_txFirst=true; //Fox must always transmit first + if( SpecOp::HOUND == m_specOp ) m_txFirst=false; //Hound must not transmit first + if( SpecOp::FOX == m_specOp ) m_txFirst=true; //Fox must always transmit first ui->txFirstCheckBox->setChecked(m_txFirst); auto const& message_words = message.messageWords (); @@ -5220,7 +5221,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } // ignore calls by other hounds - if (SpecOp::HOUND == m_config.special_op_id() + if (SpecOp::HOUND == m_specOp && message.messageWords ().indexOf (QRegularExpression {R"(R\+-[0-9]+)"}) >= 1) { return; @@ -5235,7 +5236,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie && firstcall != m_config.my_callsign () && firstcall != m_baseCall && firstcall != "DE") || "CQ" == firstcall || "QRZ" == firstcall || ctrl || shift) { - if (((SpecOp::HOUND != m_config.special_op_id()) || m_mode != "FT8") + if (((SpecOp::HOUND != m_specOp) || m_mode != "FT8") && (!ui->cbHoldTxFreq->isChecked () || shift || ctrl)) { ui->TxFreqSpinBox->setValue(frequency); } @@ -5272,7 +5273,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } bool bRTTY = (nrpt>=529 and nrpt<=599); bool bEU_VHF_w2=(nrpt>=520001 and nrpt<=594000); - if(bEU_VHF_w2 and SpecOp::EU_VHF!=m_config.special_op_id()) { + if(bEU_VHF_w2 and SpecOp::EU_VHF!=m_specOp) { auto const& msg = tr("Should you switch to EU VHF Contest mode?\n\n" "To do so, check 'Special operating activity' and\n" "'EU VHF Contest' on the Settings | Advanced tab."); @@ -5290,17 +5291,17 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_xRcvd=t.at(n-2) + " " + t.at(n-1); t0=t.at(n-3); } - if(bFieldDay_msg and SpecOp::FIELD_DAY!=m_config.special_op_id()) { + if(bFieldDay_msg and SpecOp::FIELD_DAY!=m_specOp) { // ### Should be in ARRL Field Day mode ??? ### MessageBox::information_message (this, tr ("Should you switch to ARRL Field Day mode?")); } - if(bRTTY and SpecOp::RTTY != m_config.special_op_id()) { + if(bRTTY and SpecOp::RTTY != m_specOp) { // ### Should be in RTTY contest mode ??? ### MessageBox::information_message (this, tr ("Should you switch to RTTY contest mode?")); } - if(SpecOp::EU_VHF==m_config.special_op_id() and message_words.at(2).contains(m_baseCall) and + if(SpecOp::EU_VHF==m_specOp and message_words.at(2).contains(m_baseCall) and (!message_words.at(3).contains(qso_partner_base_call)) and (!m_bDoubleClicked)) { return; } @@ -5310,9 +5311,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie && (message_words.at(2).contains(m_baseCall) || "DE" == message_words.at(2)) && (message_words.at(3).contains(qso_partner_base_call) or m_bDoubleClicked or bEU_VHF_w2 or (m_QSOProgress==CALLING))) { - if(message_words.at(4).contains(grid_regexp) and SpecOp::EU_VHF!=m_config.special_op_id()) { - if((SpecOp::NA_VHF==m_config.special_op_id() or SpecOp::WW_DIGI==m_config.special_op_id() or - SpecOp::ARRL_DIGI==m_config.special_op_id() ) + if(message_words.at(4).contains(grid_regexp) and SpecOp::EU_VHF!=m_specOp) { + if((SpecOp::NA_VHF==m_specOp or SpecOp::WW_DIGI==m_specOp or + SpecOp::ARRL_DIGI==m_specOp ) and bContestOK) { setTxMsg(3); m_QSOProgress=ROGER_REPORT; @@ -5325,7 +5326,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_QSOProgress=REPORT; } } - } else if(w34.contains(grid_regexp) and SpecOp::EU_VHF==m_config.special_op_id()) { + } else if(w34.contains(grid_regexp) and SpecOp::EU_VHF==m_specOp) { if(nrpt==0) { setTxMsg(2); @@ -5339,7 +5340,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_QSOProgress=ROGER_REPORT; } } - } else if(SpecOp::RTTY == m_config.special_op_id() and bRTTY) { + } else if(SpecOp::RTTY == m_specOp and bRTTY) { if(w2=="R") { setTxMsg(4); m_QSOProgress=ROGERS; @@ -5348,7 +5349,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie m_QSOProgress=ROGER_REPORT; } m_xRcvd=t[n-2] + " " + t[n-1]; - } else if(SpecOp::FIELD_DAY==m_config.special_op_id() and bFieldDay_msg) { + } else if(SpecOp::FIELD_DAY==m_specOp and bFieldDay_msg) { if(t0=="R") { setTxMsg(4); m_QSOProgress=ROGERS; @@ -5366,7 +5367,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie if(m_mode=="FT4" and "RR73" == word_3) m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc(); m_bTUmsg=false; m_nextCall=""; //### Temporary: disable use of "TU;" message - if(SpecOp::RTTY == m_config.special_op_id() and m_nextCall!="") { + if(SpecOp::RTTY == m_specOp and m_nextCall!="") { // We're in RTTY contest and have "nextCall" queued up: send a "TU; ..." message if (m_config.prompt_to_log() || m_config.autoLog()) { logQSOTimer.start(0); @@ -5380,12 +5381,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie ui->tx3->setText(t); m_bTUmsg=true; } else { - -// The following test was to skip sending 73 after receiving RR73, in a contest mode. -// I'm disabling it so thet we always send 73 after receiving RR73. -// if (m_QSOProgress > CALLING && m_QSOProgress < SIGNOFF -// && SpecOp::NONE < m_config.special_op_id () && SpecOp::FOX > m_config.special_op_id () -// && ("RR73" == word_3 || 73 == word_3_as_number)) if (false) // Always Send 73 after receiving RRR or RR73, even in contest mode. { if (m_config.prompt_to_log() || m_config.autoLog()) { @@ -5444,7 +5439,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie && word_3.startsWith ('R')) { m_ntx=4; m_QSOProgress = ROGERS; - if(SpecOp::RTTY == m_config.special_op_id()) { + if(SpecOp::RTTY == m_specOp) { int n=t.size(); int nRpt=t[n-2].toInt(); if(nRpt>=529 and nRpt<=599) m_xRcvd=t[n-2] + " " + t[n-1]; @@ -5455,9 +5450,9 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie if ((word_3_as_number >= -50 && word_3_as_number <= 49) || (word_3_as_number >= 529 && word_3_as_number <= 599)) { - if(SpecOp::EU_VHF==m_config.special_op_id() or - SpecOp::FIELD_DAY==m_config.special_op_id() or - SpecOp::RTTY==m_config.special_op_id()) + if(SpecOp::EU_VHF==m_specOp or + SpecOp::FIELD_DAY==m_specOp or + SpecOp::RTTY==m_specOp) { setTxMsg(2); m_QSOProgress=REPORT; @@ -5682,16 +5677,16 @@ void MainWindow::genCQMsg () QString t=ui->tx6->text(); QStringList tlist=t.split(" "); if((m_mode=="FT4" or m_mode=="FT8" or m_mode=="MSK144" || "Q65" == m_mode) and - SpecOp::NONE != m_config.special_op_id() and + SpecOp::NONE != m_specOp and ( tlist.at(1)==my_callsign or tlist.at(2)==my_callsign ) and stdCall(my_callsign)) { - if(SpecOp::NA_VHF == m_config.special_op_id()) m_cqStr="TEST"; - if(SpecOp::EU_VHF == m_config.special_op_id()) m_cqStr="TEST"; - if(SpecOp::FIELD_DAY == m_config.special_op_id()) m_cqStr="FD"; - if(SpecOp::RTTY == m_config.special_op_id()) m_cqStr="RU"; - if(SpecOp::WW_DIGI == m_config.special_op_id()) m_cqStr="WW"; - if(SpecOp::ARRL_DIGI == m_config.special_op_id()) m_cqStr="TEST"; + if(SpecOp::NA_VHF == m_specOp) m_cqStr="TEST"; + if(SpecOp::EU_VHF == m_specOp) m_cqStr="TEST"; + if(SpecOp::FIELD_DAY == m_specOp) m_cqStr="FD"; + if(SpecOp::RTTY == m_specOp) m_cqStr="RU"; + if(SpecOp::WW_DIGI == m_specOp) m_cqStr="WW"; + if(SpecOp::ARRL_DIGI == m_specOp) m_cqStr="TEST"; if( tlist.at(1)==my_callsign ) { t="CQ " + m_cqStr + " " + tlist.at(1) + " " + tlist.at(2); } else { @@ -5799,11 +5794,11 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) t=t0a; msgtype(t0a + my_grid, ui->tx1); } - if(SpecOp::NA_VHF==m_config.special_op_id()) sent=my_grid; - if(SpecOp::WW_DIGI==m_config.special_op_id()) sent=my_grid; - if(SpecOp::ARRL_DIGI==m_config.special_op_id()) sent=my_grid; - if(SpecOp::FIELD_DAY==m_config.special_op_id()) sent=m_config.Field_Day_Exchange(); - if(SpecOp::RTTY==m_config.special_op_id()) { + if(SpecOp::NA_VHF==m_specOp) sent=my_grid; + if(SpecOp::WW_DIGI==m_specOp) sent=my_grid; + if(SpecOp::ARRL_DIGI==m_specOp) sent=my_grid; + if(SpecOp::FIELD_DAY==m_specOp) sent=m_config.Field_Day_Exchange(); + if(SpecOp::RTTY==m_specOp) { sent=rst + m_config.RTTY_Exchange(); QString t1=m_config.RTTY_Exchange(); if(t1=="DX" or t1=="#") { @@ -5811,7 +5806,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) sent=rst + t1; } } - if(SpecOp::EU_VHF==m_config.special_op_id()) { + if(SpecOp::EU_VHF==m_specOp) { QString a; t="<" + t0s.split(" ").at(0) + "> <" + t0s.split(" ").at(1) + "> "; a = a.asprintf("%4.4d ",ui->sbSerialNumber->value()); @@ -5820,7 +5815,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) msgtype(t + sent, ui->tx2); if(sent==rpt) msgtype(t + "R" + sent, ui->tx3); if(sent!=rpt) msgtype(t + "R " + sent, ui->tx3); - if(m_mode=="FT4" and SpecOp::RTTY==m_config.special_op_id()) { + if(m_mode=="FT4" and SpecOp::RTTY==m_specOp) { QDateTime now=QDateTime::currentDateTimeUtc(); int sinceTx3 = m_dateTimeSentTx3.secsTo(now); int sinceRR73 = m_dateTimeRcvdRR73.secsTo(now); @@ -5834,7 +5829,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) if(m_mode=="MSK144" and m_bShMsgs) { int i=t0s.length()-1; t0="<" + t0s.mid(0,i) + "> "; - if(SpecOp::NA_VHF != m_config.special_op_id()) { + if(SpecOp::NA_VHF != m_specOp) { if(n<=-2) n=-3; if(n>=-1 and n<=1) n=0; if(n>=2 and n<=4) n=3; @@ -5854,7 +5849,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) } if(m_mode=="MSK144" and m_bShMsgs) { - if(m_config.special_op_id()==SpecOp::NONE) { + if(m_specOp==SpecOp::NONE) { t=t0 + "R" + rpt; msgtype(t, ui->tx3); } @@ -5899,7 +5894,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) case Configuration::type_2_msg_1_full: msgtype(t + my_grid, ui->tx1); if (!eme_short_codes) { - if(is77BitMode () && SpecOp::NA_VHF == m_config.special_op_id()) { + if(is77BitMode () && SpecOp::NA_VHF == m_specOp) { msgtype(t + "R " + my_grid, ui->tx3); // #### Unreachable code } else { msgtype(t + "R" + rpt, ui->tx3); @@ -5911,7 +5906,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) break; case Configuration::type_2_msg_3_full: - if (is77BitMode () && SpecOp::NA_VHF == m_config.special_op_id()) { + if (is77BitMode () && SpecOp::NA_VHF == m_specOp) { msgtype(t + "R " + my_grid, ui->tx3); msgtype(t + "RRR", ui->tx4); } else { @@ -5926,7 +5921,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) case Configuration::type_2_msg_5_only: msgtype(t00 + my_grid, ui->tx1); if (!eme_short_codes) { - if (is77BitMode () && SpecOp::NA_VHF == m_config.special_op_id()) { + if (is77BitMode () && SpecOp::NA_VHF == m_specOp) { msgtype(t + "R " + my_grid, ui->tx3); // #### Unreachable code msgtype(t + "RRR", ui->tx4); } else { @@ -5947,7 +5942,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) msgtype(t, ui->tx5->lineEdit ()); } } else { - if (hisCall != hisBase and SpecOp::HOUND != m_config.special_op_id()) { + if (hisCall != hisBase and SpecOp::HOUND != m_specOp) { if (shortList(hisCall)) { // cfm we know his full call with a type 1 tx1 message t = hisCall + " " + my_callsign; @@ -5961,7 +5956,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) } } m_rpt=rpt; - if(SpecOp::HOUND == m_config.special_op_id() and is_compound) ui->tx1->setText("DE " + my_callsign); + if(SpecOp::HOUND == m_specOp and is_compound) ui->tx1->setText("DE " + my_callsign); } void MainWindow::TxAgain() @@ -5984,7 +5979,7 @@ void MainWindow::clearDX () m_qsoStop.clear (); m_inQSOwith.clear(); genStdMsgs (QString {}); - if (m_mode=="FT8" and SpecOp::HOUND == m_config.special_op_id()) { + if (m_mode=="FT8" and SpecOp::HOUND == m_specOp) { m_ntx=1; ui->txrb1->setChecked(true); } else { @@ -6148,7 +6143,7 @@ void MainWindow::msgtype(QString t, QLineEdit* tx) //msgtype() if(itype==7 and m_config.enable_VHF_features() and m_mode=="JT65") shortMsg=true; if(m_mode=="MSK144" and t.mid(0,1)=="<") text=false; if((m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4" || "Q65" == m_mode) and - SpecOp::NA_VHF==m_config.special_op_id()) { + SpecOp::NA_VHF==m_specOp) { int i0=t.trimmed().length()-7; if(t.mid(i0,3)==" R ") text=false; } @@ -6286,7 +6281,7 @@ void MainWindow::on_genStdMsgsPushButton_clicked() //genStdMsgs button void MainWindow::cease_auto_Tx_after_QSO () { - if (SpecOp::FOX != m_config.special_op_id () + if (SpecOp::FOX != m_specOp && ui->cbAutoSeq->isVisible () && ui->cbAutoSeq->isEnabled () && ui->cbAutoSeq->isChecked ()) { // ensure that auto Tx is disabled even if disable Tx @@ -6312,7 +6307,7 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button QString grid=m_hisGrid; if(grid=="....") grid=""; - switch( m_config.special_op_id() ) + switch( m_specOp ) { case SpecOp::NA_VHF: m_xSent=m_config.my_grid().left(4); @@ -6384,10 +6379,9 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, } } - if(m_config.clear_DX () and SpecOp::HOUND != m_config.special_op_id()) clearDX (); + if(m_config.clear_DX () and SpecOp::HOUND != m_specOp) clearDX (); m_dateTimeQSOOn = QDateTime {}; - auto special_op = m_config.special_op_id (); - if (SpecOp::NONE < special_op && special_op < SpecOp::FOX) { + if(m_specOp!=SpecOp::NONE and m_specOp!=SpecOp::FOX and m_specOp!=SpecOp::HOUND) { ui->sbSerialNumber->setValue(ui->sbSerialNumber->value() + 1); } @@ -6499,11 +6493,11 @@ void MainWindow::displayWidgets(qint64 n) ui->pbBestSP->setVisible(m_mode=="FT4"); b=false; if(m_mode=="FT4" or m_mode=="FT8" || "Q65" == m_mode) { - b=SpecOp::EU_VHF==m_config.special_op_id() or - ( SpecOp::RTTY==m_config.special_op_id() and + b=SpecOp::EU_VHF==m_specOp or + ( SpecOp::RTTY==m_specOp and (m_config.RTTY_Exchange()=="DX" or m_config.RTTY_Exchange()=="#") ); } - if(m_mode=="MSK144") b=SpecOp::EU_VHF==m_config.special_op_id(); + if(m_mode=="MSK144") b=SpecOp::EU_VHF==m_specOp; ui->sbSerialNumber->setVisible(b); m_lastCallsign.clear (); // ensures Tx5 is updated for new modes b=m_mode.startsWith("FST4"); @@ -6666,7 +6660,7 @@ void MainWindow::on_actionFT8_triggered() m_modulator->setTRPeriod(m_TRperiod); // TODO - not thread safe m_detector->setTRPeriod(m_TRperiod); // TODO - not thread safe ui->rh_decodes_title_label->setText(tr ("Rx Frequency")); - if(SpecOp::FOX==m_config.special_op_id()) { + if(SpecOp::FOX==m_specOp) { ui->lh_decodes_title_label->setText(tr ("Stations calling DXpedition %1").arg (m_config.my_callsign())); ui->lh_decodes_headings_label->setText( "Call Grid dB Freq Dist Age Continent"); } else { @@ -6685,7 +6679,7 @@ void MainWindow::on_actionFT8_triggered() ui->txb6->setEnabled(true); ui->txFirstCheckBox->setEnabled(true); ui->cbAutoSeq->setEnabled(true); - if(SpecOp::FOX==m_config.special_op_id()) { + if(SpecOp::FOX==m_specOp) { ui->txFirstCheckBox->setChecked(true); ui->txFirstCheckBox->setEnabled(false); ui->cbHoldTxFreq->setChecked(true); @@ -6697,7 +6691,7 @@ void MainWindow::on_actionFT8_triggered() ui->labDXped->setText(tr ("Fox")); on_fox_log_action_triggered(); } - if(SpecOp::HOUND == m_config.special_op_id()) { + if(SpecOp::HOUND == m_specOp) { ui->houndButton->setChecked(true); ui->houndButton->setStyleSheet("background-color: #ff0000;"); ui->txFirstCheckBox->setChecked(false); @@ -6721,19 +6715,19 @@ void MainWindow::on_actionFT8_triggered() switch_mode (Modes::FT8); } - if(m_config.special_op_id() != SpecOp::HOUND) { + if(m_specOp != SpecOp::HOUND) { ui->houndButton->setChecked(false); ui->houndButton->setStyleSheet(""); } - if (SpecOp::NONE < m_config.special_op_id () && SpecOp::FOX > m_config.special_op_id ()) { + if(m_specOp!=SpecOp::NONE and m_specOp!=SpecOp::FOX and m_specOp!=SpecOp::HOUND) { QString t0=""; - if(SpecOp::NA_VHF==m_config.special_op_id()) t0="NA VHF"; - if(SpecOp::EU_VHF==m_config.special_op_id()) t0="EU VHF"; - if(SpecOp::FIELD_DAY==m_config.special_op_id()) t0="Field Day"; - if(SpecOp::RTTY==m_config.special_op_id()) t0="RTTY"; - if(SpecOp::WW_DIGI==m_config.special_op_id()) t0="WW_DIGI"; - if(SpecOp::ARRL_DIGI==m_config.special_op_id()) t0="ARRL_DIGI"; + if(SpecOp::NA_VHF==m_specOp) t0="NA VHF"; + if(SpecOp::EU_VHF==m_specOp) t0="EU VHF"; + if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day"; + if(SpecOp::RTTY==m_specOp) t0="FT RU"; + if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI"; + if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI"; if(t0=="") { ui->labDXped->setVisible(false); } else { @@ -6743,7 +6737,7 @@ void MainWindow::on_actionFT8_triggered() on_contest_log_action_triggered(); } - if((SpecOp::FOX==m_config.special_op_id() or SpecOp::HOUND==m_config.special_op_id()) and !m_config.split_mode() and !m_bWarnedSplit) { + if((SpecOp::FOX==m_specOp or SpecOp::HOUND==m_specOp) and !m_config.split_mode() and !m_bWarnedSplit) { QString errorMsg; MessageBox::critical_message (this, "Operation in FT8 DXpedition mode normally requires\n" @@ -6961,14 +6955,14 @@ void MainWindow::on_actionQ65_triggered() ui->rh_decodes_headings_label->setText("UTC dB DT Freq " + tr ("Message")); statusChanged(); - if (SpecOp::NONE < m_config.special_op_id () && SpecOp::FOX > m_config.special_op_id ()) { + if(m_specOp!=SpecOp::NONE and m_specOp!=SpecOp::FOX and m_specOp!=SpecOp::HOUND) { QString t0=""; - if(SpecOp::NA_VHF==m_config.special_op_id()) t0="NA VHF"; - if(SpecOp::EU_VHF==m_config.special_op_id()) t0="EU VHF"; - if(SpecOp::FIELD_DAY==m_config.special_op_id()) t0="Field Day"; - if(SpecOp::RTTY==m_config.special_op_id()) t0="RTTY"; - if(SpecOp::WW_DIGI==m_config.special_op_id()) t0="WW_DIGI"; - if(SpecOp::ARRL_DIGI==m_config.special_op_id()) t0="ARRL_DIGI"; + if(SpecOp::NA_VHF==m_specOp) t0="NA VHF"; + if(SpecOp::EU_VHF==m_specOp) t0="EU VHF"; + if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day"; + if(SpecOp::RTTY==m_specOp) t0="FT RU"; + if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI"; + if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI"; if(t0=="") { ui->labDXped->setVisible(false); } else { @@ -6982,7 +6976,7 @@ void MainWindow::on_actionQ65_triggered() void MainWindow::on_actionMSK144_triggered() { - if(SpecOp::EU_VHF < m_config.special_op_id()) { + if(SpecOp::EU_VHF < m_specOp) { // We are rejecting the requested mode change, so re-check the old mode if("FT8"==m_mode) ui->actionFT8->setChecked(true); if("JT4"==m_mode) ui->actionJT4->setChecked(true); @@ -6997,7 +6991,7 @@ void MainWindow::on_actionMSK144_triggered() // Make sure that MSK144 is not checked. ui->actionMSK144->setChecked(false); MessageBox::warning_message (this, tr ("Improper mode"), - "MSK144 not available if Fox, Hound, Field Day, RTTY, or WW Digi contest is selected."); + "MSK144 not available if Fox, Hound, Field Day, FT Roundup, WW Digi. or ARRL Digi contest is selected."); return; } m_mode="MSK144"; @@ -7044,8 +7038,8 @@ void MainWindow::on_actionMSK144_triggered() statusChanged(); QString t0=""; - if(SpecOp::NA_VHF==m_config.special_op_id()) t0="NA VHF"; - if(SpecOp::EU_VHF==m_config.special_op_id()) t0="EU VHF"; + if(SpecOp::NA_VHF==m_specOp) t0="NA VHF"; + if(SpecOp::EU_VHF==m_specOp) t0="EU VHF"; if(t0=="") { ui->labDXped->setVisible(false); } else { @@ -7811,7 +7805,7 @@ void MainWindow::transmit (double snr) true, false, snr, m_TRperiod); } - if((m_mode=="FT4" or m_mode=="FT8") and m_maxPoints>0 and SpecOp::ARRL_DIGI==m_config.special_op_id()) { + if((m_mode=="FT4" or m_mode=="FT8") and m_maxPoints>0 and SpecOp::ARRL_DIGI==m_specOp) { ui->dxCallEntry->setText(m_deCall); ui->dxGridEntry->setText(m_deGrid); genStdMsgs("-10"); @@ -7822,7 +7816,7 @@ void MainWindow::transmit (double snr) toneSpacing=-3; if(m_config.x2ToneSpacing()) toneSpacing=2*12000.0/1920.0; if(m_config.x4ToneSpacing()) toneSpacing=4*12000.0/1920.0; - if(SpecOp::FOX==m_config.special_op_id() and !m_tune) toneSpacing=-1; + if(SpecOp::FOX==m_specOp and !m_tune) toneSpacing=-1; Q_EMIT sendMessage (m_mode, NUM_FT8_SYMBOLS, 1920.0, ui->TxFreqSpinBox->value () - m_XIT, toneSpacing, m_soundOutput, m_config.audio_output_channel (), @@ -8095,7 +8089,7 @@ void::MainWindow::VHF_features_enabled(bool b) ui->actionMessage_averaging->setEnabled(b && (m_mode=="JT4" or m_mode=="JT65")); ui->actionEnable_AP_JT65->setVisible (b && m_mode=="JT65"); - if(!b && m_msgAvgWidget and (SpecOp::FOX != m_config.special_op_id()) and !m_config.autoLog()) { + if(!b && m_msgAvgWidget and (SpecOp::FOX != m_specOp) and !m_config.autoLog()) { if(m_msgAvgWidget->isVisible() and m_mode!="JT4" and m_mode!="JT9" and m_mode!="JT65") { m_msgAvgWidget->close(); } @@ -8934,7 +8928,7 @@ void MainWindow::statusUpdate () const m_config.my_callsign (), m_config.my_grid (), m_hisGrid, m_tx_watchdog, submode != QChar::Null ? QString {submode} : QString {}, m_bFastMode, - static_cast<quint8> (m_config.special_op_id ()), + static_cast<quint8> (m_specOp), ftol, tr_period, m_multi_settings->configuration_name (), m_currentMessage); } @@ -9091,7 +9085,7 @@ void MainWindow::on_sbNlist_valueChanged(int n) void MainWindow::on_sbNslots_valueChanged(int n) { m_Nslots=n; - if(m_config.special_op_id()!=SpecOp::FOX) return; + if(m_specOp!=SpecOp::FOX) return; QString t; t = t.asprintf(" NSlots %d",m_Nslots); writeFoxQSO(t); @@ -9100,7 +9094,7 @@ void MainWindow::on_sbNslots_valueChanged(int n) void MainWindow::on_sbMax_dB_valueChanged(int n) { m_max_dB=n; - if(m_config.special_op_id()!=SpecOp::FOX) return; + if(m_specOp!=SpecOp::FOX) return; QString t; t = t.asprintf(" Max_dB %d",m_max_dB); writeFoxQSO(t); @@ -9108,7 +9102,7 @@ void MainWindow::on_sbMax_dB_valueChanged(int n) void MainWindow::on_pbFoxReset_clicked() { - if(m_config.special_op_id()!=SpecOp::FOX) return; + if(m_specOp!=SpecOp::FOX) return; auto button = MessageBox::query_message (this, tr ("Confirm Reset"), tr ("Are you sure you want to clear the QSO queues?")); if(button == MessageBox::Yes) { @@ -9777,17 +9771,17 @@ void MainWindow::chkFT4() ui->cbAutoSeq->setEnabled(true); ui->respondComboBox->setVisible(true); ui->respondComboBox->setEnabled(true); - ui->labDXped->setVisible(m_config.special_op_id()!=SpecOp::NONE); + ui->labDXped->setVisible(m_specOp!=SpecOp::NONE); ui->respondComboBox->setVisible(ui->cbAutoSeq->isChecked()); - if (SpecOp::NONE < m_config.special_op_id () && SpecOp::FOX > m_config.special_op_id ()) { + if(m_specOp!=SpecOp::NONE and m_specOp!=SpecOp::FOX and m_specOp!=SpecOp::HOUND) { QString t0=""; - if(SpecOp::NA_VHF==m_config.special_op_id()) t0="NA VHF"; - if(SpecOp::EU_VHF==m_config.special_op_id()) t0="EU VHF"; - if(SpecOp::FIELD_DAY==m_config.special_op_id()) t0="Field Day"; - if(SpecOp::RTTY==m_config.special_op_id()) t0="RTTY"; - if(SpecOp::WW_DIGI==m_config.special_op_id()) t0="WW_DIGI"; - if(SpecOp::ARRL_DIGI==m_config.special_op_id()) t0="ARRL_DIGI"; + if(SpecOp::NA_VHF==m_specOp) t0="NA VHF"; + if(SpecOp::EU_VHF==m_specOp) t0="EU VHF"; + if(SpecOp::FIELD_DAY==m_specOp) t0="Field Day"; + if(SpecOp::RTTY==m_specOp) t0="FT RU"; + if(SpecOp::WW_DIGI==m_specOp) t0="WW_DIGI"; + if(SpecOp::ARRL_DIGI==m_specOp) t0="ARRL_DIGI"; if(t0=="") { ui->labDXped->setVisible(false); } else { @@ -9796,7 +9790,7 @@ void MainWindow::chkFT4() } on_contest_log_action_triggered(); } - if (SpecOp::HOUND == m_config.special_op_id() or SpecOp::FOX == m_config.special_op_id()) { + if (SpecOp::HOUND == m_specOp or SpecOp::FOX == m_specOp) { ui->labDXped->setVisible(false); } @@ -9951,7 +9945,7 @@ void MainWindow::on_ft8Button_clicked() { ui->houndButton->setChecked(false); ui->houndButton->setStyleSheet(""); - if(m_config.special_op_id()==SpecOp::HOUND) m_config.setSpecial_None(); + if(m_specOp==SpecOp::HOUND) m_config.setSpecial_None(); on_actionFT8_triggered(); } @@ -9959,7 +9953,7 @@ void MainWindow::on_ft4Button_clicked() { ui->houndButton->setChecked(false); ui->houndButton->setStyleSheet(""); - if(m_config.special_op_id()==SpecOp::HOUND) m_config.setSpecial_None(); + if(m_specOp==SpecOp::HOUND) m_config.setSpecial_None(); on_actionFT4_triggered(); } @@ -9967,7 +9961,7 @@ void MainWindow::on_msk144Button_clicked() { ui->houndButton->setChecked(false); ui->houndButton->setStyleSheet(""); - if(m_config.special_op_id()==SpecOp::HOUND) m_config.setSpecial_None(); + if(m_specOp==SpecOp::HOUND) m_config.setSpecial_None(); on_actionMSK144_triggered(); } @@ -9975,7 +9969,7 @@ void MainWindow::on_q65Button_clicked() { ui->houndButton->setChecked(false); ui->houndButton->setStyleSheet(""); - if(m_config.special_op_id()==SpecOp::HOUND) m_config.setSpecial_None(); + if(m_specOp==SpecOp::HOUND) m_config.setSpecial_None(); on_actionQ65_triggered(); } @@ -9983,6 +9977,6 @@ void MainWindow::on_jt65Button_clicked() { ui->houndButton->setChecked(false); ui->houndButton->setStyleSheet(""); - if(m_config.special_op_id()==SpecOp::HOUND) m_config.setSpecial_None(); + if(m_specOp==SpecOp::HOUND) m_config.setSpecial_None(); on_actionJT65_triggered(); } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 1de6f4d53..aa1796c4a 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -105,6 +105,7 @@ public: using Frequency = Radio::Frequency; using FrequencyDelta = Radio::FrequencyDelta; using Mode = Modes::Mode; + using SpecOp = Configuration::SpecialOperatingActivity; explicit MainWindow(QDir const& temp_directory, bool multiple, MultiSettings *, QSharedMemory *shdmem, unsigned downSampleFactor, @@ -562,6 +563,8 @@ private: bool m_bOK_to_chk=false; bool m_bSentReport=false; + SpecOp m_specOp; + enum { CALLING,