File indexing completed on 2024-05-12 16:34:27

0001 /* This file is part of the KDE project
0002  * Copyright (c) 2009 Jan Hambrecht <jaham@gmx.net>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Library General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public License
0015  * along with this library; see the file COPYING.LIB.  If not, write to
0016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #include "BlurEffectConfigWidget.h"
0021 #include "BlurEffect.h"
0022 #include "KoFilterEffect.h"
0023 
0024 #include <QSpinBox>
0025 #include <klocalizedstring.h>
0026 
0027 #include <QGridLayout>
0028 #include <QLabel>
0029 
0030 BlurEffectConfigWidget::BlurEffectConfigWidget(QWidget *parent)
0031         : KoFilterEffectConfigWidgetBase(parent), m_effect(0)
0032 {
0033     QGridLayout * g = new QGridLayout(this);
0034 
0035     g->addWidget(new QLabel(i18n("Radius"), this), 0, 0);
0036     m_stdDeviation = new QDoubleSpinBox(this);
0037     m_stdDeviation->setRange(0.0, 100);
0038     m_stdDeviation->setSingleStep(0.5);
0039     g->addWidget(m_stdDeviation, 0, 1);
0040     setLayout(g);
0041 
0042     connect(m_stdDeviation, SIGNAL(valueChanged(double)), this, SLOT(stdDeviationChanged(double)));
0043 }
0044 
0045 bool BlurEffectConfigWidget::editFilterEffect(KoFilterEffect * filterEffect)
0046 {
0047     m_effect = dynamic_cast<BlurEffect*>(filterEffect);
0048     if (!m_effect)
0049         return false;
0050 
0051     m_stdDeviation->setValue(m_effect->deviation().x()*100.0);
0052     return true;
0053 }
0054 
0055 void BlurEffectConfigWidget::stdDeviationChanged(double stdDeviation)
0056 {
0057     if (!m_effect)
0058         return;
0059 
0060     qreal newDev = 0.01 * stdDeviation;
0061     m_effect->setDeviation(QPointF(newDev, newDev));
0062     emit filterChanged();
0063 }