From 1e375ae9e1b9192caf8db1e675f5f47b03df3e89 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Tue, 23 Aug 2022 20:21:18 +0200 Subject: [PATCH] qml: allow separate data for clipboard/share and QR code in GenericShareDialog --- electrum/gui/qml/components/GenericShareDialog.qml | 4 +++- electrum/gui/qml/components/Send.qml | 8 ++++---- electrum/gui/qml/qetxfinalizer.py | 8 ++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/electrum/gui/qml/components/GenericShareDialog.qml b/electrum/gui/qml/components/GenericShareDialog.qml index 81bf4e9a9..966bf815e 100644 --- a/electrum/gui/qml/components/GenericShareDialog.qml +++ b/electrum/gui/qml/components/GenericShareDialog.qml @@ -9,6 +9,8 @@ ElDialog { id: dialog property string text + property string text_qr + // if text_qr is undefined text will be used title: '' parent: Overlay.overlay @@ -97,6 +99,6 @@ ElDialog { } Component.onCompleted: { - qr.qrdata = dialog.text + qr.qrdata = dialog.text_qr ? dialog.text_qr : dialog.text } } diff --git a/electrum/gui/qml/components/Send.qml b/electrum/gui/qml/components/Send.qml index ace700649..ed4a35fec 100644 --- a/electrum/gui/qml/components/Send.qml +++ b/electrum/gui/qml/components/Send.qml @@ -18,9 +18,9 @@ Pane { is_max.checked = false } - function showUnsignedTx(tx) { + function showUnsignedTx(tx, qrtx) { var dialog = app.genericShareDialog.createObject(rootItem, - { title: qsTr('Raw Transaction'), text: tx } + { title: qsTr('Raw Transaction'), text: tx, text_qr: qrtx } ) dialog.open() } @@ -187,7 +187,7 @@ Pane { userEnteredPayment.clear() rootItem.clear() if (Daemon.currentWallet.isWatchOnly) { - showUnsignedTx(dialog.finalizer.serializedTx()) + showUnsignedTx(dialog.finalizer.serializedTx(false), dialog.finalizer.serializedTx(true)) } else { dialog.finalizer.send_onchain() } @@ -300,7 +300,7 @@ Pane { var wo = Daemon.currentWallet.isWatchOnly dialog.txaccepted.connect(function() { if (wo) { - showUnsignedTx(dialog.finalizer.serializedTx()) + showUnsignedTx(dialog.finalizer.serializedTx(false), dialog.finalizer.serializedTx(true)) } else { dialog.finalizer.send_onchain() } diff --git a/electrum/gui/qml/qetxfinalizer.py b/electrum/gui/qml/qetxfinalizer.py index 0ef126c2b..61a46b7a4 100644 --- a/electrum/gui/qml/qetxfinalizer.py +++ b/electrum/gui/qml/qetxfinalizer.py @@ -312,5 +312,9 @@ class QETxFinalizer(QObject): self._wallet.sign(self._tx, broadcast=True) @pyqtSlot(result=str) - def serializedTx(self): - return str(self._tx) + @pyqtSlot(bool, result=str) + def serializedTx(self, for_qr=False): + if for_qr: + return self._tx.to_qr_data() + else: + return str(self._tx)