aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/quickvectorimage
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/quickvectorimage')
-rw-r--r--tests/manual/quickvectorimage/CMakeLists.txt1
-rw-r--r--tests/manual/quickvectorimage/vectorimage/CMakeLists.txt30
-rw-r--r--tests/manual/quickvectorimage/vectorimage/Main.qml37
-rw-r--r--tests/manual/quickvectorimage/vectorimage/res/spheres.svg72
-rw-r--r--tests/manual/quickvectorimage/vectorimage/vectorimage.cpp22
5 files changed, 162 insertions, 0 deletions
diff --git a/tests/manual/quickvectorimage/CMakeLists.txt b/tests/manual/quickvectorimage/CMakeLists.txt
new file mode 100644
index 0000000000..10b17bb143
--- /dev/null
+++ b/tests/manual/quickvectorimage/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(vectorimage)
diff --git a/tests/manual/quickvectorimage/vectorimage/CMakeLists.txt b/tests/manual/quickvectorimage/vectorimage/CMakeLists.txt
new file mode 100644
index 0000000000..631009594f
--- /dev/null
+++ b/tests/manual/quickvectorimage/vectorimage/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+if (NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)
+ cmake_minimum_required(VERSION 3.16)
+ project(svgitem LANGUAGES C CXX ASM)
+ find_package(Qt6BuildInternals COMPONENTS STANDALONE_TEST)
+endif()
+
+qt_internal_add_manual_test(tst_manual_vectorimage
+ GUI
+ SOURCES
+ vectorimage.cpp
+ LIBRARIES
+ Qt::Quick
+ Qt::QuickVectorImage
+)
+
+# Resources:
+set(res
+ "res/spheres.svg"
+ "Main.qml"
+)
+
+qt_internal_add_resource(tst_manual_vectorimage "vectorimage_res"
+ PREFIX
+ "/"
+ FILES
+ ${res}
+)
diff --git a/tests/manual/quickvectorimage/vectorimage/Main.qml b/tests/manual/quickvectorimage/vectorimage/Main.qml
new file mode 100644
index 0000000000..4ce5f33262
--- /dev/null
+++ b/tests/manual/quickvectorimage/vectorimage/Main.qml
@@ -0,0 +1,37 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtCore
+import QtQuick
+import QtQuick.VectorImage
+import QtQuick.Controls
+import QtQuick.Dialogs
+
+Window {
+ width: 1920
+ height: 1080
+ title: qsTr("Vector Image")
+ visible: true
+
+ Column {
+ spacing: 20
+
+ Button {
+ width: 100
+ height: 50
+ text: qsTr("Select Svg file")
+ onClicked: fileDialog.open()
+ }
+
+ VectorImage {
+ id: vectorImage
+ source: "qrc:/res/spheres.svg"
+ }
+ }
+
+ FileDialog {
+ id: fileDialog
+ currentFolder: StandardPaths.standardLocations(StandardPaths.HomeLocation)[0]
+ onAccepted: vectorImage.source = selectedFile
+ }
+}
diff --git a/tests/manual/quickvectorimage/vectorimage/res/spheres.svg b/tests/manual/quickvectorimage/vectorimage/res/spheres.svg
new file mode 100644
index 0000000000..b23164bce3
--- /dev/null
+++ b/tests/manual/quickvectorimage/vectorimage/res/spheres.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" standalone="no"?>
+<svg width="8cm" height="8cm" viewBox="0 0 400 400"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink/"
+ baseProfile="tiny" version="1.2">
+ <title>Spheres</title>
+ <desc>Gradient filled spheres with different colors.</desc>
+ <defs>
+ <!-- Create radial gradients for each circle to make them look like
+ spheres. -->
+ <radialGradient id="blueSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="blue" />
+ <stop offset="100%" stop-color="#222244" />
+ </radialGradient>
+ <radialGradient id="redSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="red" />
+ <stop offset="100%" stop-color="#442222" />
+ </radialGradient>
+ <radialGradient id="greenSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="green" />
+ <stop offset="100%" stop-color="#113311" />
+ </radialGradient>
+ <radialGradient id="yellowSphere" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="-50">
+ <stop offset="0%" stop-color="white" />
+ <stop offset="75%" stop-color="yellow" />
+ <stop offset="100%" stop-color="#444422" />
+ </radialGradient>
+ <radialGradient id="shadowGrad" gradientUnits="userSpaceOnUse"
+ cx="0" cy="0" r="100" fx="-50" fy="50">
+ <stop offset="0%" stop-color="black" stop-opacity="1.0" />
+ <stop offset="100%" stop-color="white" stop-opacity="0.0" />
+ </radialGradient>
+
+ <!-- Define a shadow for each sphere. -->
+ <circle id="shadow" fill="url(#shadowGrad)" cx="0" cy="0" r="100" />
+ </defs>
+ <g fill="#ffee99" stroke="none" >
+ <rect x="0" y="0" width="400" height="400" />
+ </g>
+ <g fill="white" stroke="none" >
+ <rect x="0" y="175" width="400" height="225" />
+ </g>
+ <g transform="translate(200,175)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#blueSphere)" cx="0" cy="0" r="100" />
+ </g>
+ <g transform="translate(315,240)">
+ <g transform="scale(0.5,0.5)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#redSphere)" cx="0" cy="0" r="100" />
+ </g>
+ </g>
+ <g transform="translate(80,275)">
+ <g transform="scale(0.65,0.65)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#greenSphere)" cx="0" cy="0" r="100" />
+ </g>
+ </g>
+ <g transform="translate(255,325)">
+ <g transform="scale(0.3,0.3)">
+ <use xlink:href="#shadow" transform="translate(25,55) scale(1.0,0.5)" />
+ <circle fill="url(#yellowSphere)" cx="0" cy="0" r="100" />
+ </g>
+ </g>
+</svg>
diff --git a/tests/manual/quickvectorimage/vectorimage/vectorimage.cpp b/tests/manual/quickvectorimage/vectorimage/vectorimage.cpp
new file mode 100644
index 0000000000..d6795d7c64
--- /dev/null
+++ b/tests/manual/quickvectorimage/vectorimage/vectorimage.cpp
@@ -0,0 +1,22 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QGuiApplication>
+#include <QQmlApplicationEngine>
+
+int main(int argc, char *argv[])
+{
+ QGuiApplication app(argc, argv);
+
+ QQmlApplicationEngine engine;
+ const QString filePath(QLatin1String(":/Main.qml"));
+ QObject::connect(
+ &engine,
+ &QQmlApplicationEngine::objectCreationFailed,
+ &app,
+ []() { QCoreApplication::exit(-1); },
+ Qt::QueuedConnection);
+ engine.load(filePath);
+
+ return app.exec();
+}