diff options
| author | moneromooo.monero <moneromooo.monero@users.noreply.github.com> | 2016-11-20 12:36:14 +0000 |
|---|---|---|
| committer | moneromooo.monero <moneromooo.monero@users.noreply.github.com> | 2016-11-20 18:53:12 +0000 |
| commit | 96c7ddeea8e590726ef3c28faead8205bb45ac41 (patch) | |
| tree | 601b36221a05c638d713c013045ecfb77652e9b3 /src/libwalletqt | |
| parent | c83336cc4714215725cba957d8ea164a57c33987 (diff) | |
| download | monzero-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')
| -rw-r--r-- | src/libwalletqt/QRCodeImageProvider.cpp | 17 | ||||
| -rw-r--r-- | src/libwalletqt/QRCodeImageProvider.h | 11 |
2 files changed, 28 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; +} diff --git a/src/libwalletqt/QRCodeImageProvider.h b/src/libwalletqt/QRCodeImageProvider.h new file mode 100644 index 00000000..930b731a --- /dev/null +++ b/src/libwalletqt/QRCodeImageProvider.h @@ -0,0 +1,11 @@ +#include <QImage> +#include <QQuickImageProvider> + +class QRCodeImageProvider: public QQuickImageProvider +{ +public: + QRCodeImageProvider(): QQuickImageProvider(QQuickImageProvider::Image) {} + + QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize); +}; + |
