diff options
author | vhf / victor felder <victorfelder@gmail.com> | 2013-05-22 01:19:18 +0300 |
---|---|---|
committer | Victor Felder <victorfelder@gmail.com> | 2013-06-02 14:44:55 +0200 |
commit | a35e268da44a1606af2fc18169f715e7eda8fb7c (patch) | |
tree | 161167fdfbc6ff50629166229ccf942448ff94b0 /src/qt/bitcoinamountfield.cpp | |
parent | 3702f127fdcd9dd6787112a05c11b80607367b39 (diff) |
Too many bitcoins allowed in amount. (#2401)
Using magic number doesn't seem right. Could we factor this out, together with https://github.com/bitcoin/bitcoin/blob/master/src/bitcoinrpc.cpp#L96 ?
And what about BitcoinUnits::parse() as well ?
Diffstat (limited to 'src/qt/bitcoinamountfield.cpp')
-rw-r--r-- | src/qt/bitcoinamountfield.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp index b12e296f99..b502505f31 100644 --- a/src/qt/bitcoinamountfield.cpp +++ b/src/qt/bitcoinamountfield.cpp @@ -60,7 +60,9 @@ bool BitcoinAmountField::validate() bool valid = true; if (amount->value() == 0.0) valid = false; - if (valid && !BitcoinUnits::parse(currentUnit, text(), 0)) + else if (!BitcoinUnits::parse(currentUnit, text(), 0)) + valid = false; + else if (amount->value() > BitcoinUnits::maxAmount(currentUnit)) valid = false; setValid(valid); @@ -115,7 +117,7 @@ qint64 BitcoinAmountField::value(bool *valid_out) const { qint64 val_out = 0; bool valid = BitcoinUnits::parse(currentUnit, text(), &val_out); - if(valid_out) + if (valid_out) { *valid_out = valid; } @@ -145,12 +147,12 @@ void BitcoinAmountField::unitChanged(int idx) amount->setDecimals(BitcoinUnits::decimals(currentUnit)); amount->setMaximum(qPow(10, BitcoinUnits::amountDigits(currentUnit)) - qPow(10, -amount->decimals())); - if(currentUnit == BitcoinUnits::uBTC) + if (currentUnit == BitcoinUnits::uBTC) amount->setSingleStep(0.01); else amount->setSingleStep(0.001); - if(valid) + if (valid) { // If value was valid, re-place it in the widget with the new unit setValue(currentValue); |