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 /pages | |
| 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 'pages')
| -rw-r--r-- | pages/Receive.qml | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/pages/Receive.qml b/pages/Receive.qml index 6e658900..7ec0a430 100644 --- a/pages/Receive.qml +++ b/pages/Receive.qml @@ -56,6 +56,23 @@ Rectangle { integratedAddressLine.text = qsTr("Invalid payment ID") } + function makeQRCodeString() { + var s = "monero:" + var nfields = 0 + s += addressLine.text + var amount = amountLine.text.trim() + if (amount !== "") { + s += (nfields++ ? "&" : "?") + s += "tx_amount=" + amount + } + var pid = paymentIdLine.text.trim() + if (pid !== "") { + s += (nfields++ ? "&" : "?") + s += "tx_payment_id=" + pid + } + return s + } + Clipboard { id: clipboard } @@ -71,6 +88,7 @@ Rectangle { property int labelWidth: 120 property int editWidth: 400 property int lineEditFontSize: 12 + property int qrCodeSize: 240 RowLayout { @@ -183,6 +201,43 @@ Rectangle { } } + RowLayout { + id: amountRow + Label { + id: amountLabel + fontSize: 14 + text: qsTr("Amount") + translationManager.emptyString + width: mainLayout.labelWidth + } + + + LineEdit { + id: amountLine + fontSize: mainLayout.lineEditFontSize + placeholderText: qsTr("Amount") + translationManager.emptyString + readOnly: false + width: mainLayout.editWidth + Layout.fillWidth: true + validator: DoubleValidator { + bottom: 0.0 + top: 18446744.073709551615 + decimals: 12 + notation: DoubleValidator.StandardNotation + locale: "C" + } + } + } + + Image { + id: qrCode + anchors.margins: 50 + anchors.top: amountRow.bottom + Layout.fillWidth: true + Layout.minimumHeight: mainLayout.qrCodeSize + smooth: false + fillMode: Image.PreserveAspectFit + source: "image://qrcode/" + makeQRCodeString() + } } function onPageCompleted() { |
