diff options
author | Mitch Curtis <[email protected]> | 2021-08-12 14:39:51 +0200 |
---|---|---|
committer | Mitch Curtis <[email protected]> | 2021-08-16 12:52:59 +0200 |
commit | 809339d1484cf556512534367b8170bc26baf072 (patch) | |
tree | 12871313b658f36d058b5ef25af1e247e9c46ce9 /tests/auto/quickcontrols2/qquickmaterialstyle | |
parent | b01b4f00eae8022c6a97d90f54dac395144ae095 (diff) |
Now that qtquickcontrols2 has been merged into qtdeclarative,
we should make it obvious that this repo should no longer be
used, by preventing it from being built.
Task-number: QTBUG-95173
Pick-to: 6.2
Change-Id: I95bd6a214f3d75a865ab163ee0a1f9ffbeb7a051
Reviewed-by: Alexandru Croitor <[email protected]>
Reviewed-by: Volker Hilsheimer <[email protected]>
Diffstat (limited to 'tests/auto/quickcontrols2/qquickmaterialstyle')
4 files changed, 0 insertions, 907 deletions
diff --git a/tests/auto/quickcontrols2/qquickmaterialstyle/CMakeLists.txt b/tests/auto/quickcontrols2/qquickmaterialstyle/CMakeLists.txt deleted file mode 100644 index 332f376d..00000000 --- a/tests/auto/quickcontrols2/qquickmaterialstyle/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -# Generated from qquickmaterialstyle.pro. - -##################################################################### -## tst_qquickmaterialstyle Test: -##################################################################### - -# Collect test data -file(GLOB_RECURSE test_data_glob - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/data/tst_*) -list(APPEND test_data ${test_data_glob}) - -qt_internal_add_test(tst_qquickmaterialstyle - GUI - QMLTEST - SOURCES - tst_qquickmaterialstyle.cpp - PUBLIC_LIBRARIES - Qt::Gui - Qt::Qml - TESTDATA ${test_data} -) - -# Resources: -set(qmake_immediate_resource_files - "qtquickcontrols2.conf" -) - -qt_internal_add_resource(tst_qquickmaterialstyle "qmake_immediate" - PREFIX - "/" - FILES - ${qmake_immediate_resource_files} -) - - -#### Keys ignored in scope 1:.:.:qquickmaterialstyle.pro:<TRUE>: -# OTHER_FILES = "$$PWD/data/*.qml" -# TEMPLATE = "app" diff --git a/tests/auto/quickcontrols2/qquickmaterialstyle/data/tst_material.qml b/tests/auto/quickcontrols2/qquickmaterialstyle/data/tst_material.qml deleted file mode 100644 index 02b71305..00000000 --- a/tests/auto/quickcontrols2/qquickmaterialstyle/data/tst_material.qml +++ /dev/null @@ -1,791 +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: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.Window -import QtTest -import QtQuick.Templates as T -import QtQuick.Controls -import QtQuick.Controls.Material - -import org.qtproject.Test - -TestCase { - id: testCase - width: 200 - height: 200 - visible: true - when: windowShown - name: "Material" - - Component { - id: button - Button { } - } - - Component { - id: styledButton - Button { - Material.theme: Material.Dark - Material.primary: Material.DeepOrange - Material.accent: Material.DeepPurple - Material.background: Material.Green - Material.foreground: Material.Blue - } - } - - Component { - id: window - Window { } - } - - Component { - id: applicationWindow - ApplicationWindow { } - } - - Component { - id: styledWindow - Window { - Material.theme: Material.Dark - Material.primary: Material.Brown - Material.accent: Material.Green - Material.background: Material.Yellow - Material.foreground: Material.Grey - } - } - - Component { - id: loader - Loader { - active: false - sourceComponent: Button { } - } - } - - Component { - id: swipeView - SwipeView { - Material.theme: Material.Dark - Button { } - } - } - - Component { - id: menu - ApplicationWindow { - Material.primary: Material.Blue - Material.accent: Material.Red - property alias menu: popup - Menu { - id: popup - Material.theme: Material.Dark - MenuItem { } - } - } - } - - Component { - id: popupComponent - ApplicationWindow { - Material.primary: Material.Blue - Material.accent: Material.Red - visible: true - property alias popup: popupInstance - property alias label: labelInstance - property alias label2: labelInstance2 - Popup { - id: popupInstance - Label { - id: labelInstance - text: "test" - color: popupInstance.Material.textSelectionColor - } - Component.onCompleted: open() - } - T.Popup { - contentItem: Label { - id: labelInstance2 - text: "test" - color: Material.textSelectionColor - } - Component.onCompleted: open() - } - } - } - - Component { - id: comboBox - ApplicationWindow { - width: 200 - height: 200 - visible: true - Material.primary: Material.Blue - Material.accent: Material.Red - property alias combo: box - ComboBox { - id: box - Material.theme: Material.Dark - model: 1 - } - } - } - - Component { - id: windowPane - ApplicationWindow { - width: 200 - height: 200 - visible: true - property alias pane: pane - Pane { id: pane } - } - } - - // need to be synced with QQuickMaterialStyle::themeShade() - function themeshade(theme) { - if (theme === Material.Light) - return Material.Shade500 - else - return Material.Shade200 - } - - function test_defaults() { - var control = button.createObject(testCase) - verify(control) - verify(control.Material) - compare(control.Material.primary, Material.color(Material.Indigo)) - compare(control.Material.accent, Material.color(Material.Pink)) - compare(control.Material.foreground, "#dd000000") - compare(control.Material.background, "#fafafa") - compare(control.Material.theme, Material.Light) - control.destroy() - } - - function test_set() { - var control = button.createObject(testCase) - verify(control) - control.Material.primary = Material.Green - control.Material.accent = Material.Brown - control.Material.background = Material.Red - control.Material.foreground = Material.Blue - control.Material.theme = Material.Dark - compare(control.Material.primary, Material.color(Material.Green)) - compare(control.Material.accent, Material.color(Material.Brown, themeshade(control.Material.theme))) - compare(control.Material.background, Material.color(Material.Red, themeshade(control.Material.theme))) - compare(control.Material.foreground, Material.color(Material.Blue)) - compare(control.Material.theme, Material.Dark) - control.destroy() - } - - function test_reset() { - var control = styledButton.createObject(testCase) - verify(control) - compare(control.Material.primary, Material.color(Material.DeepOrange)) - compare(control.Material.accent, Material.color(Material.DeepPurple, themeshade(control.Material.theme))) - compare(control.Material.background, Material.color(Material.Green, themeshade(control.Material.theme))) - compare(control.Material.foreground, Material.color(Material.Blue)) - compare(control.Material.theme, Material.Dark) - control.Material.primary = undefined - control.Material.accent = undefined - control.Material.background = undefined - control.Material.foreground = undefined - control.Material.theme = undefined - compare(control.Material.primary, testCase.Material.primary) - compare(control.Material.accent, testCase.Material.accent) - compare(control.Material.background, testCase.Material.background) - compare(control.Material.foreground, testCase.Material.foreground) - compare(control.Material.theme, testCase.Material.theme) - control.destroy() - } - - function test_inheritance_data() { - return [ - { tag: "primary", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, - { tag: "accent", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, - { tag: "background", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, - { tag: "foreground", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, - { tag: "theme", value1: Material.Dark, value2: Material.Light }, - ] - } - - function test_inheritance(data) { - var prop = data.tag - var parent = button.createObject(testCase) - parent.Material[prop] = data.value1 - compare(parent.Material[prop], data.value1) - - var child1 = button.createObject(parent) - compare(child1.Material[prop], data.value1) - - parent.Material[prop] = data.value2 - compare(parent.Material[prop], data.value2) - compare(child1.Material[prop], data.value2) - - var child2 = button.createObject(parent) - compare(child2.Material[prop], data.value2) - - child2.Material[prop] = data.value1 - compare(child2.Material[prop], data.value1) - compare(child1.Material[prop], data.value2) - compare(parent.Material[prop], data.value2) - - parent.Material[prop] = undefined - verify(parent.Material[prop] !== data.value1) - verify(parent.Material[prop] !== undefined) - compare(child1.Material[prop], parent.Material[prop]) - verify(child2.Material[prop] !== parent.Material[prop]) - - var grandChild1 = button.createObject(child1) - var grandChild2 = button.createObject(child2) - compare(grandChild1.Material[prop], child1.Material[prop]) - compare(grandChild2.Material[prop], child2.Material[prop]) - - var themelessGrandGrandChild = button.createObject(grandChild1) - var grandGrandGrandChild1 = button.createObject(themelessGrandGrandChild) - compare(grandGrandGrandChild1.Material[prop], parent.Material[prop]) - - child1.Material[prop] = data.value2 - compare(child1.Material[prop], data.value2) - compare(grandChild1.Material[prop], data.value2) - compare(grandGrandGrandChild1.Material[prop], data.value2) - - parent.destroy() - } - - function test_inheritance_popup_data() { - return [ - { tag: "primary", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, - { tag: "accent", value1: Material.color(Material.Amber), value2: Material.color(Material.Indigo) }, - { tag: "theme", value1: Material.Dark, value2: Material.Light }, - ] - } - - function test_inheritance_popup(data) { - var prop = data.tag - var popupObject = popupComponent.createObject(testCase) - compare(popupObject.popup.Material.textSelectionColor.toString(), popupObject.Material.textSelectionColor.toString()) - compare(popupObject.label.color.toString(), popupObject.Material.textSelectionColor.toString()) - compare(popupObject.label2.color.toString(), popupObject.Material.textSelectionColor.toString()) - - popupObject.Material[prop] = data.value1 - compare(popupObject.Material[prop], data.value1) - compare(popupObject.popup.Material.textSelectionColor.toString(), popupObject.Material.textSelectionColor.toString()) - compare(popupObject.label.color.toString(), popupObject.Material.textSelectionColor.toString()) - compare(popupObject.label2.color.toString(), popupObject.Material.textSelectionColor.toString()) - - popupObject.Material[prop] = data.value2 - compare(popupObject.Material[prop], data.value2) - compare(popupObject.popup.Material.textSelectionColor.toString(), popupObject.Material.textSelectionColor.toString()) - compare(popupObject.label.color.toString(), popupObject.Material.textSelectionColor.toString()) - compare(popupObject.label2.color.toString(), popupObject.Material.textSelectionColor.toString()) - - popupObject.destroy() - } - - function test_window() { - var parent = window.createObject() - - var control = button.createObject(parent.contentItem) - compare(control.Material.primary, parent.Material.primary) - compare(control.Material.accent, parent.Material.accent) - compare(control.Material.background, parent.Material.background) - compare(control.Material.foreground, parent.Material.foreground) - compare(control.Material.theme, parent.Material.theme) - - var styledChild = styledWindow.createObject(window) - verify(styledChild.Material.primary !== parent.Material.primary) - verify(styledChild.Material.accent !== parent.Material.accent) - verify(styledChild.Material.background !== parent.Material.background) - verify(styledChild.Material.foreground !== parent.Material.foreground) - verify(styledChild.Material.theme !== parent.Material.theme) - - var unstyledChild = window.createObject(window) - compare(unstyledChild.Material.primary, parent.Material.primary) - compare(unstyledChild.Material.accent, parent.Material.accent) - compare(unstyledChild.Material.background, parent.Material.background) - compare(unstyledChild.Material.foreground, parent.Material.foreground) - compare(unstyledChild.Material.theme, parent.Material.theme) - - parent.Material.primary = Material.Lime - compare(control.Material.primary, Material.color(Material.Lime)) - verify(styledChild.Material.primary !== Material.color(Material.Lime)) - // ### TODO: compare(unstyledChild.Material.primary, Material.color(Material.Lime)) - - parent.Material.accent = Material.Cyan - compare(control.Material.accent, Material.color(Material.Cyan)) - verify(styledChild.Material.accent !== Material.color(Material.Cyan)) - // ### TODO: compare(unstyledChild.Material.accent, Material.color(Material.Cyan)) - - parent.Material.background = Material.Indigo - compare(control.Material.background, Material.color(Material.Indigo)) - verify(styledChild.Material.background !== Material.color(Material.Indigo)) - // ### TODO: compare(unstyledChild.Material.background, Material.color(Material.Indigo)) - - parent.Material.foreground = Material.Pink - compare(control.Material.foreground, Material.color(Material.Pink)) - verify(styledChild.Material.foreground !== Material.color(Material.Pink)) - // ### TODO: compare(unstyledChild.Material.foreground, Material.color(Material.Pink)) - - parent.destroy() - } - - function test_loader() { - var control = loader.createObject(testCase) - control.Material.primary = Material.Yellow - control.Material.accent = Material.Lime - control.Material.background = Material.LightGreen - control.Material.foreground = Material.LightBlue - control.active = true - compare(control.item.Material.primary, Material.color(Material.Yellow)) - compare(control.item.Material.accent, Material.color(Material.Lime)) - compare(control.item.Material.background, Material.color(Material.LightGreen)) - compare(control.item.Material.foreground, Material.color(Material.LightBlue)) - control.Material.primary = Material.Red - control.Material.accent = Material.Pink - control.Material.background = Material.Blue - control.Material.foreground = Material.Green - compare(control.item.Material.primary, Material.color(Material.Red)) - compare(control.item.Material.accent, Material.color(Material.Pink)) - compare(control.item.Material.background, Material.color(Material.Blue)) - compare(control.item.Material.foreground, Material.color(Material.Green)) - control.active = false - control.Material.primary = Material.Orange - control.Material.accent = Material.Brown - control.Material.background = Material.Red - control.Material.foreground = Material.Pink - control.active = true - compare(control.item.Material.primary, Material.color(Material.Orange)) - compare(control.item.Material.accent, Material.color(Material.Brown)) - compare(control.item.Material.background, Material.color(Material.Red)) - compare(control.item.Material.foreground, Material.color(Material.Pink)) - control.destroy() - } - - function test_swipeView() { - var control = swipeView.createObject(testCase) - verify(control) - var child = control.itemAt(0) - verify(child) - compare(control.Material.theme, Material.Dark) - compare(child.Material.theme, Material.Dark) - control.destroy() - } - - function test_menu() { - var container = menu.createObject(testCase) - verify(container) - verify(container.menu) - container.menu.open() - verify(container.menu.visible) - var child = container.menu.itemAt(0) - verify(child) - compare(container.Material.theme, Material.Light) - compare(container.menu.Material.theme, Material.Dark) - compare(child.Material.theme, Material.Dark) - compare(container.Material.primary, Material.color(Material.Blue)) - compare(container.menu.Material.primary, Material.color(Material.Blue)) - compare(child.Material.primary, Material.color(Material.Blue)) - compare(container.Material.accent, Material.color(Material.Red)) - compare(container.menu.Material.accent, Material.color(Material.Red, themeshade(container.menu.Material.theme))) - compare(child.Material.accent, Material.color(Material.Red, themeshade(child.Material.theme))) - container.destroy() - } - - function test_comboBox() { - var window = comboBox.createObject(testCase) - verify(window) - verify(window.combo) - waitForRendering(window.combo) - window.combo.forceActiveFocus() - verify(window.combo.activeFocus) - keyClick(Qt.Key_Space) - verify(window.combo.popup.visible) - var listView = window.combo.popup.contentItem - verify(listView) - var child = listView.contentItem.children[0] - verify(child) - compare(window.Material.theme, Material.Light) - compare(window.combo.Material.theme, Material.Dark) - compare(child.Material.theme, Material.Dark) - compare(window.Material.primary, Material.color(Material.Blue)) - compare(window.combo.Material.primary, Material.color(Material.Blue)) - compare(child.Material.primary, Material.color(Material.Blue)) - compare(window.Material.accent, Material.color(Material.Red)) - compare(window.combo.Material.accent, Material.color(Material.Red, themeshade(window.combo.Material.theme))) - compare(child.Material.accent, Material.color(Material.Red, themeshade(child.Material.theme))) - window.destroy() - } - - function test_windowChange() { - var ldr = loader.createObject() - verify(ldr) - - var wnd = window.createObject() - verify(wnd) - - wnd.Material.theme = Material.Dark - compare(wnd.Material.theme, Material.Dark) - - ldr.active = true - verify(ldr.item) - compare(ldr.item.Material.theme, Material.Light) - - ldr.parent = wnd.contentItem - compare(ldr.item.Material.theme, Material.Dark) - - wnd.destroy() - } - - function test_colors_data() { - return [ - { tag: "primary" }, { tag: "accent" }, { tag: "background" }, { tag: "foreground" } - ] - } - - function test_colors(data) { - var control = button.createObject(testCase) - verify(control) - - var prop = data.tag - - // Material.Color - enum - control.Material[prop] = Material.Red - compare(control.Material[prop], "#f44336") - - // Material.Color - string - control.Material[prop] = "BlueGrey" - compare(control.Material[prop], "#607d8b") - - // SVG named color - control.Material[prop] = "tomato" - compare(control.Material[prop], "#ff6347") - - // #rrggbb - control.Material[prop] = "#123456" - compare(control.Material[prop], "#123456") - - // #aarrggbb - control.Material[prop] = "#12345678" - compare(control.Material[prop], "#12345678") - - // Qt.rgba() - no alpha - control.Material[prop] = Qt.rgba(0.5, 0.5, 0.5) - compare(control.Material[prop], "#808080") - - // Qt.rgba() - with alpha - control.Material[prop] = Qt.rgba(0.5, 0.5, 0.5, 0.5) - compare(control.Material[prop], "#80808080") - - // unknown - ignoreWarning(new RegExp("QML Button: unknown Material." + prop + " value: 123")) - control.Material[prop] = 123 - ignoreWarning(new RegExp("QML Button: unknown Material." + prop + " value: foo")) - control.Material[prop] = "foo" - ignoreWarning(new RegExp("QML Button: unknown Material." + prop + " value: #1")) - control.Material[prop] = "#1" - - control.destroy() - } - - function test_font_data() { - return [ - {tag: "Button:pixelSize", type: "Button", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "Button:weight", type: "Button", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, - {tag: "Button:capitalization", type: "Button", attribute: "capitalization", value: Font.AllUppercase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "TabButton:pixelSize", type: "TabButton", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "TabButton:weight", type: "TabButton", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, - {tag: "TabButton:capitalization", type: "TabButton", attribute: "capitalization", value: Font.AllUppercase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "ToolButton:pixelSize", type: "ToolButton", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "ToolButton:weight", type: "ToolButton", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, - {tag: "ToolButton:capitalization", type: "ToolButton", attribute: "capitalization", value: Font.AllUppercase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "ItemDelegate:pixelSize", type: "ItemDelegate", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "ItemDelegate:weight", type: "ItemDelegate", attribute: "weight", value: Font.Medium, window: Font.Black, pane: Font.Bold}, - {tag: "ItemDelegate:capitalization", type: "ItemDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "CheckDelegate:pixelSize", type: "CheckDelegate", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "CheckDelegate:weight", type: "CheckDelegate", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "CheckDelegate:capitalization", type: "CheckDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "RadioDelegate:pixelSize", type: "RadioDelegate", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "RadioDelegate:weight", type: "RadioDelegate", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "RadioDelegate:capitalization", type: "RadioDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "SwitchDelegate:pixelSize", type: "SwitchDelegate", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "SwitchDelegate:weight", type: "SwitchDelegate", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "SwitchDelegate:capitalization", type: "SwitchDelegate", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "Label:pixelSize", type: "Label", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "Label:weight", type: "Label", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "Label:capitalization", type: "Label", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "CheckBox:pixelSize", type: "CheckBox", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "CheckBox:weight", type: "CheckBox", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "CheckBox:capitalization", type: "CheckBox", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "RadioButton:pixelSize", type: "RadioButton", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "RadioButton:weight", type: "RadioButton", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "RadioButton:capitalization", type: "RadioButton", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "Switch:pixelSize", type: "Switch", attribute: "pixelSize", value: 14, window: 20, pane: 10}, - {tag: "Switch:weight", type: "Switch", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "Switch:capitalization", type: "Switch", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "MenuItem:pixelSize", type: "MenuItem", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "MenuItem:weight", type: "MenuItem", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "MenuItem:capitalization", type: "MenuItem", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "ComboBox:pixelSize", type: "ComboBox", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "ComboBox:weight", type: "ComboBox", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "ComboBox:capitalization", type: "ComboBox", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "TextField:pixelSize", type: "TextField", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "TextField:weight", type: "TextField", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "TextField:capitalization", type: "TextField", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "TextArea:pixelSize", type: "TextArea", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "TextArea:weight", type: "TextArea", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "TextArea:capitalization", type: "TextArea", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase}, - - {tag: "SpinBox:pixelSize", type: "SpinBox", attribute: "pixelSize", value: 16, window: 20, pane: 10}, - {tag: "SpinBox:weight", type: "SpinBox", attribute: "weight", value: Font.Normal, window: Font.Black, pane: Font.Bold}, - {tag: "SpinBox:capitalization", type: "SpinBox", attribute: "capitalization", value: Font.MixedCase, window: Font.Capitalize, pane: Font.AllLowercase} - ] - } - - function test_font(data) { - var window = windowPane.createObject(testCase) - verify(window) - verify(window.pane) - - var control = Qt.createQmlObject("import QtQuick.Controls; " + data.type + " { }", window.pane) - verify(control) - - compare(control.font[data.attribute], data.value) - - window.font[data.attribute] = data.window - compare(window.font[data.attribute], data.window) - compare(window.pane.font[data.attribute], data.window) - compare(control.font[data.attribute], data.window) - - window.pane.font[data.attribute] = data.pane - compare(window.font[data.attribute], data.window) - compare(window.pane.font[data.attribute], data.pane) - compare(control.font[data.attribute], data.pane) - - window.pane.font = undefined - compare(window.font[data.attribute], data.window) - compare(window.pane.font[data.attribute], data.window) - compare(control.font[data.attribute], data.window) - - window.destroy() - } - - Component { - id: backgroundControls - ApplicationWindow { - id: window - property Button button: Button { } - property ComboBox combobox: ComboBox { } - property Drawer drawer: Drawer { } - property GroupBox groupbox: GroupBox { Material.elevation: 10 } - property Frame frame: Frame { Material.elevation: 10 } - property Menu menu: Menu { } - property Page page: Page { } - property Pane pane: Pane { } - property Popup popup: Popup { } - property TabBar tabbar: TabBar { } - property ToolBar toolbar: ToolBar { } - property ToolTip tooltip: ToolTip { } - } - } - - function test_background_data() { - return [ - { tag: "button", inherit: false, wait: 400 }, - { tag: "combobox", inherit: false, wait: 400 }, - { tag: "drawer", inherit: true }, - { tag: "groupbox", inherit: true }, - { tag: "frame", inherit: true }, - { tag: "menu", inherit: true }, - { tag: "page", inherit: true }, - { tag: "pane", inherit: true }, - { tag: "popup", inherit: true }, - { tag: "tabbar", inherit: true }, - { tag: "toolbar", inherit: false }, - { tag: "tooltip", inherit: false } - ] - } - - function test_background(data) { - var window = backgroundControls.createObject(testCase) - verify(window) - - var control = window[data.tag] - verify(control) - - control.parent = window.contentItem - control.visible = true - - var defaultBackground = control.background.color - - window.Material.background = "#ff0000" - compare(window.color, "#ff0000") - - // For controls that have an animated background color, we wait the length - // of the color animation to be sure that the color hasn't actually changed. - if (data.wait) - wait(data.wait) - - // We want the control's background color to be equal to the window's background - // color, because we want the color to propagate to items that might actually use - // it... Button, ComboBox, ToolBar and ToolTip have a special background color, - // so they don't use the generic background color unless explicitly set, so we - // compare the actual background rect color instead. - if (data.inherit) - compare(control.background.color, "#ff0000") - else - compare(control.background.color, defaultBackground) - - control.Material.background = "#0000ff" - tryCompare(control.background, "color", "#0000ff") - - window.destroy() - } - - Component { - id: busyIndicator - BusyIndicator { } - } - - function test_shade() { - var control = busyIndicator.createObject(testCase) - - compare(control.contentItem.color.toString(), Material.color(Material.Pink, Material.Shade500)) - control.Material.theme = Material.Dark - compare(control.contentItem.color.toString(), Material.color(Material.Pink, Material.Shade200)) - - control.destroy() - } - - // We can't declare components with JS syntax (when creating a data row), - // so we use introspection to get the list of all components we should test. - QtObject { - id: bindingLoopComponents - - property Component row_foregroundToPrimaryTextColor: Item { Material.foreground: Material.primaryTextColor } - // Not all properties can be bound without binding loops. For example, it's not possible to bind - // foreground to primaryHighlightedTextColor, because primaryHighlightedTextColor() depends on - // m_explicitForeground, which is modified when the foreground is set. - // So, we use background instead. - property Component row_backgroundToPrimaryHighlightedTextColor: Item { Material.background: Material.primaryHighlightedTextColor } - property Component row_foregroundToSecondaryTextColor: Item { Material.foreground: Material.secondaryTextColor } - property Component row_foregroundToSecondaryTextColorWithTheme: Item { - Material.foreground: Material.theme === Material.Dark ? Material.secondaryTextColor : Material.Red - } - property Component row_foregroundToHintTextColor: Item { Material.foreground: Material.secondaryTextColor } - property Component row_foregroundToTextSelectionColor: Item { Material.foreground: Material.textSelectionColor } - property Component row_foregroundToDropShadowColor: Item { Material.foreground: Material.dropShadowColor } - property Component row_foregroundToDividerColor: Item { Material.foreground: Material.dividerColor } - property Component row_foregroundToIconColor: Item { Material.foreground: Material.iconColor } - property Component row_foregroundToIconDisabledColor: Item { Material.foreground: Material.iconDisabledColor } - property Component row_foregroundToButtonColor: Item { Material.foreground: Material.buttonColor } - property Component row_foregroundToButtonDisabledColor: Item { Material.foreground: Material.buttonDisabledColor } - property Component row_foregroundToHighlightedButtonColor: Item { Material.foreground: Material.highlightedButtonColor } - property Component row_foregroundToFrameColor: Item { Material.foreground: Material.frameColor } - property Component row_foregroundToRippleColor: Item { Material.foreground: Material.rippleColor } - property Component row_foregroundToHighlightedRippleColor: Item { Material.foreground: Material.highlightedRippleColor } - property Component row_foregroundToSwitchUncheckedTrackColor: Item { Material.foreground: Material.switchUncheckedTrackColor } - property Component row_foregroundToSwitchCheckedTrackColor: Item { Material.foreground: Material.switchCheckedTrackColor } - property Component row_foregroundToSwitchUncheckedHandleColor: Item { Material.foreground: Material.switchUncheckedHandleColor } - property Component row_foregroundToSwitchCheckedHandleColor: Item { Material.foreground: Material.switchCheckedHandleColor } - property Component row_foregroundToSwitchDisabledTrackColor: Item { Material.foreground: Material.switchDisabledTrackColor } - property Component row_foregroundToSwitchDisabledHandleColor: Item { Material.foreground: Material.switchDisabledHandleColor } - property Component row_foregroundToScrollBarColor: Item { Material.foreground: Material.scrollBarColor } - property Component row_foregroundToScrollBarHoveredColor: Item { Material.foreground: Material.scrollBarHoveredColor } - property Component row_foregroundToScrollBarPressedColor: Item { Material.foreground: Material.scrollBarPressedColor } - property Component row_foregroundToDialogColor: Item { Material.foreground: Material.dialogColor } - property Component row_foregroundToBackgroundDimColor: Item { Material.foreground: Material.backgroundDimColor } - property Component row_foregroundToListHighlightColor: Item { Material.foreground: Material.listHighlightColor } - property Component row_foregroundToTooltipColor: Item { Material.foreground: Material.tooltipColor } - property Component row_foregroundToToolBarColor: Item { Material.foreground: Material.toolBarColor } - property Component row_backgroundToToolTextColor: Item { Material.background: Material.toolTextColor } - property Component row_foregroundToSpinBoxDisabledIconColor: Item { Material.foreground: Material.spinBoxDisabledIconColor } - property Component row_foregroundToSliderDisableColor: Item { Material.foreground: Material.sliderDisableColor } - } - - function test_propertyBindingLoop_data() { - let data = [] - for (let propertyName in bindingLoopComponents) { - if (!propertyName.startsWith("row_") || propertyName.endsWith("Changed")) - continue - - let row = {} - row.tag = propertyName.substr(4) - row.component = bindingLoopComponents[propertyName] - data.push(row) - } - return data - } - - /* - Test that binding attached Material properties to other (private, non-settable) - Material properties does not result in a binding loop. - */ - function test_propertyBindingLoop(data) { - let item = createTemporaryObject(data.component, testCase) - verify(item) - verify(!BindingLoopDetector.bindingLoopDetected, "Detected binding loop") - BindingLoopDetector.reset() - } -} diff --git a/tests/auto/quickcontrols2/qquickmaterialstyle/qtquickcontrols2.conf b/tests/auto/quickcontrols2/qquickmaterialstyle/qtquickcontrols2.conf deleted file mode 100644 index b6c7c87e..00000000 --- a/tests/auto/quickcontrols2/qquickmaterialstyle/qtquickcontrols2.conf +++ /dev/null @@ -1,2 +0,0 @@ -[Controls] -Style=Material diff --git a/tests/auto/quickcontrols2/qquickmaterialstyle/tst_qquickmaterialstyle.cpp b/tests/auto/quickcontrols2/qquickmaterialstyle/tst_qquickmaterialstyle.cpp deleted file mode 100644 index 269f7986..00000000 --- a/tests/auto/quickcontrols2/qquickmaterialstyle/tst_qquickmaterialstyle.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later as published by the Free -** Software Foundation and appearing in the file LICENSE.GPL included in -** the packaging of this file. Please review the following information to -** ensure the GNU General Public License version 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtQml/qqmlengine.h> -#include <QtQml/qqmlcontext.h> -#include <QtQuickTest/quicktest.h> - -class Setup : public QObject -{ - Q_OBJECT - Q_PROPERTY(bool bindingLoopDetected READ wasBindingLoopDetected FINAL) - -public: - Setup() {} - - bool wasBindingLoopDetected() const { return mBindingLoopDetected; } - -public slots: - void reset() { mBindingLoopDetected = false; } - - void qmlEngineAvailable(QQmlEngine *engine) - { - connect(engine, &QQmlEngine::warnings, this, &Setup::qmlWarnings); - - qmlRegisterSingletonInstance("org.qtproject.Test", 1, 0, "BindingLoopDetector", this); - } - - void qmlWarnings(const QList<QQmlError> &warnings) - { - for (const auto &error : warnings) { - if (error.messageType() == QtWarningMsg && error.description().contains(QStringLiteral("Binding loop detected"))) - mBindingLoopDetected = true; - } - } - -private: - bool mBindingLoopDetected = false; -}; - -QUICK_TEST_MAIN_WITH_SETUP(tst_qquickmaterialstyle, Setup) - -#include "tst_qquickmaterialstyle.moc" |