From d7baae12f883b7171eb742bc7dcc493cd52ad0df Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Sat, 30 Sep 2017 17:48:46 +0000 Subject: [PATCH] Another try at optimizing the GUI for simplex and split behavior. Details below: 1. Checkbox "Double-click on call sets Tx and Rx freqs" has been removed from the Settings -> General tab. 2. Checkbox "Lock Tx Freq" on main window is relabled "Hold Tx Freq". 3. Behavior now defaults to the "simplex" behavior in use up to code revision r8123. In particular, double-clicking on decoded mesages that do not contain your own call moves both Rx and Tx frequencies. If the first callsign is your own call, only Rx freq moves. 4. If "Hold Tx Freq" is checked, double-clicking on decoded messages moves the Rx frequency; Tx frequency is moved only if CTRL was held down. 5. Clicking on the waterfall moves Rx and Tx frequencies as before: Rx only on a simple click, Tx only on SHIFT-click, and both on CTRL-click. This happens even if "Hold Tx Freq" is checked (which is why this box is no longer labeled "Lock Tx Freq"). git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8146 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- Configuration.cpp | 6 ------ Configuration.hpp | 1 - Configuration.ui | 15 ++++----------- mainwindow.cpp | 49 +++++++++++++++++++++-------------------------- mainwindow.h | 4 ++-- mainwindow.ui | 6 +++--- plotter.cpp | 5 ++--- plotter.h | 2 -- widegraph.cpp | 8 -------- widegraph.h | 2 -- 10 files changed, 33 insertions(+), 65 deletions(-) diff --git a/Configuration.cpp b/Configuration.cpp index 108994a94..e7b9882ad 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -553,7 +553,6 @@ private: bool clear_DX_; bool miles_; bool quick_call_; - bool default_simplex_; bool disable_TX_on_73_; int watchdog_; bool TX_messages_; @@ -644,7 +643,6 @@ bool Configuration::DXCC () const {return m_->DXCC_;} bool Configuration::clear_DX () const {return m_->clear_DX_;} bool Configuration::miles () const {return m_->miles_;} bool Configuration::quick_call () const {return m_->quick_call_;} -bool Configuration::default_simplex () const {return m_->default_simplex_;} bool Configuration::disable_TX_on_73 () const {return m_->disable_TX_on_73_;} int Configuration::watchdog () const {return m_->watchdog_;} bool Configuration::TX_messages () const {return m_->TX_messages_;} @@ -1084,7 +1082,6 @@ void Configuration::impl::initialize_models () ui_->clear_DX_check_box->setChecked (clear_DX_); ui_->miles_check_box->setChecked (miles_); ui_->quick_call_check_box->setChecked (quick_call_); - ui_->cbDefaultSimplex->setChecked (default_simplex_); ui_->disable_TX_on_73_check_box->setChecked (disable_TX_on_73_); ui_->tx_watchdog_spin_box->setValue (watchdog_); ui_->TX_messages_check_box->setChecked (TX_messages_); @@ -1315,7 +1312,6 @@ void Configuration::impl::read_settings () clear_DX_ = settings_->value ("ClearCallGrid", false).toBool (); miles_ = settings_->value ("Miles", false).toBool (); quick_call_ = settings_->value ("QuickCall", false).toBool (); - default_simplex_ = settings_->value ("DefaultSimplex", false).toBool (); disable_TX_on_73_ = settings_->value ("73TxDisable", false).toBool (); watchdog_ = settings_->value ("TxWatchdog", 6).toInt (); TX_messages_ = settings_->value ("Tx2QSO", true).toBool (); @@ -1407,7 +1403,6 @@ void Configuration::impl::write_settings () settings_->setValue ("ClearCallGrid", clear_DX_); settings_->setValue ("Miles", miles_); settings_->setValue ("QuickCall", quick_call_); - settings_->setValue ("DefaultSimplex", default_simplex_); settings_->setValue ("73TxDisable", disable_TX_on_73_); settings_->setValue ("TxWatchdog", watchdog_); settings_->setValue ("Tx2QSO", TX_messages_); @@ -1807,7 +1802,6 @@ void Configuration::impl::accept () clear_DX_ = ui_->clear_DX_check_box->isChecked (); miles_ = ui_->miles_check_box->isChecked (); quick_call_ = ui_->quick_call_check_box->isChecked (); - default_simplex_ = ui_->cbDefaultSimplex->isChecked (); disable_TX_on_73_ = ui_->disable_TX_on_73_check_box->isChecked (); watchdog_ = ui_->tx_watchdog_spin_box->value (); TX_messages_ = ui_->TX_messages_check_box->isChecked (); diff --git a/Configuration.hpp b/Configuration.hpp index 5e07dba3d..b0c219167 100644 --- a/Configuration.hpp +++ b/Configuration.hpp @@ -117,7 +117,6 @@ public: bool clear_DX () const; bool miles () const; bool quick_call () const; - bool default_simplex() const; bool disable_TX_on_73 () const; int watchdog () const; bool TX_messages () const; diff --git a/Configuration.ui b/Configuration.ui index ae3608bb2..2bbbc0b7d 100644 --- a/Configuration.ui +++ b/Configuration.ui @@ -438,7 +438,7 @@ quiet period when decoding is done. - + Turns off automatic transmissions after sending a 73 or any other free @@ -449,13 +449,6 @@ text message. - - - - Double-click on call sets Tx and Rx freqs - - - @@ -2629,12 +2622,12 @@ soundcard changes - - - + + + diff --git a/mainwindow.cpp b/mainwindow.cpp index 3f2bd6bf5..af82f0bf5 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -257,7 +257,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, m_sentFirst73 {false}, m_currentMessageType {-1}, m_lastMessageType {-1}, - m_lockTxFreq {false}, + m_holdTxFreq {false}, m_bShMsgs {false}, m_bSWL {false}, m_uploading {false}, @@ -818,7 +818,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, morse_(const_cast (m_config.my_callsign ().toLatin1().constData()), const_cast (icw), &m_ncw, m_config.my_callsign ().length()); on_actionWide_Waterfall_triggered(); - m_wideGraph->setLockTxFreq(m_lockTxFreq); ui->cbShMsgs->setChecked(m_bShMsgs); ui->cbSWL->setChecked(m_bSWL); if(m_bFast9) m_bFastMode=true; @@ -849,8 +848,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->sbTxPercent->setValue(m_pctx); ui->TxPowerComboBox->setCurrentIndex(int(0.3*(m_dBm + 30.0)+0.2)); ui->cbUploadWSPR_Spots->setChecked(m_uploadSpots); - ui->cbTxLock->setChecked(m_lockTxFreq); - ui->TxFreqSpinBox->setEnabled(!m_lockTxFreq); + ui->cbHoldTxFreq->setChecked(m_holdTxFreq); if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true); if((m_ndepth&7)==2) ui->actionMediumDecode->setChecked(true); if((m_ndepth&7)==3) ui->actionDeepestDecode->setChecked(true); @@ -1002,7 +1000,7 @@ void MainWindow::writeSettings() m_settings->setValue("NoSuffix",m_noSuffix); m_settings->setValue("GUItab",ui->tabWidget->currentIndex()); m_settings->setValue("OutBufSize",outBufSize); - m_settings->setValue("LockTxFreq",m_lockTxFreq); + m_settings->setValue("HoldTxFreq",m_holdTxFreq); m_settings->setValue("PctTx",m_pctx); m_settings->setValue("dBm",m_dBm); m_settings->setValue ("WSPRPreferType1", ui->WSPR_prefer_type_1_check_box->isChecked ()); @@ -1091,7 +1089,7 @@ void MainWindow::readSettings() int n=m_settings->value("GUItab",0).toInt(); ui->tabWidget->setCurrentIndex(n); outBufSize=m_settings->value("OutBufSize",4096).toInt(); - m_lockTxFreq=m_settings->value("LockTxFreq",false).toBool(); + m_holdTxFreq=m_settings->value("HoldTxFreq",false).toBool(); m_pwrBandTxMemory=m_settings->value("pwrBandTxMemory").toHash(); m_pwrBandTuneMemory=m_settings->value("pwrBandTuneMemory").toHash(); ui->actionEnable_AP->setChecked (m_settings->value ("FT8AP", false).toBool()); @@ -1732,7 +1730,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e) n=11; if(e->modifiers() & Qt::ControlModifier) n+=100; if(e->modifiers() & Qt::ShiftModifier) { - if(ui->TxFreqSpinBox->isEnabled()) ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()-60); + ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()-60); } else{ bumpFqso(n); } @@ -1741,7 +1739,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e) n=12; if(e->modifiers() & Qt::ControlModifier) n+=100; if(e->modifiers() & Qt::ShiftModifier) { - if(ui->TxFreqSpinBox->isEnabled()) ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()+60); + ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()+60); } else { bumpFqso(n); } @@ -1819,7 +1817,7 @@ void MainWindow::bumpFqso(int n) //bumpFqso() if(ctrl and m_mode.startsWith ("WSPR")) { ui->WSPRfreqSpinBox->setValue(i); } else { - if(ctrl && ui->TxFreqSpinBox->isEnabled ()) { + if(ctrl) { ui->TxFreqSpinBox->setValue (i); } } @@ -3750,9 +3748,9 @@ void MainWindow::processMessage(DecodedText const& message, bool shift, bool ctr //Skip the rest if no decoded text extracted int frequency = message.frequencyOffset(); if (message.isTX()) { - if (!m_config.enable_VHF_features() && ui->TxFreqSpinBox->isEnabled()) { + if (!m_config.enable_VHF_features()) { if(!shift) ui->RxFreqSpinBox->setValue(frequency); //Set Rx freq - if(ctrl or shift) ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq + if((ctrl or shift) and !m_holdTxFreq) ui->TxFreqSpinBox->setValue(frequency); //Set Tx freq } return; } @@ -3839,10 +3837,9 @@ void MainWindow::processMessage(DecodedText const& message, bool shift, bool ctr && firstcall != m_config.my_callsign () && firstcall != m_baseCall && firstcall != "DE") || "CQ" == firstcall || "QRZ" == firstcall || ctrl || shift) { - if (ui->TxFreqSpinBox->isEnabled()) { - if(ctrl or shift or m_config.default_simplex()) ui->TxFreqSpinBox->setValue(frequency); - } else if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") && - m_mode != "QRA64" && m_mode!="FT8") { + if (!m_holdTxFreq or shift or ctrl) ui->TxFreqSpinBox->setValue(frequency); + if(m_mode != "JT4" && m_mode != "JT65" && !m_mode.startsWith ("JT9") && + m_mode != "QRA64" && m_mode!="FT8") { return; } } @@ -4627,8 +4624,8 @@ void MainWindow::displayWidgets(int n) if(i==11) ui->pbTxMode->setVisible(b); if(i==12) ui->pbR2T->setVisible(b); if(i==13) ui->pbT2R->setVisible(b); - if(i==14) ui->cbTxLock->setVisible(b); - if(i==14 and (!b)) ui->cbTxLock->setChecked(false); + if(i==14) ui->cbHoldTxFreq->setVisible(b); + if(i==14 and (!b)) ui->cbHoldTxFreq->setChecked(false); if(i==15) ui->sbSubmode->setVisible(b); if(i==16) ui->syncSpinBox->setVisible(b); if(i==17) ui->WSPR_controls_widget->setVisible(b); @@ -5171,7 +5168,7 @@ void MainWindow::fast_config(bool b) void MainWindow::on_TxFreqSpinBox_valueChanged(int n) { m_wideGraph->setTxFreq(n); -// if(m_lockTxFreq) ui->RxFreqSpinBox->setValue(n); +// if(m_holdTxFreq) ui->RxFreqSpinBox->setValue(n); if(m_mode!="MSK144") { Q_EMIT transmitFrequency (n - m_XIT); } @@ -5544,7 +5541,7 @@ void MainWindow::rigOpen () void MainWindow::on_pbR2T_clicked() { - if (ui->TxFreqSpinBox->isEnabled ()) ui->TxFreqSpinBox->setValue(ui->RxFreqSpinBox->value ()); + ui->TxFreqSpinBox->setValue(ui->RxFreqSpinBox->value ()); } void MainWindow::on_pbT2R_clicked() @@ -5641,11 +5638,9 @@ void MainWindow::setFreq4(int rxFreq, int txFreq) } } -void MainWindow::on_cbTxLock_clicked(bool checked) +void MainWindow::on_cbHoldTxFreq_clicked(bool checked) { - m_lockTxFreq=checked; - m_wideGraph->setLockTxFreq(m_lockTxFreq); - ui->TxFreqSpinBox->setEnabled(!m_lockTxFreq); + m_holdTxFreq=checked; } void MainWindow::handle_transceiver_update (Transceiver::TransceiverState const& s) @@ -5992,7 +5987,7 @@ void MainWindow::transmitDisplay (bool transmitting) auto QSY_allowed = !transmitting or m_config.tx_QSY_allowed () or !m_config.split_mode (); - if (ui->cbTxLock->isChecked ()) { + if (ui->cbHoldTxFreq->isChecked ()) { ui->RxFreqSpinBox->setEnabled (QSY_allowed); ui->pbT2R->setEnabled (QSY_allowed); } @@ -6003,12 +5998,12 @@ void MainWindow::transmitDisplay (bool transmitting) // used fixed 1000Hz Tx DF for VHF & up QSO modes // ui->TxFreqSpinBox->setValue(1000); // ui->TxFreqSpinBox->setEnabled (false); - ui->TxFreqSpinBox->setEnabled (!ui->cbTxLock->isChecked()); + ui->TxFreqSpinBox->setEnabled (true); //### } else { - ui->TxFreqSpinBox->setEnabled (QSY_allowed and !m_bFastMode and !ui->cbTxLock->isChecked()); + ui->TxFreqSpinBox->setEnabled (QSY_allowed and !m_bFastMode and !ui->cbHoldTxFreq->isChecked()); ui->pbR2T->setEnabled (QSY_allowed); - ui->cbTxLock->setEnabled (QSY_allowed); + ui->cbHoldTxFreq->setEnabled (QSY_allowed); } } diff --git a/mainwindow.h b/mainwindow.h index 89f7991ed..dec030a28 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -225,7 +225,7 @@ private slots: void on_readFreq_clicked(); void on_pbTxMode_clicked(); void on_RxFreqSpinBox_valueChanged(int n); - void on_cbTxLock_clicked(bool checked); + void on_cbHoldTxFreq_clicked(bool checked); void on_outAttenuation_valueChanged (int); void rigOpen (); void handle_transceiver_update (Transceiver::TransceiverState const&); @@ -429,7 +429,7 @@ private: QString m_currentMessage; int m_lastMessageType; QString m_lastMessageSent; - bool m_lockTxFreq; + bool m_holdTxFreq; bool m_bShMsgs; bool m_bSWL; bool m_uploadSpots; diff --git a/mainwindow.ui b/mainwindow.ui index 6ca3a469b..e20ed2abd 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -798,12 +798,12 @@ QLabel[oob="true"] { 5 - + <html><head/><body><p>Tx frequency tracks Rx frequency. </p><p>Not recommended for general use!</p></body></html> - Lock Tx Freq + Hold Tx Freq @@ -3018,7 +3018,7 @@ QPushButton[state="ok"] { pbTxMode pbR2T pbT2R - cbTxLock + cbHoldTxFreq sbSubmode syncSpinBox tabWidget diff --git a/plotter.cpp b/plotter.cpp index 53a25024f..e6635aa18 100644 --- a/plotter.cpp +++ b/plotter.cpp @@ -639,11 +639,10 @@ void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent int newFreq = int(FreqfromX(x)+0.5); int oldTxFreq = m_txFreq; int oldRxFreq = m_rxFreq; - - if (ctrl and !m_lockTxFreq) { + if (ctrl) { emit setFreq1 (newFreq, newFreq); } else if (shift) { - if(!m_lockTxFreq) emit setFreq1 (oldRxFreq, newFreq); + emit setFreq1 (oldRxFreq, newFreq); } else { emit setFreq1(newFreq,oldTxFreq); } diff --git a/plotter.h b/plotter.h index ecf829f9f..67e51c9fa 100644 --- a/plotter.h +++ b/plotter.h @@ -75,7 +75,6 @@ public: void setBreadth(qint32 w) {m_w = w;} qint32 breadth() const {return m_w;} float fSpan() const {return m_fSpan;} - void setLockTxFreq(bool b) {m_lockTxFreq = b;} void setColours(QVector const& cl); void setFlatten(bool b1, bool b2); void setTol(int n); @@ -106,7 +105,6 @@ private: bool m_bLinearAvg; bool m_bReference; bool m_bReference0; - bool m_lockTxFreq; bool m_bVHF; float m_fSpan; diff --git a/widegraph.cpp b/widegraph.cpp index 6b62ebb05..4bfa744f8 100644 --- a/widegraph.cpp +++ b/widegraph.cpp @@ -22,7 +22,6 @@ WideGraph::WideGraph(QSettings * settings, QWidget *parent) : m_settings (settings), m_palettes_path {":/Palettes"}, m_ntr0 {0}, - m_lockTxFreq {false}, m_bHaveTransmitted {false}, m_n {0} { @@ -230,7 +229,6 @@ void WideGraph::setRxFreq(int n) //set { ui->widePlot->setRxFreq(n); ui->widePlot->draw(swide,false,false); -// if(m_lockTxFreq) setTxFreq(n); } int WideGraph::rxFreq() //rxFreq @@ -333,12 +331,6 @@ void WideGraph::on_fSplitSpinBox_valueChanged(int n) //fSplit setRxRange (); } -void WideGraph::setLockTxFreq(bool b) //LockTxFreq -{ - m_lockTxFreq=b; - ui->widePlot->setLockTxFreq(b); -} - void WideGraph::setFreq2(int rxFreq, int txFreq) //setFreq2 { emit setFreq3(rxFreq,txFreq); diff --git a/widegraph.h b/widegraph.h index 32fed92fd..1ec7a5f0e 100644 --- a/widegraph.h +++ b/widegraph.h @@ -40,7 +40,6 @@ public: void setMode(QString mode); void setSubMode(int n); void setModeTx(QString modeTx); - void setLockTxFreq(bool b); bool flatten(); bool useRef(); void setTol(int n); @@ -104,7 +103,6 @@ private: qint32 m_nSubMode; qint32 m_nsmo; qint32 m_Percent2DScreen; - bool m_lockTxFreq; bool m_bFlatten; bool m_bRef; bool m_bHaveTransmitted; //Set true at end of a WSPR transmission