From 58cae5bebd73f80bd19af44a15ab08103d47192e Mon Sep 17 00:00:00 2001
From: "moneromooo.monero" <moneromooo.monero@users.noreply.github.com>
Date: Sun, 16 Oct 2016 13:21:22 +0100
Subject: [PATCH] Receive: allow integrated addresses from custom payment ids

This needs a matching update from monero to not override
invalid payment ids.
---
 pages/Receive.qml | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/pages/Receive.qml b/pages/Receive.qml
index dcb72fd7..4b4a0a93 100644
--- a/pages/Receive.qml
+++ b/pages/Receive.qml
@@ -41,16 +41,19 @@ Rectangle {
     property alias paymentIdText : paymentIdLine.text
     property alias integratedAddressText : integratedAddressLine.text
 
-    function updatePaymentId() {
-        var payment_id = appWindow.persistentSettings.payment_id
-        if (typeof appWindow.currentWallet !== 'undefined') {
+    function updatePaymentId(payment_id) {
+        if (typeof appWindow.currentWallet === 'undefined')
+            return
+        // generate a new one if not given as argument
+        if (typeof payment_id === 'undefined') {
             payment_id = appWindow.currentWallet.generatePaymentId()
             appWindow.persistentSettings.payment_id = payment_id
-            addressLine.text = appWindow.currentWallet.address
-            integratedAddressLine.text = appWindow.currentWallet.integratedAddress(payment_id)
+            paymentIdLine.text = payment_id
         }
-
-        paymentIdLine.text = payment_id
+        addressLine.text = appWindow.currentWallet.address
+        integratedAddressLine.text = appWindow.currentWallet.integratedAddress(payment_id)
+        if (integratedAddressLine.text === "")
+          integratedAddressLine.text = qsTr("Invalid payment ID")
     }
 
     Clipboard { id: clipboard }
@@ -148,6 +151,7 @@ Rectangle {
                 fontSize: mainLayout.lineEditFontSize
                 placeholderText: qsTr("Payment ID here") + translationManager.emptyString;
                 readOnly: false
+                onTextChanged: updatePaymentId(paymentIdLine.text)
 
                 width: mainLayout.editWidth
                 Layout.fillWidth: true