diff --git a/prefs.h b/prefs.h
index 22f67c9..35764e3 100644
--- a/prefs.h
+++ b/prefs.h
@@ -17,6 +17,7 @@ struct preferences {
// Interface:
bool useFullScreen;
bool useSystemTheme;
+ int wfEnable;
bool drawPeaks;
underlay_t underlayMode = underlayNone;
int underlayBufferSize = 64;
diff --git a/wfmain.cpp b/wfmain.cpp
index 4c608de..4836f75 100644
--- a/wfmain.cpp
+++ b/wfmain.cpp
@@ -1927,6 +1927,7 @@ void wfmain::setDefPrefs()
defPrefs.currentColorPresetNumber = 0;
defPrefs.underlayMode = underlayNone;
defPrefs.underlayBufferSize = 64;
+ defPrefs.wfEnable = 2;
defPrefs.wfAntiAlias = false;
defPrefs.wfInterpolate = true;
defPrefs.stylesheetPath = QString("qdarkstyle/style.qss");
@@ -1990,6 +1991,8 @@ void wfmain::loadSettings()
settings->beginGroup("Interface");
prefs.useFullScreen = settings->value("UseFullScreen", defPrefs.useFullScreen).toBool();
prefs.useSystemTheme = settings->value("UseSystemTheme", defPrefs.useSystemTheme).toBool();
+ prefs.wfEnable = settings->value("WFEnable", defPrefs.wfEnable).toInt();
+ ui->scopeEnableWFBtn->setCheckState(Qt::CheckState(prefs.wfEnable));
prefs.wftheme = settings->value("WFTheme", defPrefs.wftheme).toInt();
prefs.plotFloor = settings->value("plotFloor", defPrefs.plotFloor).toInt();
prefs.plotCeiling = settings->value("plotCeiling", defPrefs.plotCeiling).toInt();
@@ -2825,6 +2828,7 @@ void wfmain::saveSettings()
settings->beginGroup("Interface");
settings->setValue("UseFullScreen", prefs.useFullScreen);
settings->setValue("UseSystemTheme", prefs.useSystemTheme);
+ settings->setValue("WFEnable", prefs.wfEnable);
settings->setValue("DrawPeaks", prefs.drawPeaks);
settings->setValue("underlayMode", prefs.underlayMode);
settings->setValue("underlayBufferSize", prefs.underlayBufferSize);
@@ -3136,6 +3140,7 @@ void wfmain::showHideSpectrum(bool show)
ui->scopeBWCombo->setVisible(show);
ui->scopeEdgeCombo->setVisible(show);
ui->scopeEnableWFBtn->setVisible(show);
+ ui->scopeEnableWFBtn->setTristate(true);
ui->scopeRefLevelSlider->setEnabled(show);
ui->wfLengthSlider->setEnabled(show);
ui->wfthemeCombo->setVisible(show);
@@ -3678,6 +3683,13 @@ void wfmain:: getInitialRigState()
issueDelayedCommand(cmdGetSpectrumMode);
issueDelayedCommand(cmdGetSpectrumSpan);
issueDelayedCommand(cmdGetPassband);
+ if(ui->scopeEnableWFBtn->checkState() != Qt::Unchecked)
+ {
+ issueDelayedCommand(cmdSpecOn);
+ } else {
+ issueDelayedCommand(cmdSpecOff);
+ }
+
}
issueDelayedCommand(cmdNone);
@@ -5174,6 +5186,12 @@ void wfmain::changeTxBtn()
void wfmain::receiveSpectrumData(QByteArray spectrum, double startFreq, double endFreq)
{
+ if (ui->scopeEnableWFBtn->checkState()== Qt::PartiallyChecked)
+ {
+ return;
+ }
+
+
if(!haveRigCaps)
{
qDebug(logSystem()) << "Spectrum received, but RigID incomplete.";
@@ -5852,14 +5870,17 @@ void wfmain::handlePlotScroll(QWheelEvent *we)
handleWFScroll(we);
}
-void wfmain::on_scopeEnableWFBtn_clicked(bool checked)
+void wfmain::on_scopeEnableWFBtn_stateChanged(int state)
{
- if(checked)
+ if (state == Qt::Unchecked)
{
- emit spectOutputEnable();
- } else {
- emit spectOutputDisable();
+ issueDelayedCommand(cmdSpecOff);
}
+ else
+ {
+ issueDelayedCommand(cmdSpecOn);
+ }
+ prefs.wfEnable = state;
}
@@ -7710,7 +7731,7 @@ void wfmain::powerRigOn()
emit sendPowerOn();
delayedCommand->setInterval(3000); // 3 seconds
- if(ui->scopeEnableWFBtn->isChecked())
+ if(ui->scopeEnableWFBtn->checkState() != Qt::Unchecked)
{
issueDelayedCommand(cmdDispEnable);
issueDelayedCommand(cmdQueNormalSpeed);
@@ -7718,6 +7739,7 @@ void wfmain::powerRigOn()
issueDelayedCommand(cmdStartRegularPolling); // s-meter, etc
} else {
issueDelayedCommand(cmdQueNormalSpeed);
+ issueDelayedCommand(cmdSpecOff);
issueDelayedCommand(cmdStartRegularPolling); // s-meter, etc
}
delayedCommand->start();
diff --git a/wfmain.h b/wfmain.h
index a6651ff..6e32e85 100644
--- a/wfmain.h
+++ b/wfmain.h
@@ -542,7 +542,7 @@ private slots:
void on_vspCombo_currentIndexChanged(int value);
- void on_scopeEnableWFBtn_clicked(bool checked);
+ void on_scopeEnableWFBtn_stateChanged(int state);
void on_sqlSlider_valueChanged(int value);
diff --git a/wfmain.ui b/wfmain.ui
index 5c3e001..f625ea7 100644
--- a/wfmain.ui
+++ b/wfmain.ui
@@ -18,7 +18,7 @@
-
- 3
+ 0
@@ -159,12 +159,18 @@
-
+
+ Checked=WF enable, Unchecked=WF disable, Partial=Enable WF but no local display
+
Enable WF
true
+
+ true
+
-
@@ -5530,8 +5536,8 @@
+
-