aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/textrendering/main.qml
blob: 5d3a6489dd74aec3747c0a6b54c5b17674abae10 (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
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

import QtQuick
import QtQuick.Window
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Shapes

Window {
    id: theWindow
    width: 1024
    height: 768
    visible: true
    title: qsTr("Text Rendering")
    color: "white"

    Text {
        id: dummyTextRendering
        scale: scaleSlider.value
        anchors.centerIn: parent
        text: dummyText.text
        font.pixelSize: fontSize.value
        renderType: renderTypeCombo.currentIndex
        style: styleCombo.currentIndex
        styleColor: "indianred"
        color: "black"
        visible: renderTypeCombo.currentIndex <= 2
    }

    Shape {
        id: dummyShapeRendering
        anchors.centerIn: parent
        scale: scaleSlider.value
        visible: !dummyTextRendering.visible
        width: boundingRect.width
        height: boundingRect.height
        preferredRendererType: shapesRendererCombo.currentIndex === 0 ? Shape.GeometryRenderer : Shape.CurveRenderer

        ShapePath {
            id: shapePath
            fillColor: "black"
            strokeColor: styleCombo.currentIndex === 1 ? "indianred" : "transparent"
            strokeStyle: ShapePath.SolidLine
            strokeWidth: 1
            fillRule: ShapePath.WindingFill
            PathText {
                text: dummyText.text
                font.pixelSize: fontSize.value
            }
        }
    }

    RowLayout {
        anchors.bottom: parent.bottom
        anchors.left: parent.left
        anchors.right: parent.right

        TextField {
            id: dummyText
            text: "Foobar"
        }

        Label {
            text: "Scale:"
        }

        Slider {
            id: scaleSlider
            from: 0.5
            to: 10
            value: 1
        }

        Label {
            text: "Font size:"
        }

        Slider {
            id: fontSize
            from: 1
            to: 1000
            value: 100
            Layout.fillWidth: true
        }

        ComboBox {
            id: styleCombo
            model: [ "Normal", "Outline", "Raised", "Sunken" ]
        }

        ComboBox {
            id: renderTypeCombo
            model: [ "QtRendering", "NativeRendering", "CurveRendering", "Qt Quick Shapes" ]
        }

        ComboBox {
            id: shapesRendererCombo
            model: [ "GeometryRenderer", "CurveRenderer" ]
            visible: renderTypeCombo.currentIndex > 2
        }
    }
}