You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

87 lines
2.1 KiB

import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Controls.Material
import org.electrum 1.0
import "controls"
ElDialog {
id: dialog
title: qsTr('Trustedcoin')
iconSource: '../../../icons/trustedcoin-status.png'
property string otpauth
property bool _waiting: false
property string _otpError
focus: true
ColumnLayout {
width: parent.width
Label {
text: qsTr('Enter Authenticator code')
font.pixelSize: constants.fontSizeLarge
Layout.alignment: Qt.AlignHCenter
}
TextField {
id: otpEdit
Layout.preferredWidth: fontMetrics.advanceWidth(passwordCharacter) * 6
Layout.alignment: Qt.AlignHCenter
font.pixelSize: constants.fontSizeXXLarge
maximumLength: 6
inputMethodHints: Qt.ImhSensitiveData | Qt.ImhDigitsOnly
echoMode: TextInput.Password
focus: true
enabled: !_waiting
Keys.onPressed: _otpError = ''
onTextChanged: {
if (text.length == 6) {
_waiting = true
Daemon.currentWallet.submitOtp(otpEdit.text)
}
}
}
Label {
Layout.topMargin: constants.paddingMedium
Layout.bottomMargin: constants.paddingMedium
Layout.alignment: Qt.AlignHCenter
text: _otpError
color: constants.colorError
BusyIndicator {
anchors.centerIn: parent
width: constants.iconSizeXLarge
height: constants.iconSizeXLarge
visible: _waiting
running: _waiting
}
}
}
Connections {
target: Daemon.currentWallet
function onOtpSuccess() {
_waiting = false
otpauth = otpEdit.text
dialog.accept()
}
function onOtpFailed(code, message) {
_waiting = false
_otpError = message
otpEdit.text = ''
}
}
FontMetrics {
id: fontMetrics
font: otpEdit.font
}
}