| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | ///////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							| 
									
										
										
										
											2023-11-19 13:31:45 +01:00
										 |  |  | // Copyright (C) 2021-2022 Edouard Griffiths, F4EXB <f4exb06@gmail.com>          //
 | 
					
						
							|  |  |  | // Copyright (C) 2022-2023 Jon Beniston, M7RCE <jon@beniston.com>                //
 | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // This program is free software; you can redistribute it and/or modify          //
 | 
					
						
							|  |  |  | // it under the terms of the GNU General Public License as published by          //
 | 
					
						
							|  |  |  | // the Free Software Foundation as version 3 of the License, or                  //
 | 
					
						
							|  |  |  | // (at your option) any later version.                                           //
 | 
					
						
							|  |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // This program is distributed in the hope that it will be useful,               //
 | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of                //
 | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the                  //
 | 
					
						
							|  |  |  | // GNU General Public License V3 for more details.                               //
 | 
					
						
							|  |  |  | //                                                                               //
 | 
					
						
							|  |  |  | // You should have received a copy of the GNU General Public License             //
 | 
					
						
							|  |  |  | // along with this program. If not, see <http://www.gnu.org/licenses/>.          //
 | 
					
						
							|  |  |  | ///////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-26 00:24:26 +01:00
										 |  |  | #include <QStandardPaths>
 | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  | #include <QColorDialog>
 | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | #include <QFileDialog>
 | 
					
						
							| 
									
										
										
										
											2023-10-22 10:25:40 +01:00
										 |  |  | #include <QDebug>
 | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-20 10:31:15 +00:00
										 |  |  | #include "gui/dialpopup.h"
 | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | #include "util/db.h"
 | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | #include "util/csv.h"
 | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | #include "spectrummarkersdialog.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "ui_spectrummarkersdialog.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SpectrumMarkersDialog::SpectrumMarkersDialog( | 
					
						
							|  |  |  |     QList<SpectrumHistogramMarker>& histogramMarkers, | 
					
						
							|  |  |  |     QList<SpectrumWaterfallMarker>& waterfallMarkers, | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     QList<SpectrumAnnotationMarker>& annotationMarkers, | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |     SpectrumSettings::MarkersDisplay& markersDisplay, | 
					
						
							| 
									
										
										
										
											2022-10-03 00:23:47 +02:00
										 |  |  |     bool& findPeaks, | 
					
						
							| 
									
										
										
										
											2022-02-05 11:56:08 +01:00
										 |  |  |     float calibrationShiftdB, | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     QWidget* parent) : | 
					
						
							|  |  |  |     QDialog(parent), | 
					
						
							|  |  |  |     ui(new Ui::SpectrumMarkersDialog), | 
					
						
							|  |  |  |     m_histogramMarkers(histogramMarkers), | 
					
						
							|  |  |  |     m_waterfallMarkers(waterfallMarkers), | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     m_annotationMarkers(annotationMarkers), | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |     m_markersDisplay(markersDisplay), | 
					
						
							| 
									
										
										
										
											2022-10-03 00:23:47 +02:00
										 |  |  |     m_findPeaks(findPeaks), | 
					
						
							| 
									
										
										
										
											2022-02-05 11:56:08 +01:00
										 |  |  |     m_calibrationShiftdB(calibrationShiftdB), | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     m_histogramMarkerIndex(0), | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |     m_waterfallMarkerIndex(0), | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     m_annotationMarkerIndex(0), | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     m_centerFrequency(0), | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     m_power(0.5f), | 
					
						
							|  |  |  |     m_annoFreqStartElseCenter(true) | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     ui->setupUi(this); | 
					
						
							|  |  |  |     ui->markerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); | 
					
						
							| 
									
										
										
										
											2022-10-15 05:17:35 +02:00
										 |  |  |     ui->markerFrequency->setValueRange(false, 12, -999999999999L, 999999999999L); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     ui->marker->setMaximum(m_histogramMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |     ui->wMarkerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); | 
					
						
							| 
									
										
										
										
											2022-10-15 05:17:35 +02:00
										 |  |  |     ui->wMarkerFrequency->setValueRange(false, 12, -999999999999L, 999999999999L); | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |     ui->wMarker->setMaximum(m_waterfallMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     ui->aMarkerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); | 
					
						
							| 
									
										
										
										
											2022-10-15 05:17:35 +02:00
										 |  |  |     ui->aMarkerFrequency->setValueRange(false, 12, -999999999999L, 999999999999L); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     ui->aMarker->setMaximum(m_annotationMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2022-02-05 11:56:08 +01:00
										 |  |  |     ui->aMarkerBandwidth->setColorMapper(ColorMapper::GrayGreenYellow); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     ui->aMarkerBandwidth->setValueRange(true, 9, 0, 999999999L); | 
					
						
							| 
									
										
										
										
											2022-02-05 11:56:08 +01:00
										 |  |  |     ui->fixedPower->setColorMapper(ColorMapper::GrayYellow); | 
					
						
							|  |  |  |     ui->fixedPower->setValueRange(false, 4, -2000, 400, 1); | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |     ui->showSelect->setCurrentIndex((int) m_markersDisplay); | 
					
						
							| 
									
										
										
										
											2022-10-03 00:23:47 +02:00
										 |  |  |     ui->findPeaks->setChecked(m_findPeaks); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     displayHistogramMarker(); | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |     displayWaterfallMarker(); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     displayAnnotationMarker(); | 
					
						
							| 
									
										
										
										
											2022-12-20 10:31:15 +00:00
										 |  |  |     DialPopup::addPopupsToChildDials(this); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SpectrumMarkersDialog::~SpectrumMarkersDialog() | 
					
						
							|  |  |  | {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::displayHistogramMarker() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     ui->markerFrequency->blockSignals(true); | 
					
						
							|  |  |  |     ui->centerFrequency->blockSignals(true); | 
					
						
							|  |  |  |     ui->markerColor->blockSignals(true); | 
					
						
							|  |  |  |     ui->showMarker->blockSignals(true); | 
					
						
							|  |  |  |     ui->marker->blockSignals(true); | 
					
						
							|  |  |  |     ui->powerMode->blockSignals(true); | 
					
						
							|  |  |  |     ui->fixedPower->blockSignals(true); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     if (m_histogramMarkers.size() == 0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         ui->marker->setEnabled(false); | 
					
						
							|  |  |  |         ui->markerFrequency->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  |         ui->powerMode->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |         ui->fixedPower->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         ui->showMarker->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         ui->marker->setValue(0); | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  |         ui->markerText->setText("-"); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |         ui->fixedPower->setValue(0); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-10-03 00:23:47 +02:00
										 |  |  |         bool disableFreq = m_findPeaks && ( | 
					
						
							|  |  |  |             (m_histogramMarkers[m_histogramMarkerIndex].m_markerType == SpectrumHistogramMarker::SpectrumMarkerTypePower) || | 
					
						
							|  |  |  |             (m_histogramMarkers[m_histogramMarkerIndex].m_markerType == SpectrumHistogramMarker::SpectrumMarkerTypePowerMax) | 
					
						
							|  |  |  |         ); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |         ui->marker->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2022-10-03 00:23:47 +02:00
										 |  |  |         ui->markerFrequency->setEnabled(!disableFreq); | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  |         ui->powerMode->setEnabled(true); | 
					
						
							|  |  |  |         ui->fixedPower->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         ui->showMarker->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         ui->marker->setValue(m_histogramMarkerIndex); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |         ui->markerText->setText(tr("%1").arg(m_histogramMarkerIndex)); | 
					
						
							|  |  |  |         ui->markerFrequency->setValue(m_histogramMarkers[m_histogramMarkerIndex].m_frequency); | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  |         ui->powerMode->setCurrentIndex((int) m_histogramMarkers[m_histogramMarkerIndex].m_markerType); | 
					
						
							| 
									
										
										
										
											2022-02-05 11:56:08 +01:00
										 |  |  |         float powerDB = CalcDb::dbPower(m_histogramMarkers[m_histogramMarkerIndex].m_power) + m_calibrationShiftdB; | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |         ui->fixedPower->setValue(powerDB*10); | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |         int r,g,b,a; | 
					
						
							|  |  |  |         m_histogramMarkers[m_histogramMarkerIndex].m_markerColor.getRgb(&r, &g, &b, &a); | 
					
						
							|  |  |  |         ui->markerColor->setStyleSheet(tr("QLabel { background-color : rgb(%1,%2,%3); }").arg(r).arg(g).arg(b)); | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         ui->showMarker->setChecked(m_histogramMarkers[m_histogramMarkerIndex].m_show); | 
					
						
							| 
									
										
										
										
											2022-04-26 22:56:01 +02:00
										 |  |  |         ui->fixedPower->setVisible(m_histogramMarkers[m_histogramMarkerIndex].m_markerType == SpectrumHistogramMarker::SpectrumMarkerTypeManual); | 
					
						
							|  |  |  |         ui->fixedPowerUnits->setVisible(m_histogramMarkers[m_histogramMarkerIndex].m_markerType == SpectrumHistogramMarker::SpectrumMarkerTypeManual); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ui->markerFrequency->blockSignals(false); | 
					
						
							|  |  |  |     ui->centerFrequency->blockSignals(false); | 
					
						
							|  |  |  |     ui->markerColor->blockSignals(false); | 
					
						
							|  |  |  |     ui->showMarker->blockSignals(false); | 
					
						
							|  |  |  |     ui->marker->blockSignals(false); | 
					
						
							|  |  |  |     ui->powerMode->blockSignals(false); | 
					
						
							|  |  |  |     ui->fixedPower->blockSignals(false); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  | void SpectrumMarkersDialog::displayWaterfallMarker() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     ui->wMarkerFrequency->blockSignals(true); | 
					
						
							|  |  |  |     ui->wCenterFrequency->blockSignals(true); | 
					
						
							|  |  |  |     ui->wMarkerColor->blockSignals(true); | 
					
						
							|  |  |  |     ui->wShowMarker->blockSignals(true); | 
					
						
							|  |  |  |     ui->wMarker->blockSignals(true); | 
					
						
							|  |  |  |     ui->timeFine->blockSignals(true); | 
					
						
							|  |  |  |     ui->timeCoarse->blockSignals(true); | 
					
						
							|  |  |  |     ui->timeExp->blockSignals(true); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |     if (m_waterfallMarkers.size() == 0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         ui->wMarker->setEnabled(false); | 
					
						
							|  |  |  |         ui->wMarkerFrequency->setEnabled(false); | 
					
						
							|  |  |  |         ui->timeCoarse->setEnabled(false); | 
					
						
							|  |  |  |         ui->timeFine->setEnabled(false); | 
					
						
							|  |  |  |         ui->timeExp->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         ui->wShowMarker->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         ui->wMarker->setValue(0); | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |         ui->wMarkerText->setText("-"); | 
					
						
							|  |  |  |         ui->timeCoarse->setValue(0); | 
					
						
							|  |  |  |         ui->timeFine->setValue(0); | 
					
						
							|  |  |  |         ui->timeText->setText("0.000"); | 
					
						
							|  |  |  |         ui->timeExp->setValue(0); | 
					
						
							|  |  |  |         ui->timeExpText->setText("e+0"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         ui->wMarker->setEnabled(true); | 
					
						
							|  |  |  |         ui->wMarkerFrequency->setEnabled(true); | 
					
						
							|  |  |  |         ui->timeCoarse->setEnabled(true); | 
					
						
							|  |  |  |         ui->timeFine->setEnabled(true); | 
					
						
							|  |  |  |         ui->timeExp->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |         ui->wShowMarker->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         ui->wMarker->setValue(m_waterfallMarkerIndex); | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |         ui->wMarkerText->setText(tr("%1").arg(m_waterfallMarkerIndex)); | 
					
						
							|  |  |  |         ui->wMarkerFrequency->setValue(m_waterfallMarkers[m_waterfallMarkerIndex].m_frequency); | 
					
						
							|  |  |  |         int r,g,b,a; | 
					
						
							|  |  |  |         m_waterfallMarkers[m_waterfallMarkerIndex].m_markerColor.getRgb(&r, &g, &b, &a); | 
					
						
							|  |  |  |         ui->wMarkerColor->setStyleSheet(tr("QLabel { background-color : rgb(%1,%2,%3); }").arg(r).arg(g).arg(b)); | 
					
						
							|  |  |  |         displayTime(m_waterfallMarkers[m_waterfallMarkerIndex].m_time); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     ui->wMarkerFrequency->blockSignals(false); | 
					
						
							|  |  |  |     ui->wCenterFrequency->blockSignals(false); | 
					
						
							|  |  |  |     ui->wMarkerColor->blockSignals(false); | 
					
						
							|  |  |  |     ui->wShowMarker->blockSignals(false); | 
					
						
							|  |  |  |     ui->wMarker->blockSignals(false); | 
					
						
							|  |  |  |     ui->timeFine->blockSignals(false); | 
					
						
							|  |  |  |     ui->timeCoarse->blockSignals(false); | 
					
						
							|  |  |  |     ui->timeExp->blockSignals(false); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::displayAnnotationMarker() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ui->aMarkerFrequency->blockSignals(true); | 
					
						
							|  |  |  |     ui->aCenterFrequency->blockSignals(true); | 
					
						
							|  |  |  |     ui->aMarkerColor->blockSignals(true); | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |     ui->aMarkerShowState->blockSignals(true); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     ui->aMarkerText->blockSignals(true); | 
					
						
							|  |  |  |     ui->aMarker->blockSignals(true); | 
					
						
							|  |  |  |     ui->aMarkerAdd->blockSignals(true); | 
					
						
							|  |  |  |     ui->aMarkerDel->blockSignals(true); | 
					
						
							|  |  |  |     ui->aMarkerBandwidth->blockSignals(true); | 
					
						
							|  |  |  |     ui->aMarkerToggleFrequency->blockSignals(true); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         ui->aMarker->setEnabled(false); | 
					
						
							|  |  |  |         ui->aMarkerFrequency->setEnabled(false); | 
					
						
							|  |  |  |         ui->aMarkerBandwidth->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |         ui->aMarkerShowState->setEnabled(false); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         ui->aMarkerIndexText->setText("-"); | 
					
						
							|  |  |  |         ui->aMarkerText->setText(""); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         ui->aMarker->setEnabled(true); | 
					
						
							|  |  |  |         ui->aMarkerFrequency->setEnabled(true); | 
					
						
							|  |  |  |         ui->aMarkerBandwidth->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |         ui->aMarkerShowState->setEnabled(true); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |         ui->aMarker->setValue(m_annotationMarkerIndex); | 
					
						
							|  |  |  |         ui->aMarkerIndexText->setText(tr("%1").arg(m_annotationMarkerIndex)); | 
					
						
							|  |  |  |         qint64 frequency = m_annotationMarkers[m_annotationMarkerIndex].m_startFrequency + | 
					
						
							|  |  |  |             (m_annoFreqStartElseCenter ? 0 : m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth / 2); | 
					
						
							|  |  |  |         ui->aMarkerFrequency->setValue(frequency); | 
					
						
							|  |  |  |         ui->aMarkerBandwidth->setValue(m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth); | 
					
						
							|  |  |  |         ui->aMarkerFreqLabel->setText(m_annoFreqStartElseCenter ? "Cent" : "Start"); | 
					
						
							|  |  |  |         frequency = m_annotationMarkers[m_annotationMarkerIndex].m_startFrequency + | 
					
						
							|  |  |  |             (m_annoFreqStartElseCenter ? m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth / 2 : 0); | 
					
						
							|  |  |  |         ui->aMarkerFreqText->setText(tr("%L1").arg(frequency)); | 
					
						
							|  |  |  |         ui->aMarkerStopText->setText(tr("%L1").arg( | 
					
						
							|  |  |  |             m_annotationMarkers[m_annotationMarkerIndex].m_startFrequency + m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth)); | 
					
						
							|  |  |  |         int r,g,b,a; | 
					
						
							|  |  |  |         m_annotationMarkers[m_annotationMarkerIndex].m_markerColor.getRgb(&r, &g, &b, &a); | 
					
						
							|  |  |  |         ui->aMarkerColor->setStyleSheet(tr("QLabel { background-color : rgb(%1,%2,%3); }").arg(r).arg(g).arg(b)); | 
					
						
							|  |  |  |         ui->aMarkerText->setText(tr("%1").arg(m_annotationMarkers[m_annotationMarkerIndex].m_text)); | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |         ui->aMarkerShowState->setCurrentIndex((int) m_annotationMarkers[m_annotationMarkerIndex].m_show); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ui->aMarkerToggleFrequency->setChecked(m_annoFreqStartElseCenter); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     ui->aMarkerFrequency->blockSignals(false); | 
					
						
							|  |  |  |     ui->aCenterFrequency->blockSignals(false); | 
					
						
							|  |  |  |     ui->aMarkerColor->blockSignals(false); | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |     ui->aMarkerShowState->blockSignals(false); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     ui->aMarkerText->blockSignals(false); | 
					
						
							|  |  |  |     ui->aMarker->blockSignals(false); | 
					
						
							|  |  |  |     ui->aMarkerAdd->blockSignals(false); | 
					
						
							|  |  |  |     ui->aMarkerDel->blockSignals(false); | 
					
						
							|  |  |  |     ui->aMarkerBandwidth->blockSignals(false); | 
					
						
							|  |  |  |     ui->aMarkerToggleFrequency->blockSignals(false); | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::displayTime(float time) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     int timeExp; | 
					
						
							|  |  |  |     double timeMant = CalcDb::frexp10(time, &timeExp) * 10.0; | 
					
						
							|  |  |  |     int timeCoarse = (int) timeMant; | 
					
						
							|  |  |  |     int timeFine = round((timeMant - timeCoarse) * 1000.0); | 
					
						
							|  |  |  |     timeExp -= timeMant == 0 ? 0 : 1; | 
					
						
							|  |  |  |     qDebug("SpectrumMarkersDialog::displayTime: time: %e fine: %d coarse: %d exp: %d", | 
					
						
							|  |  |  |         time, timeFine, timeCoarse, timeExp); | 
					
						
							|  |  |  |     ui->timeFine->setValue(timeFine); | 
					
						
							|  |  |  |     ui->timeCoarse->setValue(timeCoarse); | 
					
						
							|  |  |  |     ui->timeExp->setValue(timeExp); | 
					
						
							|  |  |  |     ui->timeText->setText(tr("%1").arg(timeMant, 0, 'f', 3)); | 
					
						
							|  |  |  |     ui->timeExpText->setText(tr("e%1%2").arg(timeExp < 0 ? "" : "+").arg(timeExp)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | float SpectrumMarkersDialog::getTime() const | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     return ((ui->timeFine->value() / 1000.0) + ui->timeCoarse->value()) * pow(10.0, ui->timeExp->value()); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | void SpectrumMarkersDialog::on_markerFrequency_changed(qint64 value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkers[m_histogramMarkerIndex].m_frequency = value; | 
					
						
							| 
									
										
										
										
											2021-08-01 10:03:58 +02:00
										 |  |  |     emit updateHistogram(); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  | void SpectrumMarkersDialog::on_centerFrequency_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkers[m_histogramMarkerIndex].m_frequency = m_centerFrequency; | 
					
						
							|  |  |  |     displayHistogramMarker(); | 
					
						
							|  |  |  |     emit updateHistogram(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_markerColor_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QColor newColor = QColorDialog::getColor( | 
					
						
							|  |  |  |         m_histogramMarkers[m_histogramMarkerIndex].m_markerColor, | 
					
						
							|  |  |  |         this, | 
					
						
							|  |  |  |         tr("Select Color for marker"), | 
					
						
							|  |  |  |         QColorDialog::DontUseNativeDialog | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (newColor.isValid()) // user clicked OK and selected a color
 | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         m_histogramMarkers[m_histogramMarkerIndex].m_markerColor = newColor; | 
					
						
							|  |  |  |         displayHistogramMarker(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  | void SpectrumMarkersDialog::on_showMarker_clicked(bool clicked) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkers[m_histogramMarkerIndex].m_show = clicked; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-05 11:56:08 +01:00
										 |  |  | void SpectrumMarkersDialog::on_fixedPower_changed(qint64 value) | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-05 11:56:08 +01:00
										 |  |  |     float powerDB = (value / 10.0f) - m_calibrationShiftdB; | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     m_histogramMarkers[m_histogramMarkerIndex].m_power = CalcDb::powerFromdB(powerDB); | 
					
						
							| 
									
										
										
										
											2021-08-01 10:03:58 +02:00
										 |  |  |     emit updateHistogram(); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_marker_valueChanged(int value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkerIndex = value; | 
					
						
							|  |  |  |     displayHistogramMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  | void SpectrumMarkersDialog::on_setReference_clicked() | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if ((m_histogramMarkerIndex == 0) || (m_histogramMarkers.size() < 2)) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumHistogramMarker marker0 = m_histogramMarkers.at(0); | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |     QColor color0 = marker0.m_markerColor; // do not exchange colors
 | 
					
						
							|  |  |  |     QColor colorI = m_histogramMarkers[m_histogramMarkerIndex].m_markerColor; | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  |     m_histogramMarkers[0] = m_histogramMarkers[m_histogramMarkerIndex]; | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |     m_histogramMarkers[0].m_markerColor = color0; | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  |     m_histogramMarkers[m_histogramMarkerIndex] = marker0; | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  |     m_histogramMarkers[m_histogramMarkerIndex].m_markerColor = colorI; | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  |     displayHistogramMarker(); | 
					
						
							| 
									
										
										
										
											2021-08-01 10:03:58 +02:00
										 |  |  |     emit updateHistogram(); | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  | void SpectrumMarkersDialog::on_markerAdd_clicked() | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == SpectrumHistogramMarker::m_maxNbOfMarkers) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkers.append(SpectrumHistogramMarker()); | 
					
						
							|  |  |  |     m_histogramMarkers.back().m_frequency = m_centerFrequency; | 
					
						
							|  |  |  |     m_histogramMarkers.back().m_power = m_power; | 
					
						
							|  |  |  |     m_histogramMarkerIndex = m_histogramMarkers.size() - 1; | 
					
						
							|  |  |  |     ui->marker->setMaximum(m_histogramMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2022-01-26 00:00:00 +01:00
										 |  |  |     ui->marker->setMinimum(0); | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  |     displayHistogramMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-01 20:26:24 +02:00
										 |  |  | void SpectrumMarkersDialog::on_markerDel_clicked() | 
					
						
							| 
									
										
										
										
											2021-07-31 22:57:31 +02:00
										 |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkers.removeAt(m_histogramMarkerIndex); | 
					
						
							|  |  |  |     m_histogramMarkerIndex = m_histogramMarkerIndex < m_histogramMarkers.size() ? | 
					
						
							|  |  |  |         m_histogramMarkerIndex : m_histogramMarkerIndex - 1; | 
					
						
							|  |  |  |     ui->marker->setMaximum(m_histogramMarkers.size() - 1); | 
					
						
							|  |  |  |     displayHistogramMarker(); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_powerMode_currentIndexChanged(int index) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  |     SpectrumHistogramMarker::SpectrumMarkerType newType = (SpectrumHistogramMarker::SpectrumMarkerType) index; | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 10:51:53 +00:00
										 |  |  |     ui->fixedPower->setVisible(newType == SpectrumHistogramMarker::SpectrumMarkerTypeManual); | 
					
						
							|  |  |  |     ui->fixedPowerUnits->setVisible(newType == SpectrumHistogramMarker::SpectrumMarkerTypeManual); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |     if ((m_histogramMarkers[m_histogramMarkerIndex].m_markerType != newType) | 
					
						
							| 
									
										
										
										
											2021-08-06 10:24:20 +02:00
										 |  |  |        && (newType == SpectrumHistogramMarker::SpectrumMarkerTypePowerMax)) | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |         m_histogramMarkers[m_histogramMarkerIndex].m_holdReset = true; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkers[m_histogramMarkerIndex].m_markerType = newType; | 
					
						
							| 
									
										
										
										
											2021-08-01 05:02:45 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-03 23:12:13 +02:00
										 |  |  | void SpectrumMarkersDialog::on_powerHoldReset_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_histogramMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_histogramMarkers[m_histogramMarkerIndex].m_holdReset = true; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-03 00:23:47 +02:00
										 |  |  | void SpectrumMarkersDialog::on_findPeaks_toggled(bool checked) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     m_findPeaks = checked; | 
					
						
							|  |  |  |     displayHistogramMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  | void SpectrumMarkersDialog::on_wMarkerFrequency_changed(qint64 value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex].m_frequency = value; | 
					
						
							|  |  |  |     emit updateWaterfall(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_timeCoarse_valueChanged(int value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     double timeMant = value + (ui->timeFine->value() / 1000.0); | 
					
						
							|  |  |  |     ui->timeText->setText(tr("%1").arg(timeMant, 0, 'f', 3)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex].m_time = getTime(); | 
					
						
							|  |  |  |     emit updateWaterfall(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_timeFine_valueChanged(int value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     double timeMant = ui->timeCoarse->value() + (value / 1000.0); | 
					
						
							|  |  |  |     ui->timeText->setText(tr("%1").arg(timeMant, 0, 'f', 3)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex].m_time = getTime(); | 
					
						
							|  |  |  |     emit updateWaterfall(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_timeExp_valueChanged(int value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     ui->timeExpText->setText(tr("e%1%2").arg(value < 0 ? "" : "+").arg(value)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex].m_time = getTime(); | 
					
						
							|  |  |  |     emit updateWaterfall(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_wCenterFrequency_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex].m_frequency = m_centerFrequency; | 
					
						
							|  |  |  |     displayWaterfallMarker(); | 
					
						
							|  |  |  |     emit updateWaterfall(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_wMarkerColor_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QColor newColor = QColorDialog::getColor( | 
					
						
							|  |  |  |         m_waterfallMarkers[m_waterfallMarkerIndex].m_markerColor, | 
					
						
							|  |  |  |         this, | 
					
						
							|  |  |  |         tr("Select Color for marker"), | 
					
						
							|  |  |  |         QColorDialog::DontUseNativeDialog | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (newColor.isValid()) // user clicked OK and selected a color
 | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         m_waterfallMarkers[m_waterfallMarkerIndex].m_markerColor = newColor; | 
					
						
							|  |  |  |         displayWaterfallMarker(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  | void SpectrumMarkersDialog::on_wShowMarker_clicked(bool clicked) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex].m_show = clicked; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  | void SpectrumMarkersDialog::on_wMarker_valueChanged(int value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkerIndex = value; | 
					
						
							|  |  |  |     displayWaterfallMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_wSetReference_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if ((m_waterfallMarkerIndex == 0) || (m_waterfallMarkers.size() < 2)) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SpectrumWaterfallMarker marker0 = m_waterfallMarkers.at(0); | 
					
						
							|  |  |  |     QColor color0 = marker0.m_markerColor; // do not exchange colors
 | 
					
						
							|  |  |  |     QColor colorI = m_waterfallMarkers[m_waterfallMarkerIndex].m_markerColor; | 
					
						
							|  |  |  |     m_waterfallMarkers[0] = m_waterfallMarkers[m_waterfallMarkerIndex]; | 
					
						
							|  |  |  |     m_waterfallMarkers[0].m_markerColor = color0; | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex] = marker0; | 
					
						
							|  |  |  |     m_waterfallMarkers[m_waterfallMarkerIndex].m_markerColor = colorI; | 
					
						
							|  |  |  |     displayWaterfallMarker(); | 
					
						
							|  |  |  |     emit updateWaterfall(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_wMarkerAdd_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == SpectrumWaterfallMarker::m_maxNbOfMarkers) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers.append(SpectrumWaterfallMarker()); | 
					
						
							|  |  |  |     m_waterfallMarkers.back().m_frequency = m_centerFrequency; | 
					
						
							|  |  |  |     m_waterfallMarkers.back().m_time = m_time; | 
					
						
							|  |  |  |     m_waterfallMarkerIndex = m_waterfallMarkers.size() - 1; | 
					
						
							|  |  |  |     ui->wMarker->setMaximum(m_waterfallMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2022-01-26 00:00:00 +01:00
										 |  |  |     ui->wMarker->setMinimum(0); | 
					
						
							| 
									
										
										
										
											2021-08-03 00:28:14 +02:00
										 |  |  |     displayWaterfallMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_wMarkerDel_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_waterfallMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_waterfallMarkers.removeAt(m_waterfallMarkerIndex); | 
					
						
							|  |  |  |     m_waterfallMarkerIndex = m_waterfallMarkerIndex < m_waterfallMarkers.size() ? | 
					
						
							|  |  |  |         m_waterfallMarkerIndex : m_waterfallMarkerIndex - 1; | 
					
						
							|  |  |  |     ui->wMarker->setMaximum(m_waterfallMarkers.size() - 1); | 
					
						
							|  |  |  |     displayWaterfallMarker(); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | void SpectrumMarkersDialog::on_aMarkerToggleFrequency_toggled(bool checked) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     m_annoFreqStartElseCenter = checked; | 
					
						
							|  |  |  |     ui->aMarkerToggleFrequency->setText(checked ? "Start" : "Cent"); | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkerFrequency_changed(qint64 value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (m_annoFreqStartElseCenter) { | 
					
						
							|  |  |  |         m_annotationMarkers[m_annotationMarkerIndex].m_startFrequency = value; | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         m_annotationMarkers[m_annotationMarkerIndex].m_startFrequency = value - | 
					
						
							|  |  |  |             (m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth / 2); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aCenterFrequency_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     qDebug("SpectrumMarkersDialog::on_aCenterFrequency_clicked: %lld", m_centerFrequency); | 
					
						
							|  |  |  |     m_annotationMarkers[m_annotationMarkerIndex].m_startFrequency = m_centerFrequency - | 
					
						
							|  |  |  |         (m_annoFreqStartElseCenter ? 0 : m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth/2); | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMakerDuplicate_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_annotationMarkers.push_back(m_annotationMarkers[m_annotationMarkerIndex]); | 
					
						
							|  |  |  |     ui->aMarker->setMaximum(m_annotationMarkers.size() - 1); | 
					
						
							|  |  |  |     m_annotationMarkerIndex = m_annotationMarkers.size() - 1; | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMakersSort_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     std::sort(m_annotationMarkers.begin(), m_annotationMarkers.end(), annotationMarkerLessThan); | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkerColor_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     QColor newColor = QColorDialog::getColor( | 
					
						
							|  |  |  |         m_annotationMarkers[m_annotationMarkerIndex].m_markerColor, | 
					
						
							|  |  |  |         this, | 
					
						
							|  |  |  |         tr("Select Color for marker"), | 
					
						
							|  |  |  |         QColorDialog::DontUseNativeDialog | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (newColor.isValid()) // user clicked OK and selected a color
 | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         m_annotationMarkers[m_annotationMarkerIndex].m_markerColor = newColor; | 
					
						
							|  |  |  |         displayAnnotationMarker(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  | void SpectrumMarkersDialog::on_aMarkerShowState_currentIndexChanged(int state) | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-22 06:10:57 +01:00
										 |  |  |     m_annotationMarkers[m_annotationMarkerIndex].m_show = (SpectrumAnnotationMarker::ShowState) state; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkerShowStateAll_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     for (auto &marker : m_annotationMarkers) { | 
					
						
							|  |  |  |         marker.m_show = (SpectrumAnnotationMarker::ShowState) ui->aMarkerShowState->currentIndex(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-23 11:24:14 +01:00
										 |  |  | // We don't get aMarkerText_editingFinished signal until after aMarkerToggleFrequency_toggled
 | 
					
						
							|  |  |  | // when that button is pressed, so save the text immediately when edited, so it isn't lost
 | 
					
						
							|  |  |  | // after call to displayAnnotationMarker
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkerText_textEdited() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_annotationMarkers[m_annotationMarkerIndex].m_text = ui->aMarkerText->text(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | void SpectrumMarkersDialog::on_aMarkerText_editingFinished() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_annotationMarkers[m_annotationMarkerIndex].m_text = ui->aMarkerText->text(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarker_valueChanged(int value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_annotationMarkerIndex = value; | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkerAdd_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     m_annotationMarkers.append(SpectrumAnnotationMarker()); | 
					
						
							|  |  |  |     m_annotationMarkers.back().m_startFrequency = m_centerFrequency; | 
					
						
							|  |  |  |     m_annotationMarkerIndex = m_annotationMarkers.size() - 1; | 
					
						
							|  |  |  |     ui->aMarker->setMaximum(m_annotationMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2022-01-26 00:00:00 +01:00
										 |  |  |     ui->aMarker->setMinimum(0); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkerDel_clicked() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_annotationMarkers.removeAt(m_annotationMarkerIndex); | 
					
						
							|  |  |  |     m_annotationMarkerIndex = m_annotationMarkerIndex < m_annotationMarkers.size() ? | 
					
						
							|  |  |  |         m_annotationMarkerIndex : m_annotationMarkerIndex - 1; | 
					
						
							|  |  |  |     ui->aMarker->setMaximum(m_annotationMarkers.size() - 1); | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkerBandwidth_changed(qint64 value) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     if (m_annotationMarkers.size() == 0) { | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth = value < 0 ? 0 : value; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (!m_annoFreqStartElseCenter) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         m_annotationMarkers[m_annotationMarkerIndex].m_startFrequency = ui->aMarkerFrequency->getValue() - | 
					
						
							|  |  |  |             (m_annotationMarkers[m_annotationMarkerIndex].m_bandwidth / 2); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     displayAnnotationMarker(); | 
					
						
							|  |  |  |     emit updateAnnotations(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkersImport_clicked() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-01-26 00:24:26 +01:00
										 |  |  |     QFileDialog fileDialog( | 
					
						
							|  |  |  |         nullptr, | 
					
						
							|  |  |  |         "Select .csv annotation markers file to read", | 
					
						
							|  |  |  |         QStandardPaths::writableLocation(QStandardPaths::AppDataLocation), | 
					
						
							|  |  |  |         "*.csv" | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (fileDialog.exec()) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         QStringList fileNames = fileDialog.selectedFiles(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (fileNames.size() > 0) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             QFile file(fileNames[0]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (file.open(QIODevice::ReadOnly | QIODevice::Text)) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 QTextStream in(&file); | 
					
						
							|  |  |  |                 QString error; | 
					
						
							|  |  |  |                 QHash<QString, int> colIndexes = CSV::readHeader( | 
					
						
							|  |  |  |                     in, | 
					
						
							|  |  |  |                     {"Start", "Width", "Text", "Show", "Red", "Green", "Blue"}, | 
					
						
							|  |  |  |                     error | 
					
						
							|  |  |  |                 ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if (error.isEmpty()) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     QStringList cols; | 
					
						
							|  |  |  |                     int startCol = colIndexes.value("Start"); | 
					
						
							|  |  |  |                     int widthCol = colIndexes.value("Width"); | 
					
						
							|  |  |  |                     int textCol = colIndexes.value("Text"); | 
					
						
							|  |  |  |                     int showCol = colIndexes.value("Show"); | 
					
						
							|  |  |  |                     int redCol = colIndexes.value("Red"); | 
					
						
							|  |  |  |                     int greenCol = colIndexes.value("Green"); | 
					
						
							|  |  |  |                     int blueCol = colIndexes.value("Blue"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     m_annotationMarkers.clear(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     while (CSV::readRow(in, &cols)) | 
					
						
							|  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2023-10-22 10:25:40 +01:00
										 |  |  |                         if (cols.size() >= 7) | 
					
						
							|  |  |  |                         { | 
					
						
							|  |  |  |                             m_annotationMarkers.push_back(SpectrumAnnotationMarker()); | 
					
						
							|  |  |  |                             m_annotationMarkers.back().m_startFrequency = cols[startCol].toLongLong(); | 
					
						
							|  |  |  |                             m_annotationMarkers.back().m_bandwidth = cols[widthCol].toUInt(); | 
					
						
							|  |  |  |                             m_annotationMarkers.back().m_text = cols[textCol]; | 
					
						
							|  |  |  |                             m_annotationMarkers.back().m_show = (SpectrumAnnotationMarker::ShowState) cols[showCol].toInt(); | 
					
						
							|  |  |  |                             int r = cols[redCol].toInt(); | 
					
						
							|  |  |  |                             int g = cols[greenCol].toInt(); | 
					
						
							|  |  |  |                             int b = cols[blueCol].toInt(); | 
					
						
							|  |  |  |                             m_annotationMarkers.back().m_markerColor = QColor(r, g, b); | 
					
						
							|  |  |  |                         } | 
					
						
							|  |  |  |                         else | 
					
						
							|  |  |  |                         { | 
					
						
							|  |  |  |                             qWarning() << "SpectrumMarkersDialog::on_aMarkersImport_clicked: Missing data in " << cols; | 
					
						
							|  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |                     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     m_annotationMarkerIndex = 0; | 
					
						
							|  |  |  |                     ui->aMarker->setMaximum(m_annotationMarkers.size() - 1); | 
					
						
							|  |  |  |                     displayAnnotationMarker(); | 
					
						
							|  |  |  |                     emit updateAnnotations(); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::on_aMarkersExport_clicked() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-01-26 00:24:26 +01:00
										 |  |  |     QFileDialog fileDialog( | 
					
						
							|  |  |  |         nullptr, | 
					
						
							|  |  |  |         "Select file to write annotation markers to", | 
					
						
							|  |  |  |         QStandardPaths::writableLocation(QStandardPaths::AppDataLocation), | 
					
						
							|  |  |  |         "*.csv" | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     fileDialog.setAcceptMode(QFileDialog::AcceptSave); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if (fileDialog.exec()) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         QStringList fileNames = fileDialog.selectedFiles(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (fileNames.size() > 0) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             QFile file(fileNames[0]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (file.open(QIODevice::WriteOnly | QIODevice::Text)) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 QTextStream stream; | 
					
						
							|  |  |  |                 stream.setDevice(&file); | 
					
						
							|  |  |  |                 stream << "Start,Width,Text,Show,Red,Green,Blue\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 for (const auto &marker : m_annotationMarkers) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     stream << marker.m_startFrequency << "," | 
					
						
							|  |  |  |                         << marker.m_bandwidth << "," | 
					
						
							|  |  |  |                         << marker.m_text << "," | 
					
						
							| 
									
										
										
										
											2022-06-23 11:24:14 +01:00
										 |  |  |                         << ((int)marker.m_show) << "," | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |                         << marker.m_markerColor.red() << "," | 
					
						
							|  |  |  |                         << marker.m_markerColor.green() << "," | 
					
						
							|  |  |  |                         << marker.m_markerColor.blue() << "\n"; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 stream.flush(); | 
					
						
							|  |  |  |                 file.close(); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  | void SpectrumMarkersDialog::on_showSelect_currentIndexChanged(int index) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     m_markersDisplay = (SpectrumSettings::MarkersDisplay) index; | 
					
						
							| 
									
										
										
										
											2022-01-21 00:18:41 +01:00
										 |  |  |     emit updateMarkersDisplay(); | 
					
						
							| 
									
										
										
										
											2021-08-04 19:28:52 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-10-01 20:58:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::updateHistogramMarkersDisplay() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-11-17 14:41:55 +00:00
										 |  |  |     m_histogramMarkerIndex = std::max(m_histogramMarkerIndex, (int)m_histogramMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2022-10-01 20:58:21 +02:00
										 |  |  |     ui->marker->setMaximum(m_histogramMarkers.size() - 1); | 
					
						
							|  |  |  |     displayHistogramMarker(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SpectrumMarkersDialog::updateWaterfallMarkersDisplay() | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-11-17 14:41:55 +00:00
										 |  |  |     m_waterfallMarkerIndex = std::max(m_waterfallMarkerIndex, (int)m_waterfallMarkers.size() - 1); | 
					
						
							| 
									
										
										
										
											2022-10-01 20:58:21 +02:00
										 |  |  |     ui->wMarker->setMaximum(m_waterfallMarkers.size() - 1); | 
					
						
							|  |  |  |     displayWaterfallMarker(); | 
					
						
							|  |  |  | } |