aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ Ross Nicoll <[email protected]>2015-10-10 20:51:00 +0100
committerJ Ross Nicoll <[email protected]>2015-10-31 14:49:41 +0000
commit4775f3c752a8ab9549c561d876cdf1d7db896996 (patch)
treee417608a176c287e5d4955510f6a3747e07cb072
parentDisable UI elements for selecting zero-fee (diff)
downloaddiscoin-4775f3c752a8ab9549c561d876cdf1d7db896996.tar.xz
discoin-4775f3c752a8ab9549c561d876cdf1d7db896996.zip
Add minimum constraint on custom fees field
-rw-r--r--src/qt/bitcoinamountfield.cpp31
-rw-r--r--src/qt/bitcoinamountfield.h3
-rw-r--r--src/qt/forms/sendcoinsdialog.ui9
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">