allow multiple units in bitcoin amount widget (for example, for sending) using a combobox
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user