Lomiri
SecondaryGreeter.qml
1 /*
2  * Copyright (C) 2016 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  */
16 
17 import QtQuick 2.12
18 import Lomiri.Components 1.3
19 
20 import "../Components"
21 import ".." 0.1
22 
23 Showable {
24  id: root
25 
26  readonly property bool active: required || hasLockedApp
27 
28  readonly property bool hasLockedApp: lockedApp !== ""
29  readonly property bool locked: false
30  readonly property bool waiting: false
31  readonly property bool fullyShown: shown
32 
33  property string lockedApp: ""
34 
35  function forceShow() { show(); }
36  property var notifyAppFocusRequested: (function(appId) { return; })
37  property var notifyUserRequestedApp: (function(appId) { return; })
38  property var notifyShowingDashFromDrag: (function(appId) { return false; })
39 
40  showAnimation: StandardAnimation { property: "opacity"; to: 1 }
41  hideAnimation: StandardAnimation { property: "opacity"; to: 0 }
42 
43  shown: ShellNotifier.greeter.shown
44  Component.onCompleted: opacity = shown ? 1 : 0
45  visible: opacity != 0
46 
47  Rectangle {
48  anchors.fill: parent
49  color: LomiriColors.purple
50  }
51 
52  MouseArea {
53  anchors.fill: parent
54  acceptedButtons: Qt.AllButtons
55  onWheel: wheel.accepted = true
56  }
57 
58  Connections {
59  target: ShellNotifier.greeter
60  onHide: {
61  if (now) {
62  root.hideNow(); // skip hide animation
63  } else {
64  root.hide();
65  }
66  }
67  onShownChanged: {
68  if (ShellNotifier.greeter.shown) {
69  root.show();
70  } else {
71  root.hide();
72  }
73  }
74  }
75 }