Warning, /utilities/filelight/src/qml/SegmentShape.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0002 // SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org> 0003 0004 import QtQuick 2.15 0005 import QtQuick.Layouts 1.15 0006 import QtQuick.Controls 2.15 as QQC2 0007 import org.kde.kirigami 2.19 as Kirigami 0008 import org.kde.coreaddons 1.0 as KCoreAddons 0009 import QtQuick.Shapes 1.15 0010 0011 import org.kde.filelight 1.0 0012 0013 // Different from CenterShape because this lines rather than moving from center. This produces consistent strokes 0014 // on all edges. 0015 // NOTE: keep this file in sync with CenterShape.qml! 0016 Shape { 0017 id: shape 0018 0019 required property Segment segment 0020 0021 property alias item: path.item 0022 property alias radius: path.radius 0023 property alias startAngle: path.startAngle 0024 property alias sweepAngle: path.sweepAngle 0025 0026 property alias tooltipText: tooltip.text 0027 property alias showTooltip: tooltip.visible 0028 0029 property alias fillColor: path.fillColor 0030 0031 property string segmentUuid: segment.uuid 0032 property url url: segment.url() 0033 0034 containsMode: Shape.FillContains 0035 0036 QQC2.ToolTip { 0037 id: tooltip 0038 delay: 0 0039 parent: shape 0040 x: mouseyX + Kirigami.Units.gridUnit // offset away from mouse lest it covers the tooltip 0041 y: mouseyY + Kirigami.Units.gridUnit 0042 visible: showTooltip 0043 } 0044 0045 ShapePath { 0046 id: path 0047 property var item: shape.item 0048 property var radius: shape.radius 0049 required property var startAngle 0050 required property var sweepAngle 0051 0052 strokeColor: Kirigami.Theme.textColor 0053 strokeWidth: Kirigami.Units.smallSpacing / 4 0054 capStyle: ShapePath.FlatCap 0055 0056 startX: item.width / 2 0057 startY: item.height / 2 0058 0059 PathAngleArc { 0060 id: arc 0061 moveToStart: false // draw line from startX/Y to start of arc 0062 centerX: item.width / 2 0063 centerY: item.height / 2 0064 // minus strokewidth so it doesn't overlap the edge for the outer most segements 0065 radiusX: path.radius - path.strokeWidth 0066 radiusY: radiusX 0067 startAngle: path.startAngle 0068 sweepAngle: path.sweepAngle 0069 } 0070 0071 PathLine { // draw line from end of arc to center again 0072 x: item.width / 2 0073 y: item.height / 2 0074 } 0075 } 0076 }