Gui: Emit signal to EditableDatumLabel only if there's no digits
Small regression of mine, basically this signal to remove set/locked state of EditableDatumLabel should be only sent out if current text in the label is empty or it doesn't contain digits. Previously it was emitted every intermediate wrong state, so stuff like "71." was also being matched, and it resulted in resetting the locked state of the label, which in turn resulted in keeping user from entering float values.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user