Explorar el Código

[Qt] Improve single step in bitcoinamountfield

tags/v0.15.1
Cozz Lovan hace 7 años
padre
commit
b920148258
Se han modificado 3 ficheros con 15 adiciones y 7 borrados
  1. 9
    7
      src/qt/bitcoinamountfield.cpp
  2. 4
    0
      src/qt/bitcoinamountfield.h
  3. 2
    0
      src/qt/optionsdialog.cpp

+ 9
- 7
src/qt/bitcoinamountfield.cpp Ver fichero

@@ -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)
// 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)
{
unit->setValue(newUnit);
}

void BitcoinAmountField::setSingleStep(qint64 step)
{
nSingleStep = step;
unitChanged(unit->currentIndex());
}

+ 4
- 0
src/qt/bitcoinamountfield.h Ver fichero

@@ -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:
QDoubleSpinBox *amount;
QValueComboBox *unit;
int currentUnit;
qint64 nSingleStep;

void setText(const QString &text);
QString text() const;

+ 2
- 0
src/qt/optionsdialog.cpp Ver fichero

@@ -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) :
}

ui->unit->setModel(new BitcoinUnits(this));
ui->transactionFee->setSingleStep(CTransaction::nMinTxFee);

/* Widget-to-option mapper */
mapper = new MonitoredDataMapper(this);

Cargando…
Cancelar
Guardar