aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt
diff options
context:
space:
mode:
authorxiphon <xiphon@protonmail.com>2021-02-02 16:00:46 +0000
committerxiphon <xiphon@protonmail.com>2021-03-03 00:53:51 +0000
commit92a2ae1a117eac6190f486cf48b6066fe7f205eb (patch)
tree22b96350258dcb012ec612566da8faae9c60fb92 /src/libwalletqt
parentc073867657d877940ccd826451b3e583d7934231 (diff)
downloadmonzero-gui-92a2ae1a117eac6190f486cf48b6066fe7f205eb.tar.gz
monzero-gui-92a2ae1a117eac6190f486cf48b6066fe7f205eb.tar.xz
monzero-gui-92a2ae1a117eac6190f486cf48b6066fe7f205eb.zip
TxConfirmationDialog: implement multiple recipients support, layout fixes
Diffstat (limited to 'src/libwalletqt')
-rw-r--r--src/libwalletqt/WalletManager.cpp15
-rw-r--r--src/libwalletqt/WalletManager.h5
2 files changed, 16 insertions, 4 deletions
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<QString> &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<QString> &amounts);
+ Q_INVOKABLE static quint64 maximumAllowedAmount();
// QML JS engine doesn't support unsigned integers
Q_INVOKABLE QString maximumAllowedAmountAsString() const;