@@ -55,6 +55,7 @@ Item {
55 property alias indicatorAreaShowProgress: panel.indicatorAreaShowProgress
55 property alias indicatorAreaShowProgress: panel.indicatorAreaShowProgress
56 property bool beingResized
56 property bool beingResized
57 property string usageScenario: "phone" // supported values: "phone", "tablet" or "desktop"
57 property string usageScenario: "phone" // supported values: "phone", "tablet" or "desktop"
58+ property string mode: "full-greeter"
58 function updateFocusedAppOrientation() {
59 function updateFocusedAppOrientation() {
59 applicationsDisplayLoader.item.updateFocusedAppOrientation();
60 applicationsDisplayLoader.item.updateFocusedAppOrientation();
@@ -68,9 +69,9 @@ Item {
69 readonly property bool orientationChangesEnabled: panel.indicators.fullyClosed
70 readonly property bool orientationChangesEnabled: panel.indicators.fullyClosed
70 && (applicationsDisplayLoader.item && applicationsDisplayLoader.item.orientationChangesEnabled)
71 && (applicationsDisplayLoader.item && applicationsDisplayLoader.item.orientationChangesEnabled)
71− && !greeter.animating
72+ && (!greeter || !greeter.animating)
73− readonly property bool showingGreeter: greeter.shown
74+ readonly property bool showingGreeter: greeter && greeter.shown
75 property bool startingUp: true
76 property bool startingUp: true
76 Timer { id: finishStartUpTimer; interval: 500; onTriggered: startingUp = false }
77 Timer { id: finishStartUpTimer; interval: 500; onTriggered: startingUp = false }
@@ -79,7 +80,7 @@ Item {
79 if (startingUp) {
80 if (startingUp) {
80 // Ensure we don't rotate during start up
81 // Ensure we don't rotate during start up
81 return Qt.PrimaryOrientation;
82 return Qt.PrimaryOrientation;
82− } else if (greeter.shown) {
83+ } else if (greeter && greeter.shown) {
83 return Qt.PrimaryOrientation;
84 return Qt.PrimaryOrientation;
84 } else if (mainApp) {
85 } else if (mainApp) {
85 return mainApp.supportedOrientations;
86 return mainApp.supportedOrientations;
@@ -101,16 +102,13 @@ Item {
102 // Disable everything while greeter is waiting, so that the user can't swipe
103 // Disable everything while greeter is waiting, so that the user can't swipe
103 // the greeter or launcher until we know whether the session is locked.
104 // the greeter or launcher until we know whether the session is locked.
104− enabled: !greeter.waiting
105+ enabled: greeter && !greeter.waiting
106 property real edgeSize: units.gu(2)
107 property real edgeSize: units.gu(2)
107 property url defaultBackground: Qt.resolvedUrl(shell.width >= units.gu(60) ? "graphics/tablet_background.jpg" : "graphics/phone_background.jpg")
108 property url defaultBackground: Qt.resolvedUrl(shell.width >= units.gu(60) ? "graphics/tablet_background.jpg" : "graphics/phone_background.jpg")
108 property url background: asImageTester.status == Image.Ready ? asImageTester.source
109 property url background: asImageTester.status == Image.Ready ? asImageTester.source
109 : gsImageTester.status == Image.Ready ? gsImageTester.source : defaultBackground
110 : gsImageTester.status == Image.Ready ? gsImageTester.source : defaultBackground
111− // This is _only_ used to expose the property to autopilot tests
112− readonly property string testShellMode: shellMode
114 readonly property alias greeter: greeterLoader.item
112 readonly property alias greeter: greeterLoader.item
116 function activateApplication(appId) {
114 function activateApplication(appId) {
@@ -264,7 +262,7 @@ Item {
264 ? "phone"
262 ? "phone"
265 : shell.usageScenario
263 : shell.usageScenario
266 source: {
264 source: {
267− if(shellMode === "greeter") {
265+ if(shell.mode === "greeter") {
268 return "Stages/ShimStage.qml"
266 return "Stages/ShimStage.qml"
269 } else if (applicationsDisplayLoader.usageScenario === "phone") {
267 } else if (applicationsDisplayLoader.usageScenario === "phone") {
270 return "Stages/PhoneStage.qml";
268 return "Stages/PhoneStage.qml";
@@ -276,7 +274,7 @@ Item {
278 property bool interactive: tutorial.spreadEnabled
276 property bool interactive: tutorial.spreadEnabled
279− && !greeter.shown
277+ && (!greeter || !greeter.shown)
280 && panel.indicators.fullyClosed
278 && panel.indicators.fullyClosed
281 && launcher.progress == 0
279 && launcher.progress == 0
282 && !notifications.useModal
280 && !notifications.useModal
@@ -307,12 +305,12 @@ Item {
307 Binding {
305 Binding {
308 target: applicationsDisplayLoader.item
306 target: applicationsDisplayLoader.item
309 property: "spreadEnabled"
307 property: "spreadEnabled"
310− value: tutorial.spreadEnabled && !greeter.hasLockedApp
308+ value: tutorial.spreadEnabled && (!greeter || !greeter.hasLockedApp)
312 Binding {
310 Binding {
313 target: applicationsDisplayLoader.item
311 target: applicationsDisplayLoader.item
314 property: "inverseProgress"
312 property: "inverseProgress"
315− value: greeter.locked ? 0 : launcher.progress
313+ value: greeter && greeter.locked ? 0 : launcher.progress
317 Binding {
315 Binding {
318 target: applicationsDisplayLoader.item
316 target: applicationsDisplayLoader.item
@@ -422,7 +420,7 @@ Item {
422 id: greeterLoader
420 id: greeterLoader
423 anchors.fill: parent
421 anchors.fill: parent
424 anchors.topMargin: panel.panelHeight
422 anchors.topMargin: panel.panelHeight
425− sourceComponent: shellMode != "shell" ? integratedGreeter :
423+ sourceComponent: shell.mode != "shell" ? integratedGreeter :
426 Qt.createComponent(Qt.resolvedUrl("Greeter/ShimGreeter.qml"));
424 Qt.createComponent(Qt.resolvedUrl("Greeter/ShimGreeter.qml"));
427 onLoaded: {
425 onLoaded: {
428 item.objectName = "greeter"
426 item.objectName = "greeter"
@@ -434,7 +432,7 @@ Item {
434 Greeter {
432 Greeter {
436 hides: [launcher, panel.indicators]
434 hides: [launcher, panel.indicators]
437− tabletMode: shell.sideStageEnabled
435+ tabletMode: shell.usageScenario != "phone"
438 launcherOffset: launcher.progress
436 launcherOffset: launcher.progress
439 forcedUnlock: tutorial.running
437 forcedUnlock: tutorial.running
440 background: shell.background
438 background: shell.background
@@ -550,8 +548,8 @@ Item {
550 indicators {
548 indicators {
551 hides: [launcher]
549 hides: [launcher]
552 available: tutorial.panelEnabled
550 available: tutorial.panelEnabled
553− && (!greeter.locked || AccountsService.enableIndicatorsWhileLocked)
551+ && ((!greeter || !greeter.locked) || AccountsService.enableIndicatorsWhileLocked)
554− && !greeter.hasLockedApp
552+ && (!greeter || !greeter.hasLockedApp)
555 contentEnabled: tutorial.panelContentEnabled
553 contentEnabled: tutorial.panelContentEnabled
556 width: parent.width > units.gu(60) ? units.gu(40) : parent.width
554 width: parent.width > units.gu(60) ? units.gu(40) : parent.width