on 62822cb help sign in
unity8/qml/Wizard/Pages/passcode-set.qml
82 lines 2.5 kB history raw
1/*
2 * Copyright (C) 2014 Canonical, Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
17import QtQuick 2.3
18import Ubuntu.Components 1.2
19import Ubuntu.SystemSettings.SecurityPrivacy 1.0
20import ".." as LocalComponents
21import "../../Components" as UnityComponents
23/**
24 * See the main passwd-type page for an explanation of why we don't actually
25 * directly set the password here.
26 */
28LocalComponents.Page {
29 id: passcodeSetPage
30 objectName: "passcodeSetPage"
31 customTitle: true
32 backButtonText: i18n.tr("Cancel")
34 // If we are entering this page, clear any saved password and get focus
35 onEnabledChanged: if (enabled) lockscreen.clear(false)
37 function confirm() {
38 root.password = lockscreen.passphrase;
39 confirmTimer.start()
40 }
42 Timer {
43 id: confirmTimer
44 interval: UbuntuAnimation.SnapDuration
45 onTriggered: pageStack.load(Qt.resolvedUrl("passcode-confirm.qml"));
46 }
48 UnityComponents.Lockscreen {
49 id: lockscreen
50 anchors {
51 fill: parent
52 topMargin: customMargin
53 leftMargin: leftMargin
54 rightMargin: rightMargin
55 bottomMargin: buttonMargin
56 }
58 infoText: i18n.tr("Choose passcode")
59 foregroundColor: textColor
61 // Note that the number four comes from PAM settings,
62 // which we don't have a good way to interrogate. We
63 // only do this matching instead of PAM because we want
64 // to set the password via PAM in a different place
65 // than this page. See comments at top of passwd-type file.
66 errorText: i18n.tr("Passcode must be 4 characters long")
68 showEmergencyCallButton: false
69 showCancelButton: false
70 alphaNumeric: false
71 minPinLength: 4
72 maxPinLength: 4
74 onEntered: {
75 if (passphrase.length >= 4) {
76 passcodeSetPage.confirm();
77 } else {
78 lockscreen.clear(true)
79 }
80 }
81 }