comparison main/PreferencesDialog.cpp @ 115:c9930ec7a3f9

* Add fuzzy interpolation option as an alternative to zero padding in spectrogram (looks terrible though) * Make spectrogram appear more quickly by having the FFT server notify of updates more often near the start of its run
author Chris Cannam
date Mon, 05 Mar 2007 15:32:55 +0000
parents a46d68ae3c3e
children 652b22dcd4ed
comparison
equal deleted inserted replaced
114:a46d68ae3c3e 115:c9930ec7a3f9
56 m_windowTypeSelector = new WindowTypeSelector(m_windowType); 56 m_windowTypeSelector = new WindowTypeSelector(m_windowType);
57 57
58 connect(m_windowTypeSelector, SIGNAL(windowTypeChanged(WindowType)), 58 connect(m_windowTypeSelector, SIGNAL(windowTypeChanged(WindowType)),
59 this, SLOT(windowTypeChanged(WindowType))); 59 this, SLOT(windowTypeChanged(WindowType)));
60 60
61 QCheckBox *smoothing = new QCheckBox; 61 QComboBox *smoothing = new QComboBox;
62 m_smoothSpectrogram = prefs->getSmoothSpectrogram(); 62
63 smoothing->setCheckState(m_smoothSpectrogram ? 63 int sm = prefs->getPropertyRangeAndValue("Spectrogram Smoothing", &min, &max,
64 Qt::Checked : Qt::Unchecked); 64 &deflt);
65 65 m_spectrogramSmoothing = sm;
66 connect(smoothing, SIGNAL(stateChanged(int)), 66
67 this, SLOT(smoothSpectrogramChanged(int))); 67 for (i = min; i <= max; ++i) {
68 smoothing->addItem(prefs->getPropertyValueLabel("Spectrogram Smoothing", i));
69 }
70
71 smoothing->setCurrentIndex(sm);
72
73 connect(smoothing, SIGNAL(currentIndexChanged(int)),
74 this, SLOT(spectrogramSmoothingChanged(int)));
68 75
69 QComboBox *propertyLayout = new QComboBox; 76 QComboBox *propertyLayout = new QComboBox;
70 int pl = prefs->getPropertyRangeAndValue("Property Box Layout", &min, &max, 77 int pl = prefs->getPropertyRangeAndValue("Property Box Layout", &min, &max,
71 &deflt); 78 &deflt);
72 m_propertyLayout = pl; 79 m_propertyLayout = pl;
73 80
74 for (i = min; i <= max; ++i) { 81 for (i = min; i <= max; ++i) {
75 propertyLayout->addItem(prefs->getPropertyValueLabel("Property Box Layout", i)); 82 propertyLayout->addItem(prefs->getPropertyValueLabel("Property Box Layout", i));
76 } 83 }
124 ("Resample Quality"))), 131 ("Resample Quality"))),
125 row, 0); 132 row, 0);
126 subgrid->addWidget(resampleQuality, row++, 1, 1, 2); 133 subgrid->addWidget(resampleQuality, row++, 1, 1, 2);
127 134
128 subgrid->addWidget(new QLabel(prefs->getPropertyLabel 135 subgrid->addWidget(new QLabel(prefs->getPropertyLabel
129 ("Smooth Spectrogram")), 136 ("Spectrogram Smoothing")),
130 row, 0, 1, 2); 137 row, 0);
131 subgrid->addWidget(smoothing, row++, 2); 138 subgrid->addWidget(smoothing, row++, 1, 1, 2);
132 139
133 subgrid->addWidget(new QLabel(tr("%1:").arg(prefs->getPropertyLabel 140 subgrid->addWidget(new QLabel(tr("%1:").arg(prefs->getPropertyLabel
134 ("Window Type"))), 141 ("Window Type"))),
135 row, 0); 142 row, 0);
136 subgrid->addWidget(m_windowTypeSelector, row++, 1, 2, 2); 143 subgrid->addWidget(m_windowTypeSelector, row++, 1, 2, 2);
164 m_windowType = type; 171 m_windowType = type;
165 m_applyButton->setEnabled(true); 172 m_applyButton->setEnabled(true);
166 } 173 }
167 174
168 void 175 void
169 PreferencesDialog::smoothSpectrogramChanged(int state) 176 PreferencesDialog::spectrogramSmoothingChanged(int smoothing)
170 { 177 {
171 m_smoothSpectrogram = (state == Qt::Checked); 178 m_spectrogramSmoothing = smoothing;
172 m_applyButton->setEnabled(true); 179 m_applyButton->setEnabled(true);
173 } 180 }
174 181
175 void 182 void
176 PreferencesDialog::propertyLayoutChanged(int layout) 183 PreferencesDialog::propertyLayoutChanged(int layout)
203 void 210 void
204 PreferencesDialog::applyClicked() 211 PreferencesDialog::applyClicked()
205 { 212 {
206 Preferences *prefs = Preferences::getInstance(); 213 Preferences *prefs = Preferences::getInstance();
207 prefs->setWindowType(WindowType(m_windowType)); 214 prefs->setWindowType(WindowType(m_windowType));
208 prefs->setSmoothSpectrogram(m_smoothSpectrogram); 215 prefs->setSpectrogramSmoothing(Preferences::SpectrogramSmoothing
216 (m_spectrogramSmoothing));
209 prefs->setPropertyBoxLayout(Preferences::PropertyBoxLayout 217 prefs->setPropertyBoxLayout(Preferences::PropertyBoxLayout
210 (m_propertyLayout)); 218 (m_propertyLayout));
211 prefs->setTuningFrequency(m_tuningFrequency); 219 prefs->setTuningFrequency(m_tuningFrequency);
212 prefs->setResampleQuality(m_resampleQuality); 220 prefs->setResampleQuality(m_resampleQuality);
213 m_applyButton->setEnabled(false); 221 m_applyButton->setEnabled(false);