diff options
| author | J Ross Nicoll <[email protected]> | 2015-10-10 20:51:00 +0100 |
|---|---|---|
| committer | J Ross Nicoll <[email protected]> | 2015-10-31 14:49:41 +0000 |
| commit | 4775f3c752a8ab9549c561d876cdf1d7db896996 (patch) | |
| tree | e417608a176c287e5d4955510f6a3747e07cb072 | |
| parent | Disable UI elements for selecting zero-fee (diff) | |
| download | discoin-4775f3c752a8ab9549c561d876cdf1d7db896996.tar.xz discoin-4775f3c752a8ab9549c561d876cdf1d7db896996.zip | |
Add minimum constraint on custom fees field
| -rw-r--r-- | src/qt/bitcoinamountfield.cpp | 31 | ||||
| -rw-r--r-- | src/qt/bitcoinamountfield.h | 3 | ||||
| -rw-r--r-- | src/qt/forms/sendcoinsdialog.ui | 9 |
3 files changed, 40 insertions, 3 deletions
diff --git a/src/qt/bitcoinamountfield.cpp b/src/qt/bitcoinamountfield.cpp index 5e8150a56..aa897ab53 100644 --- a/src/qt/bitcoinamountfield.cpp +++ b/src/qt/bitcoinamountfield.cpp @@ -28,6 +28,7 @@ public: singleStep(COIN) // koinu { setAlignment(Qt::AlignRight); + min = CAmount(0); connect(lineEdit(), SIGNAL(textEdited(QString)), this, SIGNAL(valueChanged())); } @@ -64,12 +65,27 @@ public: emit valueChanged(); } + void setMinimum(const int min) + { + this->min = min * COIN; + bool valid = false; + CAmount val = value(&valid); + if (val < this->min) { + setValue(this->min); + } + } + + int minimum() + { + return min / COIN; + } + void stepBy(int steps) { bool valid = false; CAmount val = value(&valid); val = val + steps * singleStep; - val = qMin(qMax(val, CAmount(0)), BitcoinUnits::maxMoney()); + val = qMin(qMax(val, min), BitcoinUnits::maxMoney()); setValue(val); } @@ -126,6 +142,7 @@ public: private: int currentUnit; + CAmount min; CAmount singleStep; mutable QSize cachedMinimumSizeHint; @@ -140,7 +157,7 @@ private: bool valid = BitcoinUnits::parse(currentUnit, text, &val); if(valid) { - if(val < 0 || val > BitcoinUnits::maxMoney()) + if(val < min || val > BitcoinUnits::maxMoney()) valid = false; } if(valid_out) @@ -227,6 +244,16 @@ void BitcoinAmountField::setText(const QString &text) amount->setValue(QLocale().toDouble(text)); } +void BitcoinAmountField::setMinimum(const int min) +{ + amount->setMinimum(min); +} + +int BitcoinAmountField::minimum() +{ + return amount->minimum(); +} + void BitcoinAmountField::clear() { amount->clear(); diff --git a/src/qt/bitcoinamountfield.h b/src/qt/bitcoinamountfield.h index 8b5880b0d..f59f8259b 100644 --- a/src/qt/bitcoinamountfield.h +++ b/src/qt/bitcoinamountfield.h @@ -33,6 +33,9 @@ public: CAmount value(bool *value=0) const; void setValue(const CAmount& value); + void setMinimum(const int min); + int minimum(); + /** Set single step in satoshis **/ void setSingleStep(const CAmount& step); diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index baab73001..6ca451fb8 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -882,7 +882,14 @@ </widget> </item> <item> - <widget class="BitcoinAmountField" name="customFee"/> + <widget class="BitcoinAmountField" name="customFee"> + <property name="minimum"> + <number>1</number> + </property> + <property name="value"> + <number>1</number> + </property> + </widget> </item> <item> <spacer name="horizontalSpacer_6"> |