45 lines
1.2 KiB
QML
45 lines
1.2 KiB
QML
import QtQuick 2.6
|
|
import QtQuick.Controls 2.1
|
|
import QtQuick.Controls.Material 2.0
|
|
|
|
Rectangle {
|
|
property string password
|
|
property int strength: 0
|
|
property color strengthColor
|
|
property string strengthText
|
|
|
|
onPasswordChanged: checkPasswordStrength(password)
|
|
|
|
function checkPasswordStrength() {
|
|
var _strength = Daemon.passwordStrength(password)
|
|
var map = {
|
|
0: [constants.colorError, qsTr('Weak')],
|
|
1: [constants.colorAcceptable, qsTr('Medium')],
|
|
2: [constants.colorDone, qsTr('Strong')],
|
|
3: [constants.colorDone, qsTr('Very Strong')]
|
|
}
|
|
strength = password.length ? _strength + 1 : 0
|
|
strengthText = password.length ? map[_strength][1] : ''
|
|
strengthColor = map[_strength][0]
|
|
}
|
|
|
|
height: strengthLabel.height
|
|
color: 'transparent'
|
|
border.color: Material.foreground
|
|
|
|
Rectangle {
|
|
id: strengthBar
|
|
x: 1
|
|
y: 1
|
|
width: (parent.width - 2) * strength / 4
|
|
height: parent.height - 2
|
|
color: strengthColor
|
|
Label {
|
|
id: strengthLabel
|
|
anchors.centerIn: parent
|
|
text: strengthText
|
|
color: strength <= 2 ? Material.foreground : '#004000'
|
|
}
|
|
}
|
|
}
|