aboutsummaryrefslogtreecommitdiff
path: root/src/qt/bitcoinamountfield.cpp
diff options
context:
space:
mode:
authorvhf / victor felder <victorfelder@gmail.com>2013-05-22 01:19:18 +0300
committerVictor Felder <victorfelder@gmail.com>2013-06-02 14:44:55 +0200
commita35e268da44a1606af2fc18169f715e7eda8fb7c (patch)
tree161167fdfbc6ff50629166229ccf942448ff94b0 /src/qt/bitcoinamountfield.cpp
parent3702f127fdcd9dd6787112a05c11b80607367b39 (diff)
downloadbitcoin-a35e268da44a1606af2fc18169f715e7eda8fb7c.tar.xz
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.cpp10
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);