5 #include <QAbstractListModel>
7 // Bitcoin unit definitions
8 class BitcoinUnits: public QAbstractListModel
11 explicit BitcoinUnits(QObject *parent);
15 // Source: https://en.bitcoin.it/wiki/Units
16 // Please add only sensible ones
23 // Get list of units, for dropdown box
24 static QList<Unit> availableUnits();
26 static bool valid(int unit);
28 static QString name(int unit);
30 static QString description(int unit);
31 // Number of satoshis / unit
32 static qint64 factor(int unit);
33 // Number of amount digits (to represent max number of coins)
34 static int amountDigits(int unit);
35 // Number of decimals left
36 static int decimals(int unit);
38 static QString format(int unit, qint64 amount, bool plussign=false);
39 // Format as string (with unit)
40 static QString formatWithUnit(int unit, qint64 amount, bool plussign=false);
41 // Parse string to coin amount
42 static bool parse(int unit, const QString &value, qint64 *val_out);
44 /// AbstractListModel implementation
47 UnitRole = Qt::UserRole
49 int rowCount(const QModelIndex &parent) const;
50 QVariant data(const QModelIndex &index, int role) const;
52 QList<BitcoinUnits::Unit> unitlist;
54 typedef BitcoinUnits::Unit BitcoinUnit;
56 #endif // BITCOINUNITS_H