diff options
Diffstat (limited to 'tests/auto/quickcontrols2/qquickiconimage')
31 files changed, 0 insertions, 1366 deletions
diff --git a/tests/auto/quickcontrols2/qquickiconimage/CMakeLists.txt b/tests/auto/quickcontrols2/qquickiconimage/CMakeLists.txt deleted file mode 100644 index d6ce5fd2..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/CMakeLists.txt +++ /dev/null @@ -1,85 +0,0 @@ -# Generated from qquickiconimage.pro. - -##################################################################### -## tst_qquickiconimage Test: -##################################################################### - -# Collect test data -file(GLOB_RECURSE test_data_glob - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/data/*.qml) -list(APPEND test_data ${test_data_glob}) -file(GLOB_RECURSE test_data_glob - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/data/icons/*) -list(APPEND test_data ${test_data_glob}) - -qt_internal_add_test(tst_qquickiconimage - SOURCES - ../shared/qtest_quickcontrols.h - ../shared/util.cpp ../shared/util.h - ../shared/visualtestutil.cpp ../shared/visualtestutil.h - tst_qquickiconimage.cpp - DEFINES - QQC2_IMPORT_PATH=\\\"${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/quickcontrols2\\\" - LIBRARIES - Qt::QuickControls2ImplPrivate - Qt::QuickPrivate - PUBLIC_LIBRARIES - Qt::CorePrivate - Qt::Gui - Qt::GuiPrivate - Qt::Qml - Qt::QmlPrivate - Qt::Quick - Qt::QuickControls2 - Qt::QuickControls2Private - Qt::QuickPrivate - Qt::QuickTemplates2Private - Qt::QuickTest - Qt::TestPrivate - TESTDATA ${test_data} -) - -# Resources: -set(resources_resource_files - "icons/testtheme/16x16/actions/appointment-new.png" - "icons/testtheme/22x22/actions/+testselector/appointment-new.png" - "icons/testtheme/22x22/actions/+testselector/[email protected]" - "icons/testtheme/22x22/actions/appointment-new.png" - "icons/testtheme/22x22/actions/[email protected]" - "icons/testtheme/22x22/actions/color-test-original.png" - "icons/testtheme/22x22/actions/[email protected]" - "icons/testtheme/22x22/actions/color-test-tinted.png" - "icons/testtheme/22x22/actions/[email protected]" - "icons/testtheme/22x22@2/actions/+testselector/appointment-new.png" - "icons/testtheme/22x22@2/actions/appointment-new.png" - "icons/testtheme/appointment-new.svg" - "icons/testtheme/index.theme" -) - -qt_internal_add_resource(tst_qquickiconimage "resources" - PREFIX - "/" - FILES - ${resources_resource_files} -) - - -## Scopes: -##################################################################### - -qt_internal_extend_target(tst_qquickiconimage CONDITION TARGET Qt::Svg - PUBLIC_LIBRARIES - Qt::Svg -) - -qt_internal_extend_target(tst_qquickiconimage CONDITION ANDROID OR IOS - DEFINES - QT_QMLTEST_DATADIR=\\\":/data\\\" -) - -qt_internal_extend_target(tst_qquickiconimage CONDITION NOT ANDROID AND NOT IOS - DEFINES - QT_QMLTEST_DATADIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\" -) diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/alignment.qml b/tests/auto/quickcontrols2/qquickiconimage/data/alignment.qml deleted file mode 100644 index e6861520..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/alignment.qml +++ /dev/null @@ -1,16 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - name: "appointment-new" - sourceSize: Qt.size(22, 22) - } - Image { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/color.qml b/tests/auto/quickcontrols2/qquickiconimage/data/color.qml deleted file mode 100644 index b44b4388..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/color.qml +++ /dev/null @@ -1,18 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - source: "qrc:/icons/testtheme/22x22/actions/color-test-original.png" - sourceSize: Qt.size(22, 22) - color: "red" - } - Image { - source: "qrc:/icons/testtheme/22x22/actions/color-test-tinted.png" - fillMode: Image.Pad - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/fileSelectors.qml b/tests/auto/quickcontrols2/qquickiconimage/data/fileSelectors.qml deleted file mode 100644 index e6861520..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/fileSelectors.qml +++ /dev/null @@ -1,16 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - name: "appointment-new" - sourceSize: Qt.size(22, 22) - } - Image { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/imageProvider.qml b/tests/auto/quickcontrols2/qquickiconimage/data/imageProvider.qml deleted file mode 100644 index 9b18a99e..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/imageProvider.qml +++ /dev/null @@ -1,9 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl -import QtQuick.Templates as T - -IconLabel { - icon.color: "transparent" - icon.source: "image://provider/red" -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingNoSizes.qml b/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingNoSizes.qml deleted file mode 100644 index d457d205..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingNoSizes.qml +++ /dev/null @@ -1,7 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -IconImage { - name: "appointment-new" -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingSourceSize.qml b/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingSourceSize.qml deleted file mode 100644 index e6861520..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingSourceSize.qml +++ /dev/null @@ -1,16 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - name: "appointment-new" - sourceSize: Qt.size(22, 22) - } - Image { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingSourceSizeWidthHeight.qml b/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingSourceSizeWidthHeight.qml deleted file mode 100644 index 5e7ebefc..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/nameBindingSourceSizeWidthHeight.qml +++ /dev/null @@ -1,10 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -IconImage { - name: "appointment-new" - sourceSize: Qt.size(22, 22) - width: 16 - height: 16 -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/root.qml b/tests/auto/quickcontrols2/qquickiconimage/data/root.qml deleted file mode 100644 index ed02d2df..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/root.qml +++ /dev/null @@ -1,6 +0,0 @@ -import QtQuick - -Item { - width: 200 - height: 200 -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingNoSizes.qml b/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingNoSizes.qml deleted file mode 100644 index 34fc6b33..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingNoSizes.qml +++ /dev/null @@ -1,15 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - } - Image { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceSize.qml b/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceSize.qml deleted file mode 100644 index 9f1b6290..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceSize.qml +++ /dev/null @@ -1,16 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - sourceSize: Qt.size(22, 22) - } - Image { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceSizeWidthHeight.qml b/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceSizeWidthHeight.qml deleted file mode 100644 index 4dc3ac75..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceSizeWidthHeight.qml +++ /dev/null @@ -1,10 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -IconImage { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - sourceSize: Qt.size(22, 22) - width: 16 - height: 16 -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceTooLarge.qml b/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceTooLarge.qml deleted file mode 100644 index a54d998a..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/sourceBindingSourceTooLarge.qml +++ /dev/null @@ -1,8 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -IconImage { - source: "qrc:/icons/testtheme/22x22/actions/appointment-new.png" - sourceSize: Qt.size(32, 32) -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/svgNoSizes.qml b/tests/auto/quickcontrols2/qquickiconimage/data/svgNoSizes.qml deleted file mode 100644 index e29c23c5..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/svgNoSizes.qml +++ /dev/null @@ -1,15 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - source: "qrc:/icons/testtheme/appointment-new.svg" - } - Image { - source: "qrc:/icons/testtheme/appointment-new.svg" - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/svgSourceBindingSourceSize.qml b/tests/auto/quickcontrols2/qquickiconimage/data/svgSourceBindingSourceSize.qml deleted file mode 100644 index 4674e8f1..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/svgSourceBindingSourceSize.qml +++ /dev/null @@ -1,17 +0,0 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl - -Row { - width: 200 - height: 200 - - IconImage { - source: "qrc:/data/icons/testtheme/appointment-new.svg" - sourceSize: Qt.size(22, 22) - } - Image { - source: "qrc:/data/icons/testtheme/appointment-new.svg" - sourceSize: Qt.size(22, 22) - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/data/translucentColors.qml b/tests/auto/quickcontrols2/qquickiconimage/data/translucentColors.qml deleted file mode 100644 index ad67bfe5..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/data/translucentColors.qml +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite 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 -import QtQuick.Controls -import QtQuick.Controls.impl - -ApplicationWindow { - width: 500 - height: 500 - visible: true - - IconImage { - width: Math.min(250, parent.width) - height: Math.min(250, parent.height) - source: "qrc:/icons/testtheme/22x22/actions/color-test-original.png" - sourceSize: Qt.size(250, 0) - color: Qt.rgba(0, 0, 0, 0.5) - } -} diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/16x16/actions/appointment-new.png b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/16x16/actions/appointment-new.png Binary files differdeleted file mode 100644 index 4356af95..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/16x16/actions/appointment-new.png +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/+testselector/appointment-new.png b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/+testselector/appointment-new.png Binary files differdeleted file mode 100644 index d3134a55..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/+testselector/appointment-new.png +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/+testselector/[email protected] b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/+testselector/[email protected] Binary files differdeleted file mode 100644 index 250b94b0..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/+testselector/[email protected] +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/appointment-new.png b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/appointment-new.png Binary files differdeleted file mode 100644 index 04cd010a..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/appointment-new.png +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] Binary files differdeleted file mode 100644 index a63bbaf4..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/color-test-original.png b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/color-test-original.png Binary files differdeleted file mode 100644 index c17d1664..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/color-test-original.png +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] Binary files differdeleted file mode 100644 index d4411658..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/color-test-tinted.png b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/color-test-tinted.png Binary files differdeleted file mode 100644 index 6f7938e3..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/color-test-tinted.png +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] Binary files differdeleted file mode 100644 index 9215fc42..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22/actions/[email protected] +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22@2/actions/+testselector/appointment-new.png b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22@2/actions/+testselector/appointment-new.png Binary files differdeleted file mode 100644 index 250b94b0..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22@2/actions/+testselector/appointment-new.png +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22@2/actions/appointment-new.png b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22@2/actions/appointment-new.png Binary files differdeleted file mode 100644 index a63bbaf4..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/22x22@2/actions/appointment-new.png +++ /dev/null diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/appointment-new.svg b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/appointment-new.svg deleted file mode 100644 index 4cb14f82..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/appointment-new.svg +++ /dev/null @@ -1,425 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - inkscape:export-ydpi="90.000000" - inkscape:export-xdpi="90.000000" - inkscape:export-filename="/home/jimmac/Desktop/wi-fi.png" - width="48px" - height="48px" - id="svg11300" - sodipodi:version="0.32" - inkscape:version="0.46" - sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/actions" - sodipodi:docname="appointment-new.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape"> - <defs - id="defs3"> - <inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 24 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="48 : 24 : 1" - inkscape:persp3d-origin="24 : 16 : 1" - id="perspective59" /> - <linearGradient - inkscape:collect="always" - id="linearGradient5204"> - <stop - style="stop-color:#c4a000;stop-opacity:1;" - offset="0" - id="stop5206" /> - <stop - style="stop-color:#c4a000;stop-opacity:0;" - offset="1" - id="stop5208" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient5196"> - <stop - style="stop-color:#c4a000;stop-opacity:1;" - offset="0" - id="stop5198" /> - <stop - style="stop-color:#c4a000;stop-opacity:0;" - offset="1" - id="stop5200" /> - </linearGradient> - <linearGradient - id="linearGradient12512"> - <stop - style="stop-color:#ffffff;stop-opacity:1.0000000;" - offset="0.0000000" - id="stop12513" /> - <stop - style="stop-color:#fff520;stop-opacity:0.89108908;" - offset="0.50000000" - id="stop12517" /> - <stop - style="stop-color:#fff300;stop-opacity:0.0000000;" - offset="1.0000000" - id="stop12514" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient12512" - id="radialGradient278" - gradientUnits="userSpaceOnUse" - cx="55.000000" - cy="125.00000" - fx="55.000000" - fy="125.00000" - r="14.375000" /> - <linearGradient - id="linearGradient10653"> - <stop - style="stop-color:#f3f4ff;stop-opacity:1.0000000;" - offset="0.0000000" - id="stop10655" /> - <stop - style="stop-color:#9193af;stop-opacity:1.0000000;" - offset="1.0000000" - id="stop10657" /> - </linearGradient> - <linearGradient - id="linearGradient42174"> - <stop - style="stop-color:#a0a0a0;stop-opacity:1.0000000;" - offset="0.0000000" - id="stop42176" /> - <stop - style="stop-color:#ffffff;stop-opacity:1.0000000;" - offset="1.0000000" - id="stop42178" /> - </linearGradient> - <linearGradient - id="linearGradient2145"> - <stop - style="stop-color:#fffffd;stop-opacity:1.0000000;" - offset="0.0000000" - id="stop2147" /> - <stop - style="stop-color:#cbcbc9;stop-opacity:1.0000000;" - offset="1.0000000" - id="stop2149" /> - </linearGradient> - <linearGradient - id="linearGradient37935"> - <stop - id="stop37937" - offset="0.0000000" - style="stop-color:#9497b3;stop-opacity:1.0000000;" /> - <stop - id="stop37939" - offset="1.0000000" - style="stop-color:#4c4059;stop-opacity:1.0000000;" /> - </linearGradient> - <linearGradient - id="linearGradient2152"> - <stop - id="stop2154" - offset="0.0000000" - style="stop-color:#9aa29a;stop-opacity:1.0000000;" /> - <stop - id="stop2156" - offset="1.0000000" - style="stop-color:#b5beb5;stop-opacity:1.0000000;" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient3816"> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop3818" /> - <stop - style="stop-color:#000000;stop-opacity:0;" - offset="1" - id="stop3820" /> - </linearGradient> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient3816" - id="radialGradient3822" - cx="31.112698" - cy="19.008621" - fx="31.112698" - fy="19.008621" - r="8.6620579" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient2152" - id="linearGradient4307" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(3.123841,0.000000,0.000000,0.969691,-31.88758,-19.59492)" - x1="8.9156475" - y1="37.197018" - x2="9.8855033" - y2="52.090678" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient10653" - id="radialGradient4309" - gradientUnits="userSpaceOnUse" - cx="11.329200" - cy="10.583970" - fx="11.329200" - fy="10.583970" - r="15.532059" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient2145" - id="radialGradient4311" - gradientUnits="userSpaceOnUse" - cx="11.901996" - cy="10.045444" - fx="11.901996" - fy="10.045444" - r="29.292715" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient42174" - id="linearGradient4313" - gradientUnits="userSpaceOnUse" - x1="6.3422160" - y1="7.7893324" - x2="22.218424" - y2="25.884274" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient5196" - id="radialGradient5202" - cx="23.375" - cy="10.972863" - fx="23.375" - fy="10.972863" - r="3.3478092" - gradientTransform="matrix(3.630420,1.654030e-15,-1.608743e-15,3.742066,-61.48607,-29.18618)" - gradientUnits="userSpaceOnUse" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient5204" - id="linearGradient5210" - x1="19.667364" - y1="4.2570662" - x2="20.329933" - y2="5.2845874" - gradientUnits="userSpaceOnUse" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient37935" - id="radialGradient5212" - gradientUnits="userSpaceOnUse" - cx="8.7468252" - cy="6.8283234" - fx="8.7468252" - fy="6.8283234" - r="29.889715" /> - </defs> - <sodipodi:namedview - stroke="#c4a000" - fill="#babdb6" - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="0.25490196" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="11.313708" - inkscape:cx="13.2248" - inkscape:cy="25.106052" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:grid-bbox="true" - inkscape:document-units="px" - inkscape:showpageshadow="false" - inkscape:window-width="833" - inkscape:window-height="772" - inkscape:window-x="305" - inkscape:window-y="76" /> - <metadata - id="metadata4"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:creator> - <cc:Agent> - <dc:title>Jakub Steiner</dc:title> - </cc:Agent> - </dc:creator> - <dc:source>http://jimmac.musichall.cz</dc:source> - <cc:license - rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> - <dc:title>New Appointment</dc:title> - <dc:subject> - <rdf:Bag> - <rdf:li>appointment</rdf:li> - <rdf:li>new</rdf:li> - <rdf:li>meeting</rdf:li> - <rdf:li>rvsp</rdf:li> - </rdf:Bag> - </dc:subject> - </cc:Work> - <cc:License - rdf:about="http://creativecommons.org/licenses/publicdomain/"> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Reproduction" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#Distribution" /> - <cc:permits - rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> - </cc:License> - </rdf:RDF> - </metadata> - <g - id="layer1" - inkscape:label="Layer 1" - inkscape:groupmode="layer"> - <path - d="M 39.774755 19.008621 A 8.6620579 8.6620579 0 1 1 22.45064,19.008621 A 8.6620579 8.6620579 0 1 1 39.774755 19.008621 z" - sodipodi:ry="8.6620579" - sodipodi:rx="8.6620579" - sodipodi:cy="19.008621" - sodipodi:cx="31.112698" - id="path4318" - style="opacity:1;color:#000000;fill:url(#radialGradient3822);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - sodipodi:type="arc" - transform="matrix(2.563158,0.000000,0.000000,1.219602,-55.98414,14.04144)" /> - <path - sodipodi:nodetypes="cccc" - id="path14341" - d="M 18.587591,1.403729 L 4.226755,18.096665 L 5.4854717,19.339844 L 18.587591,1.403729 z " - style="color:#000000;fill:url(#linearGradient4307);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> - <path - sodipodi:nodetypes="cccc" - id="path18921" - d="M 18.467176,1.3138035 L 5.6605716,19.072612 L 7.4900985,20.687913 L 18.467176,1.3138035 z " - style="fill:#fefefe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" /> - <path - transform="matrix(1.431529,0.000000,0.000000,1.431529,0.569459,-1.654618)" - d="M 31.160714 16.910715 A 14.910714 14.910714 0 1 1 1.3392859,16.910715 A 14.910714 14.910714 0 1 1 31.160714 16.910715 z" - sodipodi:ry="14.910714" - sodipodi:rx="14.910714" - sodipodi:cy="16.910715" - sodipodi:cx="16.25" - id="path27786" - style="fill:url(#radialGradient5212);fill-opacity:1;fill-rule:evenodd;stroke:#605773;stroke-width:0.69855404;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(1.163838,0.000000,0.000000,1.163838,4.824801,2.777556)" - d="M 31.160714 16.910715 A 14.910714 14.910714 0 1 1 1.3392859,16.910715 A 14.910714 14.910714 0 1 1 31.160714 16.910715 z" - sodipodi:ry="14.910714" - sodipodi:rx="14.910714" - sodipodi:cy="16.910715" - sodipodi:cx="16.25" - id="path35549" - style="fill:url(#radialGradient4311);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4313);stroke-width:0.71139598;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="opacity:1;color:#000000;fill:url(#radialGradient5202);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5210);stroke-width:0.56498736;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" - id="path4120" - sodipodi:cx="23.375" - sodipodi:cy="11.875" - sodipodi:rx="8.5" - sodipodi:ry="8.5" - d="M 16.679382,6.6387137 A 8.5,8.5 0 0 1 23.332691,3.3751053 L 23.375,11.875 z" - transform="matrix(1.769951,0.000000,0.000000,1.769951,-17.02424,1.610741)" - sodipodi:start="3.8052902" - sodipodi:end="4.7074114" /> - <path - transform="matrix(2.073295,0.000000,0.000000,2.073295,-7.310224,-13.13682)" - d="M 16.40625 17.28125 A 1.21875 1.21875 0 1 1 13.96875,17.28125 A 1.21875 1.21875 0 1 1 16.40625 17.28125 z" - sodipodi:ry="1.21875" - sodipodi:rx="1.21875" - sodipodi:cy="17.28125" - sodipodi:cx="15.1875" - id="path34778" - style="fill:#f3f3f3;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.48232403;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;stroke-dasharray:none" - sodipodi:type="arc" /> - <path - id="path35559" - d="M 22.176614,20.718014 L 13.155702,13.140282" - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /> - <path - id="path35561" - d="M 19.408614,29.776506 L 22.368655,25.283228" - style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - sodipodi:nodetypes="cc" /> - <path - transform="matrix(2.749493,0.000000,0.000000,2.749493,-22.30073,-12.40939)" - d="M 17.324117 7.6932044 A 0.61871845 0.61871845 0 1 1 16.08668,7.6932044 A 0.61871845 0.61871845 0 1 1 17.324117 7.6932044 z" - sodipodi:ry="0.61871845" - sodipodi:rx="0.61871845" - sodipodi:cy="7.6932044" - sodipodi:cx="16.705399" - id="path35563" - style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.36871839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(2.749493,0.000000,0.000000,2.749493,-22.30073,14.80922)" - d="M 17.324117 7.6932044 A 0.61871845 0.61871845 0 1 1 16.08668,7.6932044 A 0.61871845 0.61871845 0 1 1 17.324117 7.6932044 z" - sodipodi:ry="0.61871845" - sodipodi:rx="0.61871845" - sodipodi:cy="7.6932044" - sodipodi:cx="16.705399" - id="path35565" - style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.36871839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(2.749493,0.000000,0.000000,2.749493,-35.91004,1.199890)" - d="M 17.324117 7.6932044 A 0.61871845 0.61871845 0 1 1 16.08668,7.6932044 A 0.61871845 0.61871845 0 1 1 17.324117 7.6932044 z" - sodipodi:ry="0.61871845" - sodipodi:rx="0.61871845" - sodipodi:cy="7.6932044" - sodipodi:cx="16.705399" - id="path35567" - style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.36871839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;opacity:1" - sodipodi:type="arc" /> - <path - transform="matrix(2.749493,0.000000,0.000000,2.749493,-8.691448,1.199890)" - d="M 17.324117 7.6932044 A 0.61871845 0.61871845 0 1 1 16.08668,7.6932044 A 0.61871845 0.61871845 0 1 1 17.324117 7.6932044 z" - sodipodi:ry="0.61871845" - sodipodi:rx="0.61871845" - sodipodi:cy="7.6932044" - sodipodi:cx="16.705399" - id="path35569" - style="fill:#b6b9b1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.36871839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;opacity:1" - sodipodi:type="arc" /> - <path - sodipodi:type="arc" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#radialGradient4309);stroke-width:0.73656511;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" - id="path10651" - sodipodi:cx="16.25" - sodipodi:cy="16.910715" - sodipodi:rx="14.910714" - sodipodi:ry="14.910714" - d="M 31.160714 16.910715 A 14.910714 14.910714 0 1 1 1.3392859,16.910715 A 14.910714 14.910714 0 1 1 31.160714 16.910715 z" - transform="matrix(1.357654,0.000000,0.000000,1.357654,1.769896,-0.493735)" /> - <path - sodipodi:type="arc" - style="color:#000000;fill:url(#radialGradient278);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.25000024;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" - id="path12511" - sodipodi:cx="55" - sodipodi:cy="125" - sodipodi:rx="14.375" - sodipodi:ry="14.375" - d="M 69.375 125 A 14.375 14.375 0 1 1 40.625,125 A 14.375 14.375 0 1 1 69.375 125 z" - transform="matrix(0.611127,0.000000,0.000000,0.611127,5.544052,-66.92818)" - inkscape:export-filename="/home/jimmac/ximian_art/icons/nautilus/suse93/stock_new-16.png" - inkscape:export-xdpi="33.852203" - inkscape:export-ydpi="33.852203" /> - </g> -</svg> diff --git a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/index.theme b/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/index.theme deleted file mode 100644 index 6ab6c15c..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/icons/testtheme/index.theme +++ /dev/null @@ -1,21 +0,0 @@ -[Icon Theme] -Name=Test -Comment=Test Theme - -Directories=16x16/actions,22x22/actions,22x22@2/actions - -[16x16/actions] -Size=16 -Context=Actions -Type=Fixed - -[22x22/actions] -Size=22 -Context=Actions -Type=Fixed - -[22x22@2/actions] -Size=22 -Context=Actions -Scale=2 -Type=Fixed diff --git a/tests/auto/quickcontrols2/qquickiconimage/resources.qrc b/tests/auto/quickcontrols2/qquickiconimage/resources.qrc deleted file mode 100644 index 6558b039..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/resources.qrc +++ /dev/null @@ -1,17 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>icons/testtheme/16x16/actions/appointment-new.png</file> - <file>icons/testtheme/22x22/actions/appointment-new.png</file> - <file>icons/testtheme/22x22/actions/[email protected]</file> - <file>icons/testtheme/22x22@2/actions/appointment-new.png</file> - <file>icons/testtheme/22x22/actions/+testselector/appointment-new.png</file> - <file>icons/testtheme/22x22/actions/+testselector/[email protected]</file> - <file>icons/testtheme/22x22@2/actions/+testselector/appointment-new.png</file> - <file>icons/testtheme/index.theme</file> - <file>icons/testtheme/appointment-new.svg</file> - <file>icons/testtheme/22x22/actions/color-test-original.png</file> - <file>icons/testtheme/22x22/actions/color-test-tinted.png</file> - <file>icons/testtheme/22x22/actions/[email protected]</file> - <file>icons/testtheme/22x22/actions/[email protected]</file> - </qresource> -</RCC> diff --git a/tests/auto/quickcontrols2/qquickiconimage/tst_qquickiconimage.cpp b/tests/auto/quickcontrols2/qquickiconimage/tst_qquickiconimage.cpp deleted file mode 100644 index 475981a2..00000000 --- a/tests/auto/quickcontrols2/qquickiconimage/tst_qquickiconimage.cpp +++ /dev/null @@ -1,572 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <qtest.h> -#include <QtTest/qsignalspy.h> - -#include <QtCore/qmath.h> -#include <QtQml/qqmlapplicationengine.h> -#include <QtQml/qqmlengine.h> -#include <QtQml/qqmlcomponent.h> -#include <QtQml/qqmlfileselector.h> -#include <QtQuick/qquickitem.h> -#include <QtQuick/qquickview.h> -#include <QtQuick/qquickimageprovider.h> -#include <QtQuick/qquickitemgrabresult.h> -#include <QtQuick/private/qquickimage_p.h> -#include <QtQuickControls2Impl/private/qquickiconimage_p.h> - -#include "../shared/util.h" -#include "../shared/visualtestutil.h" - -using namespace QQuickVisualTestUtil; - -class tst_qquickiconimage : public QQmlDataTest -{ - Q_OBJECT -public: - tst_qquickiconimage(); - -private slots: - void initTestCase() override; - void defaults(); - void nameBindingSourceSize(); - void nameBindingSourceSizeWidthHeight(); - void nameBindingNoSizes(); - void sourceBindingNoSizes(); - void sourceBindingSourceSize(); - void sourceBindingSourceSizeWidthHeight(); - void sourceBindingSourceTooLarge(); - void changeSourceSize(); - void alignment_data(); - void alignment(); - void svgNoSizes(); - void svgSourceBindingSourceSize(); - void color(); - void fileSelectors(); - void imageProvider(); - void translucentColors(); - -private: - void setTheme(); - - qreal dpr; - int integerDpr; -}; - -static QImage grabItemToImage(QQuickItem *item) -{ - QSharedPointer<QQuickItemGrabResult> result = item->grabToImage(); - QSignalSpy spy(result.data(), SIGNAL(ready())); - spy.wait(); - return result->image(); -} - -#define SKIP_IF_DPR_TOO_HIGH() \ - if (dpr > 2) \ - QSKIP("Test does not support device pixel ratio greater than 2") - -tst_qquickiconimage::tst_qquickiconimage() : - dpr(qGuiApp->devicePixelRatio()), - integerDpr(qCeil(dpr)) -{ - QQuickStyle::setStyle("Basic"); -} - -void tst_qquickiconimage::initTestCase() -{ - QQmlDataTest::initTestCase(); - QIcon::setThemeName(QStringLiteral("testtheme")); -} - -void tst_qquickiconimage::defaults() -{ - QQuickIconImage iconImage; - QCOMPARE(iconImage.fillMode(), QQuickImage::Pad); - QCOMPARE(iconImage.name(), QString()); - QCOMPARE(iconImage.source(), QUrl()); - QCOMPARE(iconImage.color(), QColor(Qt::transparent)); -} - -void tst_qquickiconimage::nameBindingSourceSize() -{ - // We can't have images for every DPR. - SKIP_IF_DPR_TOO_HIGH(); - - QQuickView view(testFileUrl("nameBindingSourceSize.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickItem *image = view.rootObject()->childItems().at(1); - QVERIFY(image); - - QCOMPARE(grabItemToImage(iconImage), grabItemToImage(image)); - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 22.0); - QCOMPARE(iconImage->width(), 22.0); - QCOMPARE(iconImage->height(), 22.0); - - // The requested width of 16 is less than the pixmap's size on disk which - // is 22x22. Our default fillMode, Pad, would result in the image being clipped, - // so instead we change the fillMode to PreserveAspectFit. Doing so causes - // QQuickImage::updatePaintedGeometry() to set our implicit size to 22x16 to - // ensure that the aspect ratio is respected. Since we have no explicit height, - // the height (previously 22) becomes the implicit height (16). - iconImage->setWidth(16.0); - QCOMPARE(iconImage->fillMode(), QQuickImage::PreserveAspectFit); - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 16.0); - QCOMPARE(iconImage->width(), 16.0); - QCOMPARE(iconImage->height(), 16.0); -} - -void tst_qquickiconimage::nameBindingSourceSizeWidthHeight() -{ - SKIP_IF_DPR_TOO_HIGH(); - - QQuickView view(testFileUrl("nameBindingSourceSizeWidthHeight.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()); - QVERIFY(iconImage); - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 22.0); - QCOMPARE(iconImage->width(), 16.0); - QCOMPARE(iconImage->height(), 16.0); -} - -void tst_qquickiconimage::nameBindingNoSizes() -{ - SKIP_IF_DPR_TOO_HIGH(); - - QQuickView view(testFileUrl("nameBindingNoSizes.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()); - QVERIFY(iconImage); - // The smallest available size will be chosen. - QCOMPARE(iconImage->sourceSize().width(), 16); - QCOMPARE(iconImage->sourceSize().height(), 16); - QCOMPARE(iconImage->implicitWidth(), 16.0); - QCOMPARE(iconImage->implicitHeight(), 16.0); - QCOMPARE(iconImage->width(), 16.0); - QCOMPARE(iconImage->height(), 16.0); -} - -void tst_qquickiconimage::sourceBindingNoSizes() -{ - SKIP_IF_DPR_TOO_HIGH(); - - QQuickView view(testFileUrl("sourceBindingNoSizes.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickItem *image = view.rootObject()->childItems().at(1); - QVERIFY(image); - - QCOMPARE(iconImage->sourceSize().width(), 22 * integerDpr); - QCOMPARE(iconImage->sourceSize().height(), 22 * integerDpr); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 22.0); - QCOMPARE(iconImage->width(), 22.0); - QCOMPARE(iconImage->height(), 22.0); - QCOMPARE(grabItemToImage(iconImage), grabItemToImage(image)); -} - -void tst_qquickiconimage::sourceBindingSourceSize() -{ - SKIP_IF_DPR_TOO_HIGH(); - - QQuickView view(testFileUrl("sourceBindingSourceSize.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickItem *image = view.rootObject()->childItems().at(1); - QVERIFY(image); - - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 22.0); - QCOMPARE(iconImage->width(), 22.0); - QCOMPARE(iconImage->height(), 22.0); - QCOMPARE(grabItemToImage(iconImage), grabItemToImage(image)); - - // Changing width and height should not affect sourceSize. - iconImage->setWidth(50); - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); - iconImage->setHeight(50); - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); -} - -void tst_qquickiconimage::sourceBindingSourceSizeWidthHeight() -{ - SKIP_IF_DPR_TOO_HIGH(); - - QQuickView view(testFileUrl("sourceBindingSourceSizeWidthHeight.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()); - QVERIFY(iconImage); - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 22.0); - QCOMPARE(iconImage->width(), 16.0); - QCOMPARE(iconImage->height(), 16.0); -} - -void tst_qquickiconimage::sourceBindingSourceTooLarge() -{ - SKIP_IF_DPR_TOO_HIGH(); - - QQuickView view(testFileUrl("sourceBindingSourceTooLarge.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()); - QVERIFY(iconImage); - QCOMPARE(iconImage->sourceSize().width(), 32); - QCOMPARE(iconImage->sourceSize().height(), 32); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 22.0); - QCOMPARE(iconImage->width(), 22.0); - QCOMPARE(iconImage->height(), 22.0); -} - -void tst_qquickiconimage::alignment_data() -{ - QTest::addColumn<QQuickImage::HAlignment>("horizontalAlignment"); - QTest::addColumn<QQuickImage::VAlignment>("verticalAlignment"); - - QTest::newRow("AlignLeft,AlignTop") << QQuickImage::AlignLeft << QQuickImage::AlignTop; - QTest::newRow("AlignLeft,AlignVCenter") << QQuickImage::AlignLeft << QQuickImage::AlignVCenter; - QTest::newRow("AlignLeft,AlignBottom") << QQuickImage::AlignLeft << QQuickImage::AlignBottom; - QTest::newRow("AlignHCenter,AlignTop") << QQuickImage::AlignHCenter << QQuickImage::AlignTop; - QTest::newRow("AlignHCenter,AlignVCenter") << QQuickImage::AlignHCenter << QQuickImage::AlignVCenter; - QTest::newRow("AlignHCenter,AlignBottom") << QQuickImage::AlignHCenter << QQuickImage::AlignBottom; - QTest::newRow("AlignRight,AlignTop") << QQuickImage::AlignRight << QQuickImage::AlignTop; - QTest::newRow("AlignRight,AlignVCenter") << QQuickImage::AlignRight << QQuickImage::AlignVCenter; - QTest::newRow("AlignRight,AlignBottom") << QQuickImage::AlignRight << QQuickImage::AlignBottom; -} - -void tst_qquickiconimage::alignment() -{ - SKIP_IF_DPR_TOO_HIGH(); - - QFETCH(QQuickImage::HAlignment, horizontalAlignment); - QFETCH(QQuickImage::VAlignment, verticalAlignment); - - QQuickView view(testFileUrl("alignment.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickImage *image = qobject_cast<QQuickImage*>(view.rootObject()->childItems().at(1)); - QVERIFY(image); - - // The default fillMode for IconImage is Image::Pad, so these two grabs - // should only be equal when the device pixel ratio is 1 or 2, as there is no - // @3x version of the image, and hence the Image will be upscaled - // and therefore blurry when the ratio is higher than 2. - if (qGuiApp->devicePixelRatio() <= 2) - QCOMPARE(grabItemToImage(iconImage), grabItemToImage(image)); - else - QVERIFY(grabItemToImage(iconImage) != grabItemToImage(image)); - - // Check that the images are what we expect in different alignment configurations. - iconImage->setWidth(200); - iconImage->setHeight(100); - iconImage->setHorizontalAlignment(horizontalAlignment); - iconImage->setVerticalAlignment(verticalAlignment); - iconImage->setFillMode(QQuickImage::Pad); - image->setWidth(200); - image->setHeight(100); - image->setHorizontalAlignment(horizontalAlignment); - image->setVerticalAlignment(verticalAlignment); - image->setFillMode(QQuickImage::Pad); - - if (qGuiApp->devicePixelRatio() <= 2) - QCOMPARE(grabItemToImage(iconImage), grabItemToImage(image)); - else - QVERIFY(grabItemToImage(iconImage) != grabItemToImage(image)); -} - -void tst_qquickiconimage::svgNoSizes() -{ -#ifndef QT_SVG_LIB - QSKIP("This test requires qtsvg"); -#else - QQuickView view(testFileUrl("svgNoSizes.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickImage *image = qobject_cast<QQuickImage*>(view.rootObject()->childItems().at(1)); - QVERIFY(image); - - QCOMPARE(iconImage->sourceSize().width(), 48); - QCOMPARE(iconImage->sourceSize().height(), 48); - QCOMPARE(iconImage->implicitWidth(), 48.0); - QCOMPARE(iconImage->implicitHeight(), 48.0); - QCOMPARE(iconImage->width(), 48.0); - QCOMPARE(iconImage->height(), 48.0); - QCOMPARE(grabItemToImage(iconImage), grabItemToImage(image)); -#endif -} - -void tst_qquickiconimage::svgSourceBindingSourceSize() -{ -#ifndef QT_SVG_LIB - QSKIP("This test requires qtsvg"); -#else - QQuickView view(testFileUrl("alignment.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickImage *image = qobject_cast<QQuickImage*>(view.rootObject()->childItems().at(1)); - QVERIFY(image); - - QCOMPARE(iconImage->sourceSize().width(), 22); - QCOMPARE(iconImage->sourceSize().height(), 22); - QCOMPARE(iconImage->implicitWidth(), 22.0); - QCOMPARE(iconImage->implicitHeight(), 22.0); - QCOMPARE(iconImage->width(), 22.0); - QCOMPARE(iconImage->height(), 22.0); - QCOMPARE(grabItemToImage(iconImage), grabItemToImage(image)); -#endif -} - -void tst_qquickiconimage::color() -{ - SKIP_IF_DPR_TOO_HIGH(); - - if (QGuiApplication::platformName() == QLatin1String("offscreen")) - QSKIP("grabToImage() doesn't work on the \"offscreen\" platform plugin (QTBUG-63185)"); - - QQuickView view(testFileUrl("color.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickImage *image = qobject_cast<QQuickImage*>(view.rootObject()->childItems().at(1)); - QVERIFY(image); - - QImage iconImageWindowGrab = grabItemToImage(iconImage); - QCOMPARE(iconImageWindowGrab, grabItemToImage(image)); - - // Transparent pixels should remain transparent. - QCOMPARE(iconImageWindowGrab.pixelColor(0, 0), QColor(0, 0, 0, 0)); - - // Set a color after component completion. - iconImage->setColor(QColor(Qt::green)); - iconImageWindowGrab = grabItemToImage(iconImage); - const QPoint centerPixelPos(11, 11); - QCOMPARE(iconImageWindowGrab.pixelColor(centerPixelPos), QColor(Qt::green)); - - // Set a semi-transparent color after component completion. - iconImage->setColor(QColor(0, 0, 255, 127)); - iconImageWindowGrab = grabItemToImage(iconImage); - QCOMPARE(iconImageWindowGrab.pixelColor(centerPixelPos).red(), 0); - QCOMPARE(iconImageWindowGrab.pixelColor(centerPixelPos).green(), 0); - QCOMPARE(iconImageWindowGrab.pixelColor(centerPixelPos).blue(), 255); - QCOMPARE(iconImageWindowGrab.pixelColor(centerPixelPos).alpha(), 127); -} - -void tst_qquickiconimage::changeSourceSize() -{ - QQuickView view(testFileUrl("sourceBindingSourceSize.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - // Ensure that there isn't any infinite recursion when trying to change the sourceSize. - QSize sourceSize = iconImage->sourceSize(); - sourceSize.setWidth(sourceSize.width() - 1); - iconImage->setSourceSize(sourceSize); -} - - -void tst_qquickiconimage::fileSelectors() -{ - SKIP_IF_DPR_TOO_HIGH(); - - if (QGuiApplication::platformName() == QLatin1String("offscreen")) - QSKIP("grabToImage() doesn't work on the \"offscreen\" platform plugin (QTBUG-63185)"); - - QQuickView view; - QQmlFileSelector* fileSelector = new QQmlFileSelector(view.engine()); - fileSelector->setExtraSelectors(QStringList() << "testselector"); - view.setSource(testFileUrl("fileSelectors.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->childItems().at(0)); - QVERIFY(iconImage); - - QQuickItem *image = view.rootObject()->childItems().at(1); - QVERIFY(image); - - QImage iconImageWindowGrab = grabItemToImage(iconImage); - QCOMPARE(iconImageWindowGrab, grabItemToImage(image)); - - QCOMPARE(iconImageWindowGrab.pixelColor(iconImageWindowGrab.width() / 2, iconImageWindowGrab.height() / 2), QColor(Qt::blue)); -} - -class TestImageProvider : public QQuickImageProvider -{ -public: - TestImageProvider() : QQuickImageProvider(QQuickImageProvider::Pixmap) { } - - QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override - { - QSize defaultSize(32, 32); - if (size) - *size = defaultSize; - - QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : defaultSize.width(), - requestedSize.height() > 0 ? requestedSize.height() : defaultSize.height()); - pixmap.fill(QColor(id).rgba()); - return pixmap; - } -}; - -// don't crash (QTBUG-63959) -void tst_qquickiconimage::imageProvider() -{ - if (QGuiApplication::platformName() == QLatin1String("offscreen")) - QSKIP("grabToImage() doesn't work on the \"offscreen\" platform plugin (QTBUG-63185)"); - - QQuickView view; - view.engine()->addImageProvider("provider", new TestImageProvider); - view.setSource(testFileUrl("imageProvider.qml")); - QCOMPARE(view.status(), QQuickView::Ready); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(view.rootObject()->findChild<QQuickIconImage *>()); - QVERIFY(iconImage); - - QImage image = grabItemToImage(iconImage); - QVERIFY(!image.isNull()); - QCOMPARE(image.pixelColor(image.width() / 2, image.height() / 2), QColor(Qt::red)); -} - -/* - QQuickIconImage::componentComplete() calls QQuickIconImagePrivate::updateIcon(), - which loads the icon's image via QQuickImageBase::load(). That eventually calls - QQuickImageBase::requestFinished(), which calls QQuickIconImage::pixmapChange(). - That then calls QQuickIconImagePrivate::updateFillMode(), which can in turn - cause QQuickIconImage::pixmapChange() to be called again, causing recursion. - - This was a problem because it resulted in icon.color being applied twice. - - This test checks that that doesn't happen. -*/ -void tst_qquickiconimage::translucentColors() -{ - if (QGuiApplication::platformName() == QLatin1String("offscreen")) - QSKIP("grabToImage() doesn't work on the \"offscreen\" platform plugin (QTBUG-63185)"); - - // Doesn't reproduce with QQuickView. - QQmlApplicationEngine engine; - engine.load(testFileUrl("translucentColors.qml")); - QQuickWindow *window = qobject_cast<QQuickWindow*>(engine.rootObjects().first()); - - QQuickIconImage *iconImage = qobject_cast<QQuickIconImage*>(window->findChild<QQuickIconImage*>()); - QVERIFY(iconImage); - - const QImage image = grabItemToImage(iconImage); - QVERIFY(!image.isNull()); - QCOMPARE(image.pixelColor(image.width() / 2, image.height() / 2), QColor::fromRgba(0x80000000)); -} - -int main(int argc, char *argv[]) -{ - QGuiApplication app(argc, argv); - Q_UNUSED(app); - tst_qquickiconimage test; - QTEST_SET_MAIN_SOURCE_PATH - return QTest::qExec(&test, argc, argv); -} - -#include "tst_qquickiconimage.moc" |