tdeui: fixed handling of setPrecision() for KDoubleSpinBox. This resolves bug 2717.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/1/head
Michele Calgaro 8 years ago
parent 1ae867ab67
commit f32bc51762

@ -1054,13 +1054,28 @@ void KDoubleSpinBox::setPrecision( int precision ) {
}
void KDoubleSpinBox::setPrecision( int precision, bool force ) {
if ( precision < 1 ) return;
if ( precision < 0 ) return;
if ( !force ) {
int maxPrec = maxPrecision();
if ( precision > maxPrec )
{
precision = maxPrec;
}
}
// Update minValue, maxValue, value and lineStep to match the precision change
int oldPrecision = d->mPrecision;
double oldValue = value();
double oldMinValue = minValue();
double oldMaxValue = maxValue();
double oldLineStep = lineStep();
d->mPrecision = precision;
if (precision != oldPrecision)
{
setMinValue(oldMinValue);
setMaxValue(oldMaxValue);
setValue(oldValue);
setLineStep(oldLineStep);
}
updateValidator();
}

Loading…
Cancel
Save