diff --git a/liboxygen/oxygenactiveshadowconfigdata.kcfg b/liboxygen/oxygenactiveshadowconfigdata.kcfg --- a/liboxygen/oxygenactiveshadowconfigdata.kcfg +++ b/liboxygen/oxygenactiveshadowconfigdata.kcfg @@ -29,6 +29,10 @@ true + + 100 + + diff --git a/liboxygen/oxygeninactiveshadowconfigdata.kcfg b/liboxygen/oxygeninactiveshadowconfigdata.kcfg --- a/liboxygen/oxygeninactiveshadowconfigdata.kcfg +++ b/liboxygen/oxygeninactiveshadowconfigdata.kcfg @@ -29,6 +29,10 @@ false + + 100 + + diff --git a/liboxygen/oxygenshadowcache.cpp b/liboxygen/oxygenshadowcache.cpp --- a/liboxygen/oxygenshadowcache.cpp +++ b/liboxygen/oxygenshadowcache.cpp @@ -292,13 +292,14 @@ // inner (sharp) gradient const qreal gradientSize = qMin( shadowSize, (shadowSize+fixedSize)/2 ); const qreal voffset = qMin( 12.0*(gradientSize*ActiveShadowConfiguration::verticalOffset())/fixedSize, 4.0 ); + const qreal intensity ( ActiveShadowConfiguration::shadowIntensity() / 100.0 ); QRadialGradient radialGradient = QRadialGradient( size, size + voffset, gradientSize ); radialGradient.setColorAt(1, Qt::transparent ); // gaussian shadow is used int nPoints( (10*gradientSize)/fixedSize ); - Gaussian f( 0.85, 0.17 ); + Gaussian f( intensity * 0.85, intensity * 0.17 ); QColor c = ActiveShadowConfiguration::innerColor(); for( int i = 0; i < nPoints; i++ ) { @@ -318,13 +319,14 @@ // outer (spread) gradient const qreal gradientSize = shadowSize; const qreal voffset = qMin( 12.0*(gradientSize*ActiveShadowConfiguration::verticalOffset())/fixedSize, 4.0 ); + const qreal intensity ( ActiveShadowConfiguration::shadowIntensity() / 100.0 ); QRadialGradient radialGradient = QRadialGradient( size, size+voffset, gradientSize ); radialGradient.setColorAt(1, Qt::transparent ); // gaussian shadow is used int nPoints( (10*gradientSize)/fixedSize ); - Gaussian f( 0.46, 0.34 ); + Gaussian f( intensity * 0.46, intensity * 0.34 ); QColor c = ActiveShadowConfiguration::useOuterColor() ? ActiveShadowConfiguration::outerColor():ActiveShadowConfiguration::innerColor(); for( int i = 0; i < nPoints; i++ ) { @@ -345,13 +347,14 @@ // inner (sharp gradient) const qreal gradientSize = qMin( shadowSize, fixedSize ); const qreal voffset( 0.2 ); + const qreal intensity ( ActiveShadowConfiguration::shadowIntensity() / 100.0 ); QRadialGradient radialGradient = QRadialGradient( size, size+voffset, gradientSize ); radialGradient.setColorAt(1, Qt::transparent ); // parabolic shadow is used int nPoints( (10*gradientSize)/fixedSize ); - Parabolic f( 1.0, 0.22 ); + Parabolic f( intensity * 1.0, intensity * 0.22 ); QColor c = InactiveShadowConfiguration::useOuterColor() ? InactiveShadowConfiguration::outerColor():InactiveShadowConfiguration::innerColor(); for( int i = 0; i < nPoints; i++ ) { @@ -372,13 +375,14 @@ // mid gradient const qreal gradientSize = qMin( shadowSize, (shadowSize+2*fixedSize)/3 ); const qreal voffset = qMin( 8.0*(gradientSize*InactiveShadowConfiguration::verticalOffset())/fixedSize, 4.0 ); + const qreal intensity ( InactiveShadowConfiguration::shadowIntensity() / 100.0 ); // gaussian shadow is used QRadialGradient radialGradient = QRadialGradient( size, size+voffset, gradientSize ); radialGradient.setColorAt(1, Qt::transparent ); int nPoints( (10*gradientSize)/fixedSize ); - Gaussian f( 0.54, 0.21); + Gaussian f( intensity * 0.54, intensity * 0.21); QColor c = InactiveShadowConfiguration::useOuterColor() ? InactiveShadowConfiguration::outerColor():InactiveShadowConfiguration::innerColor(); for( int i = 0; i < nPoints; i++ ) { @@ -398,13 +402,14 @@ // outer (spread) gradient const qreal gradientSize = shadowSize; const qreal voffset = qMin( 20.0*(gradientSize*InactiveShadowConfiguration::verticalOffset())/fixedSize, 4.0 ); + const qreal intensity ( InactiveShadowConfiguration::shadowIntensity() / 100.0 ); // gaussian shadow is used QRadialGradient radialGradient = QRadialGradient( size, size+voffset, gradientSize ); radialGradient.setColorAt(1, Qt::transparent ); int nPoints( (20*gradientSize)/fixedSize ); - Gaussian f( 0.155, 0.445); + Gaussian f( intensity * 0.155, intensity * 0.445); QColor c = InactiveShadowConfiguration::useOuterColor() ? InactiveShadowConfiguration::outerColor():InactiveShadowConfiguration::innerColor(); for( int i = 0; i < nPoints; i++ ) { diff --git a/liboxygen/oxygenshadowconfigwidget.cpp b/liboxygen/oxygenshadowconfigwidget.cpp --- a/liboxygen/oxygenshadowconfigwidget.cpp +++ b/liboxygen/oxygenshadowconfigwidget.cpp @@ -54,6 +54,7 @@ connect( ui->innerColor, SIGNAL(changed(QColor)), SLOT(updateChanged()) ); connect( ui->outerColor, SIGNAL(changed(QColor)), SLOT(updateChanged()) ); connect( ui->useOuterColor, SIGNAL(toggled(bool)), SLOT(updateChanged()) ); + connect( ui->shadowIntensity, SIGNAL(valueChanged(int)), SLOT(updateChanged()) ); connect( this, SIGNAL(toggled(bool)), SLOT(updateChanged()) ); } @@ -74,6 +75,7 @@ ActiveShadowConfiguration::setInnerColor( ui->innerColor->color() ); ActiveShadowConfiguration::setOuterColor( ui->outerColor->color() ); ActiveShadowConfiguration::setUseOuterColor( ui->useOuterColor->isChecked() ); + ActiveShadowConfiguration::setShadowIntensity( ui->shadowIntensity->value() ); ActiveShadowConfiguration::setEnabled( isChecked() ); #if OXYGEN_USE_KDE4 @@ -89,6 +91,7 @@ InactiveShadowConfiguration::setInnerColor( ui->innerColor->color() ); InactiveShadowConfiguration::setOuterColor( ui->outerColor->color() ); InactiveShadowConfiguration::setUseOuterColor( ui->useOuterColor->isChecked() ); + InactiveShadowConfiguration::setShadowIntensity( ui->shadowIntensity->value() ); InactiveShadowConfiguration::setEnabled( isChecked() ); #if OXYGEN_USE_KDE4 @@ -113,6 +116,7 @@ ( ui->innerColor->color() != ActiveShadowConfiguration::innerColor() ) || ( ui->useOuterColor->isChecked() != ActiveShadowConfiguration::useOuterColor() ) || ( ui->outerColor->color() != ActiveShadowConfiguration::outerColor() ) || + ( ui->shadowIntensity->value() != ActiveShadowConfiguration::shadowIntensity() ) || ( isChecked() != ActiveShadowConfiguration::enabled() ) ); } else if( _group == QPalette::Inactive ) { @@ -123,6 +127,7 @@ ( ui->innerColor->color() != InactiveShadowConfiguration::innerColor() ) || ( ui->useOuterColor->isChecked() != InactiveShadowConfiguration::useOuterColor() ) || ( ui->outerColor->color() != InactiveShadowConfiguration::outerColor() ) || + ( ui->shadowIntensity->value() != InactiveShadowConfiguration::shadowIntensity() ) || ( isChecked() != InactiveShadowConfiguration::enabled() ) ); } @@ -151,6 +156,7 @@ ui->innerColor->setColor( ActiveShadowConfiguration::innerColor() ); ui->outerColor->setColor( ActiveShadowConfiguration::outerColor() ); ui->useOuterColor->setChecked( ActiveShadowConfiguration::useOuterColor() ); + ui->shadowIntensity->setValue( ActiveShadowConfiguration::shadowIntensity() ); setChecked( ActiveShadowConfiguration::enabled() ); @@ -172,6 +178,7 @@ ui->innerColor->setColor( InactiveShadowConfiguration::innerColor() ); ui->outerColor->setColor( InactiveShadowConfiguration::outerColor() ); ui->useOuterColor->setChecked( InactiveShadowConfiguration::useOuterColor() ); + ui->shadowIntensity->setValue( InactiveShadowConfiguration::shadowIntensity() ); setChecked( InactiveShadowConfiguration::enabled() ); diff --git a/liboxygen/ui/oxygenshadowconfigurationui.ui b/liboxygen/ui/oxygenshadowconfigurationui.ui --- a/liboxygen/ui/oxygenshadowconfigurationui.ui +++ b/liboxygen/ui/oxygenshadowconfigurationui.ui @@ -7,7 +7,7 @@ 0 0 180 - 112 + 170 @@ -103,6 +103,26 @@ + + + + Intensity: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + % + + + 100 + + +