91 lines
2.1 KiB
QML
91 lines
2.1 KiB
QML
import QtQuick 2.6
|
|
import QtQuick.Layouts 1.0
|
|
import QtQuick.Controls 2.14
|
|
import QtQuick.Controls.Material 2.0
|
|
|
|
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
|
|
|
|
modal: true
|
|
parent: Overlay.overlay
|
|
Overlay.modal: Rectangle {
|
|
color: "#aa000000"
|
|
}
|
|
|
|
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
|
|
onTextChanged: {
|
|
if (activeFocus)
|
|
_otpError = ''
|
|
}
|
|
}
|
|
|
|
Label {
|
|
opacity: _otpError ? 1 : 0
|
|
text: _otpError
|
|
color: constants.colorError
|
|
Layout.alignment: Qt.AlignHCenter
|
|
}
|
|
|
|
Button {
|
|
Layout.columnSpan: 2
|
|
Layout.alignment: Qt.AlignHCenter
|
|
text: qsTr('Submit')
|
|
enabled: !_waiting
|
|
onClicked: {
|
|
_waiting = true
|
|
Daemon.currentWallet.submitOtp(otpEdit.text)
|
|
}
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
}
|