aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/components/designer/StrokeDetailsSection.qml
blob: a4286aebce846c47729e9e8dc791f5d1227098ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
// Copyright (C) 2026 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

import QtQuick 2.15
import QtQuick.Layouts 1.15
import HelperWidgets 2.0
import StudioTheme 1.0 as StudioTheme

Section {
    anchors.left: parent.left
    anchors.right: parent.right
    caption: qsTr("Stroke Details")

    property bool showCapStyle: true

    property bool showBorderMode: false
    property bool showRadiusAdjustmentment: false
    property bool showJoinStyle: false
    property bool showHideLine: false

    SectionLayout {
        PropertyLabel {
            text: qsTr("Border mode")
            tooltip: qsTr("Sets the way the border gets drawn along the boundary.")
            visible: showBorderMode
        }

        SecondColumnLayout {
            visible: showBorderMode
            BorderModeComboBox {}

            ExpandingSpacer {}
        }

        PropertyLabel {
            text: qsTr("Adjust radius")
            tooltip: qsTr("Toggles the corners to adapt the radius of the component.")
            visible: showRadiusAdjustmentment
        }

        SecondColumnLayout {
            visible: showRadiusAdjustmentment
            CheckBox {
                id: adjustRadiusBox
                text: qsTr("Adjust border radius")
                implicitWidth: StudioTheme.Values.twoControlColumnWidth
                backendValue: backendValues.adjustBorderRadius
            }
        }

        PropertyLabel {
            text: qsTr("Stroke style")
            tooltip: qsTr("Sets the style of the stroke. Selecting <b>None</b> would make it without a stroke.")
            }

        SecondColumnLayout {
            ComboBox {
                id: strokeStyle
                model: ["None", "Solid", "Dash", "Dot", "Dash Dot", "Dash Dot Dot"]
                backendValue: backendValues.strokeStyle
                implicitWidth: StudioTheme.Values.singleControlColumnWidth
                               + StudioTheme.Values.actionIndicatorWidth
                width: implicitWidth
                useInteger: true
            }

            ExpandingSpacer {}
        }

        PropertyLabel {
            text: qsTr("Join style")
            tooltip: qsTr("Sets the style of the connecting points of the edges.")
            visible: showJoinStyle
        }

        SecondColumnLayout {
            visible: showJoinStyle
            ComboBox {
                model: ["Miter Join", "Bevel Join", "Round Join"]
                backendValue: backendValues.joinStyle
                implicitWidth: StudioTheme.Values.singleControlColumnWidth
                               + StudioTheme.Values.actionIndicatorWidth
                width: implicitWidth
                useInteger: true
            }

            ExpandingSpacer {}
        }

        PropertyLabel {
            text: qsTr("Cap style")
            tooltip: qsTr("Sets the line ends as square or rounded.")
            visible: showCapStyle
        }

        SecondColumnLayout {
            visible: showCapStyle
            CapComboBox {}

            ExpandingSpacer {}
        }

        PropertyLabel {
            text: qsTr("Dash pattern")
            tooltip: qsTr("Sets the Dash length and gap in the Stroke.")
            Layout.alignment: Qt.AlignTop
            Layout.topMargin: 5
        }

        DashPatternEditor {
            enableEditors: strokeStyle.currentIndex === 2
        }

        PropertyLabel {
            text: qsTr("Dash offset")
            tooltip: qsTr("Sets the starting point of the dash pattern for a line.")
            }

        SecondColumnLayout {
            SpinBox {
                backendValue: backendValues.dashOffset
                implicitWidth: StudioTheme.Values.twoControlColumnWidth
                               + StudioTheme.Values.actionIndicatorWidth
                decimals: 1
                minimumValue: 0
                maximumValue: 1000
                stepSize: 1
            }

            ExpandingSpacer {}
        }

        PropertyLabel {
            text: qsTr("Hide line")
            visible: showHideLine
        }

        SecondColumnLayout {
            visible: showHideLine
            CheckBox {
                backendValue: backendValues.hideLine
                text: qsTr("hide inside line")
                implicitWidth: StudioTheme.Values.singleControlColumnWidth
                               + StudioTheme.Values.actionIndicatorWidth
            }

            ExpandingSpacer {}
        }
    }
}