1
0

qml: OTP dialog improvements

This commit is contained in:
Sander van Grieken
2023-02-09 12:20:50 +01:00
parent 11439fb3fd
commit 31523449b3
2 changed files with 19 additions and 14 deletions

View File

@@ -44,27 +44,30 @@ ElDialog {
inputMethodHints: Qt.ImhSensitiveData | Qt.ImhDigitsOnly
echoMode: TextInput.Password
focus: true
enabled: !_waiting
Keys.onPressed: _otpError = ''
onTextChanged: {
if (activeFocus)
_otpError = ''
if (text.length == 6) {
_waiting = true
Daemon.currentWallet.submitOtp(otpEdit.text)
}
}
}
Label {
opacity: _otpError ? 1 : 0
Layout.topMargin: constants.paddingMedium
Layout.bottomMargin: constants.paddingMedium
Layout.alignment: Qt.AlignHCenter
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)
BusyIndicator {
anchors.centerIn: parent
width: constants.iconSizeXLarge
height: constants.iconSizeXLarge
visible: _waiting
running: _waiting
}
}
}

View File

@@ -538,7 +538,9 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
@pyqtSlot(str)
def submitOtp(self, otp):
self._otp_on_submit(otp)
def submit_otp_task():
self._otp_on_submit(otp)
threading.Thread(target=submit_otp_task).start()
def broadcast(self, tx):
assert tx.is_complete()