From 37159e47a29f65017d0171071fa7b21876af8e19 Mon Sep 17 00:00:00 2001 From: f321x Date: Tue, 24 Mar 2026 14:24:29 +0100 Subject: [PATCH] qml: 2fa: make it possible to copy 2fa secret The 2fa secret is not selectable or copyable, this is very inconveniant when setting up a new 2fa wallet as the user has to somehow manually write the secret e.g. on a paper to then enter it again in their 2fa app. This makes the secret string copyable by clicking on it. --- .../trustedcoin/qml/ShowConfirmOTP.qml | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/electrum/plugins/trustedcoin/qml/ShowConfirmOTP.qml b/electrum/plugins/trustedcoin/qml/ShowConfirmOTP.qml index 778b3ddb6..b99ab97b6 100644 --- a/electrum/plugins/trustedcoin/qml/ShowConfirmOTP.qml +++ b/electrum/plugins/trustedcoin/qml/ShowConfirmOTP.qml @@ -42,13 +42,25 @@ WizardComponent { render: plugin.otpSecret } - TextHighlightPane { + Item { Layout.alignment: Qt.AlignHCenter visible: plugin.otpSecret - Label { - text: plugin.otpSecret - font.family: FixedFont - font.bold: true + implicitWidth: otpSecretPane.implicitWidth + implicitHeight: otpSecretPane.implicitHeight + TextHighlightPane { + id: otpSecretPane + Label { + text: plugin.otpSecret + font.family: FixedFont + font.bold: true + } + } + MouseArea { + anchors.fill: parent + onClicked: { + AppController.textToClipboard(plugin.otpSecret) + toaster.show(otpSecretPane, qsTr('Copied!')) + } } } @@ -118,6 +130,10 @@ WizardComponent { otp_auth.forceActiveFocus() } + Toaster { + id: toaster + } + Connections { target: plugin function onOtpError(message) {