1// SPDX-FileCopyrightText: 2016 Artem Fedoskin <afedoskin3@gmail.com>
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4import QtQuick 2.6
5import QtQuick.Controls 2.0
6
7import "../constants" 1.0
8import "helpers"
9import "tutorial"
10
11Item {
12    id: skyMapLiteItem
13    visible: isLoaded
14    property alias notification: notification
15
16    Rectangle {
17        id: skyMapLiteWrapper
18        objectName: "skyMapLiteWrapper"
19        width: parent.width
20        height: parent.height
21        color: KStarsLite.getColor("SkyColor")
22
23        Connections {
24            target: colorSchemePopup
25            onColorSchemeChanged: {
26                skyMapLiteWrapper.color = KStarsLite.getColor("SkyColor")
27            }
28        }
29
30        Connections {
31            target: stackView
32            onCurrentItemChanged: {
33                if(stackView.currentItem != initPage) {
34                    //Workaround to make animation on push from / and pop to initPage faster
35                    //skyMapLiteWrapper.anchors.fill = null
36                    skyMapLiteWrapper.width = 0
37                    skyMapLiteWrapper.height = 0
38                    skyMapLite.visible = false
39                }
40            }
41            onBusyChanged: {
42                if(stackView.currentItem == initPage) {
43                    skyMapLite.visible = true
44                    skyMapLiteWrapper.width = Qt.binding(function() {return skyMapLite.width})
45                    skyMapLiteWrapper.height = Qt.binding(function() {return skyMapLite.height})
46                }
47            }
48        }
49
50        Button {
51            z: 1
52            visible: SkyMapLite.centerLocked
53            anchors {
54                right: parent.right
55                top: parent.top
56                margins: 25
57            }
58            onClicked: {
59                SkyMapLite.centerLocked = false
60            }
61            onPressedChanged: {
62                if(pressed)
63                    lockBG.color = "#D40000"
64                else
65                    lockBG.color = "red"
66            }
67
68            background: Rectangle {
69                id: lockBG
70                color: "red"
71                implicitWidth: 100
72                implicitHeight: 70
73                radius: 4
74                border.width: 3
75                border.color: "#AA0000"
76            }
77
78            Image {
79                source: "../images/lock-closed.png"
80                anchors.centerIn: parent
81            }
82        }
83
84        Button {
85            z: 1
86            id: exitAutomaticMode
87            visible: SkyMapLite.automaticMode
88            anchors {
89                left: parent.left
90                top: parent.top
91                margins: 25
92            }
93
94            Image {
95                source: "../images/back.png"
96                anchors.centerIn: parent
97            }
98
99            onClicked: {
100                SkyMapLite.automaticMode = false
101            }
102        }
103
104        /** Circle that appears after user taps on screen **/
105        Rectangle {
106            id: tapCircle
107            z: 1
108            width: 20 * Num.dp
109            radius: width*0.5
110            height: width
111            color: "grey"
112            opacity: 0
113
114            Connections {
115                target: SkyMapLite
116                onPosClicked: {
117                    tapCircle.x = pos.x - tapCircle.width * 0.5
118                    tapCircle.y = pos.y - tapCircle.height * 0.5
119                    tapAnimation.start()
120                }
121                onPointLiteChanged: {
122                    contextMenu.openPoint()
123                }
124
125                onObjectLiteChanged: {
126                    contextMenu.openObject()
127                }
128            }
129
130            SequentialAnimation on opacity {
131                id: tapAnimation
132                OpacityAnimator { from: 0; to: 0.8; duration: 100 }
133                OpacityAnimator { from: 0.8; to: 0; duration: 400 }
134            }
135        }
136    }
137
138    TopMenu {
139        id: topMenu
140    }
141
142    //Step 3 - Top Menu
143    TutorialStep3 {
144        anchors {
145            top: topMenu.bottom
146        }
147    }
148
149    PassiveNotification {
150        z: 2
151        height: 10
152        id: notification
153        visible: true
154            anchors {
155                bottom: bottomMenu.top
156            horizontalCenter: parent.horizontalCenter
157            }
158
159        Connections {
160            target: KStarsLite
161            onNotificationMessage: {
162                skyMapLite.notification.showNotification(msg)
163            }
164        }
165    }
166
167    BottomMenu {
168        id: bottomMenu
169    }
170
171    //Step 4 - Bottom Menu
172    TutorialStep4 {
173        anchors{
174            bottom: bottomMenu.top
175        }
176    }
177}
178