mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-16 13:01:19 +02:00
Merge 0865a8881d into merged_master (Bitcoin PR bitcoin-core/gui#3)
This commit is contained in:
commit
c3b6bbba4a
10 changed files with 39 additions and 39 deletions
|
|
@ -67,7 +67,7 @@ public:
|
||||||
if(valid)
|
if(valid)
|
||||||
{
|
{
|
||||||
val = qBound(m_min_amount, val, m_max_amount);
|
val = qBound(m_min_amount, val, m_max_amount);
|
||||||
input = GUIUtil::formatAssetAmount(current_asset, val, currentUnit, BitcoinUnits::separatorAlways, false);
|
input = GUIUtil::formatAssetAmount(current_asset, val, currentUnit, BitcoinUnits::SeparatorStyle::ALWAYS, false);
|
||||||
lineEdit()->setText(input);
|
lineEdit()->setText(input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -86,7 +86,7 @@ public:
|
||||||
void setValue(const CAsset& asset, CAmount value)
|
void setValue(const CAsset& asset, CAmount value)
|
||||||
{
|
{
|
||||||
current_asset = asset;
|
current_asset = asset;
|
||||||
lineEdit()->setText(GUIUtil::formatAssetAmount(asset, value, currentUnit, BitcoinUnits::separatorAlways, false));
|
lineEdit()->setText(GUIUtil::formatAssetAmount(asset, value, currentUnit, BitcoinUnits::SeparatorStyle::ALWAYS, false));
|
||||||
Q_EMIT valueChanged();
|
Q_EMIT valueChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,7 +155,7 @@ public:
|
||||||
|
|
||||||
current_asset = Params().GetConsensus().pegged_asset;
|
current_asset = Params().GetConsensus().pegged_asset;
|
||||||
currentUnit = unit;
|
currentUnit = unit;
|
||||||
lineEdit()->setPlaceholderText(BitcoinUnits::format(currentUnit, m_min_amount, false, BitcoinUnits::separatorAlways));
|
lineEdit()->setPlaceholderText(BitcoinUnits::format(currentUnit, m_min_amount, false, BitcoinUnits::SeparatorStyle::ALWAYS));
|
||||||
|
|
||||||
if (!was_pegged) {
|
if (!was_pegged) {
|
||||||
// Leave the text as-is, if it's valid
|
// Leave the text as-is, if it's valid
|
||||||
|
|
@ -184,7 +184,7 @@ public:
|
||||||
|
|
||||||
const QFontMetrics fm(fontMetrics());
|
const QFontMetrics fm(fontMetrics());
|
||||||
int h = lineEdit()->minimumSizeHint().height();
|
int h = lineEdit()->minimumSizeHint().height();
|
||||||
int w = GUIUtil::TextWidth(fm, BitcoinUnits::format(BitcoinUnits::BTC, BitcoinUnits::maxMoney(), false, BitcoinUnits::separatorAlways));
|
int w = GUIUtil::TextWidth(fm, BitcoinUnits::format(BitcoinUnits::BTC, BitcoinUnits::maxMoney(), false, BitcoinUnits::SeparatorStyle::ALWAYS));
|
||||||
w += 2; // cursor blinking space
|
w += 2; // cursor blinking space
|
||||||
|
|
||||||
QStyleOptionSpinBox opt;
|
QStyleOptionSpinBox opt;
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ QString BitcoinUnits::format(int unit, const CAmount& nIn, bool fPlus, Separator
|
||||||
// confused with the decimal marker.
|
// confused with the decimal marker.
|
||||||
QChar thin_sp(THIN_SP_CP);
|
QChar thin_sp(THIN_SP_CP);
|
||||||
int q_size = quotient_str.size();
|
int q_size = quotient_str.size();
|
||||||
if (separators == separatorAlways || (separators == separatorStandard && q_size > 4))
|
if (separators == SeparatorStyle::ALWAYS || (separators == SeparatorStyle::STANDARD && q_size > 4))
|
||||||
for (int i = 3; i < q_size; i += 3)
|
for (int i = 3; i < q_size; i += 3)
|
||||||
quotient_str.insert(q_size - i, thin_sp);
|
quotient_str.insert(q_size - i, thin_sp);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,11 +46,11 @@ public:
|
||||||
SAT
|
SAT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SeparatorStyle
|
enum class SeparatorStyle
|
||||||
{
|
{
|
||||||
separatorNever,
|
NEVER,
|
||||||
separatorStandard,
|
STANDARD,
|
||||||
separatorAlways
|
ALWAYS
|
||||||
};
|
};
|
||||||
|
|
||||||
//! @name Static API
|
//! @name Static API
|
||||||
|
|
@ -72,11 +72,11 @@ public:
|
||||||
//! Number of decimals left
|
//! Number of decimals left
|
||||||
static int decimals(int unit);
|
static int decimals(int unit);
|
||||||
//! Format as string
|
//! Format as string
|
||||||
static QString format(int unit, const CAmount& amount, bool plussign = false, SeparatorStyle separators = separatorStandard, bool justify = false);
|
static QString format(int unit, const CAmount& amount, bool plussign = false, SeparatorStyle separators = SeparatorStyle::STANDARD, bool justify = false);
|
||||||
//! Format as string (with unit)
|
//! Format as string (with unit)
|
||||||
static QString formatWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard);
|
static QString formatWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD);
|
||||||
//! Format as HTML string (with unit)
|
//! Format as HTML string (with unit)
|
||||||
static QString formatHtmlWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=separatorStandard);
|
static QString formatHtmlWithUnit(int unit, const CAmount& amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD);
|
||||||
//! Format as string (with unit) of fixed length to preserve privacy, if it is set.
|
//! Format as string (with unit) of fixed length to preserve privacy, if it is set.
|
||||||
static QString formatWithPrivacy(int unit, const CAmount& amount, SeparatorStyle separators, bool privacy);
|
static QString formatWithPrivacy(int unit, const CAmount& amount, SeparatorStyle separators, bool privacy);
|
||||||
//! Parse string to coin amount
|
//! Parse string to coin amount
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ QString formatBitcoinURI(const SendCoinsRecipient &info)
|
||||||
|
|
||||||
if (info.amount)
|
if (info.amount)
|
||||||
{
|
{
|
||||||
ret += QString("?amount=%1").arg(BitcoinUnits::format(BitcoinUnits::BTC, info.amount, false, BitcoinUnits::separatorNever));
|
ret += QString("?amount=%1").arg(BitcoinUnits::format(BitcoinUnits::BTC, info.amount, false, BitcoinUnits::SeparatorStyle::NEVER));
|
||||||
paramCount++;
|
paramCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -179,25 +179,25 @@ void OverviewPage::setBalance(const interfaces::WalletBalances& balances)
|
||||||
|
|
||||||
if (walletModel->wallet().isLegacy()) {
|
if (walletModel->wallet().isLegacy()) {
|
||||||
if (walletModel->wallet().privateKeysDisabled()) {
|
if (walletModel->wallet().privateKeysDisabled()) {
|
||||||
ui->labelBalance->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelBalance->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelUnconfirmed->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelUnconfirmed->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelTotal->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelTotal->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
} else {
|
} else {
|
||||||
ui->labelBalance->setText(GUIUtil::formatMultiAssetAmount(balances.balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelBalance->setText(GUIUtil::formatMultiAssetAmount(balances.balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelUnconfirmed->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelUnconfirmed->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelTotal->setText(GUIUtil::formatMultiAssetAmount(balances.balance + balances.unconfirmed_balance + balances.immature_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelTotal->setText(GUIUtil::formatMultiAssetAmount(balances.balance + balances.unconfirmed_balance + balances.immature_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelWatchAvailable->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelWatchAvailable->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelWatchPending->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelWatchPending->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelWatchImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelWatchImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelWatchTotal->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelWatchTotal->setText(GUIUtil::formatMultiAssetAmount(balances.watch_only_balance + balances.unconfirmed_watch_only_balance + balances.immature_watch_only_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ui->labelBalance->setText(GUIUtil::formatMultiAssetAmount(balances.balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelBalance->setText(GUIUtil::formatMultiAssetAmount(balances.balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelUnconfirmed->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelUnconfirmed->setText(GUIUtil::formatMultiAssetAmount(balances.unconfirmed_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelImmature->setText(GUIUtil::formatMultiAssetAmount(balances.immature_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
ui->labelTotal->setText(GUIUtil::formatMultiAssetAmount(balances.balance + balances.unconfirmed_balance + balances.immature_balance, unit, BitcoinUnits::separatorAlways, "\n"));
|
ui->labelTotal->setText(GUIUtil::formatMultiAssetAmount(balances.balance + balances.unconfirmed_balance + balances.immature_balance, unit, BitcoinUnits::SeparatorStyle::ALWAYS, "\n"));
|
||||||
}
|
}
|
||||||
// only show immature (newly mined) balance if it's non-zero, so as not to complicate things
|
// only show immature (newly mined) balance if it's non-zero, so as not to complicate things
|
||||||
// for the non-mining users
|
// for the non-mining users
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ QVariant RecentRequestsTableModel::data(const QModelIndex &index, int role) cons
|
||||||
if (rec->recipient.amount == 0 && role == Qt::DisplayRole)
|
if (rec->recipient.amount == 0 && role == Qt::DisplayRole)
|
||||||
return tr("(no amount requested)");
|
return tr("(no amount requested)");
|
||||||
else if (role == Qt::EditRole)
|
else if (role == Qt::EditRole)
|
||||||
return BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), rec->recipient.amount, false, BitcoinUnits::separatorNever);
|
return BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), rec->recipient.amount, false, BitcoinUnits::SeparatorStyle::NEVER);
|
||||||
else
|
else
|
||||||
return BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), rec->recipient.amount);
|
return BitcoinUnits::format(walletModel->getOptionsModel()->getDisplayUnit(), rec->recipient.amount);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -280,7 +280,7 @@ bool SendCoinsDialog::PrepareSendText(QString& question_string, QString& informa
|
||||||
for (const SendAssetsRecipient &rcp : m_current_transaction->getRecipients())
|
for (const SendAssetsRecipient &rcp : m_current_transaction->getRecipients())
|
||||||
{
|
{
|
||||||
// generate amount string with wallet name in case of multiwallet
|
// generate amount string with wallet name in case of multiwallet
|
||||||
QString amount = GUIUtil::formatAssetAmount(rcp.asset, rcp.asset_amount, bitcoin_unit, BitcoinUnits::separatorStandard, true);
|
QString amount = GUIUtil::formatAssetAmount(rcp.asset, rcp.asset_amount, bitcoin_unit, BitcoinUnits::SeparatorStyle::STANDARD, true);
|
||||||
if (model->isMultiwallet()) {
|
if (model->isMultiwallet()) {
|
||||||
amount.append(tr(" from wallet '%1'").arg(GUIUtil::HtmlEscape(model->getWalletName())));
|
amount.append(tr(" from wallet '%1'").arg(GUIUtil::HtmlEscape(model->getWalletName())));
|
||||||
}
|
}
|
||||||
|
|
@ -359,7 +359,7 @@ bool SendCoinsDialog::PrepareSendText(QString& question_string, QString& informa
|
||||||
.arg(alternativeUnits.join(" " + tr("or") + " ")));
|
.arg(alternativeUnits.join(" " + tr("or") + " ")));
|
||||||
totalAmount.erase(Params().GetConsensus().pegged_asset);
|
totalAmount.erase(Params().GetConsensus().pegged_asset);
|
||||||
if (!!totalAmount) {
|
if (!!totalAmount) {
|
||||||
question_string.append(" " + tr("and") + "<br />" + GUIUtil::formatMultiAssetAmount(totalAmount, -1 /*bitcoin unit, hide*/, BitcoinUnits::separatorStandard, ";<br />"));
|
question_string.append(" " + tr("and") + "<br />" + GUIUtil::formatMultiAssetAmount(totalAmount, -1 /*bitcoin unit, hide*/, BitcoinUnits::SeparatorStyle::STANDARD, ";<br />"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (formatted.size() > 1) {
|
if (formatted.size() > 1) {
|
||||||
|
|
@ -422,7 +422,7 @@ void SendCoinsDialog::on_sendButton_clicked()
|
||||||
fileNameSuggestion.append(" - ");
|
fileNameSuggestion.append(" - ");
|
||||||
}
|
}
|
||||||
QString labelOrAddress = rcp.label.isEmpty() ? rcp.address : rcp.label;
|
QString labelOrAddress = rcp.label.isEmpty() ? rcp.address : rcp.label;
|
||||||
QString amount = GUIUtil::formatAssetAmount(rcp.asset, rcp.asset_amount, bitcoin_unit, BitcoinUnits::separatorStandard, true);
|
QString amount = GUIUtil::formatAssetAmount(rcp.asset, rcp.asset_amount, bitcoin_unit, BitcoinUnits::BitcoinUnits::SeparatorStyle::STANDARD, true);
|
||||||
fileNameSuggestion.append(labelOrAddress + "-" + amount);
|
fileNameSuggestion.append(labelOrAddress + "-" + amount);
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -179,7 +179,7 @@ void TestGUI(interfaces::Node& node)
|
||||||
QString balanceText = balanceLabel->text();
|
QString balanceText = balanceLabel->text();
|
||||||
int unit = walletModel.getOptionsModel()->getDisplayUnit();
|
int unit = walletModel.getOptionsModel()->getDisplayUnit();
|
||||||
CAmount balance = valueFor(walletModel.wallet().getBalance(), ::policyAsset);
|
CAmount balance = valueFor(walletModel.wallet().getBalance(), ::policyAsset);
|
||||||
QString balanceComparison = BitcoinUnits::formatWithUnit(unit, balance, false, BitcoinUnits::separatorAlways);
|
QString balanceComparison = BitcoinUnits::formatWithUnit(unit, balance, false, BitcoinUnits::SeparatorStyle::ALWAYS);
|
||||||
QCOMPARE(balanceText, balanceComparison);
|
QCOMPARE(balanceText, balanceComparison);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -205,7 +205,7 @@ void TestGUI(interfaces::Node& node)
|
||||||
QString balanceText = balanceLabel->text().trimmed();
|
QString balanceText = balanceLabel->text().trimmed();
|
||||||
int unit = walletModel.getOptionsModel()->getDisplayUnit();
|
int unit = walletModel.getOptionsModel()->getDisplayUnit();
|
||||||
CAmount balance = valueFor(walletModel.wallet().getBalance(), ::policyAsset);
|
CAmount balance = valueFor(walletModel.wallet().getBalance(), ::policyAsset);
|
||||||
QString balanceComparison = BitcoinUnits::formatWithUnit(unit, balance, false, BitcoinUnits::separatorAlways);
|
QString balanceComparison = BitcoinUnits::formatWithUnit(unit, balance, false, BitcoinUnits::SeparatorStyle::ALWAYS);
|
||||||
QCOMPARE(balanceText, balanceComparison);
|
QCOMPARE(balanceText, balanceComparison);
|
||||||
|
|
||||||
// Check Request Payment button
|
// Check Request Payment button
|
||||||
|
|
|
||||||
|
|
@ -529,7 +529,7 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
|
||||||
case ToAddress:
|
case ToAddress:
|
||||||
return formatTxToAddress(rec, false);
|
return formatTxToAddress(rec, false);
|
||||||
case Amount:
|
case Amount:
|
||||||
return formatTxAmount(rec, true, BitcoinUnits::separatorAlways);
|
return formatTxAmount(rec, true, BitcoinUnits::SeparatorStyle::ALWAYS);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Qt::EditRole:
|
case Qt::EditRole:
|
||||||
|
|
@ -619,14 +619,14 @@ QVariant TransactionTableModel::data(const QModelIndex &index, int role) const
|
||||||
details.append(QString::fromStdString(rec->address));
|
details.append(QString::fromStdString(rec->address));
|
||||||
details.append(" ");
|
details.append(" ");
|
||||||
}
|
}
|
||||||
details.append(formatTxAmount(rec, false, BitcoinUnits::separatorNever));
|
details.append(formatTxAmount(rec, false, BitcoinUnits::SeparatorStyle::NEVER));
|
||||||
return details;
|
return details;
|
||||||
}
|
}
|
||||||
case ConfirmedRole:
|
case ConfirmedRole:
|
||||||
return rec->status.status == TransactionStatus::Status::Confirming || rec->status.status == TransactionStatus::Status::Confirmed;
|
return rec->status.status == TransactionStatus::Status::Confirming || rec->status.status == TransactionStatus::Status::Confirmed;
|
||||||
case FormattedAmountRole:
|
case FormattedAmountRole:
|
||||||
// Used for copy/export, so don't include separators
|
// Used for copy/export, so don't include separators
|
||||||
return formatTxAmount(rec, false, BitcoinUnits::separatorNever);
|
return formatTxAmount(rec, false, BitcoinUnits::SeparatorStyle::NEVER);
|
||||||
case StatusRole:
|
case StatusRole:
|
||||||
return rec->status.status;
|
return rec->status.status;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ private:
|
||||||
QString formatTxDate(const TransactionRecord *wtx) const;
|
QString formatTxDate(const TransactionRecord *wtx) const;
|
||||||
QString formatTxType(const TransactionRecord *wtx) const;
|
QString formatTxType(const TransactionRecord *wtx) const;
|
||||||
QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const;
|
QString formatTxToAddress(const TransactionRecord *wtx, bool tooltip) const;
|
||||||
QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true, BitcoinUnits::SeparatorStyle separators=BitcoinUnits::separatorStandard) const;
|
QString formatTxAmount(const TransactionRecord *wtx, bool showUnconfirmed=true, BitcoinUnits::SeparatorStyle separators=BitcoinUnits::SeparatorStyle::STANDARD) const;
|
||||||
QString formatTooltip(const TransactionRecord *rec) const;
|
QString formatTooltip(const TransactionRecord *rec) const;
|
||||||
QVariant txStatusDecoration(const TransactionRecord *wtx) const;
|
QVariant txStatusDecoration(const TransactionRecord *wtx) const;
|
||||||
QVariant txWatchonlyDecoration(const TransactionRecord *wtx) const;
|
QVariant txWatchonlyDecoration(const TransactionRecord *wtx) const;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue