diff --git a/src/Gui/QuantitySpinBox.cpp b/src/Gui/QuantitySpinBox.cpp index 333f89d9b8..8f4a1e49e3 100644 --- a/src/Gui/QuantitySpinBox.cpp +++ b/src/Gui/QuantitySpinBox.cpp @@ -572,10 +572,16 @@ void QuantitySpinBox::userInput(const QString & text) else { d->validInput = false; - // we have to emit here signal explicitly as validator will not pass - // this value further but we want to check it to disable isSet flag if - // it has been set previously - Q_EMIT valueChanged(d->quantity.getValue()); + // only emit signal to reset EditableDatumLabel if the input is truly empty or has + // no meaningful number don't emit for partially typed numbers like "71." which are + // temporarily invalid + QString trimmedText = text.trimmed(); + if (trimmedText.isEmpty() || !trimmedText.contains(QRegularExpression(QStringLiteral("[0-9]")))) { + // we have to emit here signal explicitly as validator will not pass + // this value further but we want to check it to disable isSet flag if + // it has been set previously + Q_EMIT valueChanged(d->quantity.getValue()); + } return; }