diff --git a/mainwindow.cpp b/mainwindow.cpp
index 230cddd1c..c5d6acb1a 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -164,6 +164,7 @@ MainWindow::MainWindow(QWidget *parent) :
border-color: black; min-width: 5em; padding: 3px;}";
genStdMsgs("-30");
on_actionWide_Waterfall_triggered(); //###
+ g_pWideGraph->setTxFreq(m_txFreq);
if(m_mode=="JT9-1") on_actionJT9_1_triggered();
if(m_mode=="JT9-2") on_actionJT9_2_triggered();
if(m_mode=="JT9-5") on_actionJT9_5_triggered();
@@ -189,7 +190,7 @@ MainWindow::MainWindow(QWidget *parent) :
soundInThread.setMonitoring(m_monitoring);
m_diskData=false;
g_pWideGraph->setTol(m_tol);
- static int ntol[] = {1,2,5,10,20,50,100,200,500,1000};
+ static int ntol[] = {1,2,5,10,20,50,100,200,500};
for (int i=0; i<10; i++) {
if(ntol[i]==m_tol) ui->tolSpinBox->setValue(i);
}
@@ -508,6 +509,7 @@ void MainWindow::on_stopTxButton_clicked() //Stop Tx
void MainWindow::keyPressEvent( QKeyEvent *e ) //keyPressEvent
{
+ int n;
switch(e->key())
{
case Qt::Key_F3:
@@ -526,20 +528,14 @@ void MainWindow::keyPressEvent( QKeyEvent *e ) //keyPressEvent
}
break;
case Qt::Key_F11:
- if(e->modifiers() & Qt::ShiftModifier) {
- } else {
- int n=g_pWideGraph->QSOfreq();
- n--;
- g_pWideGraph->setQSOfreq(n);
- }
+ n=11;
+ if(e->modifiers() & Qt::ControlModifier) n+=100;
+ bumpFqso(n);
break;
case Qt::Key_F12:
- if(e->modifiers() & Qt::ShiftModifier) {
- } else {
- int n=g_pWideGraph->QSOfreq();
- n++;
- g_pWideGraph->setQSOfreq(n);
- }
+ n=12;
+ if(e->modifiers() & Qt::ControlModifier) n+=100;
+ bumpFqso(n);
break;
case Qt::Key_G:
if(e->modifiers() & Qt::AltModifier) {
@@ -555,6 +551,22 @@ void MainWindow::keyPressEvent( QKeyEvent *e ) //keyPressEvent
}
}
+void MainWindow::bumpFqso(int n) //bumpFqso()
+{
+ if((n%100)==11) {
+ int i=g_pWideGraph->QSOfreq();
+ i--;
+ g_pWideGraph->setQSOfreq(i);
+ if(n<100) g_pWideGraph->setTxFreq(i);
+ }
+ if((n%100)==12) {
+ int i=g_pWideGraph->QSOfreq();
+ i++;
+ g_pWideGraph->setQSOfreq(i);
+ if(n<100) g_pWideGraph->setTxFreq(i);
+ }
+}
+
bool MainWindow::eventFilter(QObject *object, QEvent *event) //eventFilter()
{
if (event->type() == QEvent::KeyPress) {
@@ -601,7 +613,7 @@ void MainWindow::createStatusBar() //createStatusBar
void MainWindow::on_tolSpinBox_valueChanged(int i) //tolSpinBox
{
- static int ntol[] = {1,2,5,10,20,50,100,200,500,1000};
+ static int ntol[] = {1,2,5,10,20,50,100,200,500};
m_tol=ntol[i];
g_pWideGraph->setTol(m_tol);
ui->labTol1->setText(QString::number(ntol[i]));
@@ -668,6 +680,8 @@ void MainWindow::on_actionWide_Waterfall_triggered() //Display Waterfalls
g_pWideGraph->setWindowFlags(flags);
connect(g_pWideGraph, SIGNAL(freezeDecode2(int)),this,
SLOT(freezeDecode(int)));
+ connect(g_pWideGraph, SIGNAL(f11f12(int)),this,
+ SLOT(bumpFqso(int)));
}
g_pWideGraph->show();
}
@@ -852,7 +866,7 @@ void MainWindow::on_DecodeButton_clicked() //Decode request
void MainWindow::freezeDecode(int n) //freezeDecode()
{
- static int ntol[] = {1,2,5,10,20,50,100,200,500,1000};
+ static int ntol[] = {1,2,5,10,20,50,100,200,500};
if(!m_decoderBusy) {
jt9com_.newdat=0;
jt9com_.nagain=1;
@@ -1690,6 +1704,7 @@ void MainWindow::on_NBslider_valueChanged(int n)
void MainWindow::on_TxFreqSpinBox_valueChanged(int n)
{
m_txFreq=n;
+ if(g_pWideGraph!=NULL) g_pWideGraph->setTxFreq(n);
soundOutThread.setTxFreq(n);
}
diff --git a/mainwindow.h b/mainwindow.h
index 0f313c81b..dcfc81c45 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -108,6 +108,7 @@ private slots:
void on_actionMediumDecode_triggered();
void on_actionDeepestDecode_triggered();
void on_inGain_valueChanged(int n);
+ void bumpFqso(int n);
private:
Ui::MainWindow *ui;
diff --git a/mainwindow.ui b/mainwindow.ui
index df4d3d4a5..65fe83246 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -349,7 +349,7 @@ p, li { white-space: pre-wrap; }
SetMsgs
-
+
8
@@ -710,7 +710,7 @@ p, li { white-space: pre-wrap; }
0
- 9
+ 8
5
diff --git a/plotter.cpp b/plotter.cpp
index b32b42a48..47625e500 100644
--- a/plotter.cpp
+++ b/plotter.cpp
@@ -33,6 +33,7 @@ CPlotter::CPlotter(QWidget *parent) : //CPlotter Constructor
m_nsps=6912;
m_dBStepSize=10;
m_Percent2DScreen = 30; //percent of screen used for 2D display
+ m_txFreq=0;
}
CPlotter::~CPlotter() { } // Destructor
@@ -136,8 +137,6 @@ void CPlotter::draw(float swide[], float red[], int i0) //draw()
if(!strong0) painter2D.setPen(Qt::green);
}
LineBuf[j].setX(i);
-// y2 = m_h*float(i)/m_w;
-// if(m_line==10) qDebug() << i << FreqfromX(i) << m_h << y2 << m_h-y2;
LineBuf[j].setY(m_h-(y2+0.8*m_h));
j++;
}
@@ -285,13 +284,20 @@ void CPlotter::DrawOverlay() //DrawOverlay()
QPen pen0(Qt::green, 3); //Mark QSO Freq with green tick
painter0.setPen(pen0);
- x = m_xClick;
- painter0.drawLine(x,15,x,30);
+ x=XfromFreq(m_fQSO);
+ painter0.drawLine(x,17,x,30);
int x1=x - m_tol/df;
int x2=x + m_tol/df;
pen0.setWidth(6);
painter0.drawLine(x1,28,x2,28);
+ QPen pen1(Qt::red, 3); //Mark TxFreq with red tick
+ painter0.setPen(pen1);
+ x = XfromFreq(m_txFreq);
+ painter0.drawLine(x,0,x,13);
+ painter0.drawLine(x,13,x-2,11);
+ painter0.drawLine(x,13,x+2,11);
+
/*
df = 12000.0/m_nsps;
int nlabs=df*w/m_freqPerDiv + 1.0;
@@ -421,6 +427,8 @@ void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent
{
int x=event->x();
setFQSO(x,false); // Wideband waterfall
+ bool ctrl = (event->modifiers() & 0x4000000);
+ if(!ctrl) setTxFreq(m_fQSO);
}
void CPlotter::mouseDoubleClickEvent(QMouseEvent *event) //mouse2click
@@ -560,3 +568,10 @@ void CPlotter::setNsps(int ntrperiod, int nsps)
DrawOverlay(); //Redraw scales and ticks
update(); //trigger a new paintEvent}
}
+
+void CPlotter::setTxFreq(int n) //setTol()
+{
+ m_txFreq=n;
+ DrawOverlay();
+ update();
+}
diff --git a/plotter.h b/plotter.h
index 78cbde2fe..9cbc85d17 100644
--- a/plotter.h
+++ b/plotter.h
@@ -62,6 +62,7 @@ public:
void setPalette(QString palette);
void setFsample(int n);
void setNsps(int ntrperiod, int nsps);
+ void setTxFreq(int n);
double fGreen();
void SetPercent2DScreen(int percent){m_Percent2DScreen=percent;}
@@ -115,6 +116,7 @@ private:
qint32 m_h2;
qint32 m_tol;
qint32 m_TRperiod;
+ qint32 m_txFreq;
private slots:
void mousePressEvent(QMouseEvent *event);
diff --git a/widegraph.cpp b/widegraph.cpp
index 3edd5d1d9..6c27918aa 100644
--- a/widegraph.cpp
+++ b/widegraph.cpp
@@ -156,11 +156,16 @@ void WideGraph::keyPressEvent(QKeyEvent *e)
{
switch(e->key())
{
+ int n;
case Qt::Key_F11:
- emit f11f12(11);
+ n=11;
+ if(e->modifiers() & Qt::ControlModifier) n+=100;
+ emit f11f12(n);
break;
case Qt::Key_F12:
- emit f11f12(12);
+ n=12;
+ if(e->modifiers() & Qt::ControlModifier) n+=100;
+ emit f11f12(n);
break;
default:
e->ignore();
@@ -268,3 +273,8 @@ void WideGraph::on_rbJT9Sync_clicked()
ui->widePlot->m_bCumulative=false;
ui->widePlot->m_bJT9Sync=true;
}
+
+void WideGraph::setTxFreq(int n)
+{
+ ui->widePlot->setTxFreq(n);
+}
diff --git a/widegraph.h b/widegraph.h
index 1467b6d7b..f1e7c015c 100644
--- a/widegraph.h
+++ b/widegraph.h
@@ -30,6 +30,7 @@ public:
void setPalette(QString palette);
void setFsample(int n);
void setPeriod(int ntrperiod, int nsps);
+ void setTxFreq(int n);
double fGreen();
qint32 m_qsoFreq;