23 #include <QPushButton> 24 #include <QRadioButton> 28 #include <KHelpClient> 29 #include <KLocalizedString> 47 m_noise(0.1), m_mode(MODE_DECIBEL),
48 m_enable_updates(true), m_overview_cache(overview_cache)
54 connect(rbPercentage, SIGNAL(toggled(
bool)),
56 connect(rbLogarithmic, SIGNAL(toggled(
bool)),
60 connect(slider, SIGNAL(valueChanged(
int)),
62 connect(spinbox, SIGNAL(valueChanged(
int)),
65 connect(btListen, SIGNAL(toggled(
bool)),
72 int h = preview->height();
74 preview->setFixedHeight(h);
78 if (btListen->width() > btListen->minimumWidth())
79 btListen->setMinimumWidth(btListen->width());
81 if (btListen->width() > btListen->minimumWidth())
82 btListen->setMinimumWidth(btListen->width());
85 h = (sizeHint().height() * 12) / 10;
87 if (sizeHint().width() > w) w = sizeHint().width();
94 connect(buttonBox_Help->button(QDialogButtonBox::Help), SIGNAL(clicked()),
98 buttonBox->button(QDialogButtonBox::Ok)->setFocus();
121 rbPercentage->setChecked(
true);
123 slider->setMinimum(1);
124 slider->setMaximum(100);
125 slider->setPageStep(100);
126 slider->setTickInterval(10);
127 spinbox->setMinimum(1);
128 spinbox->setMaximum(100);
132 rbLogarithmic->setChecked(
true);
134 slider->setMinimum(-21);
135 slider->setMaximum(0);
136 slider->setPageStep(6);
137 slider->setTickInterval(3);
138 spinbox->setMinimum(-21);
139 spinbox->setMaximum(0);
164 int new_spinbox_value = 0;
165 int new_slider_value = 0;
171 if (!qFuzzyCompare(
m_noise, value)) {
178 int width = preview->width();
179 int height = preview->height();
187 QImage image(width, height, QImage::Format_ARGB32_Premultiplied);
190 p.fillRect(image.rect(), color_bg);
193 const int middle = height >> 1;
210 for (
int x = 0; x < count; ++x) {
212 (1.0 - m_noise)) * middle);
214 (1.0 - m_noise)) * middle);
215 int y1 = y2 - noise_2;
216 int y3 = y2 + noise_2;
217 int y4 = y5 - noise_2;
218 int y6 = y5 + noise_2;
222 p.setPen(color_noise);
223 p.drawLine(x, middle - y3, x, middle - y1);
226 p.drawLine(x, middle - y6, x, middle - y4);
230 p.drawLine(x, middle - y4, x, middle - y3);
233 p.setPen(color_noise);
234 p.drawLine(x, middle - y6, x, middle - y1);
239 p.setCompositionMode(QPainter::CompositionMode_SourceOver);
241 p.drawLine(0, middle, width - 1, middle);
246 preview->setImage(image);
257 new_slider_value = new_spinbox_value;
258 spinbox->setPrefix(
_(
""));
259 spinbox->setSuffix(
_(
"%"));
260 spinbox->setInverse(
false);
265 if (!qFuzzyIsNull(value))
266 new_slider_value =
Kwave::toInt(rint(20.0 * log10(value)));
268 new_slider_value = 0;
269 new_spinbox_value = new_slider_value;
270 if (new_spinbox_value >= 0) {
271 spinbox->setPrefix(new_spinbox_value ?
_(
"+") :
_(
"+/- "));
274 spinbox->setPrefix(
_(
""));
276 spinbox->setSuffix(
_(
" ") + i18n(
"dB"));
277 spinbox->setInverse(
false);
283 if (spinbox->value() != new_spinbox_value) spinbox->setValue(new_spinbox_value);
286 int sv = slider->maximum() + slider->minimum() - new_slider_value;
287 if (slider->value() != sv) slider->setValue(sv);
297 int sv = slider->maximum() + slider->minimum() - pos;
311 factor =
static_cast<double>(pos) / 100.0;
315 factor = pow(10.0, pos / 20.0);
326 list << QString::number(
m_noise);
327 list << QString::number(static_cast<int>(
m_mode));
335 double factor = params[0].toDouble();
336 factor = qBound<double>(0.0, factor, 1.0);
338 switch (params[1].toUInt()) {
356 if (!btListen)
return;
361 btListen->setText(i18n(
"&Stop"));
365 btListen->setText(i18n(
"&Listen"));
372 if (btListen) btListen->setChecked(
false);
378 KHelpClient::invokeHelp(
_(
"plugin_sect_noise"));
void updateDisplay(double value)
void listenToggled(bool listen)
int getMinMax(int width, MinMaxArray &minmax)
virtual QStringList params() Q_DECL_OVERRIDE
bool connect(Kwave::StreamObject &source, const char *output, Kwave::StreamObject &sink, const char *input)
Kwave::OverViewCache * m_overview_cache
QVector< MinMax > MinMaxArray
NoiseDialog(QWidget *parent, Kwave::OverViewCache *overview_cache)
void spinboxChanged(int pos)
static double sample2double(const sample_t s)
void sliderChanged(int pos)
virtual void setParams(QStringList ¶ms) Q_DECL_OVERRIDE
virtual ~NoiseDialog() Q_DECL_OVERRIDE
static double zero(double)
static Q_DECL_EXPORT ColorSet Normal
void levelChanged(double level)