185 lines
5.6 KiB
QML
185 lines
5.6 KiB
QML
// Copyright (C) 2021 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
import QtQuick
|
|
import QtQuick.Shapes
|
|
|
|
pragma ComponentBehavior: Bound
|
|
|
|
Rectangle {
|
|
id: root
|
|
width: 1024
|
|
height: 768
|
|
|
|
readonly property color col: "lightsteelblue"
|
|
gradient: Gradient {
|
|
GradientStop {
|
|
position: 0.0
|
|
color: Qt.tint(root.col, "#20FFFFFF")
|
|
}
|
|
GradientStop {
|
|
position: 0.1
|
|
color: Qt.tint(root.col, "#20AAAAAA")
|
|
}
|
|
GradientStop {
|
|
position: 0.9
|
|
color: Qt.tint(root.col, "#20666666")
|
|
}
|
|
GradientStop {
|
|
position: 1.0
|
|
color: Qt.tint(root.col, "#20000000")
|
|
}
|
|
}
|
|
|
|
readonly property int gridSpacing: 10
|
|
|
|
Rectangle {
|
|
anchors {
|
|
fill: parent
|
|
margins: 10
|
|
}
|
|
color: "lightBlue"
|
|
clip: true
|
|
|
|
GridView {
|
|
id: grid
|
|
anchors {
|
|
fill: parent
|
|
margins: root.gridSpacing
|
|
}
|
|
cellWidth: 300
|
|
cellHeight: 300
|
|
delegate: Rectangle {
|
|
id: gridDelegate
|
|
|
|
required property string name
|
|
required property string shapeUrl
|
|
|
|
border.color: "purple"
|
|
width: grid.cellWidth - root.gridSpacing
|
|
height: grid.cellHeight - root.gridSpacing
|
|
Column {
|
|
anchors.fill: parent
|
|
anchors.margins: 4
|
|
Item {
|
|
width: parent.width
|
|
height: parent.height - delegText.height
|
|
Loader {
|
|
source: Qt.resolvedUrl(gridDelegate.shapeUrl)
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
Text {
|
|
id: delegText
|
|
text: gridDelegate.name
|
|
font.pointSize: 16
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
}
|
|
}
|
|
}
|
|
model: ListModel {
|
|
ListElement {
|
|
name: qsTr("Stroke and fill")
|
|
shapeUrl: "tapableTriangle.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Stroke or fill only")
|
|
shapeUrl: "strokeOrFill.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Dash pattern")
|
|
shapeUrl: "linearGradient.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Linear gradient")
|
|
shapeUrl: "radialGradient.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Radial gradient")
|
|
shapeUrl: "dashPattern.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Fill rules")
|
|
shapeUrl: "fillRules.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Join styles")
|
|
shapeUrl: "joinStyles.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Cap styles")
|
|
shapeUrl: "capStyles.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Quadratic curve")
|
|
shapeUrl: "quadraticCurve.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Cubic curve")
|
|
shapeUrl: "cubicCurve.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Elliptical arc")
|
|
shapeUrl: "ellipticalArcs.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Gradient spread modes")
|
|
shapeUrl: "gradientSpreadModes.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Arc direction")
|
|
shapeUrl: "arcDirection.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Large/small arc")
|
|
shapeUrl: "largeOrSmallArc.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Arc rotation")
|
|
shapeUrl: "arcRotation.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Tiger")
|
|
shapeUrl: "tigerLoader.qml"
|
|
}
|
|
ListElement {
|
|
name: qsTr("Text")
|
|
shapeUrl: "text.qml"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Text {
|
|
anchors.right: parent.right
|
|
// used only to get the renderer type
|
|
Shape {
|
|
id: dummyShape
|
|
ShapePath { }
|
|
}
|
|
color: "darkBlue"
|
|
font.pointSize: 12
|
|
readonly property variant rendererStrings: [ qsTr("Unknown"), qsTr("Generic (QtGui triangulator)"), qsTr("GL_NV_path_rendering"), qsTr("Software (QPainter)") ]
|
|
text: qsTr("Active Shape backend: ") + rendererStrings[dummyShape.rendererType]
|
|
SequentialAnimation on opacity {
|
|
NumberAnimation {
|
|
from: 1
|
|
to: 0
|
|
duration: 5000
|
|
}
|
|
PauseAnimation {
|
|
duration: 5000
|
|
}
|
|
NumberAnimation {
|
|
from: 0
|
|
to: 1
|
|
duration: 1000
|
|
}
|
|
PauseAnimation {
|
|
duration: 5000
|
|
}
|
|
loops: Animation.Infinite
|
|
}
|
|
}
|
|
}
|