aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt/QRCodeImageProvider.cpp
diff options
context:
space:
mode:
authormoneromooo.monero <moneromooo.monero@users.noreply.github.com>2016-11-20 12:36:14 +0000
committermoneromooo.monero <moneromooo.monero@users.noreply.github.com>2016-11-20 18:53:12 +0000
commit96c7ddeea8e590726ef3c28faead8205bb45ac41 (patch)
tree601b36221a05c638d713c013045ecfb77652e9b3 /src/libwalletqt/QRCodeImageProvider.cpp
parentc83336cc4714215725cba957d8ea164a57c33987 (diff)
downloadmonzero-gui-96c7ddeea8e590726ef3c28faead8205bb45ac41.tar.gz
monzero-gui-96c7ddeea8e590726ef3c28faead8205bb45ac41.tar.xz
monzero-gui-96c7ddeea8e590726ef3c28faead8205bb45ac41.zip
Add QR code display on the receive page
This embeds MIT licenced code from Project Nayuki: https://www.nayuki.io/page/qr-code-generator-library The C++ part of the code is embedded in src/QR-Code-generator. See src/QR-Code-generator/Readme.markdown for more info.
Diffstat (limited to 'src/libwalletqt/QRCodeImageProvider.cpp')
-rw-r--r--src/libwalletqt/QRCodeImageProvider.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libwalletqt/QRCodeImageProvider.cpp b/src/libwalletqt/QRCodeImageProvider.cpp
new file mode 100644
index 00000000..217d3d7d
--- /dev/null
+++ b/src/libwalletqt/QRCodeImageProvider.cpp
@@ -0,0 +1,17 @@
+#include "QrCode.hpp"
+
+#include "QRCodeImageProvider.h"
+
+QImage QRCodeImageProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
+{
+ using namespace qrcodegen;
+
+ QrCode qrcode = QrCode::encodeText(id.toStdString().c_str(), QrCode::Ecc::MEDIUM);
+ QImage img = QImage(qrcode.size, qrcode.size, QImage::Format_Mono);
+ for (int y = 0; y < qrcode.size; ++y)
+ for (int x = 0; x < qrcode.size; ++x)
+ img.setPixel(x, y, qrcode.getModule(x, y));
+ if (size)
+ *size = QSize(qrcode.size, qrcode.size);
+ return img;
+}