From 469caa7d0c63dd245c96bd84495eca1783242d05 Mon Sep 17 00:00:00 2001 From: Joe Taylor <joe@princeton.edu> Date: Thu, 15 Dec 2022 12:14:06 -0500 Subject: [PATCH] Finally(!) selecting an Active Station is now working for both FT8 and Q65. --- widgets/activeStations.cpp | 28 +++++++++++++++------------- widgets/activeStations.h | 4 +++- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/widgets/activeStations.cpp b/widgets/activeStations.cpp index 055b347b0..9c41e7073 100644 --- a/widgets/activeStations.cpp +++ b/widgets/activeStations.cpp @@ -23,8 +23,8 @@ ActiveStations::ActiveStations(QSettings * settings, QFont const& font, QWidget changeFont (font); read_settings (); ui->header_label2->setText(" N Call Grid Az S/N Freq Tx Age Pts"); - connect(ui->RecentStationsPlainTextEdit, SIGNAL(selectionChanged()), this, SLOT(select())); connect(ui->cbReadyOnly, SIGNAL(toggled(bool)), this, SLOT(on_cbReadyOnly_toggled(bool))); + connect(ui->RecentStationsPlainTextEdit, SIGNAL(cursorPositionChanged()), this, SLOT(on_textEdit_clicked())); } ActiveStations::~ActiveStations() @@ -74,7 +74,8 @@ void ActiveStations::displayRecentStations(QString mode, QString const& t) ui->label_3->setVisible(!b); ui->score->setVisible(!b); ui->sbMaxRecent->setVisible(!b); - ui->RecentStationsPlainTextEdit->setPlainText(t); +// ui->RecentStationsPlainTextEdit->setPlainText(t); + ui->RecentStationsPlainTextEdit->insertPlainText(t); // QString t1= " 1. R7BI KN96 41 -12 764 0 0 18\n 2. LA6OP JP67 29 +07 696 0 0* 13\n 3. G0OUC IO93 49 -20 1628 0 0 13\n 4. G5EA IO93 49 -13 1747 0 0 13\n 5. G7BHU IO93 49 -17 1191 0 0 13\n 6. ON4EB JO11 50 -01 2188 0 0 13\n 7. K2AK DM41 264 +03 1432 0 0 8\n 8. N2DEE DM79 277 -01 1297 0 0 7\n 9. AK0MR DM59 279 +07 2478 0 0 7\n10. NK5G EM20 245 -07 2149 0 0 6\n"; //TEMP // ui->RecentStationsPlainTextEdit->setPlainText(t1); @@ -92,19 +93,20 @@ int ActiveStations::maxAge() return ui->sbMaxAge->value(); } -void ActiveStations::select() +void ActiveStations::on_textEdit_clicked() { if(m_clickOK) { - qint64 msec=QDateTime::currentMSecsSinceEpoch(); - if((msec-m_msec0)<500) return; - m_msec0=msec; - int nline=ui->RecentStationsPlainTextEdit->textCursor().blockNumber(); - - qDebug() << "aa" << nline << ui->RecentStationsPlainTextEdit->textCursor().position(); -// qDebug() << "bb" << ui->RecentStationsPlainTextEdit->toPlainText(); - -// if(nline!=-99) return; //TEMPORARY - emit callSandP(nline); + QTextCursor cursor; + QString text; + cursor = ui->RecentStationsPlainTextEdit->textCursor(); + cursor.movePosition(QTextCursor::StartOfBlock); + cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor); + text = cursor.selectedText(); + if(text!="") { + int nline=text.left(2).toInt()-1; + qDebug() << "aa" << text << nline; + emit callSandP(nline); + } } } diff --git a/widgets/activeStations.h b/widgets/activeStations.h index 324908434..207668ddd 100644 --- a/widgets/activeStations.h +++ b/widgets/activeStations.h @@ -29,7 +29,6 @@ public: void setRate(int n); void setBandChanges(int n); void setScore(int n); - Q_SLOT void select(); bool m_clickOK=false; bool m_bReadyOnly; @@ -38,6 +37,9 @@ signals: void callSandP(int nline); void activeStationsDisplay(); +private slots: + void on_textEdit_clicked(); + private: void read_settings (); void write_settings ();