diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/quick/imageelements/animatedimage.qml | 116 | ||||
-rw-r--r-- | examples/quick/imageelements/content/Uniflow_steam_engine.gif | bin | 0 -> 45328 bytes | |||
-rw-r--r-- | examples/quick/imageelements/imageelements.qml | 1 | ||||
-rw-r--r-- | examples/quick/imageelements/imageelements.qrc | 2 | ||||
-rw-r--r-- | examples/quick/quickwidgets/qquickviewcomparison/fbitem.h | 8 | ||||
-rw-r--r-- | examples/quick/rendercontrol/window_multithreaded.cpp | 4 | ||||
-rw-r--r-- | examples/quick/rendercontrol/window_multithreaded.h | 12 | ||||
-rw-r--r-- | examples/quick/rendercontrol/window_singlethreaded.cpp | 2 | ||||
-rw-r--r-- | examples/quick/rendercontrol/window_singlethreaded.h | 8 | ||||
-rw-r--r-- | examples/quick/shapes/content/item11.qml | 14 | ||||
-rw-r--r-- | examples/quick/shapes/content/shapegallery.qml | 2 | ||||
-rw-r--r-- | examples/quick/shapes/content/tapableTriangle.qml (renamed from examples/quick/shapes/content/item1.qml) | 15 | ||||
-rw-r--r-- | examples/quick/shapes/content/tiger.qml | 106 | ||||
-rw-r--r-- | examples/quick/shapes/shapes.pro | 2 | ||||
-rw-r--r-- | examples/quick/shapes/shapes.qrc | 2 |
15 files changed, 260 insertions, 34 deletions
diff --git a/examples/quick/imageelements/animatedimage.qml b/examples/quick/imageelements/animatedimage.qml new file mode 100644 index 0000000000..0a119d0aba --- /dev/null +++ b/examples/quick/imageelements/animatedimage.qml @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 2.11 +import Qt.labs.handlers 1.0 +import "../shared" as Examples + +Column { + width: 320 + height: 480 + spacing: 6 + y: 12 + +//! [image] + AnimatedImage { + id: animation + source: "content/Uniflow_steam_engine.gif" + anchors.horizontalCenter: parent.horizontalCenter + speed: speedSlider.value + TapHandler { + onTapped: animation.playing = !animation.playing + } + } +//! [image] + + Rectangle { + id: timeline + color: "steelblue" + width: animation.width + height: 1 + x: animation.x + y: animation.height + 12 + visible: animation.playing + + Rectangle { + property int frames: animation.frameCount + width: 4; height: 8 + x: (animation.width - width) * animation.currentFrame / frames + y: -4 + color: "red" + } + } + + Examples.Slider { + id: speedSlider + name: "Speed" + min: 0 + max: 5 + init: 1 + width: 240 + x: animation.x + Text { + font.pointSize: 12 + text: Math.round(animation.speed * 100) + "%" + x: animation.width - width + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 6 + } + } + + Examples.Button { + text: "Reset" + enabled: speedSlider.value !== 1 + anchors.horizontalCenter: parent.horizontalCenter + onClicked: { + speedSlider.setValue(1) + animation.playing = true + } + } +} diff --git a/examples/quick/imageelements/content/Uniflow_steam_engine.gif b/examples/quick/imageelements/content/Uniflow_steam_engine.gif Binary files differnew file mode 100644 index 0000000000..8754de4af9 --- /dev/null +++ b/examples/quick/imageelements/content/Uniflow_steam_engine.gif diff --git a/examples/quick/imageelements/imageelements.qml b/examples/quick/imageelements/imageelements.qml index e0eb503ecf..dfb4d24ea6 100644 --- a/examples/quick/imageelements/imageelements.qml +++ b/examples/quick/imageelements/imageelements.qml @@ -61,6 +61,7 @@ Item { addExample("BorderImage", "An image with scaled borders", Qt.resolvedUrl("borderimage.qml")); addExample("Image", "A showcase of the options available to Image", Qt.resolvedUrl("image.qml")); addExample("Shadows", "Rectangles with a drop-shadow effect", Qt.resolvedUrl("shadows.qml")); + addExample("AnimatedImage", "An image which plays animated formats", Qt.resolvedUrl("animatedimage.qml")); addExample("AnimatedSprite", "A simple sprite-based animation", Qt.resolvedUrl("animatedsprite.qml")); addExample("SpriteSequence", "A sprite-based animation with complex transitions", Qt.resolvedUrl("spritesequence.qml")); } diff --git a/examples/quick/imageelements/imageelements.qrc b/examples/quick/imageelements/imageelements.qrc index ef8a9e52cb..2488fb083b 100644 --- a/examples/quick/imageelements/imageelements.qrc +++ b/examples/quick/imageelements/imageelements.qrc @@ -13,7 +13,9 @@ <file>content/shadow.png</file> <file>content/ShadowRectangle.qml</file> <file>content/speaker.png</file> + <file>content/Uniflow_steam_engine.gif</file> <file>imageelements.qml</file> + <file>animatedimage.qml</file> <file>animatedsprite.qml</file> <file>borderimage.qml</file> <file>image.qml</file> diff --git a/examples/quick/quickwidgets/qquickviewcomparison/fbitem.h b/examples/quick/quickwidgets/qquickviewcomparison/fbitem.h index f437e5771c..3a4c5a13c2 100644 --- a/examples/quick/quickwidgets/qquickviewcomparison/fbitem.h +++ b/examples/quick/quickwidgets/qquickviewcomparison/fbitem.h @@ -64,9 +64,9 @@ class FbItemRenderer : public QQuickFramebufferObject::Renderer { public: FbItemRenderer(bool multisample); - void synchronize(QQuickFramebufferObject *item) Q_DECL_OVERRIDE; - void render() Q_DECL_OVERRIDE; - QOpenGLFramebufferObject *createFramebufferObject(const QSize &size) Q_DECL_OVERRIDE; + void synchronize(QQuickFramebufferObject *item) override; + void render() override; + QOpenGLFramebufferObject *createFramebufferObject(const QSize &size) override; private: void ensureInit(); @@ -115,7 +115,7 @@ class FbItem : public QQuickFramebufferObject public: explicit FbItem(QQuickItem *parent = 0); - QQuickFramebufferObject::Renderer *createRenderer() const Q_DECL_OVERRIDE; + QQuickFramebufferObject::Renderer *createRenderer() const override; QVector3D eye() const { return m_eye; } void setEye(const QVector3D &v); diff --git a/examples/quick/rendercontrol/window_multithreaded.cpp b/examples/quick/rendercontrol/window_multithreaded.cpp index 7e9db36776..ac82847dbf 100644 --- a/examples/quick/rendercontrol/window_multithreaded.cpp +++ b/examples/quick/rendercontrol/window_multithreaded.cpp @@ -227,14 +227,14 @@ class RenderControl : public QQuickRenderControl { public: RenderControl(QWindow *w) : m_window(w) { } - QWindow *renderWindow(QPoint *offset) Q_DECL_OVERRIDE; + QWindow *renderWindow(QPoint *offset) override; private: QWindow *m_window; }; WindowMultiThreaded::WindowMultiThreaded() - : m_qmlComponent(Q_NULLPTR), + : m_qmlComponent(nullptr), m_rootItem(0), m_quickInitialized(false), m_psrRequested(false) diff --git a/examples/quick/rendercontrol/window_multithreaded.h b/examples/quick/rendercontrol/window_multithreaded.h index 71ce136500..ded80a0064 100644 --- a/examples/quick/rendercontrol/window_multithreaded.h +++ b/examples/quick/rendercontrol/window_multithreaded.h @@ -92,7 +92,7 @@ public: void aboutToQuit(); private: - bool event(QEvent *e) Q_DECL_OVERRIDE; + bool event(QEvent *e) override; void init(); void cleanup(); void ensureFbo(); @@ -120,11 +120,11 @@ public: ~WindowMultiThreaded(); protected: - void exposeEvent(QExposeEvent *e) Q_DECL_OVERRIDE; - void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE; - bool event(QEvent *e) Q_DECL_OVERRIDE; + void exposeEvent(QExposeEvent *e) override; + void resizeEvent(QResizeEvent *e) override; + void mousePressEvent(QMouseEvent *e) override; + void mouseReleaseEvent(QMouseEvent *e) override; + bool event(QEvent *e) override; private slots: void run(); diff --git a/examples/quick/rendercontrol/window_singlethreaded.cpp b/examples/quick/rendercontrol/window_singlethreaded.cpp index 7a7b4f57e9..d0bf0adad4 100644 --- a/examples/quick/rendercontrol/window_singlethreaded.cpp +++ b/examples/quick/rendercontrol/window_singlethreaded.cpp @@ -70,7 +70,7 @@ class RenderControl : public QQuickRenderControl { public: RenderControl(QWindow *w) : m_window(w) { } - QWindow *renderWindow(QPoint *offset) Q_DECL_OVERRIDE; + QWindow *renderWindow(QPoint *offset) override; private: QWindow *m_window; diff --git a/examples/quick/rendercontrol/window_singlethreaded.h b/examples/quick/rendercontrol/window_singlethreaded.h index 8ec64eb6f5..44b79d9f51 100644 --- a/examples/quick/rendercontrol/window_singlethreaded.h +++ b/examples/quick/rendercontrol/window_singlethreaded.h @@ -75,10 +75,10 @@ public: ~WindowSingleThreaded(); protected: - void exposeEvent(QExposeEvent *e) Q_DECL_OVERRIDE; - void resizeEvent(QResizeEvent *e) Q_DECL_OVERRIDE; - void mousePressEvent(QMouseEvent *e) Q_DECL_OVERRIDE; - void mouseReleaseEvent(QMouseEvent *e) Q_DECL_OVERRIDE; + void exposeEvent(QExposeEvent *e) override; + void resizeEvent(QResizeEvent *e) override; + void mousePressEvent(QMouseEvent *e) override; + void mouseReleaseEvent(QMouseEvent *e) override; private slots: void run(); diff --git a/examples/quick/shapes/content/item11.qml b/examples/quick/shapes/content/item11.qml index 0cfe73d5c9..bdd08339e3 100644 --- a/examples/quick/shapes/content/item11.qml +++ b/examples/quick/shapes/content/item11.qml @@ -48,7 +48,7 @@ ** ****************************************************************************/ -import QtQuick 2.9 +import QtQuick 2.11 import QtQuick.Shapes 1.0 Rectangle { @@ -100,11 +100,15 @@ Rectangle { strokeWidth: 20 capStyle: ShapePath.RoundCap - startX: 20; startY: 50 - PathArc { - x: 20; y: 90 + PathAngleArc { + centerX: 65; centerY: 95 radiusX: 45; radiusY: 45 - useLargeArc: true + startAngle: -180 + SequentialAnimation on sweepAngle { + loops: Animation.Infinite + NumberAnimation { to: 360; duration: 2000 } + NumberAnimation { to: 0; duration: 2000 } + } } } } diff --git a/examples/quick/shapes/content/shapegallery.qml b/examples/quick/shapes/content/shapegallery.qml index 4096743833..86445e25c2 100644 --- a/examples/quick/shapes/content/shapegallery.qml +++ b/examples/quick/shapes/content/shapegallery.qml @@ -68,7 +68,7 @@ Rectangle { id: pathGalleryModel ListElement { name: "Stroke and fill" - shapeUrl: "item1.qml" + shapeUrl: "tapableTriangle.qml" } ListElement { name: "Stroke or fill only" diff --git a/examples/quick/shapes/content/item1.qml b/examples/quick/shapes/content/tapableTriangle.qml index 9328979324..274552f525 100644 --- a/examples/quick/shapes/content/item1.qml +++ b/examples/quick/shapes/content/tapableTriangle.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtQuick module of the Qt Toolkit. @@ -48,15 +48,22 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Shapes 1.0 +import QtQuick 2.11 +import QtQuick.Shapes 1.11 +import Qt.labs.handlers 1.0 Rectangle { - color: "lightGray" + width: 120 + height: 120 + color: th.pressed ? "steelBlue" : "lightGray" + containsMask: ctr + + TapHandler { id: th } Shape { id: ctr anchors.fill: parent + containsMode: Shape.FillContains ShapePath { strokeColor: "red" diff --git a/examples/quick/shapes/content/tiger.qml b/examples/quick/shapes/content/tiger.qml index 50cb103d50..7fa6ca2706 100644 --- a/examples/quick/shapes/content/tiger.qml +++ b/examples/quick/shapes/content/tiger.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtQuick module of the Qt Toolkit. @@ -48,13 +48,13 @@ ** ****************************************************************************/ -import QtQuick 2.9 -import QtQuick.Shapes 1.0 +import QtQuick 2.11 +import QtQuick.Shapes 1.11 +import Qt.labs.handlers 1.0 Shape { asynchronous: true - - anchors.fill: parent + width: 494; height: 510 ShapePath { fillColor: "#ffffff" @@ -3616,4 +3616,100 @@ Shape { PathMove { x: 20.5; y: 344.5 } PathCubic { control1X: 20.5; control1Y: 344.5; control2X: 22; control2Y: 333.5; x: 10.5; y: 346.5 } } + + Shape { + x: -184; y: -144; width: parent.width; height: parent.height + opacity: tapHandler.pressed ? 1 : 0 + containsMode: Shape.FillContains + + TapHandler { id: tapHandler } + + ShapePath { + strokeColor: "red" + strokeWidth: 4 + fillColor: "transparent" + PathSvg { path: "m 325.03711,0.5 + c -26.61408,6.4494547 -49.95197,2.1018066 -76.21132,1.0771669 + -22.26577,7.6817151 -47.96405,9.3627181 -65.67832,25.8497861 + -15.74718,12.80008 -41.1564,19.605644 -45.74903,40.600391 + -12.46933,17.76181 -25.36105,35.720146 -29.20117,57.999996 + -18.709864,3.10961 -16.347355,30.83801 -22.385143,46.675 + -6.848711,11.2677 11.07278,24.69174 -8.514666,27.97383 + -10.266901,5.61543 -12.859313,28.96588 -13.732346,5.78143 + 0.940083,-11.53398 -13.486195,-38.30626 -16.81701,-34.20231 + 14.608079,7.8234 21.299281,50.52979 11.380052,48.14418 + -3.406456,-15.12428 -26.181106,-38.29457 -31.849471,-35.62945 + 16.851912,6.41472 35.569884,31.75215 28.172486,47.93115 + -7.906485,-15.42757 -37.758959,-35.53783 -44.275447,-31.28685 + 18.975831,1.7428 37.986009,20.68109 42.87115,37.14427 C + 42.279655,225.774 9.879724,213.57795 4.7080253,219.04989 + 20.780803,212.57418 55.055919,239.88547 49.602579,241.25683 + 38.186641,230.40078 6.6930104,222.77983 2.5752529,228.41774 c + 13.6045481,-8.33065 49.4437901,14.89041 43.5525671,14.2358 + -9.759981,-7.96123 -43.5842921,7.36937 -17.554974,-1.20248 + 9.464499,-3.73452 40.555672,12.80659 16.398749,5.14121 + -9.1987,-7.28225 -39.0013156,3.37352 -14.121965,-2.12828 + 13.244874,-0.0206 35.758428,14.62706 10.562447,6.42228 + -10.780465,-8.4873 -47.8282254,11.10651 -21.027329,-0.003 + 11.640859,-4.82877 52.615601,10.74471 24.234828,8.2659 + -10.695834,-7.03902 -42.9384162,8.93905 -34.227854,5.58373 + 9.077539,-8.56443 49.068801,-5.28097 43.06838,0.45546 + -10.900893,-0.7118 -27.449619,17.27258 -10.00187,3.46526 + 15.705191,-9.18198 18.344231,9.31645 1.10807,8.73907 + -9.908444,1.77856 -21.108189,20.66671 -7.974821,4.92019 + 15.750746,-14.10374 34.01348,2.07267 9.796961,8.69337 + -8.17128,5.49929 -12.642664,19.13654 -3.994573,4.19708 + 9.044753,-8.7077 23.850399,-13.64552 21.404959,4.02329 + 12.509737,17.12562 51.158782,11.0442 45.106112,43.34009 + -0.65006,10.05318 -3.79228,13.95389 1.62128,14.30064 + -4.30913,8.82737 -14.652714,37.9591 2.92144,17.46024 + 7.37972,-3.68333 -7.62399,16.24161 -7.98007,23.83761 + -9.336865,18.77418 19.74873,-18.55943 6.62229,5.46195 + 5.46464,-3.7389 36.23886,-19.41901 14.78167,0.58987 + -8.59505,4.55644 29.29441,-2.99423 8.95489,6.47134 -9.22562,5.54437 + -24.09765,26.79976 -11.73274,22.20385 -0.81685,5.4936 + -1.58629,21.47626 2.34158,9.14886 1.61237,14.67029 + -2.38384,25.22225 12.26908,15.1741 -4.40761,8.01039 + -8.23679,36.91214 5.12235,17.92578 1.53454,2.99551 9.37569,3.1726 + 7.15304,14.93579 3.51234,-11.31873 18.4607,-29.83809 + 12.36869,-6.48005 -0.22629,16.26174 5.44303,-7.24791 + 6.56926,10.49819 12.45412,28.9931 3.40908,-41.89883 + 17.52051,-9.19238 3.23093,11.1924 6.53006,29.46941 7.55984,5.1249 + 15.37236,-19.52583 4.09776,20.07416 12.64063,1.48215 + 18.11247,-24.55068 -8.92586,38.39355 6.73828,6.62225 + 4.55353,-6.91007 15.35028,-38.88977 12.55806,-13.78666 + 1.05309,27.02664 11.54743,-24.40259 12.40657,6.86306 + -1.72561,13.28253 11.85393,-24.15909 13.85568,-1.38002 + 3.12455,8.33539 8.76536,26.46432 8.73882,5.09231 3.57025,-10.37352 + -16.025,-37.75672 0.20707,-22.5788 -1.2458,-14.17213 + -2.38918,-16.90145 10.85489,-6.71468 -16.57629,-17.22152 + 0.19706,-26.08949 5.7751,-19.14889 -14.91681,-16.1674 + 19.74174,7.19334 2.31875,-9.86869 -4.32508,-15.23278 + 27.25228,29.12341 20.27514,18.81172 -11.97527,-18.92603 + -17.96305,-45.80333 11.70099,-51.52566 17.19069,-9.57351 + 31.17452,21.93154 38.50541,1.56304 16.26048,-4.6633 + 22.3749,38.26516 24.86349,9.11316 5.94153,-9.9731 30.14313,6.97379 + 36.34294,4.75012 7.07435,18.27732 8.06778,14.78971 11.04264,3.86016 + 2.73754,-15.85945 28.7269,10.06391 28.09146,25.96561 3.00672,2.4754 + 6.55025,-22.10264 11.23552,-14.43872 2.84155,-11.4823 + -3.28976,-27.88574 4.24895,-25.5189 -0.61494,-11.53957 + 22.83611,0.11011 10.64648,-15.28756 -6.5587,-21.38598 + 9.32959,-3.0159 13.5107,-4.69375 -1.38592,-16.74533 + -8.66673,-31.83316 -1.90087,-41.0875 2.39623,-15.14303 + -12.50533,-44.45478 -4.70573,-48.49375 15.08472,3.42779 + -20.39159,-42.17451 -1.69776,-40.85728 24.07272,21.63552 + -3.65989,-30.10299 2.27233,-33.17152 16.90643,17.53071 + -12.7383,-38.42821 6.79531,-21.57013 -4.50946,-21.08135 + -2.53357,-37.43561 -15.5535,-55.59527 -11.0035,-12.40086 + -1.87775,-7.12745 1.34831,-8.11755 C 468.27562,118.9774 + 451.40746,102.656 430.98897,92.119168 439.06192,78.203836 + 455.88012,60.123881 457.38638,40.337815 463.2373,23.183067 + 450.82861,4.7342783 435.04883,22.626367 409.5188,28.206712 + 386.3569,24.131269 365.63904,8.0954152 352.788,2.8857182 + 338.88892,0.40735091 325.03711,0.5 Z m -219.0625,357.04297 + -0.97656,0.88476 z" + } + } + } } + diff --git a/examples/quick/shapes/shapes.pro b/examples/quick/shapes/shapes.pro index c28359b13c..ff6fa422fb 100644 --- a/examples/quick/shapes/shapes.pro +++ b/examples/quick/shapes/shapes.pro @@ -9,7 +9,7 @@ OTHER_FILES += content/main.qml \ content/sampling.qml \ content/clippedtigers.qml \ content/tiger.qml \ - content/item1.qml \ + content/tapableTriangle.qml \ content/item2.qml \ content/item3.qml \ content/item4.qml \ diff --git a/examples/quick/shapes/shapes.qrc b/examples/quick/shapes/shapes.qrc index 5a0edd9f8f..e03c0e8a0a 100644 --- a/examples/quick/shapes/shapes.qrc +++ b/examples/quick/shapes/shapes.qrc @@ -12,7 +12,7 @@ <file alias="sampling.qml">content/sampling.qml</file> <file alias="clippedtigers.qml">content/clippedtigers.qml</file> <file alias="tiger.qml">content/tiger.qml</file> - <file alias="item1.qml">content/item1.qml</file> + <file alias="tapableTriangle.qml">content/tapableTriangle.qml</file> <file alias="item2.qml">content/item2.qml</file> <file alias="item3.qml">content/item3.qml</file> <file alias="item4.qml">content/item4.qml</file> |