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 QString name(int unit);
28 static QString description(int unit);
29 // Number of satoshis / unit
30 static qint64 factor(int unit);
31 // Number of amount digits (to represent max number of coins)
32 static int amountDigits(int unit);
33 // Number of decimals left
34 static int decimals(int unit);
36 static QString format(int unit, qint64 amount, bool plussign=false);
37 // Format as string (with unit)
38 static QString formatWithUnit(int unit, qint64 amount, bool plussign=false);
39 // Parse string to coin amount
40 static bool parse(int unit, const QString &value, qint64 *val_out);
42 /// AbstractListModel implementation
45 UnitRole = Qt::UserRole
47 int rowCount(const QModelIndex &parent) const;
48 QVariant data(const QModelIndex &index, int role) const;
50 QList<BitcoinUnits::Unit> unitlist;
52 typedef BitcoinUnits::Unit BitcoinUnit;
54 #endif // BITCOINUNITS_H