Browse Source

Merge pull request #3614

b920148 [Qt] Improve single step in bitcoinamountfield (Cozz Lovan)
0.10
Wladimir J. van der Laan 11 years ago
parent
commit
7abcd1a1c9
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 16
      src/qt/bitcoinamountfield.cpp
  2. 4
      src/qt/bitcoinamountfield.h
  3. 2
      src/qt/optionsdialog.cpp

16
src/qt/bitcoinamountfield.cpp

@ -19,12 +19,12 @@ BitcoinAmountField::BitcoinAmountField(QWidget *parent) : @@ -19,12 +19,12 @@ BitcoinAmountField::BitcoinAmountField(QWidget *parent) :
amount(0),
currentUnit(-1)
{
nSingleStep = 100000; // satoshis
amount = new QDoubleSpinBox(this);
amount->setLocale(QLocale::c());
amount->setDecimals(8);
amount->installEventFilter(this);
amount->setMaximumWidth(170);
amount->setSingleStep(0.001);
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(amount);
@ -159,11 +159,7 @@ void BitcoinAmountField::unitChanged(int idx) @@ -159,11 +159,7 @@ void BitcoinAmountField::unitChanged(int idx)
// Set max length after retrieving the value, to prevent truncation
amount->setDecimals(BitcoinUnits::decimals(currentUnit));
amount->setMaximum(qPow(10, BitcoinUnits::amountDigits(currentUnit)) - qPow(10, -amount->decimals()));
if (currentUnit == BitcoinUnits::uBTC)
amount->setSingleStep(0.01);
else
amount->setSingleStep(0.001);
amount->setSingleStep((double)nSingleStep / (double)BitcoinUnits::factor(currentUnit));
if (valid)
{
@ -182,3 +178,9 @@ void BitcoinAmountField::setDisplayUnit(int newUnit) @@ -182,3 +178,9 @@ void BitcoinAmountField::setDisplayUnit(int newUnit)
{
unit->setValue(newUnit);
}
void BitcoinAmountField::setSingleStep(qint64 step)
{
nSingleStep = step;
unitChanged(unit->currentIndex());
}

4
src/qt/bitcoinamountfield.h

@ -26,6 +26,9 @@ public: @@ -26,6 +26,9 @@ public:
qint64 value(bool *valid=0) const;
void setValue(qint64 value);
/** Set single step in satoshis **/
void setSingleStep(qint64 step);
/** Make read-only **/
void setReadOnly(bool fReadOnly);
@ -56,6 +59,7 @@ private: @@ -56,6 +59,7 @@ private:
QDoubleSpinBox *amount;
QValueComboBox *unit;
int currentUnit;
qint64 nSingleStep;
void setText(const QString &text);
QString text() const;

2
src/qt/optionsdialog.cpp

@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
#include "optionsmodel.h"
#include "netbase.h"
#include "main.h"
#include <QDir>
#include <QIntValidator>
@ -93,6 +94,7 @@ OptionsDialog::OptionsDialog(QWidget *parent) : @@ -93,6 +94,7 @@ OptionsDialog::OptionsDialog(QWidget *parent) :
}
ui->unit->setModel(new BitcoinUnits(this));
ui->transactionFee->setSingleStep(CTransaction::nMinTxFee);
/* Widget-to-option mapper */
mapper = new MonitoredDataMapper(this);

Loading…
Cancel
Save