diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2011-07-26 13:08:34 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2011-07-26 13:08:34 +0200 |
commit | 587e52855a4c6c4f672ecec28ab9a029d4e4f850 (patch) | |
tree | b8fb9c4bf66d6af8643a779f142df2ccceb90950 /src/qt/bitcoinunits.h | |
parent | ca1dbe10ed3c8cf253ee79e71d4f76363daae17b (diff) |
allow multiple units in bitcoin amount widget (for example, for sending) using a combobox
Diffstat (limited to 'src/qt/bitcoinunits.h')
-rw-r--r-- | src/qt/bitcoinunits.h | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/src/qt/bitcoinunits.h b/src/qt/bitcoinunits.h index fa85755ad4..18b623517c 100644 --- a/src/qt/bitcoinunits.h +++ b/src/qt/bitcoinunits.h @@ -2,33 +2,53 @@ #define BITCOINUNITS_H #include <QString> +#include <QAbstractListModel> // Bitcoin unit definitions -class BitcoinUnits +class BitcoinUnits: public QAbstractListModel { public: + explicit BitcoinUnits(QObject *parent); + enum Unit { + // Source: https://en.bitcoin.it/wiki/Units + // Please add only sensible ones BTC, mBTC, uBTC }; + /// Static API + // Get list of units, for dropdown box + static QList<Unit> availableUnits(); // Short name - static QString name(Unit unit); + static QString name(int unit); // Longer description - static QString description(Unit unit); + static QString description(int unit); // Number of satoshis / unit - static qint64 factor(Unit unit); + static qint64 factor(int unit); + // Number of amount digits (to represent max number of coins) + static int amountDigits(int unit); // Number of decimals left - static int decimals(Unit unit); + static int decimals(int unit); // Format as string - static QString format(Unit unit, qint64 amount, bool plussign=false); + static QString format(int unit, qint64 amount, bool plussign=false); // Format as string (with unit) - static QString formatWithUnit(Unit unit, qint64 amount, bool plussign=false); + static QString formatWithUnit(int unit, qint64 amount, bool plussign=false); // Parse string to coin amount - static bool parse(Unit unit, const QString &value, qint64 *val_out); + static bool parse(int unit, const QString &value, qint64 *val_out); + /// AbstractListModel implementation + enum { + // Unit identifier + UnitRole = Qt::UserRole + } RoleIndex; + int rowCount(const QModelIndex &parent) const; + QVariant data(const QModelIndex &index, int role) const; +private: + QList<BitcoinUnits::Unit> unitlist; }; +typedef BitcoinUnits::Unit BitcoinUnit; #endif // BITCOINUNITS_H |