Fix money input field limit without decimal separator.
This commit is contained in:
parent
286cb74620
commit
c242a61e8c
|
@ -96,16 +96,21 @@ struct SimpleFieldState {
|
|||
if (decimalPosition >= 0) {
|
||||
Assert(decimalPosition >= skip);
|
||||
decimalPosition -= skip;
|
||||
}
|
||||
if (decimalPosition > digitsLimit) {
|
||||
if (decimalPosition > digitsLimit) {
|
||||
state = {
|
||||
.value = (state.value.mid(0, digitsLimit)
|
||||
+ state.value.mid(decimalPosition)),
|
||||
.position = (state.position > digitsLimit
|
||||
? std::max(
|
||||
state.position - (decimalPosition - digitsLimit),
|
||||
digitsLimit)
|
||||
: state.position),
|
||||
};
|
||||
}
|
||||
} else if (state.value.size() > digitsLimit) {
|
||||
state = {
|
||||
.value = (state.value.mid(0, digitsLimit)
|
||||
+ state.value.mid(decimalPosition)),
|
||||
.position = (state.position > digitsLimit
|
||||
? std::max(
|
||||
state.position - (decimalPosition - digitsLimit),
|
||||
digitsLimit)
|
||||
: state.position),
|
||||
.value = state.value.mid(0, digitsLimit),
|
||||
.position = std::min(state.position, digitsLimit),
|
||||
};
|
||||
}
|
||||
return state;
|
||||
|
|
|
@ -131,6 +131,9 @@ QString FillAmountAndCurrency(
|
|||
int64 amount,
|
||||
const QString ¤cy,
|
||||
bool forceStripDotZero) {
|
||||
// std::abs doesn't work on that one :/
|
||||
Expects(amount != std::numeric_limits<int64>::min());
|
||||
|
||||
const auto rule = LookupCurrencyRule(currency);
|
||||
|
||||
const auto prefix = (amount < 0)
|
||||
|
|
Loading…
Reference in New Issue