From 8b534487044dfb3b464431ecb91ef4e0864af4ed Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Tue, 8 Sep 2020 17:33:17 +0200 Subject: Default to the most appropriate built-in style if none is specified [ChangeLog][Styles] An appropriate built-in style is now used as the default style if one is available for the target platform. For example, when running a Qt Quick Controls application on macOS, the macOS style will be used. On Android, the Material style will be used. When running on e.g. an embedded device, where no native style is available, use the Basic (formerly "Default") style. Change-Id: Ie61d1a8a1a83fbeba63387c7ca3671084f47bc04 Fixes: QTBUG-86403 Reviewed-by: Volker Hilsheimer --- tests/auto/controls/basic/CMakeLists.txt | 1 + tests/auto/controls/basic/basic.pro | 1 + tests/auto/controls/basic/tst_basic.cpp | 2 ++ tests/auto/palette/palette.pro | 2 +- tests/auto/palette/tst_palette.cpp | 10 +++++++++- tests/auto/qquickstyle/tst_qquickstyle.cpp | 2 +- 6 files changed, 15 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/auto/controls/basic/CMakeLists.txt b/tests/auto/controls/basic/CMakeLists.txt index f19a133f..a7a4e29c 100644 --- a/tests/auto/controls/basic/CMakeLists.txt +++ b/tests/auto/controls/basic/CMakeLists.txt @@ -19,6 +19,7 @@ qt_add_test(tst_basic TST_CONTROLS_DATA=\\\"${CMAKE_CURRENT_SOURCE_DIR}/../../../../tests/auto/controls/data\\\" PUBLIC_LIBRARIES Qt::Gui + Qt::QuickControls2 TESTDATA ${test_data} ) diff --git a/tests/auto/controls/basic/basic.pro b/tests/auto/controls/basic/basic.pro index f50dc036..9407e162 100644 --- a/tests/auto/controls/basic/basic.pro +++ b/tests/auto/controls/basic/basic.pro @@ -1,6 +1,7 @@ TEMPLATE = app TARGET = tst_basic CONFIG += qmltestcase +QT += quickcontrols2 DEFINES += TST_CONTROLS_DATA=\\\"$$QQC2_SOURCE_TREE/tests/auto/controls/data\\\" diff --git a/tests/auto/controls/basic/tst_basic.cpp b/tests/auto/controls/basic/tst_basic.cpp index 24b27cf6..95d7e36a 100644 --- a/tests/auto/controls/basic/tst_basic.cpp +++ b/tests/auto/controls/basic/tst_basic.cpp @@ -35,10 +35,12 @@ ****************************************************************************/ #include +#include int main(int argc, char *argv[]) { QTEST_SET_MAIN_SOURCE_PATH qputenv("QML_NO_TOUCH_COMPRESSION", "1"); + QQuickStyle::setStyle("Basic"); return quick_test_main(argc, argv, "tst_controls::Basic", TST_CONTROLS_DATA); } diff --git a/tests/auto/palette/palette.pro b/tests/auto/palette/palette.pro index c7d55d07..afe9efa7 100644 --- a/tests/auto/palette/palette.pro +++ b/tests/auto/palette/palette.pro @@ -4,7 +4,7 @@ SOURCES += tst_palette.cpp macos:CONFIG -= app_bundle -QT += core-private gui-private qml-private quick-private testlib quicktemplates2-private quickcontrols2-private +QT += core-private gui-private qml-private quick-private testlib quicktemplates2-private quickcontrols2 quickcontrols2-private include (../shared/util.pri) diff --git a/tests/auto/palette/tst_palette.cpp b/tests/auto/palette/tst_palette.cpp index c42b17a3..6e41ca49 100644 --- a/tests/auto/palette/tst_palette.cpp +++ b/tests/auto/palette/tst_palette.cpp @@ -52,6 +52,12 @@ using namespace QQuickVisualTestUtil; +// Need a more descriptive failure message: QTBUG-87039 +#define COMPARE_PALETTES(actualPalette, expectedPalette) \ + QVERIFY2(actualPalette == expectedPalette, \ + qPrintable(QString::fromLatin1("\n Actual: %1\n Expected: %2") \ + .arg(QDebug::toString(actualPalette)).arg(QDebug::toString(expectedPalette)))); + class tst_palette : public QQmlDataTest { Q_OBJECT @@ -80,6 +86,8 @@ void tst_palette::initTestCase() { QQmlDataTest::initTestCase(); + QQuickStyle::setStyle("Basic"); + // Import QtQuick.Controls to initialize styles and themes so that // QQuickControlPrivate::themePalette() returns a palette from the // style's theme instead of the platform's theme. @@ -143,7 +151,7 @@ void tst_palette::palette() QVariant var = object->property("palette"); QVERIFY(var.isValid()); - QCOMPARE(var.value()->toQPalette(), expectedPalette); + COMPARE_PALETTES(var.value()->toQPalette(), expectedPalette); } void tst_palette::inheritance_data() diff --git a/tests/auto/qquickstyle/tst_qquickstyle.cpp b/tests/auto/qquickstyle/tst_qquickstyle.cpp index f133b617..37915315 100644 --- a/tests/auto/qquickstyle/tst_qquickstyle.cpp +++ b/tests/auto/qquickstyle/tst_qquickstyle.cpp @@ -91,7 +91,7 @@ void tst_QQuickStyle::unloadControls() void tst_QQuickStyle::lookup() { - QVERIFY(QQuickStyle::name().isEmpty()); + QCOMPARE(QQuickStyle::name(), QString()); QQuickStyle::setStyle("Material"); QCOMPARE(QQuickStyle::name(), QString("Material")); -- cgit v1.2.3