aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2017-01-23 08:05:22 -0500
committerRiccardo Spagni <ric@spagni.net>2017-01-23 08:05:22 -0500
commitd4a40499ac85bc0d2c25823c1695030bff6898a8 (patch)
tree6e4e545010f271e13c6a773b08b080d336b8d468 /src/libwalletqt
parentecd6c7a0ae171f0f87a612aca4fca5fc89eac8e4 (diff)
parent1d7a1f6d53ffebf7b24b7e58860461db0a64f95d (diff)
downloadmonzero-gui-d4a40499ac85bc0d2c25823c1695030bff6898a8.tar.gz
monzero-gui-d4a40499ac85bc0d2c25823c1695030bff6898a8.tar.xz
monzero-gui-d4a40499ac85bc0d2c25823c1695030bff6898a8.zip
Merge pull request #427
1d7a1f6 save qrcode to file (MoroccanMalinois)
Diffstat (limited to 'src/libwalletqt')
-rw-r--r--src/libwalletqt/QRCodeImageProvider.cpp7
-rw-r--r--src/libwalletqt/QRCodeImageProvider.h1
-rw-r--r--src/libwalletqt/WalletManager.cpp8
-rw-r--r--src/libwalletqt/WalletManager.h1
4 files changed, 16 insertions, 1 deletions
diff --git a/src/libwalletqt/QRCodeImageProvider.cpp b/src/libwalletqt/QRCodeImageProvider.cpp
index ad07897f..6d99b35c 100644
--- a/src/libwalletqt/QRCodeImageProvider.cpp
+++ b/src/libwalletqt/QRCodeImageProvider.cpp
@@ -2,7 +2,7 @@
#include "QRCodeImageProvider.h"
-QImage QRCodeImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
+QImage QRCodeImageProvider::genQrImage(const QString &id, QSize *size)
{
using namespace qrcodegen;
@@ -15,3 +15,8 @@ QImage QRCodeImageProvider::requestImage(const QString &id, QSize *size, const Q
*size = QSize(qrcode.size, qrcode.size);
return img;
}
+
+QImage QRCodeImageProvider::requestImage(const QString &id, QSize *size, const QSize &/* requestedSize */)
+{
+ return genQrImage(id, size);
+}
diff --git a/src/libwalletqt/QRCodeImageProvider.h b/src/libwalletqt/QRCodeImageProvider.h
index 930b731a..b040bfe0 100644
--- a/src/libwalletqt/QRCodeImageProvider.h
+++ b/src/libwalletqt/QRCodeImageProvider.h
@@ -7,5 +7,6 @@ public:
QRCodeImageProvider(): QQuickImageProvider(QQuickImageProvider::Image) {}
QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize);
+ static QImage genQrImage(const QString &id, QSize *size);
};
diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp
index fa06edd3..45aff22e 100644
--- a/src/libwalletqt/WalletManager.cpp
+++ b/src/libwalletqt/WalletManager.cpp
@@ -2,6 +2,7 @@
#include "Wallet.h"
#include "wallet/wallet2_api.h"
#include "zxcvbn-c/zxcvbn.h"
+#include "QRCodeImageProvider.h"
#include <QFile>
#include <QFileInfo>
#include <QDir>
@@ -291,6 +292,13 @@ double WalletManager::getPasswordStrength(const QString &password) const
return e;
}
+bool WalletManager::saveQrCode(const QString &code, const QString &path) const
+{
+ QSize size;
+ // 240 <=> mainLayout.qrCodeSize (Receive.qml)
+ return QRCodeImageProvider::genQrImage(code, &size).scaled(size.expandedTo(QSize(240, 240)), Qt::KeepAspectRatio).save(path, "PNG", 100);
+}
+
WalletManager::WalletManager(QObject *parent) : QObject(parent)
{
m_pimpl = Monero::WalletManagerFactory::getWalletManager();
diff --git a/src/libwalletqt/WalletManager.h b/src/libwalletqt/WalletManager.h
index 5b8adf5a..20d2bec7 100644
--- a/src/libwalletqt/WalletManager.h
+++ b/src/libwalletqt/WalletManager.h
@@ -123,6 +123,7 @@ public:
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 saveQrCode(const QString &, const QString &) const;
signals: