From 87d3e84c75839b736d45f2773fc5fb4ecce14296 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 14 Mar 2018 14:56:00 +0100 Subject: Add QQuickTheme::Scope Replace the old enums that were originally copied from QPlatformTheme, including irrelevant entries for DockWidget, MdiSubWindow, MessageBox, with a unified enum that will be matched to cover everything needed for theming fonts and palettes for Qt Quick Controls 2. Task-number: QTBUG-67062 Change-Id: Ia99d092f28c00210c0c7f24d4241eb5a5d9ceb5b Reviewed-by: Mitch Curtis --- tests/auto/font/tst_font.cpp | 108 ++++++++++---------- tests/auto/palette/tst_palette.cpp | 112 +++++++++++---------- .../tst_qquickapplicationwindow.cpp | 6 +- 3 files changed, 115 insertions(+), 111 deletions(-) (limited to 'tests') diff --git a/tests/auto/font/tst_font.cpp b/tests/auto/font/tst_font.cpp index 6e705fb4..eb37857a 100644 --- a/tests/auto/font/tst_font.cpp +++ b/tests/auto/font/tst_font.cpp @@ -220,82 +220,84 @@ void tst_font::inheritance() class TestFontTheme : public QQuickTheme { public: + static const int NFonts = QQuickTheme::Tumbler + 1; + TestFontTheme() { - std::fill(fonts, fonts + QQuickTheme::NFonts, static_cast(0)); + std::fill(fonts, fonts + NFonts, static_cast(0)); - for (int i = QQuickTheme::SystemFont; i < QQuickTheme::NFonts; ++i) { + for (int i = 0; i < NFonts; ++i) { QFont font = QFont(); font.setPixelSize(i + 10); fonts[i] = new QFont(font); } } - const QFont *font(Font type) const override + const QFont *font(Scope scope) const override { - return fonts[type]; + return fonts[scope]; } private: - QFont *fonts[QQuickTheme::NFonts]; + QFont *fonts[NFonts]; }; -Q_DECLARE_METATYPE(QQuickTheme::Font) +Q_DECLARE_METATYPE(QQuickTheme::Scope) void tst_font::defaultFont_data() { QTest::addColumn("control"); - QTest::addColumn("fontType"); - - QTest::newRow("AbstractButton") << "AbstractButton" << QQuickTheme::SystemFont; - QTest::newRow("ApplicationWindow") << "ApplicationWindow" << QQuickTheme::SystemFont; - QTest::newRow("Button") << "Button" << QQuickTheme::PushButtonFont; - QTest::newRow("CheckBox") << "CheckBox" << QQuickTheme::CheckBoxFont; - QTest::newRow("CheckDelegate") << "CheckDelegate" << QQuickTheme::ListViewFont; - QTest::newRow("ComboBox") << "ComboBox" << QQuickTheme::ComboMenuItemFont; - QTest::newRow("Container") << "Container" << QQuickTheme::SystemFont; - QTest::newRow("Control") << "Control" << QQuickTheme::SystemFont; - QTest::newRow("Dial") << "Dial" << QQuickTheme::SystemFont; - QTest::newRow("Dialog") << "Dialog" << QQuickTheme::SystemFont; - QTest::newRow("DialogButtonBox") << "DialogButtonBox" << QQuickTheme::SystemFont; - QTest::newRow("Drawer") << "Drawer" << QQuickTheme::SystemFont; - QTest::newRow("Frame") << "Frame" << QQuickTheme::SystemFont; - QTest::newRow("GroupBox") << "GroupBox" << QQuickTheme::GroupBoxTitleFont; - QTest::newRow("ItemDelegate") << "ItemDelegate" << QQuickTheme::ItemViewFont; - QTest::newRow("Label") << "Label" << QQuickTheme::LabelFont; - QTest::newRow("Menu") << "Menu" << QQuickTheme::MenuFont; - QTest::newRow("MenuItem") << "MenuItem" << QQuickTheme::MenuItemFont; - QTest::newRow("MenuSeparator") << "MenuSeparator" << QQuickTheme::SystemFont; - QTest::newRow("Page") << "Page" << QQuickTheme::SystemFont; - QTest::newRow("Pane") << "Pane" << QQuickTheme::SystemFont; - QTest::newRow("Popup") << "Popup" << QQuickTheme::SystemFont; - QTest::newRow("ProgressBar") << "ProgressBar" << QQuickTheme::SystemFont; - QTest::newRow("RadioButton") << "RadioButton" << QQuickTheme::RadioButtonFont; - QTest::newRow("RadioDelegate") << "RadioDelegate" << QQuickTheme::ListViewFont; - QTest::newRow("RangeSlider") << "RangeSlider" << QQuickTheme::SystemFont; - QTest::newRow("RoundButton") << "RoundButton" << QQuickTheme::PushButtonFont; - QTest::newRow("ScrollBar") << "ScrollBar" << QQuickTheme::SystemFont; - QTest::newRow("ScrollIndicator") << "ScrollIndicator" << QQuickTheme::SystemFont; - QTest::newRow("Slider") << "Slider" << QQuickTheme::SystemFont; - QTest::newRow("SpinBox") << "SpinBox" << QQuickTheme::SpinBoxFont; - QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QQuickTheme::ListViewFont; - QTest::newRow("Switch") << "Switch" << QQuickTheme::SwitchFont; - QTest::newRow("SwitchDelegate") << "SwitchDelegate" << QQuickTheme::ListViewFont; - QTest::newRow("TabBar") << "TabBar" << QQuickTheme::SystemFont; - QTest::newRow("TabButton") << "TabButton" << QQuickTheme::TabButtonFont; - QTest::newRow("TextArea") << "TextArea" << QQuickTheme::EditorFont; - QTest::newRow("TextField") << "TextField" << QQuickTheme::EditorFont; - QTest::newRow("ToolBar") << "ToolBar" << QQuickTheme::SystemFont; - QTest::newRow("ToolButton") << "ToolButton" << QQuickTheme::ToolButtonFont; - QTest::newRow("ToolSeparator") << "ToolSeparator" << QQuickTheme::SystemFont; - QTest::newRow("ToolTip") << "ToolTip" << QQuickTheme::TipLabelFont; - QTest::newRow("Tumbler") << "Tumbler" << QQuickTheme::TumblerFont; + QTest::addColumn("scope"); + + QTest::newRow("AbstractButton") << "AbstractButton" << QQuickTheme::System; + QTest::newRow("ApplicationWindow") << "ApplicationWindow" << QQuickTheme::System; + QTest::newRow("Button") << "Button" << QQuickTheme::Button; + QTest::newRow("CheckBox") << "CheckBox" << QQuickTheme::CheckBox; + QTest::newRow("CheckDelegate") << "CheckDelegate" << QQuickTheme::ListView; + QTest::newRow("ComboBox") << "ComboBox" << QQuickTheme::ComboBox; + QTest::newRow("Container") << "Container" << QQuickTheme::System; + QTest::newRow("Control") << "Control" << QQuickTheme::System; + QTest::newRow("Dial") << "Dial" << QQuickTheme::System; + QTest::newRow("Dialog") << "Dialog" << QQuickTheme::System; + QTest::newRow("DialogButtonBox") << "DialogButtonBox" << QQuickTheme::System; + QTest::newRow("Drawer") << "Drawer" << QQuickTheme::System; + QTest::newRow("Frame") << "Frame" << QQuickTheme::System; + QTest::newRow("GroupBox") << "GroupBox" << QQuickTheme::GroupBox; + QTest::newRow("ItemDelegate") << "ItemDelegate" << QQuickTheme::ItemView; + QTest::newRow("Label") << "Label" << QQuickTheme::Label; + QTest::newRow("Menu") << "Menu" << QQuickTheme::Menu; + QTest::newRow("MenuItem") << "MenuItem" << QQuickTheme::Menu; + QTest::newRow("MenuSeparator") << "MenuSeparator" << QQuickTheme::Menu; + QTest::newRow("Page") << "Page" << QQuickTheme::System; + QTest::newRow("Pane") << "Pane" << QQuickTheme::System; + QTest::newRow("Popup") << "Popup" << QQuickTheme::System; + QTest::newRow("ProgressBar") << "ProgressBar" << QQuickTheme::System; + QTest::newRow("RadioButton") << "RadioButton" << QQuickTheme::RadioButton; + QTest::newRow("RadioDelegate") << "RadioDelegate" << QQuickTheme::ListView; + QTest::newRow("RangeSlider") << "RangeSlider" << QQuickTheme::System; + QTest::newRow("RoundButton") << "RoundButton" << QQuickTheme::Button; + QTest::newRow("ScrollBar") << "ScrollBar" << QQuickTheme::System; + QTest::newRow("ScrollIndicator") << "ScrollIndicator" << QQuickTheme::System; + QTest::newRow("Slider") << "Slider" << QQuickTheme::System; + QTest::newRow("SpinBox") << "SpinBox" << QQuickTheme::SpinBox; + QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QQuickTheme::ListView; + QTest::newRow("Switch") << "Switch" << QQuickTheme::Switch; + QTest::newRow("SwitchDelegate") << "SwitchDelegate" << QQuickTheme::ListView; + QTest::newRow("TabBar") << "TabBar" << QQuickTheme::TabBar; + QTest::newRow("TabButton") << "TabButton" << QQuickTheme::TabBar; + QTest::newRow("TextArea") << "TextArea" << QQuickTheme::TextArea; + QTest::newRow("TextField") << "TextField" << QQuickTheme::TextField; + QTest::newRow("ToolBar") << "ToolBar" << QQuickTheme::ToolBar; + QTest::newRow("ToolButton") << "ToolButton" << QQuickTheme::ToolBar; + QTest::newRow("ToolSeparator") << "ToolSeparator" << QQuickTheme::ToolBar; + QTest::newRow("ToolTip") << "ToolTip" << QQuickTheme::ToolTip; + QTest::newRow("Tumbler") << "Tumbler" << QQuickTheme::Tumbler; } void tst_font::defaultFont() { QFETCH(QString, control); - QFETCH(QQuickTheme::Font, fontType); + QFETCH(QQuickTheme::Scope, scope); QQmlEngine engine; QQmlComponent component(&engine); @@ -311,7 +313,7 @@ void tst_font::defaultFont() QVariant var = object->property("font"); QVERIFY(var.isValid()); - QFont expectedFont = QQuickTheme::themeFont(fontType); + QFont expectedFont = QQuickTheme::themeFont(scope); QFont actualFont = var.value(); QCOMPARE(actualFont, expectedFont); } diff --git a/tests/auto/palette/tst_palette.cpp b/tests/auto/palette/tst_palette.cpp index af251a82..1b1f5168 100644 --- a/tests/auto/palette/tst_palette.cpp +++ b/tests/auto/palette/tst_palette.cpp @@ -87,7 +87,7 @@ void tst_palette::palette_data() QTest::addColumn("testFile"); QTest::addColumn("expectedPalette"); - QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::SystemPalette); + QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::System); defaultPalette.setColor(QPalette::Base, QColor("#efefef")); defaultPalette.setColor(QPalette::Text, QColor("#101010")); @@ -171,7 +171,7 @@ void tst_palette::inheritance() QObject *grandChild = window->property("grandChild").value(); QVERIFY(control && child && grandChild); - QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::SystemPalette); + QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::System); defaultPalette.setColor(QPalette::Base, QColor("#efefef")); defaultPalette.setColor(QPalette::Text, QColor("#101010")); @@ -219,79 +219,81 @@ void tst_palette::inheritance() class TestTheme : public QQuickTheme { public: + static const int NPalettes = QQuickTheme::Tumbler + 1; + TestTheme() { - std::fill(palettes, palettes + QQuickTheme::NPalettes, static_cast(0)); + std::fill(palettes, palettes + NPalettes, static_cast(0)); - for (int i = QQuickTheme::SystemPalette; i < QQuickTheme::NPalettes; ++i) + for (int i = 0; i < NPalettes; ++i) palettes[i] = new QPalette(QColor::fromRgb(i)); } - const QPalette *palette(Palette type) const override + const QPalette *palette(Scope scope) const override { - return palettes[type]; + return palettes[scope]; } private: - QPalette *palettes[QQuickTheme::NPalettes]; + QPalette *palettes[NPalettes]; }; -Q_DECLARE_METATYPE(QQuickTheme::Palette) +Q_DECLARE_METATYPE(QQuickTheme::Scope) void tst_palette::defaultPalette_data() { QTest::addColumn("control"); - QTest::addColumn("paletteType"); - - QTest::newRow("AbstractButton") << "AbstractButton" << QQuickTheme::SystemPalette; - QTest::newRow("ApplicationWindow") << "ApplicationWindow" << QQuickTheme::SystemPalette; - QTest::newRow("Button") << "Button" << QQuickTheme::ButtonPalette; - QTest::newRow("CheckBox") << "CheckBox" << QQuickTheme::CheckBoxPalette; - QTest::newRow("CheckDelegate") << "CheckDelegate" << QQuickTheme::ItemViewPalette; - QTest::newRow("ComboBox") << "ComboBox" << QQuickTheme::ComboBoxPalette; - QTest::newRow("Container") << "Container" << QQuickTheme::SystemPalette; - QTest::newRow("Control") << "Control" << QQuickTheme::SystemPalette; - QTest::newRow("Dial") << "Dial" << QQuickTheme::SystemPalette; - QTest::newRow("Dialog") << "Dialog" << QQuickTheme::SystemPalette; - QTest::newRow("DialogButtonBox") << "DialogButtonBox" << QQuickTheme::SystemPalette; - QTest::newRow("Drawer") << "Drawer" << QQuickTheme::SystemPalette; - QTest::newRow("Frame") << "Frame" << QQuickTheme::SystemPalette; - QTest::newRow("GroupBox") << "GroupBox" << QQuickTheme::GroupBoxPalette; - QTest::newRow("ItemDelegate") << "ItemDelegate" << QQuickTheme::ItemViewPalette; - QTest::newRow("Label") << "Label" << QQuickTheme::LabelPalette; - QTest::newRow("Menu") << "Menu" << QQuickTheme::MenuPalette; - QTest::newRow("MenuItem") << "MenuItem" << QQuickTheme::MenuPalette; - QTest::newRow("MenuSeparator") << "MenuSeparator" << QQuickTheme::MenuPalette; - QTest::newRow("Page") << "Page" << QQuickTheme::SystemPalette; - QTest::newRow("Pane") << "Pane" << QQuickTheme::SystemPalette; - QTest::newRow("Popup") << "Popup" << QQuickTheme::SystemPalette; - QTest::newRow("ProgressBar") << "ProgressBar" << QQuickTheme::SystemPalette; - QTest::newRow("RadioButton") << "RadioButton" << QQuickTheme::RadioButtonPalette; - QTest::newRow("RadioDelegate") << "RadioDelegate" << QQuickTheme::ItemViewPalette; - QTest::newRow("RangeSlider") << "RangeSlider" << QQuickTheme::SystemPalette; - QTest::newRow("RoundButton") << "RoundButton" << QQuickTheme::ButtonPalette; - QTest::newRow("ScrollBar") << "ScrollBar" << QQuickTheme::SystemPalette; - QTest::newRow("ScrollIndicator") << "ScrollIndicator" << QQuickTheme::SystemPalette; - QTest::newRow("Slider") << "Slider" << QQuickTheme::SystemPalette; - QTest::newRow("SpinBox") << "SpinBox" << QQuickTheme::SpinBoxPalette; - QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QQuickTheme::ItemViewPalette; - QTest::newRow("Switch") << "Switch" << QQuickTheme::SwitchPalette; - QTest::newRow("SwitchDelegate") << "SwitchDelegate" << QQuickTheme::ItemViewPalette; - QTest::newRow("TabBar") << "TabBar" << QQuickTheme::TabBarPalette; - QTest::newRow("TabButton") << "TabButton" << QQuickTheme::TabBarPalette; - QTest::newRow("TextArea") << "TextArea" << QQuickTheme::TextEditPalette; - QTest::newRow("TextField") << "TextField" << QQuickTheme::TextLineEditPalette; - QTest::newRow("ToolBar") << "ToolBar" << QQuickTheme::ToolButtonPalette; - QTest::newRow("ToolButton") << "ToolButton" << QQuickTheme::ToolButtonPalette; - QTest::newRow("ToolSeparator") << "ToolSeparator" << QQuickTheme::ToolButtonPalette; - QTest::newRow("ToolTip") << "ToolTip" << QQuickTheme::ToolTipPalette; - QTest::newRow("Tumbler") << "Tumbler" << QQuickTheme::TumblerPalette; + QTest::addColumn("scope"); + + QTest::newRow("AbstractButton") << "AbstractButton" << QQuickTheme::System; + QTest::newRow("ApplicationWindow") << "ApplicationWindow" << QQuickTheme::System; + QTest::newRow("Button") << "Button" << QQuickTheme::Button; + QTest::newRow("CheckBox") << "CheckBox" << QQuickTheme::CheckBox; + QTest::newRow("CheckDelegate") << "CheckDelegate" << QQuickTheme::ListView; + QTest::newRow("ComboBox") << "ComboBox" << QQuickTheme::ComboBox; + QTest::newRow("Container") << "Container" << QQuickTheme::System; + QTest::newRow("Control") << "Control" << QQuickTheme::System; + QTest::newRow("Dial") << "Dial" << QQuickTheme::System; + QTest::newRow("Dialog") << "Dialog" << QQuickTheme::System; + QTest::newRow("DialogButtonBox") << "DialogButtonBox" << QQuickTheme::System; + QTest::newRow("Drawer") << "Drawer" << QQuickTheme::System; + QTest::newRow("Frame") << "Frame" << QQuickTheme::System; + QTest::newRow("GroupBox") << "GroupBox" << QQuickTheme::GroupBox; + QTest::newRow("ItemDelegate") << "ItemDelegate" << QQuickTheme::ItemView; + QTest::newRow("Label") << "Label" << QQuickTheme::Label; + QTest::newRow("Menu") << "Menu" << QQuickTheme::Menu; + QTest::newRow("MenuItem") << "MenuItem" << QQuickTheme::Menu; + QTest::newRow("MenuSeparator") << "MenuSeparator" << QQuickTheme::Menu; + QTest::newRow("Page") << "Page" << QQuickTheme::System; + QTest::newRow("Pane") << "Pane" << QQuickTheme::System; + QTest::newRow("Popup") << "Popup" << QQuickTheme::System; + QTest::newRow("ProgressBar") << "ProgressBar" << QQuickTheme::System; + QTest::newRow("RadioButton") << "RadioButton" << QQuickTheme::RadioButton; + QTest::newRow("RadioDelegate") << "RadioDelegate" << QQuickTheme::ListView; + QTest::newRow("RangeSlider") << "RangeSlider" << QQuickTheme::System; + QTest::newRow("RoundButton") << "RoundButton" << QQuickTheme::Button; + QTest::newRow("ScrollBar") << "ScrollBar" << QQuickTheme::System; + QTest::newRow("ScrollIndicator") << "ScrollIndicator" << QQuickTheme::System; + QTest::newRow("Slider") << "Slider" << QQuickTheme::System; + QTest::newRow("SpinBox") << "SpinBox" << QQuickTheme::SpinBox; + QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QQuickTheme::ListView; + QTest::newRow("Switch") << "Switch" << QQuickTheme::Switch; + QTest::newRow("SwitchDelegate") << "SwitchDelegate" << QQuickTheme::ListView; + QTest::newRow("TabBar") << "TabBar" << QQuickTheme::TabBar; + QTest::newRow("TabButton") << "TabButton" << QQuickTheme::TabBar; + QTest::newRow("TextArea") << "TextArea" << QQuickTheme::TextArea; + QTest::newRow("TextField") << "TextField" << QQuickTheme::TextField; + QTest::newRow("ToolBar") << "ToolBar" << QQuickTheme::ToolBar; + QTest::newRow("ToolButton") << "ToolButton" << QQuickTheme::ToolBar; + QTest::newRow("ToolSeparator") << "ToolSeparator" << QQuickTheme::ToolBar; + QTest::newRow("ToolTip") << "ToolTip" << QQuickTheme::ToolTip; + QTest::newRow("Tumbler") << "Tumbler" << QQuickTheme::Tumbler; } void tst_palette::defaultPalette() { QFETCH(QString, control); - QFETCH(QQuickTheme::Palette, paletteType); + QFETCH(QQuickTheme::Scope, scope); QQmlEngine engine; QQmlComponent component(&engine); @@ -307,7 +309,7 @@ void tst_palette::defaultPalette() QVariant var = object->property("palette"); QVERIFY(var.isValid()); - QPalette expectedPalette = QQuickTheme::themePalette(paletteType); + QPalette expectedPalette = QQuickTheme::themePalette(scope); QPalette actualPalette = var.value(); QCOMPARE(actualPalette, expectedPalette); } diff --git a/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp b/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp index ecd53b9e..1700829c 100644 --- a/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp +++ b/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp @@ -560,9 +560,9 @@ class TestTheme : public QQuickTheme public: TestTheme() : m_font("Courier") { } - const QFont *font(Font type) const override + const QFont *font(Scope scope) const override { - Q_UNUSED(type); + Q_UNUSED(scope); return &m_font; } @@ -580,7 +580,7 @@ void tst_QQuickApplicationWindow::defaultFont() QScopedPointer window; window.reset(static_cast(component.create())); QVERIFY(!window.isNull()); - QCOMPARE(window->font(), QQuickTheme::themeFont(QQuickTheme::SystemFont)); + QCOMPARE(window->font(), QQuickTheme::themeFont(QQuickTheme::System)); } void tst_QQuickApplicationWindow::locale() -- cgit v1.2.3