diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/libwalletqt/WalletManager.cpp | 26 | ||||
| -rw-r--r-- | src/libwalletqt/WalletManager.h | 4 |
2 files changed, 28 insertions, 2 deletions
diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index eddc70ae..f5f0121f 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -296,13 +296,37 @@ QString WalletManager::resolveOpenAlias(const QString &address) const res = std::string(dnssec_valid ? "true" : "false") + "|" + res; return QString::fromStdString(res); } -bool WalletManager::parse_uri(const QString &uri, QString &address, QString &payment_id, uint64_t &amount, QString &tx_description, QString &recipient_name, QVector<QString> &unknown_parameters, QString &error) +bool WalletManager::parse_uri(const QString &uri, QString &address, QString &payment_id, uint64_t &amount, QString &tx_description, QString &recipient_name, QVector<QString> &unknown_parameters, QString &error) const { if (m_currentWallet) return m_currentWallet->parse_uri(uri, address, payment_id, amount, tx_description, recipient_name, unknown_parameters, error); return false; } +QVariantMap WalletManager::parse_uri_to_object(const QString &uri) const +{ + QString address; + QString payment_id; + uint64_t amount; + QString tx_description; + QString recipient_name; + QVector<QString> unknown_parameters; + QString error; + + QVariantMap result; + if (this->parse_uri(uri, address, payment_id, amount, tx_description, recipient_name, unknown_parameters, error)) { + result.insert("address", address); + result.insert("payment_id", payment_id); + result.insert("amount", this->displayAmount(amount)); + result.insert("tx_description", tx_description); + result.insert("recipient_name", recipient_name); + } else { + result.insert("error", error); + } + + return result; +} + void WalletManager::setLogLevel(int logLevel) { Monero::WalletManagerFactory::setLogLevel(logLevel); diff --git a/src/libwalletqt/WalletManager.h b/src/libwalletqt/WalletManager.h index c16fd095..5cefde41 100644 --- a/src/libwalletqt/WalletManager.h +++ b/src/libwalletqt/WalletManager.h @@ -1,6 +1,7 @@ #ifndef WALLETMANAGER_H #define WALLETMANAGER_H +#include <QVariant> #include <QObject> #include <QUrl> #include <wallet/api/wallet2_api.h> @@ -142,7 +143,8 @@ public: #endif Q_INVOKABLE QString resolveOpenAlias(const QString &address) const; - Q_INVOKABLE bool parse_uri(const QString &uri, QString &address, QString &payment_id, uint64_t &amount, QString &tx_description, QString &recipient_name, QVector<QString> &unknown_parameters, QString &error); + Q_INVOKABLE bool parse_uri(const QString &uri, QString &address, QString &payment_id, uint64_t &amount, QString &tx_description, QString &recipient_name, QVector<QString> &unknown_parameters, QString &error) const; + Q_INVOKABLE QVariantMap parse_uri_to_object(const QString &uri) const; Q_INVOKABLE bool saveQrCode(const QString &, const QString &) const; Q_INVOKABLE void checkUpdatesAsync(const QString &software, const QString &subdir) const; Q_INVOKABLE QString checkUpdates(const QString &software, const QString &subdir) const; |
