diff options
| author | mmbyday <mmbyday@protonmail.com> | 2018-12-13 18:49:55 -0800 |
|---|---|---|
| committer | mmbyday <mmbyday@protonmail.com> | 2019-04-02 13:18:16 -0700 |
| commit | 5dbcd714eae8bfd6e900adde6910789e5cce6613 (patch) | |
| tree | ee7a6f63106da4851495a8e57279a2ef314ed9a3 /components/PasswordDialog.qml | |
| parent | d4d8ff54e6c94f82de7eb012d7b310addeedcbb9 (diff) | |
| download | monzero-gui-5dbcd714eae8bfd6e900adde6910789e5cce6613.tar.gz monzero-gui-5dbcd714eae8bfd6e900adde6910789e5cce6613.tar.xz monzero-gui-5dbcd714eae8bfd6e900adde6910789e5cce6613.zip | |
PasswordDialog: add CAPSLOCK checking
Diffstat (limited to 'components/PasswordDialog.qml')
| -rw-r--r-- | components/PasswordDialog.qml | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/components/PasswordDialog.qml b/components/PasswordDialog.qml index a5758306..f820e4df 100644 --- a/components/PasswordDialog.qml +++ b/components/PasswordDialog.qml @@ -34,6 +34,7 @@ import QtQuick.Controls.Styles 1.4 import QtQuick.Window 2.0 import "../components" as MoneroComponents +import "../js/Utils.js" as Utils Item { id: root @@ -44,6 +45,9 @@ Item { property alias password: passwordInput.text property string walletName property string errorText + property bool shiftIsPressed: false + property bool isCapsLocksActive: false + property bool backspaceIsPressed: false // same signals as Dialog has signal accepted() @@ -51,9 +55,11 @@ Item { signal closeCallback() function open(walletName, errorText) { + passwordInput.text = "" + passwordInput.forceActiveFocus(); inactiveOverlay.visible = true // draw appwindow inactive root.walletName = walletName ? walletName : "" - root.errorText = errorText ? errorText : ""; + errorTextLabel.text = errorText ? errorText : ""; leftPanel.enabled = false middlePanel.enabled = false titleBar.enabled = false @@ -104,8 +110,8 @@ Item { } Label { - text: root.errorText - visible: root.errorText + id: errorTextLabel + visible: root.errorText || text !== "" color: MoneroComponents.Style.errorColor font.pixelSize: 16 * scaleRatio @@ -131,6 +137,17 @@ Item { selectionColor: MoneroComponents.Style.dimmedFontColor selectedTextColor: MoneroComponents.Style.defaultFontColor + onTextChanged: { + var letter = text[passwordInput.text.length - 1]; + isCapsLocksActive = Utils.isUpperLock(shiftIsPressed, letter); + if(isCapsLocksActive && !backspaceIsPressed){ + errorTextLabel.text = qsTr("CAPSLOCKS IS ON.") + translationManager.emptyString; + } + else{ + errorTextLabel.text = ""; + } + } + background: Rectangle { radius: 2 border.color: Qt.rgba(255, 255, 255, 0.35) @@ -172,12 +189,26 @@ Item { Keys.onReturnPressed: { root.close() root.accepted() - } Keys.onEscapePressed: { root.close() root.rejected() - + } + Keys.onPressed: { + if(event.key === Qt.Key_Shift){ + shiftIsPressed = true; + } + if(event.key === Qt.Key_Backspace){ + backspaceIsPressed = true; + } + } + Keys.onReleased: { + if(event.key === Qt.Key_Shift){ + shiftIsPressed = false; + } + if(event.key === Qt.Key_Backspace){ + backspaceIsPressed =false; + } } } |
