From 2b08cd9e4bd679506ae728e68505543b8d543361 Mon Sep 17 00:00:00 2001 From: Brian Moran Date: Sat, 12 Nov 2022 17:23:21 -0800 Subject: [PATCH] manage hound queue; add ability to add hound to top with ALT-double-click; show/manipulate hound QSOs in progress --- widgets/displaytext.cpp | 19 +- widgets/displaytext.h | 7 +- widgets/mainwindow.cpp | 195 +- widgets/mainwindow.h | 5 +- widgets/mainwindow.ui | 132 +- widgets/mainwindow.ui.autosave | 3921 ++++++++++++++++++++++++++++++++ 6 files changed, 4189 insertions(+), 90 deletions(-) create mode 100644 widgets/mainwindow.ui.autosave diff --git a/widgets/displaytext.cpp b/widgets/displaytext.cpp index 65fc1d40b..bdbad0e69 100644 --- a/widgets/displaytext.cpp +++ b/widgets/displaytext.cpp @@ -86,7 +86,7 @@ void DisplayText::mouseDoubleClickEvent(QMouseEvent *e) void DisplayText::insertLineSpacer(QString const& line) { - appendText (line, "#d3d3d3"); + insertText (line, "#d3d3d3"); } namespace @@ -123,11 +123,11 @@ namespace } } -void DisplayText::appendText(QString const& text, QColor bg, QColor fg - , QString const& call1, QString const& call2) +void DisplayText::insertText(QString const& text, QColor bg, QColor fg + , QString const& call1, QString const& call2, QTextCursor::MoveOperation location) { auto cursor = textCursor (); - cursor.movePosition (QTextCursor::End); + cursor.movePosition (location); auto block_format = cursor.blockFormat (); auto format = cursor.blockCharFormat (); format.setFont (char_font_); @@ -484,7 +484,7 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con } } - appendText (message.trimmed (), bg, fg, decodedText.call (), dxCall); + insertText (message.trimmed (), bg, fg, decodedText.call (), dxCall); } @@ -516,18 +516,19 @@ void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 tx QColor fg; highlight_types types {Highlight::Tx}; set_colours (m_config, &bg, &fg, types); - appendText (t, bg, fg); + insertText (t, bg, fg); } void DisplayText::displayQSY(QString text) { QString t = QDateTime::currentDateTimeUtc().toString("hhmmss") + " " + text; - appendText (t, "hotpink"); + insertText (t, "hotpink"); } -void DisplayText::displayFoxToBeCalled(QString t, QColor bg, QColor fg) +void DisplayText::displayHoundToBeCalled(QString t, bool bAtTop, QColor bg, QColor fg) { - appendText (t, bg, fg); + if (bAtTop) t = t + "\n"; // need a newline when insertion at top + insertText(t, bg, fg, "", "", bAtTop ? QTextCursor::Start : QTextCursor::End); } namespace diff --git a/widgets/displaytext.h b/widgets/displaytext.h index 5810972cd..b0db7ca8b 100644 --- a/widgets/displaytext.h +++ b/widgets/displaytext.h @@ -33,7 +33,7 @@ public: bool haveFSpread = false, float fSpread = 0.0, bool bDisplayPoints=false, int points=-99); void displayTransmittedText(QString text, QString modeTx, qint32 txFreq, bool bFastMode, double TRperiod); void displayQSY(QString text); - void displayFoxToBeCalled(QString t, QColor bg = QColor {}, QColor fg = QColor {}); + void displayHoundToBeCalled(QString t, bool bAtTop=false, QColor bg = QColor {}, QColor fg = QColor {}); void new_period (); QString CQPriority(){return m_CQPriority;}; qint32 m_points; @@ -42,8 +42,8 @@ public: Q_SIGNAL void selectCallsign (Qt::KeyboardModifiers); Q_SIGNAL void erased (); - Q_SLOT void appendText (QString const& text, QColor bg = QColor {}, QColor fg = QColor {} - , QString const& call1 = QString {}, QString const& call2 = QString {}); + Q_SLOT void insertText (QString const& text, QColor bg = QColor {}, QColor fg = QColor {} + , QString const& call1 = QString {}, QString const& call2 = QString {}, QTextCursor::MoveOperation location=QTextCursor::End); Q_SLOT void erase (); Q_SLOT void highlight_callsign (QString const& callsign, QColor const& bg, QColor const& fg, bool last_period_only); @@ -62,6 +62,7 @@ private: , QString const& currentMode, QString extra); QFont char_font_; QAction * erase_action_; + QHash> highlighted_calls_; bool high_volume_; QMetaObject::Connection vertical_scroll_connection_; diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 72d370fe5..52b353112 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -655,7 +655,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(txMsgButtonGroup,SIGNAL(buttonClicked(int)),SLOT(set_ntx(int))); connect (ui->decodedTextBrowser, &DisplayText::selectCallsign, this, &MainWindow::doubleClickOnCall2); connect (ui->decodedTextBrowser2, &DisplayText::selectCallsign, this, &MainWindow::doubleClickOnCall); - connect (ui->textBrowser4, &DisplayText::selectCallsign, this, &MainWindow::doubleClickOnFoxQueue); + connect (ui->houndQueueTextBrowser, &DisplayText::selectCallsign, this, &MainWindow::doubleClickOnFoxQueue); + connect (ui->foxTxListTextBrowser, &DisplayText::selectCallsign, this, &MainWindow::doubleClickOnFoxInProgress); connect (ui->decodedTextBrowser, &DisplayText::erased, this, &MainWindow::band_activity_cleared); connect (ui->decodedTextBrowser2, &DisplayText::erased, this, &MainWindow::rx_frequency_activity_cleared); @@ -1425,9 +1426,14 @@ void MainWindow::setDecodedTextFont (QFont const& font) { ui->decodedTextBrowser->setContentFont (font); ui->decodedTextBrowser2->setContentFont (font); - ui->textBrowser4->setContentFont(font); - ui->textBrowser4->displayFoxToBeCalled(" "); - ui->textBrowser4->setText(""); + ui->houndQueueTextBrowser->setContentFont(font); + ui->houndQueueTextBrowser->displayHoundToBeCalled(" "); + ui->houndQueueTextBrowser->setText(""); + + ui->foxTxListTextBrowser->setContentFont(font); + ui->foxTxListTextBrowser->displayHoundToBeCalled(" "); + ui->foxTxListTextBrowser->setText(""); + auto style_sheet = "QLabel {" + font_as_stylesheet (font) + '}'; ui->lh_decodes_headings_label->setStyleSheet (ui->lh_decodes_headings_label->styleSheet () + style_sheet); ui->rh_decodes_headings_label->setStyleSheet (ui->rh_decodes_headings_label->styleSheet () + style_sheet); @@ -1653,7 +1659,7 @@ void MainWindow::dataSink(qint64 frames) t = t.asprintf("%9.6f %5.2f %7d %7.1f %7d %7d %7d %7.1f %7.1f",hour,xlevel, nDopTotal,width,echocom_.nsum,nqual,qRound(dfreq),sigdb,dBerr); t = t0 + t; - if (ui) ui->decodedTextBrowser->appendText(t); + if (ui) ui->decodedTextBrowser->insertText(t); t=t1+t; write_all("Rx",t); } @@ -2093,7 +2099,6 @@ void MainWindow::auto_tx_mode (bool state) void MainWindow::keyPressEvent (QKeyEvent * e) { - if(SpecOp::FOX == m_specOp) { switch (e->key()) { case Qt::Key_Return: @@ -2105,6 +2110,13 @@ void MainWindow::keyPressEvent (QKeyEvent * e) case Qt::Key_Backspace: qDebug() << "Key Backspace"; return; +#ifdef DEBUG_FOX + case Qt::Key_X: + if(e->modifiers() & Qt::AltModifier) { + foxTest(); + return; + } +#endif } QMainWindow::keyPressEvent (e); } @@ -4878,7 +4890,7 @@ void MainWindow::startTx2() t = " Transmitting " + m_mode + " ----------------------- " + m_config.bands ()->find (m_freqNominal); t=beacon_start_time (m_TRperiod / 2) + ' ' + t.rightJustified (66, '-'); - ui->decodedTextBrowser->appendText(t); + ui->decodedTextBrowser->insertText(t); } write_all("Tx",m_currentMessage); } @@ -5157,7 +5169,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) if(SpecOp::FOX==m_specOp and m_decodedText2) { if(m_houndQueue.count()<10 and m_nSortedHounds>0) { QString t=cursor.block().text(); - selectHound(t); + selectHound(t, modifiers==(Qt::AltModifier)); // alt double-click gets put at top of queue } return; } @@ -8495,7 +8507,7 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout t = " " + tr ("Receiving") + " " + m_mode + " ----------------------- " + m_config.bands ()->find (m_dialFreqRxWSPR); t=beacon_start_time (-m_TRperiod / 2) + ' ' + t.rightJustified (66, '-'); - ui->decodedTextBrowser->appendText(t); + ui->decodedTextBrowser->insertText(t); } killFileTimer.start (45*1000); //Kill in 45s (for slow modes) } @@ -8569,12 +8581,12 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout QString band; Frequency f=1000000.0*rxFields.at(3).toDouble()+0.5; band = ' ' + m_config.bands ()->find (f); - ui->decodedTextBrowser->appendText(band.rightJustified (71, '-')); + ui->decodedTextBrowser->insertText(band.rightJustified (71, '-')); } m_tBlankLine = rxLine.left(4); } m_nWSPRdecodes += 1; - ui->decodedTextBrowser->appendText(rxLine); + ui->decodedTextBrowser->insertText(rxLine); } } } @@ -9157,7 +9169,9 @@ void MainWindow::on_pbFoxReset_clicked() QFile f(m_config.temp_dir().absoluteFilePath("houndcallers.txt")); f.remove(); ui->decodedTextBrowser->setText(""); - ui->textBrowser4->setText(""); + ui->houndQueueTextBrowser->setText(""); + ui->foxTxListTextBrowser->setText(""); + m_houndQueue.clear(); m_foxQSO.clear(); m_foxQSOinProgress.clear(); @@ -9277,19 +9291,18 @@ QString MainWindow::sortHoundCalls(QString t, int isort, int max_dB) } //------------------------------------------------------------------------------ -void MainWindow::selectHound(QString line) +void MainWindow::selectHound(QString line, bool bTopQueue) { /* Called from doubleClickOnCall() in DXpedition Fox mode. * QString "line" is a user-selected line from left text window. * The line may be selected by double-clicking; alternatively, hitting * is equivalent to double-clicking on the top-most line. */ - if(line.length()==0) return; QString houndCall=line.split(" ",SkipEmptyParts).at(0); // Don't add a call already enqueued or in QSO - if(ui->textBrowser4->toPlainText().indexOf(houndCall) >= 0) return; + if(ui->houndQueueTextBrowser->toPlainText().indexOf(houndCall) >= 0) return; QString houndGrid=line.split(" ",SkipEmptyParts).at(1); // Hound caller's grid QString rpt=line.split(" ",SkipEmptyParts).at(2); // Hound SNR @@ -9299,16 +9312,25 @@ void MainWindow::selectHound(QString line) ui->decodedTextBrowser->setText(m_houndCallers); // Populate left window with Hound callers QString t1=houndCall + " "; QString t2=rpt; + QString t1_with_grid; if(rpt.mid(0,1) != "-" and rpt.mid(0,1) != "+") t2="+" + rpt; if(t2.length()==2) t2=t2.mid(0,1) + "0" + t2.mid(1,1); t1=t1.mid(0,12) + t2; - ui->textBrowser4->displayFoxToBeCalled(t1); // Add hound call and rpt to tb4 - t1=t1 + " " + houndGrid; // Append the grid - m_houndQueue.enqueue(t1); // Put this hound into the queue - writeFoxQSO(" Sel: " + t1); - QTextCursor cursor = ui->textBrowser4->textCursor(); + ui->houndQueueTextBrowser->displayHoundToBeCalled(t1, bTopQueue); // Add hound call and rpt to tb4 + t1_with_grid=t1 + " " + houndGrid; // Append the grid + + if (bTopQueue) + { + m_houndQueue.prepend(t1_with_grid); // Put this hound into the queue at the top + } + else + { + m_houndQueue.enqueue(t1_with_grid); // Put this hound into the queue + } + writeFoxQSO(" Sel: " + t1_with_grid); + QTextCursor cursor = ui->houndQueueTextBrowser->textCursor(); cursor.setPosition(0); // Scroll to top of list - ui->textBrowser4->setTextCursor(cursor); + ui->houndQueueTextBrowser->setTextCursor(cursor); } //------------------------------------------------------------------------------ @@ -9337,7 +9359,7 @@ void MainWindow::houndCallers() houndCall=line.mid(0,i0); paddedHoundCall=houndCall + " "; //Don't list a hound already in the queue - if(!ui->textBrowser4->toPlainText().contains(paddedHoundCall)) { + if(!ui->houndQueueTextBrowser->toPlainText().contains(paddedHoundCall)) { if(m_loggedByFox[houndCall].contains(m_lastBand)) continue; //already logged on this band if(m_foxQSO.contains(houndCall)) continue; //still in the QSO map auto const& entity = m_logBook.countries ()->lookup (houndCall); @@ -9394,6 +9416,19 @@ void MainWindow::foxRxSequencer(QString msg, QString houndCall, QString rptRcvd) } } } +void MainWindow::updateFoxQSOsInProgressDisplay() +{ + + ui->foxTxListTextBrowser->clear(); + for (int i = 0; i < m_foxQSOinProgress.count(); i++) + { + //First do those for QSOs in progress + QString hc = m_foxQSOinProgress.at(i); + QString status = m_foxQSO[hc].ncall > m_maxStrikes ? QString(" (rx) ") : QString(" "); + QString str = (hc + " ").left(13) + QString::number(m_foxQSO[hc].ncall) + status; + ui->foxTxListTextBrowser->displayHoundToBeCalled(str); + } +} void MainWindow::foxTxSequencer() { @@ -9590,13 +9625,14 @@ Transmit: m_foxLogWindow->rate (m_foxRateQueue.size ()); m_foxLogWindow->queued (m_foxQSOinProgress.count ()); } + updateFoxQSOsInProgressDisplay(); } void MainWindow::rm_tb4(QString houndCall) { if(houndCall=="") return; QString t=""; - QString tb4=ui->textBrowser4->toPlainText(); + QString tb4=ui->houndQueueTextBrowser->toPlainText(); QStringList list=tb4.split("\n"); int n=list.size(); int j=0; @@ -9609,24 +9645,78 @@ void MainWindow::rm_tb4(QString houndCall) } } t.replace("\n\n","\n"); - ui->textBrowser4->setText(t); + ui->houndQueueTextBrowser->setText(t); } void MainWindow::doubleClickOnFoxQueue(Qt::KeyboardModifiers modifiers) { if(modifiers==9999) return; //Silence compiler warning - QTextCursor cursor=ui->textBrowser4->textCursor(); + QTextCursor cursor=ui->houndQueueTextBrowser->textCursor(); cursor.setPosition(cursor.selectionStart()); - QString houndCall=cursor.block().text().mid(0,12).trimmed(); - rm_tb4(houndCall); - writeFoxQSO(" Del: " + houndCall); - QQueue tmpQueue; - while(!m_houndQueue.isEmpty()) { - QString t=m_houndQueue.dequeue(); - QString hc=t.mid(0,12).trimmed(); - if(hc != houndCall) tmpQueue.enqueue(t); - } - m_houndQueue.swap(tmpQueue); + QString houndLine=cursor.block().text(); + QString houndCall=houndLine.mid(0,12).trimmed(); + + if (modifiers == (Qt::AltModifier)) + { + //Alt-click on a Fox queue entry - put on top of queue + // remove + for(auto i=0; ihoundQueueTextBrowser->clear(); + for (QString line: m_houndQueue) + { + ui->houndQueueTextBrowser->displayHoundToBeCalled(line.mid(0,16), false); + } + } else + { + rm_tb4(houndCall); + writeFoxQSO(" Del: " + houndCall); + QQueue tmpQueue; + while (!m_houndQueue.isEmpty()) + { + QString t = m_houndQueue.dequeue(); + QString hc = t.mid(0, 12).trimmed(); + if (hc != houndCall) tmpQueue.enqueue(t); + } + m_houndQueue.swap(tmpQueue); + } +} + +void MainWindow::doubleClickOnFoxInProgress(Qt::KeyboardModifiers modifiers) +{ + if (modifiers == 9999) return; //Silence compiler warning + QTextCursor cursor = ui->foxTxListTextBrowser->textCursor(); + cursor.setPosition(cursor.selectionStart()); + QString houndLine = cursor.block().text(); + QString houndCall = houndLine.mid(0, 12).trimmed(); + + if (modifiers == 0) + { + m_foxQSO[houndCall].ncall = m_maxStrikes + 1; // time them out + updateFoxQSOsInProgressDisplay(); + } +} + +void MainWindow::foxQueueTopCallCommand() +{ + m_decodedText2 = true; + if(SpecOp::FOX==m_specOp && m_decodedText2 && m_houndQueue.count() < 10) + { + + QTextCursor cursor = ui->decodedTextBrowser->textCursor(); + cursor.setPosition(cursor.selectionStart()); + QString houndCallLine = cursor.block().text(); + + writeFoxQSO(" QTop: " + houndCallLine); + selectHound(houndCallLine, true); // alt double-click gets put at top of queue + } } void MainWindow::foxGenWaveform(int i,QString fm) @@ -9680,14 +9770,29 @@ void MainWindow::writeFoxQSO(QString const& msg) /*################################################################################### */ void MainWindow::foxTest() { - QFile f("steps.txt"); - if(!f.open(QIODevice::ReadOnly | QIODevice::Text)) return; + QString curdir = QDir::currentPath(); + bool b_hounds_written = false; - QFile fdiag("diag.txt"); + QFile fdiag(m_config.writeable_data_dir ().absoluteFilePath("diag.txt")); if(!fdiag.open(QIODevice::WriteOnly | QIODevice::Text)) return; + QFile f(m_config.writeable_data_dir ().absoluteFilePath("steps.txt")); + if(!f.open(QIODevice::ReadOnly | QIODevice::Text)) { + fdiag.write("Cannot open steps.txt"); + return; + } + QTextStream s(&f); QTextStream sdiag(&fdiag); + + QFile fhounds(m_config.temp_dir().absoluteFilePath("houndcallers.txt")); + if(!fhounds.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) + { + sdiag << "can't write to houndcallers.txt"; + return; + } + QTextStream houndstream(&fhounds); + QString line; QString t; QString msg; @@ -9705,7 +9810,14 @@ void MainWindow::foxTest() } if(line.contains("Sel:")) { t=line.mid(43,6) + " " + line.mid(54,4) + " " + line.mid(50,3); - selectHound(t); + selectHound(t, false); + } + auto line_trimmed = line.trimmed(); + if(line_trimmed.startsWith("Hound:")) { + t=line_trimmed.mid(6,-1).trimmed(); + b_hounds_written = true; + //sdiag << t << Qt::endl; + houndstream << t << Qt::endl; } if(line.contains("Del:")) { @@ -9745,6 +9857,11 @@ void MainWindow::foxTest() sdiag << t << line.mid(37).trimmed() << "\n"; } } + if (b_hounds_written) + { + fhounds.close(); + houndCallers(); + } } void MainWindow::write_all(QString txRx, QString message) diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index d9e738920..80fbce9e5 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -127,6 +127,7 @@ public slots: void doubleClickOnCall (Qt::KeyboardModifiers); void doubleClickOnCall2(Qt::KeyboardModifiers); void doubleClickOnFoxQueue(Qt::KeyboardModifiers); + void doubleClickOnFoxInProgress(Qt::KeyboardModifiers modifiers); void readFromStdout(); void p1ReadFromStdout(); void setXIT(int n, Frequency base = 0u); @@ -832,8 +833,10 @@ private: void displayWidgets(qint64 n); QChar current_submode () const; // returns QChar {0} if submode is not appropriate void write_transmit_entry (QString const& file_name); - void selectHound(QString t); + void selectHound(QString t, bool bTopQueue); void houndCallers(); + void updateFoxQSOsInProgressDisplay(); + void foxQueueTopCallCommand(); void foxRxSequencer(QString msg, QString houndCall, QString rptRcvd); void foxTxSequencer(); void foxGenWaveform(int i,QString fm); diff --git a/widgets/mainwindow.ui b/widgets/mainwindow.ui index 733dc4dc9..0d027f31b 100644 --- a/widgets/mainwindow.ui +++ b/widgets/mainwindow.ui @@ -6,7 +6,7 @@ 0 0 - 901 + 1015 665 @@ -1018,7 +1018,7 @@ Yellow when too low 0 - + 0 @@ -1661,7 +1661,7 @@ When not checked you can view the calibration results. QTabWidget::Triangular - 0 + 1 @@ -2004,8 +2004,8 @@ Double-click to reset to the standard 73 message 2 - - + + @@ -2201,6 +2201,26 @@ Double-click to reset to the standard 73 message + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + More CQs + + + @@ -2248,47 +2268,84 @@ Double-click to reset to the standard 73 message - - - - Qt::Vertical + + + + + + 0 + + + -1 + + + + + true - + + + 0 + 0 + + + - 20 - 40 + 16777215 + 16777215 - + + QAbstractScrollArea::AdjustToContentsOnFirstShow + + - - + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + QAbstractScrollArea::AdjustToContentsOnFirstShow + + + + + + + + 13 + + - More CQs + Queue + + + Qt::AlignCenter + + + + + + + In-QSO + + + Qt::AlignCenter - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - QAbstractScrollArea::AdjustToContentsOnFirstShow - - - @@ -3076,8 +3133,8 @@ QPushButton[state="ok"] { 0 0 - 901 - 22 + 1015 + 37 @@ -3836,7 +3893,6 @@ QPushButton[state="ok"] { tx6 txrb6 txb6 - textBrowser4 comboBoxHoundSort sbNlist sbMax_dB diff --git a/widgets/mainwindow.ui.autosave b/widgets/mainwindow.ui.autosave new file mode 100644 index 000000000..a328548fb --- /dev/null +++ b/widgets/mainwindow.ui.autosave @@ -0,0 +1,3921 @@ + + + MainWindow + + + + 0 + 0 + 1114 + 665 + + + + WSJT-X by K1JT + + + + + + + + + + Qt::Horizontal + + + + + + + + 500 + 16777215 + + + + + 10 + false + + + + Band Activity + + + Qt::AlignCenter + + + + + + + + 300 + 20 + + + + + 16777215 + 20 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 170 + 170 + 170 + + + + + + + 170 + 170 + 170 + + + + + + + + true + + + UTC dB DT Freq Dr + + + Qt::PlainText + + + 5 + + + + + + + QFrame::StyledPanel + + + Qt::ScrollBarAlwaysOn + + + Qt::ScrollBarAsNeeded + + + 0 + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 10 + false + + + + Rx Frequency + + + Qt::AlignCenter + + + + + + + + 300 + 20 + + + + + 16777215 + 20 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 252 + 252 + 252 + + + + + + + 170 + 170 + 170 + + + + + + + + + 170 + 170 + 170 + + + + + + + 170 + 170 + 170 + + + + + + + + true + + + UTC dB DT Freq Dr + + + Qt::PlainText + + + 5 + + + + + + + true + + + Qt::ScrollBarAlwaysOn + + + 0 + + + Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse + + + + + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + CQ only + + + + + + + + 50 + 0 + + + + Enter this QSO in log + + + Log &QSO + + + + + + + + 50 + 0 + + + + Stop monitoring + + + &Stop + + + + + + + + 50 + 0 + + + + Toggle monitoring On/Off + + + QPushButton:checked { + color: #000000; + background-color: #00ff00; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + &Monitor + + + true + + + false + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Erase right window. Double-click to erase both windows.</p></body></html> + + + Erase right window. Double-click to erase both windows. + + + &Erase + + + + + + + true + + + <html><head/><body><p>Clear the accumulating message average.</p></body></html> + + + Clear the accumulating message average. + + + Clear Avg + + + + + + + Avg + + + 1 + + + 100 + + + 10 + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Decode most recent Rx period at QSO Frequency</p></body></html> + + + Decode most recent Rx period at QSO Frequency + + + QPushButton:checked { + color: rgb(0, 0, 0); + background-color: cyan; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + &Decode + + + true + + + + + + + + 50 + 0 + + + + <html><head/><body><p>Toggle Auto-Tx On/Off</p></body></html> + + + Toggle Auto-Tx On/Off + + + QPushButton:checked { + color: rgb(0, 0, 0); + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + E&nable Tx + + + true + + + + + + + + 50 + 0 + + + + Stop transmitting immediately + + + &Halt Tx + + + + + + + <html><head/><body><p>Toggle a pure Tx tone On/Off</p></body></html> + + + Toggle a pure Tx tone On/Off + + + QPushButton:checked { + color: rgb(0, 0, 0); + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + &Tune + + + true + + + + + + + Menus + + + true + + + + + + + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 159 + 175 + 213 + + + + + + + 159 + 175 + 213 + + + + + + + + true + + + DX Call + + + Qt::AlignCenter + + + 5 + + + 2 + + + dxCallEntry + + + + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 252 + 252 + 252 + + + + + + + 159 + 175 + 213 + + + + + + + + + 159 + 175 + 213 + + + + + + + 159 + 175 + 213 + + + + + + + + true + + + DX Grid + + + Qt::AlignCenter + + + 5 + + + 2 + + + dxGridEntry + + + + + + + + 0 + 0 + + + + Callsign of station to be worked + + + 11 + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + Locator of station to be worked + + + ` + + + 6 + + + Qt::AlignCenter + + + + + + + + + Search for callsign in database + + + &Lookup + + + + + + + Add callsign and locator to database + + + Add + + + + + + + true + + + Az: 251 16553 km + + + Qt::AlignCenter + + + 4 + + + + + + + + + + + + Adjust Tx audio level + + + 450 + + + 0 + + + Qt::Vertical + + + true + + + true + + + QSlider::TicksBelow + + + 50 + + + + + + + Pwr + + + + + + + 6 + + + + + + 0 + 0 + + + + + 100 + 16777215 + + + + Qt::AlignCenter + + + % + + + NB + + + -2 + + + 25 + + + + + + + 0 + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 100 + 16777215 + + + + <html><head/><body><p>30dB recommended when only noise present<br/>Green when good<br/>Red when clipping may occur<br/>Yellow when too low</p></body></html> + + + Rx Signal + + + 30dB recommended when only noise present +Green when good +Red when clipping may occur +Yellow when too low + + + QFrame::Panel + + + QFrame::Sunken + + + + + + + Qt::Horizontal + + + + 0 + 20 + + + + + + + + + + + + + 0 + 0 + + + + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + + false + + + <html><head/><body><p>Frequency to call CQ on in kHz above the current MHz</p></body></html> + + + Frequency to call CQ on in kHz above the current MHz + + + Tx CQ + + + 1 + + + 999 + + + 260 + + + + + + + false + + + <html><head/><body><p>Check this to call CQ on the &quot;Tx CQ&quot; frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on.</p><p>Not available to nonstandard callsign holders.</p></body></html> + + + Check this to call CQ on the "Tx CQ" frequency. Rx will be on the current frequency and the CQ message wiill include the current Rx frequency so callers know which frequency to reply on. +Not available to nonstandard callsign holders. + + + + + + + + + + Decode other Hounds calling above 1000 Hz audio offset + + + Rx All Freqs + + + + + + + + + + + + 0 + 0 + + + + + 100 + 16777215 + + + + Fox + + + Qt::AlignCenter + + + + + + + <html><head/><body><p>Check to monitor Sh messages.</p></body></html> + + + Check to monitor Sh messages. + + + SWL + + + + + + + Enable auto response to the first decode from a new DXCC or new call on the current band. + + + QPushButton:checked { + color: rgb(0, 0, 0); + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + Best S+P + + + true + + + + + + + <html><head/><body><p>Check this to start recording calibration data.<br/>While measuring calibration correction is disabled.<br/>When not checked you can view the calibration results.</p></body></html> + + + Check this to start recording calibration data. +While measuring calibration correction is disabled. +When not checked you can view the calibration results. + + + Measure + + + + + + + + + + + <html><head/><body><p>Check to use short-format messages.</p></body></html> + + + Check to use short-format messages. + + + Sh + + + + + + + <html><head/><body><p>Check to enable JT9 fast modes</p></body></html> + + + Check to enable JT9 fast modes + + + Fast + + + + + + + <html><head/><body><p>Check to enable automatic sequencing of Tx messages based on received messages.</p></body></html> + + + Check to enable automatic sequencing of Tx messages based on received messages. + + + Auto Seq + + + + + + + <html><head/><body><p>Select <span style=" font-weight:600;">CQ: First</span> to respond automatically to the first decoded reply to your CQ. </p><p>Select <span style=" font-weight:600;">CQ: Max Dist</span> to respond automatically to the reply yielding most points in the ARRL International Digital Contest.</p><p>Select <span style=" font-weight:600;">CQ: None</span> to choose callers manually.</p></body></html> + + + + + + -1 + + + 3 + + + + + + + false + + + Check to generate "@1250 (SEND MSGS)" in Tx6. + + + Tx6 + + + + + + + + + + + <html><head/><body><p>Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences.</p></body></html> + + + Check to Tx in even-numbered minutes or sequences, starting at 0; uncheck for odd sequences. + + + Tx even/1st + + + + + + + Audio Tx frequency + + + Qt::AlignCenter + + + Hz + + + Tx + + + 200 + + + 5000 + + + 1500 + + + + + + + + + + 0 + 0 + + + + + 35 + 0 + + + + Set Tx frequency to Rx Frequency + + + Set Tx frequency to Rx Frequency + + + â–² + + + + + + + Frequency tolerance (Hz) + + + Qt::AlignCenter + + + F Tol + + + 1 + + + 1000 + + + 10 + + + + + + + + 0 + 0 + + + + + 35 + 0 + + + + Set Rx frequency to Tx Frequency + + + Set Rx frequency to Tx Frequency + + + â–¼ + + + + + + + + + Audio Rx frequency + + + Qt::AlignCenter + + + Hz + + + Rx + + + 200 + + + 5000 + + + 1500 + + + + + + + <html><head/><body><p>Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB).</p></body></html> + + + Signal report: Signal-to-noise ratio in 2500 Hz reference bandwidth (dB). + + + Qt::AlignCenter + + + Report + + + -50 + + + 49 + + + -15 + + + + + + + <html><head/><body><p>Tx/Rx or Frequency calibration sequence length</p></body></html> + + + Tx/Rx or Frequency calibration sequence length + + + Qt::AlignCenter + + + s + + + T/R + + + 5 + + + 1800 + + + 30 + + + + + + + + + + + <html><head/><body><p>Check to keep Tx frequency fixed when double-clicking on decoded text.</p></body></html> + + + Check to keep Tx frequency fixed when double-clicking on decoded text. + + + Hold Tx Freq + + + + + + + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + Tx# + + + 1 + + + 4095 + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::AlignCenter + + + F Low + + + 100 + + + 5000 + + + 50 + + + 600 + + + + + + + Qt::AlignCenter + + + + + + F High + + + 100 + + + 5000 + + + 50 + + + 1400 + + + + + + + + + + + <html><head/><body><p>Submode determines tone spacing; A is narrowest.</p></body></html> + + + Submode determines tone spacing; A is narrowest. + + + Qt::AlignCenter + + + Submode + + + 0 + + + 7 + + + + + + + <html><head/><body><p>Synchronizing threshold. Lower numbers accept weaker sync signals.</p></body></html> + + + Synchronizing threshold. Lower numbers accept weaker sync signals. + + + Qt::AlignCenter + + + Sync + + + -1 + + + 10 + + + 1 + + + + + + + Maximum drift rate in units of symbol rate per transmission. + + + Max Drift + + + 50 + + + 5 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + 0 + 0 + + + + QTabWidget::West + + + QTabWidget::Triangular + + + 1 + + + + 1 + + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+6 + + + true + + + + + + + Queue up the next Tx message + + + Next + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> + + + Send this message in next Tx interval +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type 2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+4 + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders)</p></body></html> + + + Send this message in next Tx interval +Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders) + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+1 + + + + + + + + 0 + 0 + + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + Switch to this Tx message NOW +Double-click to reset to the standard 73 message + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &5 + + + Alt+5 + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &2 + + + Alt+2 + + + + + + + + 0 + 0 + + + + + + + + Switch to this Tx message NOW + + + Now + + + Qt::AlignCenter + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+2 + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + Generate standard messages for minimal QSO + + + Generate Std Msgs + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &3 + + + Alt+3 + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders)</p><p>RR73 messages should only be used when you are reasonably confident that no message repetitions will be required</p></body></html> + + + Switch to this Tx message NOW +Double-click to toggle between RRR and RR73 messages in Tx4 (not allowed for type2 compound call holders) +RR73 messages should only be used when you are reasonably confident that no message repetitions will be required + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &4 + + + Alt+4 + + + + + + + <html><head/><body><p>Switch to this Tx message NOW</p><p>Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders)</p></body></html> + + + Switch to this Tx message NOW +Double click to toggle the use of the Tx1 message to start a QSO with a station (not allowed for type 1 compound call holders) + + + Qt::LeftToRight + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &1 + + + Alt+1 + + + + + + + Switch to this Tx message NOW + + + padding-left: 15%; padding-right: 15%; padding-top: 3%; padding-bottom: 3% + + + Tx &6 + + + Alt+6 + + + + + + + Send this message in next Tx interval + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+3 + + + + + + + Enter a free text message (maximum 13 characters) +or select a predefined macro from the dropdown list. +Press ENTER to add the current text to the predefined +list. The list can be maintained in Settings (F2). + + + true + + + QComboBox::InsertAtBottom + + + + + + + <html><head/><body><p>Send this message in next Tx interval</p><p>Double-click to reset to the standard 73 message</p></body></html> + + + Send this message in next Tx interval +Double-click to reset to the standard 73 message + + + margin-left: 10%; margin-right: 0% + + + + + + Ctrl+5 + + + + + + + + + + 2 + + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Max dB + + + -15 + + + 70 + + + 30 + + + + + + + CQ + + + + CQ + + + + + CQ AF + + + + + CQ AN + + + + + CQ AS + + + + + CQ EU + + + + + CQ NA + + + + + CQ OC + + + + + CQ SA + + + + + CQ 0 + + + + + CQ 1 + + + + + CQ 2 + + + + + CQ 3 + + + + + CQ 4 + + + + + CQ 5 + + + + + CQ 6 + + + + + CQ 7 + + + + + CQ 8 + + + + + CQ 9 + + + + + + + + Reset + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + N List + + + 5 + + + 100 + + + 12 + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + + + + N Slots + + + 1 + + + 5 + + + 1 + + + 10 + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + More CQs + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Random + + + 5 + + + + Random + + + + + Call + + + + + Grid + + + + + S/N (dB) + + + + + Distance + + + + + + + + + + 0 + + + -1 + + + + + true + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + QAbstractScrollArea::AdjustToContentsOnFirstShow + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + QAbstractScrollArea::AdjustToContentsOnFirstShow + + + + + + + + 13 + + + + Queue + + + Qt::AlignCenter + + + + + + + In-QSO + + + Qt::AlignCenter + + + + + + + + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::AlignCenter + + + Hz + + + Tx + + + 1400 + + + 1600 + + + 1500 + + + + + + + Qt::AlignCenter + + + Hz + + + Rx + + + 100 + + + 4900 + + + 100 + + + 1500 + + + + + + + Qt::AlignCenter + + + Hz + + + F Tol + + + 100 + + + 500 + + + 100 + + + + + + + true + + + 0 + + + + Random + + + + + 1/2 + + + + + 2/2 + + + + + 1/3 + + + + + 2/3 + + + + + 3/3 + + + + + 1/4 + + + + + 2/4 + + + + + 3/4 + + + + + 4/4 + + + + + 1/5 + + + + + 2/5 + + + + + 3/5 + + + + + 4/5 + + + + + 5/5 + + + + + 1/6 + + + + + 2/6 + + + + + 3/6 + + + + + 4/6 + + + + + 5/6 + + + + + 6/6 + + + + + + + + Percentage of minute sequences devoted to transmitting. + + + QSpinBox:enabled[notx="true"] { + color: rgb(0, 0, 0); + background-color: rgb(255, 255, 0); +} + + + Qt::AlignCenter + + + % + + + Tx Pct + + + 100 + + + + + + + Qt::AlignCenter + + + s + + + T/R + + + 15 + + + 1800 + + + + + + + Band Hopping + + + true + + + + + + Choose bands and times of day for band-hopping. + + + Schedule ... + + + + + + + + + + + + + + + + + + Upload decoded messages to WSPRnet.org. + + + QCheckBox:unchecked { + color: rgb(0, 0, 0); + background-color: rgb(255, 255, 0); +} + + + Upload spots + + + + + + + + + <html><head/><body><p>6 digit locators cause 2 different messages to be sent, the second contains the full locator but only a hashed callsign, other stations must have decoded the first once before they can decode your call in the second. Check this option to only send 4 digit locators if it will avoid the two message protocol.</p></body></html> + + + 6 digit locators cause 2 different messages to be sent, the second contains the full locator but only a hashed callsign, other stations must have decoded the first once before they can decode your call in the second. Check this option to only send 4 digit locators if it will avoid the two message protocol. + + + Prefer Type 1 messages + + + true + + + + + + + No own call decodes + + + + + + + + + <html><head/><body><p>Transmit during the next sequence.</p></body></html> + + + QPushButton:checked { + color: rgb(0, 0, 0); + background-color: red; + border-style: outset; + border-width: 1px; + border-radius: 5px; + border-color: black; + min-width: 5em; + padding: 3px; +} + + + Tx Next + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Set Tx power in dBm (dB above 1 mW) as part of your WSPR message. + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + USB dial frequency + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + color : yellow; + background-color : black; +} +QLabel[oob="true"] { + background-color: red; +} + + + 14.078 000 + + + Qt::AlignCenter + + + 5 + + + + + + + + + + 32 + 0 + + + + + 16777215 + 16777215 + + + + Toggle FT8 hound mode On/Off + + + H + + + true + + + + + + + + 32 + 0 + + + + + 16777215 + 16777215 + + + + Switch to FT8 mode + + + FT8 + + + + + + + + 32 + 0 + + + + + 16777215 + 16777215 + + + + Switch to FT4 mode + + + FT4 + + + + + + + + 32 + 0 + + + + + 16777215 + 16777215 + + + + Switch to MSK144 mode + + + MSK + + + + + + + + 32 + 0 + + + + + 16777215 + 16777215 + + + + Switch to Q65 mode + + + Q65 + + + + + + + + 32 + 0 + + + + + 16777215 + 16777215 + + + + Switch to JT65 mode + + + JT65 + + + + + + + + + + 0 + 0 + + + + QLabel { + font-family: MS Shell Dlg 2; + font-size: 16pt; + background-color : black; + color : yellow; +} + + + QFrame::StyledPanel + + + QFrame::Sunken + + + 2 + + + 0 + + + <html><head/><body><p align="center"> 2015 Jun 17 </p><p align="center"> 01:23:45 </p></body></html> + + + Qt::AlignCenter + + + 5 + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + <html><head/><body><p>Select operating band or enter frequency in MHz or enter kHz increment followed by k.</p></body></html> + + + Frequency entry + + + Select operating band or enter frequency in MHz or enter kHz increment followed by k. + + + true + + + QComboBox::NoInsert + + + QComboBox::AdjustToMinimumContentsLengthWithIcon + + + + + + + false + + + <html><head/><body><p>If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode.</p></body></html> + + + If orange or red there has been a rig control failure, click to reset and read the dial frequency. S implies split mode. + + + QPushButton { + font-family: helvetica; + font-size: 9pt; + font-weight: bold; + background-color: white; + color: black; + border-style: solid; + border-width:1px; + border-radius:10px; + border-color: gray; + max-width:20px; + max-height:20px; + min-width:20px; + min-height:20px; +} +QPushButton[state="error"] { + background-color: red; +} +QPushButton[state="warning"] { + background-color: orange; +} +QPushButton[state="ok"] { + background-color: #00ff00; +} + + + ? + + + + + + + + + + + + + + + + 0 + 0 + 1114 + 37 + + + + + File + + + + + + + + + + + + + + + + + + + + + View + + + + + + + + + + + + + + + Decode + + + + + + + + + + + + + + + Save + + + + + + + + + + + + + Help + + + + + + + + + + + + + + + + + + + + + Mode + + + + + + + + + + + + + + + + + + + + + Configurations + + + + + Tools + + + + + + + + + + + + + + + + + + + + + + + Exit + + + QAction::QuitRole + + + + + About WSJT-X + + + QAction::AboutRole + + + + + Waterfall + + + + + Open + + + Ctrl+O + + + + + Open next in directory + + + + + Decode remaining files in directory + + + Shift+F6 + + + + + Delete all *.wav && *.c2 files in SaveDir + + + + + true + + + false + + + Fast + + + + + true + + + true + + + None + + + + + true + + + Save all + + + + + Online User Guide + + + + + Keyboard shortcuts + + + + + Special mouse commands + + + + + true + + + true + + + JT9 + + + + + true + + + true + + + Save decoded + + + + + true + + + false + + + Normal + + + + + true + + + true + + + Deep + + + + + Erase ALL.TXT + + + + + Erase wsjtx_log.adi + + + + + true + + + JT65 + + + + + true + + + Astronomical data + + + + + List of Type 1 prefixes and suffixes + + + + + Settings... + + + QAction::PreferencesRole + + + + + Local User Guide + + + + + Open log directory + + + + + true + + + JT4 + + + + + Message averaging + + + F7 + + + + + true + + + Enable averaging + + + + + true + + + Enable deep search + + + + + true + + + WSPR + + + + + Echo Graph + + + F8 + + + + + true + + + Echo + + + EME Echo mode + + + + + true + + + ISCAT + + + + + Fast Graph + + + F9 + + + + + &Download Samples ... + + + <html><head/><body><p>Download sample audio files demonstrating the various modes.</p></body></html> + + + + + true + + + MSK144 + + + + + true + + + QRA64 + + + + + Release Notes + + + + + true + + + Enable AP for DX Call + + + + + true + + + FreqCal + + + + + Measure reference spectrum + + + + + Measure phase response + + + + + Erase reference spectrum + + + + + true + + + Execute frequency calibration cycle + + + + + Equalization tools ... + + + + + true + + + true + + + FT8 + + + + + true + + + Enable AP + + + + + true + + + Enable AP + + + + + Solve for calibration parameters + + + + + Copyright notice + + + Shift+F1 + + + + + false + + + Fox log + + + + + FT8 DXpedition Mode User Guide + + + + + Reset Cabrillo log ... + + + + + Color highlighting scheme + + + + + Export Cabrillo log ... + + + + + Quick-Start Guide to FST4 and FST4W + + + + + Contest log + + + + + Erase WSPR hashtable + + + + + true + + + FT4 + + + + + true + + + FST4 + + + + + true + + + FST4W + + + + + true + + + Q65 + + + + + true + + + SWL Mode + + + Hide lower panel controls to maximize deocde windows + + + + + Quick-Start Guide to Q65 + + + + + true + + + Auto Clear Avg after decode + + + + + Quick-Start Guide to WSJT-X 2.5.0 and MAP65 3.0 + + + + + true + + + true + + + Don't split ALL.TXT + + + + + true + + + Split ALL.TXT yearly + + + + + true + + + Split ALL.TXT monthly + + + + + true + + + Disable writing of ALL.TXT + + + + + Active Stations + + + + + + + DisplayText + QTextBrowser +
widgets/displaytext.h
+
+ + LettersSpinBox + QSpinBox +
widgets/LettersSpinBox.hpp
+
+ + SignalMeter + QFrame +
widgets/signalmeter.h
+ 1 +
+ + HintedSpinBox + QSpinBox +
widgets/HintedSpinBox.hpp
+
+ + RestrictedSpinBox + QSpinBox +
widgets/RestrictedSpinBox.hpp
+
+ + DoubleClickableRadioButton + QRadioButton +
widgets/DoubleClickableRadioButton.hpp
+
+ + DoubleClickablePushButton + QPushButton +
widgets/DoubleClickablePushButton.hpp
+
+ + BandComboBox + QComboBox +
widgets/BandComboBox.hpp
+
+
+ + decodedTextBrowser + decodedTextBrowser2 + cbCQonly + logQSOButton + stopButton + monitorButton + EraseButton + ClrAvgButton + DecodeButton + autoButton + stopTxButton + tuneButton + cbMenus + sbNB + dxCallEntry + dxGridEntry + txFirstCheckBox + TxFreqSpinBox + pbR2T + sbFtol + pbT2R + RxFreqSpinBox + rptSpinBox + sbTR + cbHoldTxFreq + sbF_Low + sbF_High + sbSubmode + syncSpinBox + sbCQTxFreq + cbCQTx + cbRxAll + cbShMsgs + cbFast9 + cbAutoSeq + cbTx6 + cbSWL + pbBestSP + measure_check_box + tabWidget + genStdMsgsPushButton + tx1 + txrb1 + txb1 + tx2 + txrb2 + txb2 + tx3 + txrb3 + txb3 + tx4 + txrb4 + txb4 + tx5 + txrb5 + txb5 + tx6 + txrb6 + txb6 + comboBoxHoundSort + sbNlist + sbMax_dB + sbNslots + comboBoxCQ + cbMoreCQs + pbFoxReset + WSPRfreqSpinBox + sbFST4W_RxFreq + sbFST4W_FTol + RoundRobin + sbTxPercent + sbTR_FST4W + band_hopping_group_box + band_hopping_schedule_push_button + cbUploadWSPR_Spots + WSPR_prefer_type_1_check_box + cbNoOwnCall + pbTxNext + TxPowerComboBox + outAttenuation + sbSerialNumber + + + +