12 QAbstractListModel(parent),
13 unitlist(availableUnits())
45 case BTC:
return QString(
"BTC");
46 case mBTC:
return QString(
"mBTC");
47 case uBTC:
return QString::fromUtf8(
"µBTC (bits)");
48 case SAT:
return QString(
"Satoshi (sat)");
49 default:
return QString(
"???");
57 case uBTC:
return QString::fromUtf8(
"bits");
58 case SAT:
return QString(
"sat");
67 case BTC:
return QString(
"Bitcoins");
71 default:
return QString(
"???");
79 case BTC:
return 100000000;
80 case mBTC:
return 100000;
81 case uBTC:
return 100;
83 default:
return 100000000;
105 qint64 n = (qint64)nIn;
106 qint64 coin =
factor(unit);
108 qint64 n_abs = (n > 0 ? n : -n);
109 qint64 quotient = n_abs / coin;
110 QString quotient_str = QString::number(quotient);
111 if (justify) quotient_str = quotient_str.rightJustified(16 - num_decimals,
' ');
116 int q_size = quotient_str.size();
118 for (
int i = 3; i < q_size; i += 3)
119 quotient_str.insert(q_size - i, thin_sp);
122 quotient_str.insert(0,
'-');
123 else if (fPlus && n > 0)
124 quotient_str.insert(0,
'+');
126 if (num_decimals > 0) {
127 qint64 remainder = n_abs % coin;
128 QString remainder_str = QString::number(remainder).rightJustified(num_decimals,
'0');
129 return quotient_str + QString(
".") + remainder_str;
146 return format(unit, amount, plussign, separators) + QString(
" ") +
shortName(unit);
153 return QString(
"<span style='white-space: nowrap;'>%1</span>").arg(str);
161 value =
format(unit, 0,
false, separators,
true).replace(
'0',
'#');
163 value =
format(unit, amount,
false, separators,
true);
165 return value + QString(
" ") +
shortName(unit);
170 if(!
valid(unit) || value.isEmpty())
181 QString whole = parts[0];
193 QString str = whole +
decimals.leftJustified(num_decimals,
'0');
199 CAmount retvalue(str.toLongLong(&ok));
209 QString amountTitle = QObject::tr(
"Amount");
225 int row = index.row();
226 if(row >= 0 && row <
unitlist.size())
232 case Qt::DisplayRole:
234 case Qt::ToolTipRole:
237 return QVariant(
static_cast<int>(unit));
int64_t CAmount
Amount in satoshis (Can be negative)
static const CAmount MAX_MONEY
No amount larger than this (in satoshi) is valid.
@ UnitRole
Unit identifier.
int rowCount(const QModelIndex &parent) const override
QList< BitcoinUnits::Unit > unitlist
static bool parse(int unit, const QString &value, CAmount *val_out)
Parse string to coin amount.
static CAmount maxMoney()
Return maximum number of base units (Satoshis)
static int decimals(int unit)
Number of decimals left.
QVariant data(const QModelIndex &index, int role) const override
static QString formatHtmlWithUnit(int unit, const CAmount &amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD)
Format as HTML string (with unit)
static QString formatWithPrivacy(int unit, const CAmount &amount, SeparatorStyle separators, bool privacy)
Format as string (with unit) of fixed length to preserve privacy, if it is set.
static bool valid(int unit)
Is unit ID valid?
static QString description(int unit)
Longer description.
static QString removeSpaces(QString text)
static QString longName(int unit)
Long name.
static QString formatWithUnit(int unit, const CAmount &amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD)
Format as string (with unit)
static QList< Unit > availableUnits()
Get list of units, for drop-down box.
static QString getAmountColumnTitle(int unit)
Gets title for amount column including current display unit if optionsModel reference available */.
BitcoinUnits(QObject *parent)
static qint64 factor(int unit)
Number of Satoshis (1e-8) per unit.
static QString format(int unit, const CAmount &amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD, bool justify=false)
Format as string.
static QString shortName(int unit)
Short name.