Warning, /network/neochat/src/qml/LocationMapItem.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2021 Tobias Fella <fella@posteo.de>
0002 // SPDX-FileCopyrightText: 2023 Volker Krause <vkrause@kde.org>
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004 
0005 import QtQuick
0006 import QtQuick.Controls
0007 import QtQuick.Layouts
0008 import QtLocation
0009 import QtPositioning
0010 
0011 import org.kde.kirigami as Kirigami
0012 import org.kde.kirigamiaddons.labs.components as KirigamiComponents
0013 
0014 import org.kde.neochat
0015 
0016 /** Location marker for any of the shared location maps. */
0017 MapQuickItem {
0018     id: root
0019     required property real latitude
0020     required property real longitude
0021 
0022     required property string asset
0023     required property var author
0024 
0025     required property bool isLive
0026 
0027     required property real heading
0028 
0029     anchorPoint.x: sourceItem.width / 2
0030     anchorPoint.y: sourceItem.height
0031     coordinate: QtPositioning.coordinate(root.latitude, root.longitude)
0032     autoFadeIn: false
0033     sourceItem: Kirigami.Icon {
0034         id: mainIcon
0035         width: height
0036         height: Kirigami.Units.iconSizes.huge
0037         source: "gps"
0038         isMask: true
0039         color: root.isLive ? Kirigami.Theme.highlightColor : Kirigami.Theme.disabledTextColor
0040 
0041         Kirigami.Icon {
0042             anchors.centerIn: parent
0043             anchors.verticalCenterOffset: -parent.height / 8
0044             visible: root.asset === "m.pin"
0045             width: height
0046             height: parent.height / 3 + 1
0047             source: "pin"
0048             isMask: true
0049             color: parent.color
0050         }
0051         KirigamiComponents.Avatar {
0052             anchors.centerIn: parent
0053             anchors.verticalCenterOffset: -parent.height / 8
0054             visible: root.asset === "m.self"
0055             width: height
0056             height: parent.height / 3 + 1
0057             name: root.author.displayName
0058             source: root.author.avatarSource
0059             color: root.author.color
0060         }
0061 
0062         Kirigami.Icon {
0063             id: headingIcon
0064             source: "go-up-symbolic"
0065             color: parent.color
0066             visible: !isNaN(root.heading) && root.isLive
0067             anchors.bottom: mainIcon.top
0068             anchors.horizontalCenter: mainIcon.horizontalCenter
0069             transform: Rotation {
0070                 origin.x: headingIcon.width / 2
0071                 origin.y: headingIcon.height + mainIcon.height / 2
0072                 angle: root.heading
0073             }
0074         }
0075     }
0076 }