5 import QtQuick.Layouts 1.1
6 import QtQuick.Controls 2.0
7 import QtQuick.Controls.Material 2.0
8 import QtQuick.Controls.Universal 2.0
9 import QtQuick.Window 2.2
11 import TelescopeLiteEnums 1.0
12 import
"../constants" 1.0
17 objectName:
"bottomMenu"
18 property int padding: 10
19 property bool telescope:
false
20 property int slewCount: 1
21 property alias sliderValue: slider.value
23 property double openOffset: bottomMenu.height - bottomBar.background.radius
24 property double closedOffset: arrowUp.height + padding
25 property string prevState
27 property bool isWindowWidthSmall:
window.
width < menuGrid.maxWidth
43 property alias state : bottomMenu.
state
46 x: (parent.width - width)/2
48 Layout.fillHeight:
true
55 y: parent.height - openOffset
62 y: parent.height - closedOffset
77 PropertyAnimation { target: bottomMenu
82 PropertyAnimation { target: bottomMenu
87 PropertyAnimation { target: bottomMenu
95 horizontalCenter: parent.horizontalCenter
98 source:
"../images/arrow.png"
100 if(bottomMenu.state ==
"closed")
102 else if(bottomMenu.state ==
"open")
109 objectName:
"arrowUpMouseArea"
112 bottomMenu.state = bottomMenu.state ==
"closed" ?
"open" :
"closed"
114 function manualPress() {
119 Behavior on rotation {
121 duration: 200; direction: RotationAnimation.Counterclockwise
128 bottom: bottomBar.top
129 horizontalCenter: parent.horizontalCenter
131 visible: bottomMenu.telescope
135 background: Rectangle {
139 width: control.availableWidth
140 height: implicitHeight
145 width: control.visualPosition * parent.width
146 height: parent.height
154 to: bottomMenu.slewCount-1
156 snapMode: Slider.SnapOnRelease
159 slewLabel.text =
ClientManagerLite.getTelescope().getSlewRateLabels()[slider.value]
163 if (slider.pressed)
return
179 anchors.horizontalCenter: parent.horizontalCenter
181 background: Rectangle {
183 color: Num.sysPalette.base
186 color: Num.sysPalette.light
193 property double maxWidth: {width}
196 if(width > maxWidth) maxWidth = width
200 bottom: parent.bottom
201 bottomMargin: menuRect.radius/2
203 rows: isWindowWidthSmall ? 2 : 1
204 flow: isWindowWidthSmall ? GridLayout.TopToBottom : GridLayout.LeftToRight
206 Layout.fillWidth:
true
209 Layout.fillHeight:
true
210 Layout.fillWidth:
true
218 iconSrc:
"../../images/telescope-left.png"
219 visible: bottomMenu.telescope
221 ClientManagerLite.getTelescope().moveWE(TelescopeNS.MOTION_WEST, TelescopeCommand.MOTION_START)
224 ClientManagerLite.getTelescope().moveWE(TelescopeNS.MOTION_WEST, TelescopeCommand.MOTION_STOP)
230 iconSrc:
"../../images/telescope-down.png"
231 visible: bottomMenu.telescope && menuGrid.rows == 1
233 ClientManagerLite.getTelescope().moveNS(TelescopeNS.MOTION_SOUTH, TelescopeCommand.MOTION_START)
236 ClientManagerLite.getTelescope().moveNS(TelescopeNS.MOTION_SOUTH, TelescopeCommand.MOTION_STOP)
242 iconSrc:
"../../images/media-skip-backward.png"
257 iconSrc:
"../../images/media-playback-pause.png"
264 iconSrc:
"../../images/media-playback-start.png"
272 startTimer.state =
"on"
274 startTimer.state =
"off"
280 onIsSkyMapVisibleChanged: {
283 startTimer.state =
"off"
290 iconSrc:
"../../images/media-skip-forward.png"
297 anchors.right: parent.right
301 stackView.push(timePage)
303 visible: isWindowWidthSmall
305 iconSrc:
"../../images/appointment-new.png"
309 id: separatorSearchSmall
310 height: decreaseUnitLandscape.height*0.75
311 color: Num.sysPalette.shadow
313 visible: isWindowWidthSmall
318 stackView.push(findDialog)
320 visible: isWindowWidthSmall
322 iconSrc:
"../../images/edit-find.png"
327 iconSrc:
"../../images/telescope-right.png"
328 visible: bottomMenu.telescope && menuGrid.rows == 2
330 ClientManagerLite.getTelescope().moveWE(TelescopeNS.MOTION_EAST, TelescopeCommand.MOTION_START)
333 ClientManagerLite.getTelescope().moveWE(TelescopeNS.MOTION_EAST, TelescopeCommand.MOTION_STOP)
341 Layout.fillHeight:
true
342 Layout.fillWidth:
true
346 iconSrc:
"../../images/telescope-down.png"
347 visible: bottomMenu.telescope && menuGrid.rows == 2
349 ClientManagerLite.getTelescope().moveNS(TelescopeNS.MOTION_SOUTH, TelescopeCommand.MOTION_START)
352 ClientManagerLite.getTelescope().moveNS(TelescopeNS.MOTION_SOUTH, TelescopeCommand.MOTION_STOP)
358 timeSpinBox.decreaseTimeUnit()
360 visible: isWindowWidthSmall
362 iconSrc:
"../../images/arrow-down.png"
372 timeSpinBox.increaseTimeUnit()
375 iconSrc:
"../../images/arrow-up.png"
379 id: decreaseUnitLandscape
381 timeSpinBox.decreaseTimeUnit()
383 visible: !isWindowWidthSmall
385 iconSrc:
"../../images/arrow-down.png"
390 height: decreaseUnitLandscape.height*0.75
391 color: Num.sysPalette.shadow
393 visible: !isWindowWidthSmall
398 stackView.push(timePage)
400 visible: !isWindowWidthSmall
402 iconSrc:
"../../images/appointment-new.png"
406 id: separatorSearchLarge
407 height: decreaseUnitLandscape.height*0.75
408 color: Num.sysPalette.shadow
410 visible: !isWindowWidthSmall
415 stackView.push(findDialog)
417 visible: !isWindowWidthSmall
419 iconSrc:
"../../images/edit-find.png"
424 iconSrc:
"../../images/telescope-up.png"
425 visible: bottomMenu.telescope
427 ClientManagerLite.getTelescope().moveNS(TelescopeNS.MOTION_NORTH, TelescopeCommand.MOTION_START)
430 ClientManagerLite.getTelescope().moveNS(TelescopeNS.MOTION_NORTH, TelescopeCommand.MOTION_STOP)
436 iconSrc:
"../../images/telescope-right.png"
437 visible: bottomMenu.telescope && menuGrid.rows == 1
439 ClientManagerLite.getTelescope().moveWE(TelescopeNS.MOTION_EAST, TelescopeCommand.MOTION_START)
442 ClientManagerLite.getTelescope().moveWE(TelescopeNS.MOTION_EAST, TelescopeCommand.MOTION_STOP)