This is an automatic generated email to let you know that the following patch were queued at the http://git.linuxtv.org/v4l-utils.git tree:
Subject: qv4l2: use QDoubleSpinBox for frequency inputs Author: Hans Verkuil <hans.verk...@cisco.com> Date: Fri Mar 7 10:54:32 2014 +0100 This gives finer frequency control and looks better as well. Signed-off-by: Hans Verkuil <hans.verk...@cisco.com> utils/qv4l2/general-tab.cpp | 110 ++++++++++++++++++++----------------------- utils/qv4l2/general-tab.h | 9 ++-- 2 files changed, 56 insertions(+), 63 deletions(-) --- http://git.linuxtv.org/v4l-utils.git?a=commitdiff;h=21be85c939d71c6d4e29a3882e2e2c2b1e1151c2 diff --git a/utils/qv4l2/general-tab.cpp b/utils/qv4l2/general-tab.cpp index 09cb01f..301f355 100644 --- a/utils/qv4l2/general-tab.cpp +++ b/utils/qv4l2/general-tab.cpp @@ -270,28 +270,24 @@ GeneralTab::GeneralTab(const QString &device, v4l2 &fd, int n, QWidget *parent) } if (m_tuner.capability) { - QDoubleValidator *val; - const char *unit = (m_tuner.capability & V4L2_TUNER_CAP_LOW) ? "kHz" : - (m_tuner.capability & V4L2_TUNER_CAP_1HZ ? "Hz" : "MHz"); + const char *unit = (m_tuner.capability & V4L2_TUNER_CAP_LOW) ? " kHz" : + (m_tuner.capability & V4L2_TUNER_CAP_1HZ ? " Hz" : " MHz"); m_freqFac = (m_tuner.capability & V4L2_TUNER_CAP_1HZ) ? 1 : 16; - val = new QDoubleValidator(m_tuner.rangelow / m_freqFac, m_tuner.rangehigh / m_freqFac, 3, parent); - m_freq = new QLineEdit(parent); - m_freq->setValidator(val); + m_freq = new QDoubleSpinBox(parent); + m_freq->setMinimum(m_tuner.rangelow / m_freqFac); + m_freq->setMaximum(m_tuner.rangehigh / m_freqFac); + m_freq->setSingleStep(1.0 / m_freqFac); + m_freq->setSuffix(unit); + m_freq->setDecimals((m_tuner.capability & V4L2_TUNER_CAP_1HZ) ? 0 : 4); m_freq->setWhatsThis(QString("Frequency\nLow: %1 %3\nHigh: %2 %3") - .arg(m_tuner.rangelow / m_freqFac) + .arg((double)m_tuner.rangelow / m_freqFac, 0, 'f', 2) .arg((double)m_tuner.rangehigh / m_freqFac, 0, 'f', 2) .arg(unit)); m_freq->setStatusTip(m_freq->whatsThis()); - connect(m_freq, SIGNAL(lostFocus()), SLOT(freqChanged())); - connect(m_freq, SIGNAL(returnPressed()), SLOT(freqChanged())); + connect(m_freq, SIGNAL(valueChanged(double)), SLOT(freqChanged(double))); updateFreq(); - if (m_tuner.capability & V4L2_TUNER_CAP_1HZ) - addLabel("Frequency (Hz)"); - else if (m_tuner.capability & V4L2_TUNER_CAP_LOW) - addLabel("Frequency (kHz)"); - else - addLabel("Frequency (MHz)"); + addLabel("Frequency"); addWidget(m_freq); } @@ -351,48 +347,44 @@ GeneralTab::GeneralTab(const QString &device, v4l2 &fd, int n, QWidget *parent) } if (m_tuner_rf.capability) { - QDoubleValidator *val; - const char *unit = (m_tuner_rf.capability & V4L2_TUNER_CAP_LOW) ? "kHz" : - (m_tuner_rf.capability & V4L2_TUNER_CAP_1HZ ? "Hz" : "MHz"); + const char *unit = (m_tuner_rf.capability & V4L2_TUNER_CAP_LOW) ? " kHz" : + (m_tuner_rf.capability & V4L2_TUNER_CAP_1HZ ? " Hz" : " MHz"); m_freqRfFac = (m_tuner_rf.capability & V4L2_TUNER_CAP_1HZ) ? 1 : 16; - val = new QDoubleValidator(m_tuner_rf.rangelow / m_freqRfFac, m_tuner_rf.rangehigh / m_freqRfFac, 3, parent); - val->setNotation(QDoubleValidator::StandardNotation); - m_freqRf = new QLineEdit(parent); - m_freqRf->setValidator(val); + m_freqRf = new QDoubleSpinBox(parent); + m_freqRf->setMinimum(m_tuner_rf.rangelow / m_freqRfFac); + m_freqRf->setMaximum(m_tuner_rf.rangehigh / m_freqRfFac); + m_freqRf->setSingleStep(1.0 / m_freqRfFac); + m_freqRf->setSuffix(unit); + m_freqRf->setDecimals((m_tuner_rf.capability & V4L2_TUNER_CAP_1HZ) ? 0 : 4); m_freqRf->setWhatsThis(QString("RF Frequency\nLow: %1 %3\nHigh: %2 %3") - .arg(m_tuner_rf.rangelow / m_freqRfFac) + .arg((double)m_tuner_rf.rangelow / m_freqRfFac, 0, 'f', 2) .arg((double)m_tuner_rf.rangehigh / m_freqRfFac, 0, 'f', 2) .arg(unit)); m_freqRf->setStatusTip(m_freqRf->whatsThis()); - connect(m_freqRf, SIGNAL(lostFocus()), SLOT(freqRfChanged())); - connect(m_freqRf, SIGNAL(returnPressed()), SLOT(freqRfChanged())); + connect(m_freqRf, SIGNAL(valueChanged(double)), SLOT(freqRfChanged(double))); updateFreqRf(); - if (m_tuner_rf.capability & V4L2_TUNER_CAP_1HZ) - addLabel("RF Frequency (Hz)"); - else if (m_tuner_rf.capability & V4L2_TUNER_CAP_LOW) - addLabel("RF Frequency (kHz)"); - else - addLabel("RF Frequency (MHz)"); + addLabel("RF Frequency"); addWidget(m_freqRf); } if (m_modulator.capability) { - QDoubleValidator *val; - const char *unit = (m_tuner.capability & V4L2_TUNER_CAP_LOW) ? "kHz" : - (m_tuner.capability & V4L2_TUNER_CAP_1HZ ? "Hz" : "MHz"); + const char *unit = (m_tuner.capability & V4L2_TUNER_CAP_LOW) ? " kHz" : + (m_tuner.capability & V4L2_TUNER_CAP_1HZ ? " Hz" : " MHz"); m_freqFac = (m_tuner.capability & V4L2_TUNER_CAP_1HZ) ? 1 : 16; - val = new QDoubleValidator(m_modulator.rangelow / m_freqFac, m_modulator.rangehigh / m_freqFac, 3, parent); - m_freq = new QLineEdit(parent); - m_freq->setValidator(val); + m_freq = new QDoubleSpinBox(parent); + m_freq->setMinimum(m_modulator.rangelow / m_freqFac); + m_freq->setMaximum(m_modulator.rangehigh / m_freqFac); + m_freq->setSingleStep(1.0 / m_freqFac); + m_freq->setSuffix(unit); + m_freq->setDecimals((m_modulator.capability & V4L2_TUNER_CAP_1HZ) ? 0 : 4); m_freq->setWhatsThis(QString("Frequency\nLow: %1 %3\nHigh: %2 %3") - .arg(m_tuner.rangelow / m_freqFac) - .arg((double)m_tuner.rangehigh / m_freqFac, 0, 'f', 2) + .arg((double)m_modulator.rangelow / m_freqFac) + .arg((double)m_modulator.rangehigh / m_freqFac, 0, 'f', 2) .arg(unit)); m_freq->setStatusTip(m_freq->whatsThis()); - connect(m_freq, SIGNAL(lostFocus()), SLOT(freqChanged())); - connect(m_freq, SIGNAL(returnPressed()), SLOT(freqChanged())); + connect(m_freq, SIGNAL(valueChanged(double)), SLOT(freqChanged(double))); updateFreq(); if (m_modulator.capability & V4L2_TUNER_CAP_1HZ) addLabel("Frequency (Hz)"); @@ -814,33 +806,33 @@ void GeneralTab::freqChannelChanged(int idx) { double f = v4l2_channel_lists[m_freqTable->currentIndex()].list[idx].freq; - m_freq->setText(QString::number(f / 1000.0)); - freqChanged(); + m_freq->setValue(f / 1000.0); + freqChanged(m_freq->value()); } -void GeneralTab::freqChanged() +void GeneralTab::freqChanged(double f) { - double f = m_freq->text().toDouble(); v4l2_frequency freq; - if (m_freq->hasAcceptableInput()) { - g_frequency(freq); - freq.frequency = f * m_freqFac; - s_frequency(freq); - } + if (!m_freq->isEnabled()) + return; + + g_frequency(freq); + freq.frequency = f * m_freqFac; + s_frequency(freq); updateFreq(); } -void GeneralTab::freqRfChanged() +void GeneralTab::freqRfChanged(double f) { - double f = m_freqRf->text().toDouble(); v4l2_frequency freq; - if (m_freqRf->hasAcceptableInput()) { - g_frequency(freq, 1); - freq.frequency = f * m_freqRfFac; - s_frequency(freq); - } + if (!m_freqRf->isEnabled()) + return; + + g_frequency(freq, 1); + freq.frequency = f * m_freqRfFac; + s_frequency(freq); updateFreqRf(); } @@ -1247,7 +1239,7 @@ void GeneralTab::updateFreq() g_frequency(f); /* m_freq listens to valueChanged block it to avoid recursion */ m_freq->blockSignals(true); - m_freq->setText(QString::number(f.frequency / m_freqFac)); + m_freq->setValue((double)f.frequency / m_freqFac); m_freq->blockSignals(false); } @@ -1267,7 +1259,7 @@ void GeneralTab::updateFreqRf() g_frequency(f, 1); /* m_freqRf listens to valueChanged block it to avoid recursion */ m_freqRf->blockSignals(true); - m_freqRf->setText(QString::number(f.frequency / m_freqRfFac)); + m_freqRf->setValue((double)f.frequency / m_freqRfFac); m_freqRf->blockSignals(false); } diff --git a/utils/qv4l2/general-tab.h b/utils/qv4l2/general-tab.h index 2057f35..b58203f 100644 --- a/utils/qv4l2/general-tab.h +++ b/utils/qv4l2/general-tab.h @@ -24,6 +24,7 @@ #include <config.h> #include <QSpinBox> +#include <QDoubleSpinBox> #include <sys/time.h> #include <linux/videodev2.h> #include <map> @@ -110,8 +111,8 @@ private slots: void qryTimingsClicked(); void freqTableChanged(int); void freqChannelChanged(int); - void freqChanged(); - void freqRfChanged(); + void freqChanged(double); + void freqRfChanged(double); void audioModeChanged(int); void detectSubchansClicked(); void stereoModeChanged(); @@ -202,12 +203,12 @@ private: QComboBox *m_pixelAspectRatio; QComboBox *m_crop; QPushButton *m_qryTimings; - QLineEdit *m_freq; + QDoubleSpinBox *m_freq; QComboBox *m_freqTable; QComboBox *m_freqChannel; QComboBox *m_audioMode; QLabel *m_subchannels; - QLineEdit *m_freqRf; + QDoubleSpinBox *m_freqRf; QCheckBox *m_stereoMode; QCheckBox *m_rdsMode; QPushButton *m_detectSubchans; _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits