From 92a2ae1a117eac6190f486cf48b6066fe7f205eb Mon Sep 17 00:00:00 2001 From: xiphon Date: Tue, 2 Feb 2021 16:00:46 +0000 Subject: TxConfirmationDialog: implement multiple recipients support, layout fixes --- src/libwalletqt/WalletManager.cpp | 15 +++++++++++++-- src/libwalletqt/WalletManager.h | 5 +++-- 2 files changed, 16 insertions(+), 4 deletions(-) (limited to 'src/libwalletqt') diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index ecccef66..9876e1f3 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -251,7 +251,7 @@ QString WalletManager::errorString() const return tr("Unknown error"); } -quint64 WalletManager::maximumAllowedAmount() const +quint64 WalletManager::maximumAllowedAmount() { return Monero::Wallet::maximumAllowedAmount(); } @@ -266,7 +266,7 @@ QString WalletManager::displayAmount(quint64 amount) return QString::fromStdString(Monero::Wallet::displayAmount(amount)); } -quint64 WalletManager::amountFromString(const QString &amount) const +quint64 WalletManager::amountFromString(const QString &amount) { return Monero::Wallet::amountFromString(amount.toStdString()); } @@ -276,6 +276,17 @@ quint64 WalletManager::amountFromDouble(double amount) const return Monero::Wallet::amountFromDouble(amount); } +QString WalletManager::amountsSumFromStrings(const QVector &amounts) +{ + quint64 sum = 0; + for (const auto &amountString : amounts) + { + const quint64 amount = amountFromString(amountString); + sum = sum + std::min(maximumAllowedAmount() - sum, amount); + } + return QString::number(sum); +} + bool WalletManager::paymentIdValid(const QString &payment_id) const { return Monero::Wallet::paymentIdValid(payment_id.toStdString()); diff --git a/src/libwalletqt/WalletManager.h b/src/libwalletqt/WalletManager.h index a45995af..25c62faf 100644 --- a/src/libwalletqt/WalletManager.h +++ b/src/libwalletqt/WalletManager.h @@ -133,9 +133,10 @@ public: //! since we can't call static method from QML, move it to this class Q_INVOKABLE static QString displayAmount(quint64 amount); - Q_INVOKABLE quint64 amountFromString(const QString &amount) const; + Q_INVOKABLE static quint64 amountFromString(const QString &amount); Q_INVOKABLE quint64 amountFromDouble(double amount) const; - Q_INVOKABLE quint64 maximumAllowedAmount() const; + Q_INVOKABLE static QString amountsSumFromStrings(const QVector &amounts); + Q_INVOKABLE static quint64 maximumAllowedAmount(); // QML JS engine doesn't support unsigned integers Q_INVOKABLE QString maximumAllowedAmountAsString() const; -- cgit v1.2.3