From 0fbc9f3514fe4db42dd80ebe725f8e8df27d2de1 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 24 Aug 2018 13:18:49 -0400 Subject: [PATCH] Set the color highlighting scheme at startup, or after a call to Settings. --- displaytext.cpp | 42 ++++++++++++++++++++++++--------------- displaytext.h | 21 ++++++++++++++------ mainwindow.cpp | 52 ++++++++++++++++++++++++++----------------------- mainwindow.h | 2 +- 4 files changed, 70 insertions(+), 47 deletions(-) diff --git a/displaytext.cpp b/displaytext.cpp index 1ef685a07..b9a8c813f 100644 --- a/displaytext.cpp +++ b/displaytext.cpp @@ -152,8 +152,7 @@ void DisplayText::appendText(QString const& text, QColor bg, QString const& call } QString DisplayText::appendDXCCWorkedB4(QString message, QString const& callsign, QColor * bg, - LogBook const& logBook, QColor color_CQ, QColor color_DXCC, QColor color_NewCall, - QColor color_NewCallBand, QString currentBand) + LogBook const& logBook, QString currentBand) { // allow for seconds int padding {message.indexOf (" ") > 4 ? 2 : 0}; @@ -183,19 +182,19 @@ QString DisplayText::appendDXCCWorkedB4(QString message, QString const& callsign if (!countryWorkedBefore) { // therefore not worked call either appendage += "!"; - *bg = color_DXCC; + *bg = m_color_DXCC; } else { if (!callWorkedBefore) { // but have worked the country appendage += "~"; - *bg = color_NewCall; + *bg = m_color_NewCall; } else { if(!callB4onBand) { appendage += "~"; - *bg = color_NewCallBand; + *bg = m_color_NewCallBand; } else { appendage += " "; // have worked this call before - *bg = color_CQ; + *bg = m_color_CQ; } } } @@ -244,9 +243,6 @@ QString DisplayText::appendDXCCWorkedB4(QString message, QString const& callsign void DisplayText::displayDecodedText(DecodedText const& decodedText, QString const& myCall, bool displayDXCCEntity, LogBook const& logBook, - QColor color_CQ, QColor color_MyCall, - QColor color_DXCC, QColor color_NewCall, - QColor color_NewCallBand, QString currentBand, bool ppfx, bool bCQonly) { m_bPrincipalPrefix=ppfx; @@ -257,7 +253,7 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con || decodedText.string ().contains (" QRZ ")) { CQcall = true; - bg = color_CQ; + bg = m_color_CQ; } if(bCQonly and !CQcall) return; if (myCall != "" and ( @@ -266,7 +262,7 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con or decodedText.indexOf ("/" + myCall + " ") >= 0 or decodedText.indexOf ("<" + myCall + " ") >= 0 or decodedText.indexOf (" " + myCall + ">") >= 0)) { - bg = color_MyCall; + bg = m_color_MyCall; } auto message = decodedText.string(); QString dxCall; @@ -276,14 +272,12 @@ void DisplayText::displayDecodedText(DecodedText const& decodedText, QString con if (displayDXCCEntity && CQcall) // if enabled add the DXCC entity and B4 status to the end of the // preformated text line t1 - message = appendDXCCWorkedB4 (message, decodedText.CQersCall (), &bg, logBook, color_CQ, - color_DXCC, color_NewCall, color_NewCallBand, currentBand); + message = appendDXCCWorkedB4 (message, decodedText.CQersCall (), &bg, logBook, currentBand); appendText (message.trimmed (), bg, decodedText.call (), dxCall); } -void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 txFreq, - QColor color_TxMsg, bool bFastMode) +void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 txFreq,bool bFastMode) { QString t1=" @ "; if(modeTx=="FT8") t1=" ~ "; @@ -303,7 +297,7 @@ void DisplayText::displayTransmittedText(QString text, QString modeTx, qint32 tx t = QDateTime::currentDateTimeUtc().toString("hhmm") + \ " Tx " + t2 + t1 + text; } - appendText (t, color_TxMsg); + appendText (t, m_color_TxMsg); } void DisplayText::displayQSY(QString text) @@ -409,3 +403,19 @@ void DisplayText::highlight_callsign (QString const& callsign, QColor const& bg, } setCurrentCharFormat (old_format); } + +void DisplayText::setDecodedTextColors(QColor color_CQ, QColor color_MyCall, + QColor color_DXCC, QColor color_DXCCband,QColor color_NewCall,QColor color_NewCallBand, + QColor color_NewGrid, QColor color_NewGridBand,QColor color_TxMsg) +{ +// Save the color highlighting scheme selected by the user. + m_color_CQ=color_CQ; + m_color_DXCC=color_DXCC; + m_color_DXCCband=color_DXCCband; + m_color_MyCall=color_MyCall; + m_color_NewCall=color_NewCall; + m_color_NewCallBand=color_NewCallBand; + m_color_NewGrid=color_NewGrid; + m_color_NewGridBand=color_NewGridBand; + m_color_TxMsg=color_TxMsg; +} diff --git a/displaytext.h b/displaytext.h index a479a2bb5..75f0dbb68 100644 --- a/displaytext.h +++ b/displaytext.h @@ -23,13 +23,14 @@ public: void setContentFont (QFont const&); void insertLineSpacer(QString const&); void displayDecodedText(DecodedText const& decodedText, QString const& myCall, - bool displayDXCCEntity, LogBook const& logBook, QColor color_CQ, QColor color_MyCall, - QColor color_DXCC, QColor color_NewCall, QColor color_NewCallBand, + bool displayDXCCEntity, LogBook const& logBook, QString currentBand="", bool ppfx=false, bool bCQonly=false); - void displayTransmittedText(QString text, QString modeTx, qint32 txFreq, - QColor color_TxMsg, bool bFastMode); + void displayTransmittedText(QString text, QString modeTx, qint32 txFreq, bool bFastMode); void displayQSY(QString text); void displayFoxToBeCalled(QString t, QColor bg); + void setDecodedTextColors(QColor color_CQ, QColor color_MyCall, QColor color_DXCC, + QColor color_DXCCband, QColor color_NewCall, QColor color_NewCallBand, + QColor color_NewGrid, QColor color_NewGridBand, QColor color_TxMsg); Q_SIGNAL void selectCallsign (Qt::KeyboardModifiers); Q_SIGNAL void erased (); @@ -45,12 +46,20 @@ protected: private: bool m_bPrincipalPrefix; QString appendDXCCWorkedB4(QString message, QString const& callsign, QColor * bg, - LogBook const& logBook, QColor color_CQ, QColor color_DXCC, - QColor color_NewCall, QColor color_NewCallBand, QString currentBand); + LogBook const& logBook, QString currentBand); QFont char_font_; QAction * erase_action_; QHash> highlighted_calls_; + QColor m_color_CQ; + QColor m_color_MyCall; + QColor m_color_DXCC; + QColor m_color_DXCCband; + QColor m_color_NewCall; + QColor m_color_NewCallBand; + QColor m_color_NewGrid; + QColor m_color_NewGridBand; + QColor m_color_TxMsg; }; #endif // DISPLAYTEXT_H diff --git a/mainwindow.cpp b/mainwindow.cpp index 7416495df..342f50421 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -737,7 +737,8 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, auto t = "UTC dB DT Freq Message"; ui->decodedTextLabel->setText(t); ui->decodedTextLabel2->setText(t); - readSettings(); //Restore user's setup params + readSettings(); //Restore user's setup parameters + setColorHighlighting(); //Set the color highlighting scheme for decoded text. m_audioThread.start (m_audioThreadPriority); #ifdef WIN32 @@ -1293,8 +1294,7 @@ void MainWindow::dataSink(qint64 frames) QString t=QString::fromLatin1(line); DecodedText decodedtext {t}; ui->decodedTextBrowser->displayDecodedText (decodedtext,m_baseCall,m_config.DXCC(), - m_logBook,m_config.color_CQ(),m_config.color_MyCall(),m_config.color_DXCC(), - m_config.color_NewCall(),m_config.color_NewCallBand(),m_currentBand, m_config.ppfx()); + m_logBook,m_currentBand, m_config.ppfx()); if (ui->measure_check_box->isChecked ()) { // Append results text to file "fmt.all". QFile f {m_config.writeable_data_dir ().absoluteFilePath ("fmt.all")}; @@ -1534,8 +1534,7 @@ void MainWindow::fastSink(qint64 frames) QString message {QString::fromLatin1 (line)}; DecodedText decodedtext {message.replace (QChar::LineFeed, "")}; ui->decodedTextBrowser->displayDecodedText (decodedtext,m_baseCall,m_config.DXCC(), - m_logBook,m_config.color_CQ(),m_config.color_MyCall(),m_config.color_DXCC(), - m_config.color_NewCall(),m_config.color_NewCallBand(),m_currentBand,m_config.ppfx()); + m_logBook,m_currentBand,m_config.ppfx()); m_bDecoded=true; auto_sequence (decodedtext, ui->sbFtol->value (), std::numeric_limits::max ()); if (m_mode != "ISCAT") postDecode (true, decodedtext.string ()); @@ -1671,10 +1670,8 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog if(m_config.single_decode() or m_mode=="JT4") { ui->label_6->setText("Single-Period Decodes"); ui->label_7->setText("Average Decodes"); - } else { -// ui->label_6->setText("Band Activity"); -// ui->label_7->setText("Rx Frequency"); } + update_watchdog_label (); if(!m_splitMode) ui->cbCQTx->setChecked(false); if(!m_config.enable_VHF_features()) { @@ -1686,8 +1683,23 @@ void MainWindow::on_actionSettings_triggered() //Setup Dialog } m_opCall=m_config.opCall(); } + setColorHighlighting(); } +void MainWindow::setColorHighlighting() +{ +//Inform the decoded text windows about our color-highlighting scheme. + ui->decodedTextBrowser->setDecodedTextColors(m_config.color_CQ(),m_config.color_MyCall(), + m_config.color_DXCC(),m_config.color_DXCCband(),m_config.color_NewCall(), + m_config.color_NewCallBand(),m_config.color_NewGrid(),m_config.color_NewGridBand(), + m_config.color_TxMsg()); + ui->decodedTextBrowser2->setDecodedTextColors(m_config.color_CQ(),m_config.color_MyCall(), + m_config.color_DXCC(),m_config.color_DXCCband(),m_config.color_NewCall(), + m_config.color_NewCallBand(),m_config.color_NewGrid(),m_config.color_NewGridBand(), + m_config.color_TxMsg()); +} + + void MainWindow::on_monitorButton_clicked (bool checked) { if (!m_transmitting) { @@ -2778,8 +2790,7 @@ void::MainWindow::fast_decode_done() DecodedText decodedtext {message.replace (QChar::LineFeed, "")}; if(!m_bFastDone) { ui->decodedTextBrowser->displayDecodedText (decodedtext,m_baseCall,m_config.DXCC(), - m_logBook,m_config.color_CQ(),m_config.color_MyCall(),m_config.color_DXCC(), - m_config.color_NewCall(),m_config.color_NewCallBand(),m_currentBand,m_config.ppfx()); + m_logBook,m_currentBand,m_config.ppfx()); } t=message.mid(10,5).toFloat(); @@ -2920,16 +2931,12 @@ void MainWindow::readFromStdout() //readFromStdout // This hack sets the font. Surely there's a better way! DecodedText dt{"."}; ui->decodedTextBrowser->displayDecodedText(dt,m_baseCall,m_config.DXCC(), - m_logBook,m_config.color_CQ(),m_config.color_MyCall(), - m_config.color_DXCC(), m_config.color_NewCall(),m_config.color_NewCallBand(), - m_currentBand,m_config.ppfx()); + m_logBook,m_currentBand,m_config.ppfx()); m_bDisplayedOnce=true; } } else { ui->decodedTextBrowser->displayDecodedText(decodedtext,m_baseCall,m_config.DXCC(), - m_logBook,m_config.color_CQ(),m_config.color_MyCall(), - m_config.color_DXCC(), m_config.color_NewCall(),m_config.color_NewCallBand(), - m_currentBand,m_config.ppfx(), + m_logBook,m_currentBand,m_config.ppfx(), (ui->cbCQonly->isVisible() and ui->cbCQonly->isChecked())); } } @@ -2964,9 +2971,7 @@ void MainWindow::readFromStdout() //readFromStdout // This msg is within 10 hertz of our tuned frequency, or a JT4 or JT65 avg, // or contains MyCall ui->decodedTextBrowser2->displayDecodedText(decodedtext,m_baseCall,false, - m_logBook,m_config.color_CQ(),m_config.color_MyCall(), - m_config.color_DXCC(),m_config.color_NewCall(),m_config.color_NewCallBand(), - m_currentBand,m_config.ppfx()); + m_logBook,m_currentBand,m_config.ppfx()); if(m_mode!="JT4") { bool b65=decodedtext.isJT65(); @@ -3575,7 +3580,7 @@ void MainWindow::guiUpdate() write_transmit_entry ("ALL.TXT"); if (m_config.TX_messages ()) { ui->decodedTextBrowser2->displayTransmittedText(m_currentMessage,m_modeTx, - ui->TxFreqSpinBox->value(),m_config.color_TxMsg(),m_bFastMode); + ui->TxFreqSpinBox->value(),m_bFastMode); } } @@ -3676,7 +3681,7 @@ void MainWindow::guiUpdate() if (m_config.TX_messages () && !m_tune && !m_config.bFox()) { ui->decodedTextBrowser2->displayTransmittedText(current_message, m_modeTx, - ui->TxFreqSpinBox->value(),m_config.color_TxMsg(),m_bFastMode); + ui->TxFreqSpinBox->value(),m_bFastMode); } switch (m_ntx) @@ -4472,8 +4477,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie if (s1!=s2 and !message.isTX()) { if (!s2.contains(m_baseCall) or m_mode=="MSK144") { // Taken care of elsewhere if for_us and slow mode ui->decodedTextBrowser2->displayDecodedText(message, m_baseCall,false, - m_logBook,m_config.color_CQ(), m_config.color_MyCall(), m_config.color_DXCC(), - m_config.color_NewCall(),m_config.color_NewCallBand(),m_currentBand,m_config.ppfx()); + m_logBook,m_currentBand,m_config.ppfx()); } m_QSOText = s2; } @@ -8099,7 +8103,7 @@ void MainWindow::foxGenWaveform(int i,QString fm) QString txModeArg; txModeArg.sprintf("FT8fox %d",i+1); ui->decodedTextBrowser2->displayTransmittedText(fm.trimmed(), txModeArg, - ui->TxFreqSpinBox->value()+60*i,m_config.color_TxMsg(),m_bFastMode); + ui->TxFreqSpinBox->value()+60*i,m_bFastMode); foxcom_.i3bit[i]=0; if(fm.indexOf("<")>0) foxcom_.i3bit[i]=1; strncpy(&foxcom_.cmsg[i][0],fm.toLatin1(),40); //Copy this message into cmsg[i] diff --git a/mainwindow.h b/mainwindow.h index 28c5c36db..86e4ef13b 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -33,7 +33,6 @@ #include "DisplayManual.hpp" #include "psk_reporter.h" #include "logbook/logbook.h" -#include "commons.h" #include "astro.h" #include "MessageBox.hpp" #include "NetworkAccessManager.hpp" @@ -328,6 +327,7 @@ private: void auto_sequence (DecodedText const& message, unsigned start_tolerance, unsigned stop_tolerance); void hideMenus(bool b); void foxTest(); + void setColorHighlighting(); NetworkAccessManager m_network_manager; bool m_valid;