aboutsummaryrefslogtreecommitdiff
path: root/src/qt/bitcoinunits.h
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-07-26 13:08:34 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2011-07-26 13:08:34 +0200
commit587e52855a4c6c4f672ecec28ab9a029d4e4f850 (patch)
treeb8fb9c4bf66d6af8643a779f142df2ccceb90950 /src/qt/bitcoinunits.h
parentca1dbe10ed3c8cf253ee79e71d4f76363daae17b (diff)
downloadbitcoin-587e52855a4c6c4f672ecec28ab9a029d4e4f850.tar.xz
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.h36
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