aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickcontrols2/qquickmaterialstyle/data/tst_material.qml
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2021-08-12 14:39:51 +0200
committerMitch Curtis <mitch.curtis@qt.io>2021-08-16 12:52:59 +0200
commit809339d1484cf556512534367b8170bc26baf072 (patch)
tree12871313b658f36d058b5ef25af1e247e9c46ce9 /tests/auto/quickcontrols2/qquickmaterialstyle/data/tst_material.qml
parentb01b4f00eae8022c6a97d90f54dac395144ae095 (diff)
Remove qtquickcontrols2 sources and explain where they wentHEADdev
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 <alexandru.croitor@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'tests/auto/quickcontrols2/qquickmaterialstyle/data/tst_material.qml')
-rw-r--r--tests/auto/quickcontrols2/qquickmaterialstyle/data/tst_material.qml791
1 files changed, 0 insertions, 791 deletions
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()
- }
-}