1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-09-27 15:26:33 -04:00

Spectrum markers dialog (2)

This commit is contained in:
f4exb 2021-08-01 05:02:45 +02:00
parent 1decb23fac
commit a49a88d67c
4 changed files with 57 additions and 7 deletions

View File

@ -1178,6 +1178,7 @@ void GLSpectrum::drawMarkers()
{ {
ypoint.ry() = ypoint.ry() =
(m_powerScale.getRangeMax() - m_currentSpectrum[m_histogramMarkers.at(i).m_fftBin]) / m_powerScale.getRange(); (m_powerScale.getRangeMax() - m_currentSpectrum[m_histogramMarkers.at(i).m_fftBin]) / m_powerScale.getRange();
ypoint.ry() = ypoint.ry() > 1 ? 1 : ypoint.ry();
powerStr = displayScaledF( powerStr = displayScaledF(
m_currentSpectrum[m_histogramMarkers.at(i).m_fftBin], m_currentSpectrum[m_histogramMarkers.at(i).m_fftBin],
m_linear ? 'e' : 'f', m_linear ? 'e' : 'f',
@ -1227,11 +1228,14 @@ void GLSpectrum::drawMarkers()
float poweri = m_histogramMarkers.at(i).m_markerType == SpectrumHistogramMarkerTypePower ? float poweri = m_histogramMarkers.at(i).m_markerType == SpectrumHistogramMarkerTypePower ?
m_currentSpectrum[m_histogramMarkers.at(i).m_fftBin] : m_currentSpectrum[m_histogramMarkers.at(i).m_fftBin] :
m_linear ? m_histogramMarkers.at(i).m_power : CalcDb::dbPower(m_histogramMarkers.at(i).m_power); m_linear ? m_histogramMarkers.at(i).m_power : CalcDb::dbPower(m_histogramMarkers.at(i).m_power);
QString deltaPowerStr = displayScaledF( QString deltaPowerStr;
poweri - power0,
m_linear ? 'e' : 'f', if (m_linear) {
m_linear ? 3 : 1, deltaPowerStr = displayScaledF(poweri - power0, 'e', 3, false);
false); } else {
deltaPowerStr = QString::number(poweri - power0, 'f', 1);
}
drawTextOverlay( drawTextOverlay(
m_histogramMarkers.at(i).m_deltaFrequencyStr, m_histogramMarkers.at(i).m_deltaFrequencyStr,
QColor(255, 255, 255, 192), QColor(255, 255, 255, 192),

View File

@ -50,10 +50,11 @@ void SpectrumMarkersDialog::displayHistogramMarker()
{ {
if (m_histogramMarkers.size() == 0) if (m_histogramMarkers.size() == 0)
{ {
ui->markerText->setText("-");
ui->marker->setEnabled(false); ui->marker->setEnabled(false);
ui->markerFrequency->setEnabled(false); ui->markerFrequency->setEnabled(false);
ui->powerMode->setEnabled(false);
ui->fixedPower->setEnabled(false); ui->fixedPower->setEnabled(false);
ui->markerText->setText("-");
ui->fixedPower->setValue(0); ui->fixedPower->setValue(0);
ui->fixedPowerText->setText(tr("0.0")); ui->fixedPowerText->setText(tr("0.0"));
} }
@ -61,10 +62,12 @@ void SpectrumMarkersDialog::displayHistogramMarker()
{ {
ui->marker->setEnabled(true); ui->marker->setEnabled(true);
ui->markerFrequency->setEnabled(true); ui->markerFrequency->setEnabled(true);
ui->powerMode->setEnabled(true);
ui->fixedPower->setEnabled(true);
ui->markerText->setText(tr("%1").arg(m_histogramMarkerIndex)); ui->markerText->setText(tr("%1").arg(m_histogramMarkerIndex));
ui->markerFrequency->setValue(m_histogramMarkers[m_histogramMarkerIndex].m_frequency); ui->markerFrequency->setValue(m_histogramMarkers[m_histogramMarkerIndex].m_frequency);
ui->powerMode->setCurrentIndex((int) m_histogramMarkers[m_histogramMarkerIndex].m_markerType);
float powerDB = CalcDb::dbPower(m_histogramMarkers[m_histogramMarkerIndex].m_power); float powerDB = CalcDb::dbPower(m_histogramMarkers[m_histogramMarkerIndex].m_power);
ui->fixedPower->setEnabled(true);
ui->fixedPower->setValue(powerDB*10); ui->fixedPower->setValue(powerDB*10);
ui->fixedPowerText->setText(QString::number(powerDB, 'f', 1)); ui->fixedPowerText->setText(QString::number(powerDB, 'f', 1));
} }
@ -114,6 +117,21 @@ void SpectrumMarkersDialog::on_marker_valueChanged(int value)
displayHistogramMarker(); displayHistogramMarker();
} }
void SpectrumMarkersDialog::on_setReference_clicked(bool checked)
{
(void) checked;
if ((m_histogramMarkerIndex == 0) || (m_histogramMarkers.size() < 2)) {
return;
}
SpectrumHistogramMarker marker0 = m_histogramMarkers.at(0);
m_histogramMarkers[0] = m_histogramMarkers[m_histogramMarkerIndex];
m_histogramMarkers[m_histogramMarkerIndex] = marker0;
displayHistogramMarker();
m_histogramMarkersChanged = true;
}
void SpectrumMarkersDialog::on_markerAdd_clicked(bool checked) void SpectrumMarkersDialog::on_markerAdd_clicked(bool checked)
{ {
(void) checked; (void) checked;
@ -146,3 +164,13 @@ void SpectrumMarkersDialog::on_markerDel_clicked(bool checked)
displayHistogramMarker(); displayHistogramMarker();
m_histogramMarkersChanged = true; m_histogramMarkersChanged = true;
} }
void SpectrumMarkersDialog::on_powerMode_currentIndexChanged(int index)
{
if (m_histogramMarkers.size() == 0) {
return;
}
m_histogramMarkers[m_histogramMarkerIndex].m_markerType = (SpectrumHistogramMarkerType) index;
m_histogramMarkersChanged = true;
}

View File

@ -60,8 +60,10 @@ private slots:
void on_markerFrequency_changed(qint64 value); void on_markerFrequency_changed(qint64 value);
void on_fixedPower_valueChanged(int value); void on_fixedPower_valueChanged(int value);
void on_marker_valueChanged(int value); void on_marker_valueChanged(int value);
void on_setReference_clicked(bool checked);
void on_markerAdd_clicked(bool checked); void on_markerAdd_clicked(bool checked);
void on_markerDel_clicked(bool checked); void on_markerDel_clicked(bool checked);
void on_powerMode_currentIndexChanged(int index);
void accept(); void accept();
void reject(); void reject();
}; };

View File

@ -155,6 +155,22 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="setReference">
<property name="maximumSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="toolTip">
<string>Set marker as reference (index 0)</string>
</property>
<property name="text">
<string>R</string>
</property>
</widget>
</item>
<item> <item>
<layout class="QVBoxLayout" name="markerAddRemoveLayout"> <layout class="QVBoxLayout" name="markerAddRemoveLayout">
<property name="spacing"> <property name="spacing">