1// SPDX-FileCopyrightText: 2016 Artem Fedoskin <afedoskin3@gmail.com> 2// SPDX-License-Identifier: GPL-2.0-or-later 3 4import QtQuick.Controls 2.0 5import QtQuick 2.7 6import QtQuick.Layouts 1.1 7import "../../constants" 1.0 8import "../helpers" 9import "../../modules" 10 11Menu { 12 id: contextMenu 13 modal: true 14 transformOrigin: Menu.Center 15 padding: 5 16 background: Rectangle { 17 implicitWidth: 200 18 color: Num.sysPalette.base 19 radius: 5 20 } 21 22 property bool isPoint: false 23 24 function openPoint() { 25 isPoint = true 26 open() 27 } 28 29 function openObject() { 30 isPoint = false 31 open() 32 } 33 34 Column { 35 width: parent.width 36 spacing: 10 37 38 KSLabel { 39 id: objectName 40 text: isPoint ? xi18n("Empty Sky") : SkyMapLite.clickedObjectLite.translatedName 41 wrapMode: Label.WrapAtWordBoundaryOrAnywhere 42 width: parent.width 43 font.pointSize: 12 44 anchors { 45 left: parent.left 46 leftMargin: 10 47 } 48 } 49 50 Rectangle { 51 color: Num.sysPalette.light 52 width: parent.width - 10 53 height: 1 54 anchors { 55 horizontalCenter: parent.horizontalCenter 56 } 57 } 58 } 59 60 KSMenuItem { 61 text: xi18n("Center and Track") 62 onTriggered: { 63 contextMenu.close() 64 SkyMapLite.slotCenter() 65 SkyMapLite.centerLocked = true 66 } 67 } 68 69 KSMenuItem { 70 visible: !isPoint 71 text: xi18n("Details") 72 onTriggered: stackView.push(detailsDialog) 73 } 74 75 Item { 76 id: hSpacer 77 height: telescopeCol.isTelescope ? 15 : 0 78 } 79 80 ColumnLayout { 81 id: telescopeCol 82 width: parent.width 83 spacing: 10 84 /*If we don't set height to 0 when telescope is not connected there will be some blank space in the bottom 85 of menu*/ 86 height: isTelescope ? implicitHeight : 0 87 88 property bool isTelescope: telescope == null ? false : true 89 property var telescope: null 90 91 Connections { 92 target: ClientManagerLite 93 94 onTelescopeAdded: { 95 if(!telescopeCol.isTelescope) { 96 telescopeCol.telescope = newTelescope 97 telescopeName.text = newTelescope.deviceName 98 } 99 } 100 101 onTelescopeRemoved: { 102 telescopeCol.telescope = null 103 } 104 } 105 106 KSText { 107 id: telescopeName 108 visible: telescopeCol.isTelescope 109 wrapMode: Text.Wrap 110 font.pointSize: 12 111 anchors { 112 left: parent.left 113 leftMargin: 10 114 } 115 } 116 117 Rectangle { 118 color: Num.sysPalette.light 119 visible: telescopeCol.isTelescope 120 width: parent.width - 10 121 height: 1 122 anchors { 123 horizontalCenter: parent.horizontalCenter 124 } 125 } 126 } 127 128 KSMenuItem { 129 visible: telescopeCol.isTelescope 130 text: xi18n("Slew") 131 onTriggered: telescopeCol.telescope.slew(SkyMapLite.clickedObjectLite) 132 } 133 134 KSMenuItem { 135 visible: telescopeCol.isTelescope 136 text: xi18n("Sync") 137 onTriggered: telescopeCol.telescope.sync(SkyMapLite.clickedObjectLite) 138 } 139} 140