From bea312da5e30f67f73284855a6cdc48bb0e89819 Mon Sep 17 00:00:00 2001
From: Joe Taylor <k1jt@arrl.org>
Date: Thu, 28 Feb 2013 23:35:04 +0000
Subject: [PATCH] Correct the vertical scale of red curve, when nbpp>1. Change
 "double-click on callsign" so that you can click anywhere on the line, and
 make it set TxFreq accordingly.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3025 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
---
 mainwindow.cpp | 26 ++++++++++----------------
 mainwindow.h   |  3 +--
 widegraph.cpp  |  2 +-
 3 files changed, 12 insertions(+), 19 deletions(-)

diff --git a/mainwindow.cpp b/mainwindow.cpp
index ae894c0b0..14e9ef679 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -73,7 +73,7 @@ MainWindow::MainWindow(QWidget *parent) :
   txMsgButtonGroup->addButton(ui->txrb6,6);
   connect(txMsgButtonGroup,SIGNAL(buttonClicked(int)),SLOT(set_ntx(int)));
   connect(ui->decodedTextBrowser,SIGNAL(selectCallsign(bool)),this,
-          SLOT(selectCall2(bool)));
+          SLOT(doubleClickOnCall(bool)));
 
   setWindowTitle(Program_Title_Version);
   connect(&soundInThread, SIGNAL(readyForFFT(int)),
@@ -1253,31 +1253,25 @@ void MainWindow::on_txb6_clicked()                                //txb6
   m_restart=true;
 }
 
-void MainWindow::selectCall2(bool ctrl)                          //selectCall2
+void MainWindow::doubleClickOnCall(bool ctrl)
 {
-  QString t = ui->decodedTextBrowser->toPlainText();   //Full contents
-  int i=ui->decodedTextBrowser->textCursor().position();
-  int i0=t.lastIndexOf(" ",i);
-  int i1=t.indexOf(" ",i);
-  QString hiscall=t.mid(i0+1,i1-i0-1);
-  if(hiscall!="") {
-    if(hiscall.length() < 13) doubleClickOnCall(hiscall, ctrl);
-  }
-}
-                                                          //doubleClickOnCall
-void MainWindow::doubleClickOnCall(QString hiscall, bool ctrl)
-{
-  ui->dxCallEntry->setText(hiscall);
   QString t = ui->decodedTextBrowser->toPlainText();   //Full contents
   int i2=ui->decodedTextBrowser->textCursor().position();
   QString t1 = t.mid(0,i2);              //contents up to \n on selected line
   int i1=t1.lastIndexOf("\n") + 1;       //points to first char of line
   QString t2 = t1.mid(i1,i2-i1);         //selected line
+  int i4=t.mid(i1).length();
+  if(i4>60) i4=60;
+  QString t3=t.mid(i1,i4);
+  QStringList t4=t3.split(" ",QString::SkipEmptyParts);
+  ui->TxFreqSpinBox->setValue(int(t4.at(4).toFloat()));
+  QString hiscall=t4.at(7);
+  ui->dxCallEntry->setText(hiscall);
   int n = 60*t2.mid(0,2).toInt() + t2.mid(2,2).toInt();
   int nmod=n%(m_TRperiod/30);
   m_txFirst=(nmod!=0);
   ui->txFirstCheckBox->setChecked(m_txFirst);
-  QString rpt=t2.mid(10,3);
+  QString rpt=t4.at(2);
   if(rpt.indexOf("  ")==0) rpt="+" + rpt.mid(2,2);
   if(rpt.indexOf(" -")==0) rpt=rpt.mid(1,2);
   if(rpt.indexOf(" ")==0) rpt="+" + rpt.mid(1,2);
diff --git a/mainwindow.h b/mainwindow.h
index 98c5aa7b0..19ab074bb 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -28,7 +28,7 @@ public slots:
   void diskWriteFinished();
   void freezeDecode(int n);
   void guiUpdate();
-  void doubleClickOnCall(QString hiscall, bool ctrl);
+  void doubleClickOnCall(bool ctrl);
   void readFromStdout();
   void readFromStderr();
   void jt9_error();
@@ -85,7 +85,6 @@ private slots:
   void on_addButton_clicked();
   void on_dxCallEntry_textChanged(const QString &arg1);
   void on_dxGridEntry_textChanged(const QString &arg1);
-  void selectCall2(bool ctrl);
   void on_genStdMsgsPushButton_clicked();
   void on_logQSOButton_clicked();
   void on_actionErase_wsjtx_rx_log_triggered();
diff --git a/widegraph.cpp b/widegraph.cpp
index 0dbf10f18..416a9ad41 100644
--- a/widegraph.cpp
+++ b/widegraph.cpp
@@ -119,7 +119,7 @@ void WideGraph::dataSink2(float s[], float red[], float df3, int ihsym,
         rsum += red[i];
       }
       swide[j]=sum;
-      rwide[j]=rsum;
+      rwide[j]=rsum/nbpp;
 //      if(lstrong[1 + i/32]!=0) swide[j]=-smax;   //Tag strong signals
     }