2 * Copyright (C) 2013 Canonical, Ltd.
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.
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.
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/>.
18import Ubuntu.Components 1.0
19import Ubuntu.Components.Popups 1.0
24 // Determine if a numeric or alphanumeric pad is used.
25 property bool alphaNumeric: false
28 property string placeholderText: ""
29 // Placeholder text while shaking (e.g. Incorrect passprase)
30 property string wrongPlaceholderText: ""
31 // Retries text (e.g. 3 retries left)
32 property string retryText: ""
34 // Informational text. (e.g. some text to tell which domain this is pin is entered for.
35 property string infoText: ""
37 // In case the Lockscreen can show a greeter message, this is the username
38 property string username: ""
40 // Set those to a value greater 0 to restrict the pin length.
41 // If both are unset, the Lockscreen will show a confirm button and allow typing any length of pin before
42 // confirming. If minPinLength is set to a value > 0, the confirm button will only become active when the
43 // entered pin is at least that long. If maxPinLength is set, the lockscreen won't allow entering any
44 // more numbers than that. If both are set to the same value, the lockscreen will enter auto confirming
45 // behavior, hiding the confirmation button and triggering that automatically when the entered pin reached
46 // that length. This is ignored by the alphaNumeric lockscreen as that one is always confirmed by pressing
48 property int minPinLength: -1
49 property int maxPinLength: -1
51 signal entered(string passphrase)
53 signal emergencyCall()
54 signal infoPopupConfirmed()
57 if (required && pinPadLoader.item) {
58 pinPadLoader.item.clear(false);
63 // This causes the loader below to destry and recreate the source
64 pinPadLoader.resetting = true;
65 pinPadLoader.resetting = false;
68 function clear(showAnimation) {
69 pinPadLoader.item.clear(showAnimation);
72 function showInfoPopup(title, text) {
73 PopupUtils.open(infoPopupComponent, root, {title: title, text: text})
85 bottom: pinPadLoader.top
86 bottomMargin: units.gu(2)
89 objectName: "retryCountLabel"
95 horizontalAlignment: Text.AlignHCenter
98 visible: root.retryText.length > 0
102 objectName: "infoTextLabel"
108 horizontalAlignment: Text.AlignHCenter
111 visible: root.infoText.length > 0
119 objectName: "pinPadLoader"
123 verticalCenter: parent.verticalCenter
124 verticalCenterOffset: root.alphaNumeric ? -units.gu(10) : -units.gu(4)
126 property bool resetting: false
128 source: (!resetting && root.required) ? (root.alphaNumeric ? "PassphraseLockscreen.qml" : "PinLockscreen.qml") : ""
131 target: pinPadLoader.item
134 root.entered(passphrase);
143 target: pinPadLoader.item
144 property: "minPinLength"
145 value: root.minPinLength
148 target: pinPadLoader.item
149 property: "maxPinLength"
150 value: root.maxPinLength
153 target: pinPadLoader.item
154 property: "placeholderText"
155 value: root.placeholderText
158 target: pinPadLoader.item
159 property: "wrongPlaceholderText"
160 value: root.wrongPlaceholderText
163 target: pinPadLoader.item
172 bottom: parent.bottom
173 bottomMargin: units.gu(4)
176 height: childrenRect.height
180 objectName: "emergencyCallIcon"
183 anchors.horizontalCenter: parent.horizontalCenter
184 name: "phone-app-call-symbolic"
190 onClicked: root.emergencyCall()
195 text: i18n.tr("Emergency Call")
199 anchors.horizontalCenter: parent.horizontalCenter
204 id: infoPopupComponent
207 objectName: "infoPopup"
211 objectName: "infoPopupOkButton"
214 PopupUtils.close(dialog)
215 root.infoPopupConfirmed();
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list