Warning, /education/kstars/kstars/kstarslite/qml/modules/TopMenu.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2016 Artem Fedoskin <afedoskin3@gmail.com> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 import QtQuick 2.7 0005 import QtQuick.Layouts 1.1 0006 import QtQuick.Controls 2.0 0007 import QtQuick.Controls.Material 2.0 0008 import QtQuick.Controls.Universal 2.0 0009 0010 import QtQuick.Window 2.2 0011 import "../constants" 1.0 0012 import "helpers" 0013 import KStarsLiteEnums 1.0 0014 0015 ColumnLayout { 0016 id: topMenu 0017 objectName: "topMenu" 0018 property int padding: 10 0019 property double openOffset: -topBar.background.radius //Hide top round corners 0020 property double closedOffset: -topBar.height // Hide top bar when closed 0021 property string prevState 0022 0023 Connections { 0024 target: SkyMapLite 0025 onSlewingChanged: { 0026 if(SkyMapLite.slewing || skyMapLite.automaticMode) { 0027 prevState = state 0028 state = "hidden" 0029 } else { 0030 state = prevState 0031 } 0032 } 0033 } 0034 0035 state: "closed" 0036 property alias state : topMenu.state 0037 spacing: padding 0038 0039 x: (parent.width - width)/2 0040 0041 Layout.fillHeight: true 0042 width: parent.width < menuFlow.childrenWidth ? parent.width : menuFlow.childrenWidth 0043 0044 states: [ 0045 State { 0046 name: "open" 0047 PropertyChanges { 0048 target: topMenu 0049 y: openOffset 0050 } 0051 }, 0052 State { 0053 name: "closed" 0054 PropertyChanges { 0055 target: topMenu 0056 y: closedOffset 0057 } 0058 }, 0059 State { 0060 name: "hidden" 0061 PropertyChanges { 0062 target: topMenu 0063 y: -topMenu.height 0064 } 0065 } 0066 ] 0067 0068 transitions: [ 0069 Transition { 0070 to: "open" 0071 PropertyAnimation { target: topMenu 0072 properties: "y"; duration: 300 } 0073 }, 0074 Transition { 0075 to: "closed" 0076 PropertyAnimation { target: topMenu 0077 properties: "y"; duration: 300 } 0078 }, 0079 Transition { 0080 to: "hidden" 0081 PropertyAnimation { target: topMenu 0082 properties: "y"; duration: 200 } 0083 } 0084 ] 0085 0086 Pane { 0087 id: topBar 0088 anchors.horizontalCenter: parent.horizontalCenter 0089 implicitWidth: parent.width 0090 Layout.fillHeight: true 0091 0092 background: Rectangle { 0093 id: menuRect 0094 color: Num.sysPalette.base 0095 border { 0096 width: 2 0097 color: Num.sysPalette.light 0098 } 0099 radius: 10 0100 } 0101 0102 Flow { 0103 id: menuFlow 0104 spacing: 5 0105 width: parent.width 0106 property double childrenWidth: 0 0107 0108 Component.onCompleted: { 0109 if(Qt.platform.os == "android") { 0110 //Automatic mode is available only for Android 0111 var columnForTab = Qt.createQmlObject('import QtQuick 2.7 0112 import "helpers" 0113 TopMenuButton { 0114 id: autoModeButton 0115 iconSrc: "../../images/kstars_automode.png" 0116 title: xi18n("Automatic mode") 0117 titlePlural: false 0118 visible: Qt.platform.os == "android" 0119 0120 toggled: SkyMapLite.automaticMode 0121 onClicked: { 0122 SkyMapLite.automaticMode = !SkyMapLite.automaticMode 0123 } 0124 }', menuFlow) 0125 } 0126 0127 for(var i = 0; i < children.length; ++i) { 0128 childrenWidth += children[i].width + spacing 0129 } 0130 childrenWidth += topBar.padding*2 //Account for topBar padding to have enough space for all elements 0131 } 0132 0133 anchors { 0134 top: parent.top 0135 topMargin: menuRect.radius/2 // Center vertically menuGrid in background rectangle 0136 } 0137 Layout.fillHeight: true 0138 0139 TopMenuButton { 0140 iconSrc: "../../images/kstars_stars.png" 0141 title: xi18n("Stars") 0142 0143 toggled: KStarsLite.isToggled(ObjectsToToggle.Stars) 0144 onClicked: { 0145 KStarsLite.toggleObjects(ObjectsToToggle.Stars, toggled) 0146 } 0147 } 0148 TopMenuButton { 0149 iconSrc: "../../images/kstars_deepsky.png" 0150 title: xi18n("DeepSky Objects") 0151 0152 toggled: KStarsLite.isToggled(ObjectsToToggle.DeepSky) 0153 onClicked: { 0154 KStarsLite.toggleObjects(ObjectsToToggle.DeepSky, toggled) 0155 } 0156 } 0157 TopMenuButton { 0158 iconSrc: "../../images/kstars_planets.png" 0159 title: xi18n("Solar System") 0160 titlePlural: false 0161 0162 toggled: KStarsLite.isToggled(ObjectsToToggle.Planets) 0163 onClicked: { 0164 KStarsLite.toggleObjects(ObjectsToToggle.Planets, toggled) 0165 } 0166 } 0167 TopMenuButton { 0168 iconSrc: "../../images/kstars_supernovae.png" 0169 title: xi18n("Supernovae") 0170 0171 toggled: KStarsLite.isToggled(ObjectsToToggle.Supernovae) 0172 onClicked: { 0173 KStarsLite.toggleObjects(ObjectsToToggle.Supernovae, toggled) 0174 } 0175 } 0176 TopMenuButton { 0177 iconSrc: "../../images/kstars_satellites.png" 0178 title: xi18n("Satellites") 0179 0180 toggled: KStarsLite.isToggled(ObjectsToToggle.Satellites) 0181 onClicked: { 0182 KStarsLite.toggleObjects(ObjectsToToggle.Satellites, toggled) 0183 } 0184 } 0185 TopMenuButton { 0186 iconSrc: "../../images/kstars_clines.png" 0187 title: xi18n("Constellation Lines") 0188 0189 toggled: KStarsLite.isToggled(ObjectsToToggle.CLines) 0190 onClicked: { 0191 KStarsLite.toggleObjects(ObjectsToToggle.CLines, toggled) 0192 } 0193 } 0194 TopMenuButton { 0195 iconSrc: "../../images/kstars_cnames.png" 0196 title: xi18n("Constellation Names") 0197 0198 toggled: KStarsLite.isToggled(ObjectsToToggle.CNames) 0199 onClicked: { 0200 KStarsLite.toggleObjects(ObjectsToToggle.CNames, toggled) 0201 } 0202 } 0203 0204 TopMenuButton { 0205 iconSrc: "../../images/kstars_constellationart.png" 0206 title: xi18n("Constellation Art") 0207 titlePlural: false 0208 0209 toggled: KStarsLite.isToggled(ObjectsToToggle.ConstellationArt) 0210 onClicked: { 0211 KStarsLite.toggleObjects(ObjectsToToggle.ConstellationArt, toggled) 0212 } 0213 } 0214 0215 TopMenuButton { 0216 iconSrc: "../../images/kstars_cbound.png" 0217 title: xi18n("Constellation Bounds") 0218 0219 toggled: KStarsLite.isToggled(ObjectsToToggle.CBounds) 0220 onClicked: { 0221 KStarsLite.toggleObjects(ObjectsToToggle.CBounds, toggled) 0222 } 0223 } 0224 TopMenuButton { 0225 iconSrc: "../../images/kstars_mw.png" 0226 title: xi18n("Milky Way") 0227 titlePlural: false 0228 0229 toggled: KStarsLite.isToggled(ObjectsToToggle.MilkyWay) 0230 onClicked: { 0231 KStarsLite.toggleObjects(ObjectsToToggle.MilkyWay, toggled) 0232 } 0233 } 0234 TopMenuButton { 0235 iconSrc: "../../images/kstars_grid.png" 0236 title: xi18n("Equatorial Grid") 0237 titlePlural: false 0238 0239 toggled: KStarsLite.isToggled(ObjectsToToggle.EquatorialGrid) 0240 onClicked: { 0241 KStarsLite.toggleObjects(ObjectsToToggle.EquatorialGrid, toggled) 0242 } 0243 } 0244 TopMenuButton { 0245 iconSrc: "../../images/kstars_hgrid.png" 0246 title: xi18n("Horizontal Grid") 0247 titlePlural: false 0248 0249 toggled: KStarsLite.isToggled(ObjectsToToggle.HorizontalGrid) 0250 onClicked: { 0251 KStarsLite.toggleObjects(ObjectsToToggle.HorizontalGrid, toggled) 0252 } 0253 } 0254 TopMenuButton { 0255 iconSrc: "../../images/kstars_horizon.png" 0256 title: xi18n("Horizon") 0257 titlePlural: false 0258 0259 toggled: KStarsLite.isToggled(ObjectsToToggle.Ground) 0260 onClicked: { 0261 KStarsLite.toggleObjects(ObjectsToToggle.Ground, toggled) 0262 } 0263 } 0264 } 0265 } 0266 0267 Image { 0268 id: arrowDown 0269 anchors { 0270 horizontalCenter: parent.horizontalCenter 0271 } 0272 state: "open" 0273 source: "../images/arrow.png" 0274 rotation: { 0275 if(topMenu.state == "closed") 0276 return 180 0277 else if(topMenu.state == "open") 0278 return 0 0279 return rotation //If it state is "hidden" return current rotation 0280 } 0281 0282 MouseArea { 0283 objectName: "arrowDownMouseArea" 0284 anchors.fill: parent 0285 onPressed: { 0286 topMenu.state = topMenu.state == "closed" ? "open" : "closed" 0287 } 0288 function manualPress() { 0289 onPressed(1); 0290 } 0291 } 0292 0293 Behavior on rotation { 0294 RotationAnimation { 0295 duration: 200; direction: RotationAnimation.Counterclockwise 0296 } 0297 } 0298 } 0299 }