diff options
Diffstat (limited to 'tests/manual/quickcontrols/styles/styles.qml')
-rw-r--r-- | tests/manual/quickcontrols/styles/styles.qml | 151 |
1 files changed, 136 insertions, 15 deletions
diff --git a/tests/manual/quickcontrols/styles/styles.qml b/tests/manual/quickcontrols/styles/styles.qml index 62a39e4071..d8e96db62e 100644 --- a/tests/manual/quickcontrols/styles/styles.qml +++ b/tests/manual/quickcontrols/styles/styles.qml @@ -1,5 +1,86 @@ // Copyright (C) 2017 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +/* + This manual test is used to take screenshots of each style for use in the + documentation: + + Step 1 + + Take screenshots of the app in the relevant styles in both light and dark + themes (where applicable) using the commented-out window hints. + + The screenshots are usually taken on a MacBook with a DPI of 2. + On macOS, Cmd+Shift+4 starts the screenshot process, Space allows selecting + a window, holding Option before left-clicking takes a screenshot of the + window without the default drop shadow border. + + If updating all styles, it can be helpful to have a script to open an + instance of the app for each style: + + #! /bin/bash + + app=$1 + + set -e + + usageExample="Usage example:\run-with-all-controls-styles.sh ./tst_manual_qqc_styles" + + if [ ! -f "$app" ]; then + echo "app \"$app\" doesn't exist in \"$PWD\"; aborting" + echo $usageExample + exit + fi + + # For dark mode. + export QT_QUICK_CONTROLS_MATERIAL_THEME=Dark + export QT_QUICK_CONTROLS_UNIVERSAL_THEME=Dark + + QT_QUICK_CONTROLS_STYLE=Basic $app 0 0 & + QT_QUICK_CONTROLS_STYLE=Fusion $app 400 0 & + QT_QUICK_CONTROLS_STYLE=macOS $app 800 0 & + QT_QUICK_CONTROLS_STYLE=Material $app 1200 0 & + QT_QUICK_CONTROLS_STYLE=Imagine $app 0 400 & + QT_QUICK_CONTROLS_STYLE=iOS $app 400 0 & + QT_QUICK_CONTROLS_STYLE=Universal $app 800 400 & + #QT_QUICK_CONTROLS_STYLE=Windows $app 1200 400 & + + Step 2 + + Rename images accordingly. + + Step 3 + + Until QTBUG-63366 is solved, and if taken on a display with a DPR > 1, + reduce the size of the images so that they are their natural (1 DPI) size. + For example, if taken on a display with a DPR of 2, halve them: + + mogrify -resize 50% qtquickcontrols-basic.png + mogrify -resize 50% qtquickcontrols-fusion-light.png + mogrify -resize 50% qtquickcontrols-fusion-dark.png + mogrify -resize 50% qtquickcontrols-imagine.png + mogrify -resize 50% qtquickcontrols-ios-light.png + mogrify -resize 50% qtquickcontrols-ios-dark.png + mogrify -resize 50% qtquickcontrols-macos-light.png + mogrify -resize 50% qtquickcontrols-macos-dark.png + mogrify -resize 50% qtquickcontrols-material-light.png + mogrify -resize 50% qtquickcontrols-material-dark.png + mogrify -resize 50% qtquickcontrols-universal-light.png + mogrify -resize 50% qtquickcontrols-universal-dark.png + mogrify -resize 50% qtquickcontrols-windows.png + + Step 4 + + Run "optipng -o 7 -strip all" on each image to reduce their file size. + + Step 5 + + There may be extra screenshot images that need to be updated, depending + on which style is being updated. For example, the Material style has + screenshots that can be generated using tst_snippets: + + SCREENSHOTS=1 QT_QUICK_CONTROLS_STYLE=Material ./tst_snippets verify:qtquickcontrols-material-accent verify:qtquickcontrols-material-attributes verify:qtquickcontrols-material-background verify:qtquickcontrols-material-elevation verify:qtquickcontrols-material-foreground verify:qtquickcontrols-material-theme verify:qtquickcontrols-material-variant +*/ import QtQuick import QtQuick.Layouts @@ -9,16 +90,16 @@ ApplicationWindow { id: window visible: true - minimumWidth: column.implicitWidth + 80 - minimumHeight: column.implicitHeight + 80 - title: "Qt Quick Controls 2 - Styles" + // Add some extra width and height to give the content a little more room. + minimumWidth: column.implicitWidth + column.anchors.margins + 120 + minimumHeight: column.implicitHeight + column.anchors.margins + 20 + title: "Qt Quick Controls - Styles" // for taking frameless screenshots: - // flags: Qt.Window | Qt.FramelessWindowHint +// flags: Qt.Window | Qt.FramelessWindowHint ColumnLayout { id: column - spacing: 20 anchors.fill: parent anchors.margins: 40 @@ -26,41 +107,81 @@ ApplicationWindow { GroupBox { title: "Font Size" topPadding: 30 + contentWidth: fontColumnLayout.implicitWidth + fontColumnLayout.anchors.leftMargin background.visible: false + Layout.fillWidth: false + Layout.fillHeight: false ColumnLayout { + id: fontColumnLayout anchors.fill: parent anchors.leftMargin: 20 - RadioButton { leftPadding: 0; text: "Small" } - RadioButton { leftPadding: 0; text: "Medium"; checked: true } - RadioButton { leftPadding: 0; text: "Large" } + RadioButton { + leftPadding: 0 + text: "Small" + Layout.fillWidth: false + } + RadioButton { + leftPadding: 0 + text: "Medium" + checked: true + Layout.fillWidth: false + } + RadioButton { + leftPadding: 0 + text: "Large" + Layout.fillWidth: false + } } } GroupBox { title: "Audio" topPadding: 30 + contentWidth: audioGridLayout.implicitWidth + audioGridLayout.anchors.leftMargin background.visible: false + Layout.fillWidth: true + Layout.fillHeight: false + GridLayout { + id: audioGridLayout columns: 2 columnSpacing: 30 anchors.fill: parent anchors.leftMargin: 20 - Label { text: "Volume" } - Slider { value: 1.0 } - Label { text: "Bass" } - Slider { value: 0.75 } - Label { text: "Treble" } - Slider { value: 0.5 } + Label { + text: "Volume" + } + Slider { + value: 1.0 + Layout.fillWidth: true + } + + Label { + text: "Bass" + } + Slider { + value: 0.75 + Layout.fillWidth: true + } + + Label { + text: "Treble" + } + Slider { + value: 0.5 + Layout.fillWidth: true + } } } Button { text: "Save" Layout.alignment: Qt.AlignRight + Layout.fillWidth: false } Item { Layout.fillHeight: true } |