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 AccountsService 0.1
19import Ubuntu.Components 0.1
20import LightDM 0.1 as LightDM
27 property bool ready: background.source == "" || background.status == Image.Ready || background.status == Image.Error
29 signal selected(int uid)
30 signal unlocked(int uid)
33 // In case background fails to load
39 property url backgroundValue: AccountsService.backgroundFile != undefined && AccountsService.backgroundFile.length > 0 ? AccountsService.backgroundFile : greeter.defaultBackground
40 onBackgroundValueChanged: background.source = backgroundValue
44 objectName: "greeterBackground"
47 topMargin: backgroundTopMargin
49 fillMode: Image.PreserveAspectCrop
52 // See Shell.qml's backgroundSettings treatment for why we need a separate
53 // Image, but it boils down to avoiding binding loop detection.
55 source: background.source
61 if (status == Image.Error && source != greeter.defaultBackground) {
62 background.source = greeter.defaultBackground
75 objectName: "loginLoader"
78 leftMargin: Math.min(parent.width * 0.16, units.gu(20))
79 verticalCenter: parent.verticalCenter
84 // TODO: Once we have a system API for determining which mode we are
85 // in, tablet/phone/desktop, that should be used instead of narrowMode.
86 source: greeter.narrowMode ? "" : "LoginList.qml"
89 item.currentIndex = greeterContentLoader.currentIndex;
90 item.resetAuthentication();
94 target: loginLoader.item
96 value: greeterContentLoader.model
100 target: loginLoader.item
110 onCurrentIndexChanged: {
111 if (greeterContentLoader.currentIndex !== loginLoader.item.currentIndex) {
112 greeterContentLoader.currentIndex = loginLoader.item.currentIndex;
120 objectName: "infographics"
121 height: narrowMode ? parent.height : 0.75 * parent.height
122 model: greeterContentLoader.infographicModel
124 property string selectedUser
125 property string infographicUser: AccountsService.statsWelcomeScreen ? selectedUser : ""
126 onInfographicUserChanged: greeterContentLoader.infographicModel.username = infographicUser
128 Component.onCompleted: {
129 selectedUser = greeterContentLoader.model.data(greeterContentLoader.currentIndex, LightDM.UserRoles.NameRole)
130 greeterContentLoader.infographicModel.username = infographicUser
131 greeterContentLoader.infographicModel.readyForDataChange()
136 onSelected: infographics.selectedUser = greeterContentLoader.model.data(uid, LightDM.UserRoles.NameRole)
140 verticalCenter: parent.verticalCenter
141 left: narrowMode ? root.left : loginLoader.right
152 topMargin: units.gu(2)
153 horizontalCenter: parent.horizontalCenter
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