SpectrogramControls::SpectrogramControls(const QString & title, QWidget * parent) : QDockWidget::QDockWidget(title, parent) { widget = new QWidget(this); layout = new QFormLayout(widget); fileOpenButton = new QPushButton("Open file...", widget); layout->addRow(fileOpenButton); sampleRate = new QLineEdit("8000000"); sampleRate->setValidator(new QIntValidator(this)); layout->addRow(new QLabel(tr("Sample rate:")), sampleRate); fftSizeSlider = new QSlider(Qt::Horizontal, widget); fftSizeSlider->setRange(7, 13); fftSizeSlider->setValue(10); layout->addRow(new QLabel(tr("FFT size:")), fftSizeSlider); zoomLevelSlider = new QSlider(Qt::Horizontal, widget); zoomLevelSlider->setRange(0, 5); zoomLevelSlider->setValue(0); layout->addRow(new QLabel(tr("Zoom:")), zoomLevelSlider); powerMaxSlider = new QSlider(Qt::Horizontal, widget); powerMaxSlider->setRange(-100, 20); powerMaxSlider->setValue(0); layout->addRow(new QLabel(tr("Power max:")), powerMaxSlider); powerMinSlider = new QSlider(Qt::Horizontal, widget); powerMinSlider->setRange(-100, 20); powerMinSlider->setValue(-50); layout->addRow(new QLabel(tr("Power min:")), powerMinSlider); widget->setLayout(layout); setWidget(widget); connect(fftSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(fftSizeSliderChanged(int))); connect(fileOpenButton, SIGNAL(clicked()), this, SLOT(fileOpenButtonClicked())); }
SpectrogramControls::SpectrogramControls(const QString & title, QWidget * parent) : QDockWidget::QDockWidget(title, parent) { widget = new QWidget(this); layout = new QFormLayout(widget); fileOpenButton = new QPushButton("Open file...", widget); layout->addRow(fileOpenButton); sampleRate = new QLineEdit(); sampleRate->setValidator(new QIntValidator(this)); layout->addRow(new QLabel(tr("Sample rate:")), sampleRate); // Spectrogram settings layout->addRow(new QLabel()); // TODO: find a better way to add an empty row? layout->addRow(new QLabel(tr("<b>Spectrogram</b>"))); fftSizeSlider = new QSlider(Qt::Horizontal, widget); fftSizeSlider->setRange(7, 13); layout->addRow(new QLabel(tr("FFT size:")), fftSizeSlider); zoomLevelSlider = new QSlider(Qt::Horizontal, widget); zoomLevelSlider->setRange(0, 10); layout->addRow(new QLabel(tr("Zoom:")), zoomLevelSlider); powerMaxSlider = new QSlider(Qt::Horizontal, widget); powerMaxSlider->setRange(-100, 20); layout->addRow(new QLabel(tr("Power max:")), powerMaxSlider); powerMinSlider = new QSlider(Qt::Horizontal, widget); powerMinSlider->setRange(-100, 20); layout->addRow(new QLabel(tr("Power min:")), powerMinSlider); // Time selection settings layout->addRow(new QLabel()); // TODO: find a better way to add an empty row? layout->addRow(new QLabel(tr("<b>Time selection</b>"))); cursorsCheckBox = new QCheckBox(widget); layout->addRow(new QLabel(tr("Enable cursors:")), cursorsCheckBox); cursorSymbolsSpinBox = new QSpinBox(); cursorSymbolsSpinBox->setMinimum(1); cursorSymbolsSpinBox->setMaximum(9999); layout->addRow(new QLabel(tr("Symbols:")), cursorSymbolsSpinBox); rateLabel = new QLabel(); layout->addRow(new QLabel(tr("Rate:")), rateLabel); periodLabel = new QLabel(); layout->addRow(new QLabel(tr("Period:")), periodLabel); symbolRateLabel = new QLabel(); layout->addRow(new QLabel(tr("Symbol rate:")), symbolRateLabel); symbolPeriodLabel = new QLabel(); layout->addRow(new QLabel(tr("Symbol period:")), symbolPeriodLabel); widget->setLayout(layout); setWidget(widget); connect(fftSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(fftOrZoomChanged(int))); connect(zoomLevelSlider, SIGNAL(valueChanged(int)), this, SLOT(fftOrZoomChanged(int))); connect(fileOpenButton, SIGNAL(clicked()), this, SLOT(fileOpenButtonClicked())); connect(cursorsCheckBox, SIGNAL(stateChanged(int)), this, SLOT(cursorsStateChanged(int))); }