aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/imports/controls/AbstractButton.qml4
-rw-r--r--src/imports/controls/Action.qml4
-rw-r--r--src/imports/controls/ActionGroup.qml4
-rw-r--r--src/imports/controls/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/BusyIndicator.qml8
-rw-r--r--src/imports/controls/Button.qml11
-rw-r--r--src/imports/controls/ButtonGroup.qml4
-rw-r--r--src/imports/controls/CheckBox.qml8
-rw-r--r--src/imports/controls/CheckDelegate.qml8
-rw-r--r--src/imports/controls/ComboBox.qml8
-rw-r--r--src/imports/controls/Container.qml4
-rw-r--r--src/imports/controls/Control.qml4
-rw-r--r--src/imports/controls/DelayButton.qml11
-rw-r--r--src/imports/controls/Dial.qml8
-rw-r--r--src/imports/controls/Dialog.qml8
-rw-r--r--src/imports/controls/DialogButtonBox.qml4
-rw-r--r--src/imports/controls/Drawer.qml8
-rw-r--r--src/imports/controls/Frame.qml11
-rw-r--r--src/imports/controls/GroupBox.qml11
-rw-r--r--src/imports/controls/ItemDelegate.qml8
-rw-r--r--src/imports/controls/Label.qml8
-rw-r--r--src/imports/controls/Menu.qml8
-rw-r--r--src/imports/controls/MenuBar.qml8
-rw-r--r--src/imports/controls/MenuBarItem.qml8
-rw-r--r--src/imports/controls/MenuItem.qml8
-rw-r--r--src/imports/controls/MenuSeparator.qml11
-rw-r--r--src/imports/controls/Page.qml11
-rw-r--r--src/imports/controls/PageIndicator.qml8
-rw-r--r--src/imports/controls/Pane.qml11
-rw-r--r--src/imports/controls/Popup.qml8
-rw-r--r--src/imports/controls/ProgressBar.qml8
-rw-r--r--src/imports/controls/RadioButton.qml8
-rw-r--r--src/imports/controls/RadioDelegate.qml8
-rw-r--r--src/imports/controls/RangeSlider.qml8
-rw-r--r--src/imports/controls/RoundButton.qml8
-rw-r--r--src/imports/controls/ScrollBar.qml8
-rw-r--r--src/imports/controls/ScrollIndicator.qml8
-rw-r--r--src/imports/controls/ScrollView.qml8
-rw-r--r--src/imports/controls/Slider.qml8
-rw-r--r--src/imports/controls/SpinBox.qml8
-rw-r--r--src/imports/controls/StackView.qml6
-rw-r--r--src/imports/controls/SwipeDelegate.qml8
-rw-r--r--src/imports/controls/SwipeView.qml6
-rw-r--r--src/imports/controls/Switch.qml8
-rw-r--r--src/imports/controls/SwitchDelegate.qml8
-rw-r--r--src/imports/controls/TabBar.qml4
-rw-r--r--src/imports/controls/TabButton.qml8
-rw-r--r--src/imports/controls/TextArea.qml12
-rw-r--r--src/imports/controls/TextField.qml12
-rw-r--r--src/imports/controls/ToolBar.qml11
-rw-r--r--src/imports/controls/ToolButton.qml8
-rw-r--r--src/imports/controls/ToolSeparator.qml11
-rw-r--r--src/imports/controls/ToolTip.qml8
-rw-r--r--src/imports/controls/Tumbler.qml8
-rw-r--r--src/imports/controls/controls.pro2
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-material-variant-dense.pngbin0 -> 21059 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-material-variant-normal.pngbin0 -> 22897 bytes
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-material-variant.qml212
-rw-r--r--src/imports/controls/doc/src/includes/qquickmaterialstyle.qdocinc16
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc2
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-index.qdoc7
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-material.qdoc29
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc4
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc2
-rw-r--r--src/imports/controls/fusion/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/fusion/BusyIndicator.qml12
-rw-r--r--src/imports/controls/fusion/Button.qml12
-rw-r--r--src/imports/controls/fusion/ButtonPanel.qml10
-rw-r--r--src/imports/controls/fusion/CheckBox.qml12
-rw-r--r--src/imports/controls/fusion/CheckDelegate.qml12
-rw-r--r--src/imports/controls/fusion/CheckIndicator.qml10
-rw-r--r--src/imports/controls/fusion/ComboBox.qml12
-rw-r--r--src/imports/controls/fusion/DelayButton.qml12
-rw-r--r--src/imports/controls/fusion/Dial.qml12
-rw-r--r--src/imports/controls/fusion/Dialog.qml12
-rw-r--r--src/imports/controls/fusion/DialogButtonBox.qml12
-rw-r--r--src/imports/controls/fusion/Drawer.qml12
-rw-r--r--src/imports/controls/fusion/Frame.qml15
-rw-r--r--src/imports/controls/fusion/GroupBox.qml15
-rw-r--r--src/imports/controls/fusion/ItemDelegate.qml12
-rw-r--r--src/imports/controls/fusion/Label.qml12
-rw-r--r--src/imports/controls/fusion/Menu.qml12
-rw-r--r--src/imports/controls/fusion/MenuBar.qml12
-rw-r--r--src/imports/controls/fusion/MenuBarItem.qml12
-rw-r--r--src/imports/controls/fusion/MenuItem.qml12
-rw-r--r--src/imports/controls/fusion/MenuSeparator.qml15
-rw-r--r--src/imports/controls/fusion/Page.qml15
-rw-r--r--src/imports/controls/fusion/PageIndicator.qml12
-rw-r--r--src/imports/controls/fusion/Pane.qml15
-rw-r--r--src/imports/controls/fusion/Popup.qml12
-rw-r--r--src/imports/controls/fusion/ProgressBar.qml12
-rw-r--r--src/imports/controls/fusion/RadioButton.qml12
-rw-r--r--src/imports/controls/fusion/RadioDelegate.qml12
-rw-r--r--src/imports/controls/fusion/RadioIndicator.qml10
-rw-r--r--src/imports/controls/fusion/RangeSlider.qml12
-rw-r--r--src/imports/controls/fusion/RoundButton.qml12
-rw-r--r--src/imports/controls/fusion/ScrollBar.qml12
-rw-r--r--src/imports/controls/fusion/ScrollIndicator.qml12
-rw-r--r--src/imports/controls/fusion/ScrollView.qml12
-rw-r--r--src/imports/controls/fusion/Slider.qml12
-rw-r--r--src/imports/controls/fusion/SliderGroove.qml10
-rw-r--r--src/imports/controls/fusion/SliderHandle.qml10
-rw-r--r--src/imports/controls/fusion/SpinBox.qml12
-rw-r--r--src/imports/controls/fusion/SwipeDelegate.qml12
-rw-r--r--src/imports/controls/fusion/Switch.qml12
-rw-r--r--src/imports/controls/fusion/SwitchDelegate.qml12
-rw-r--r--src/imports/controls/fusion/SwitchIndicator.qml10
-rw-r--r--src/imports/controls/fusion/TabBar.qml12
-rw-r--r--src/imports/controls/fusion/TabButton.qml15
-rw-r--r--src/imports/controls/fusion/TextArea.qml16
-rw-r--r--src/imports/controls/fusion/TextField.qml16
-rw-r--r--src/imports/controls/fusion/ToolBar.qml18
-rw-r--r--src/imports/controls/fusion/ToolButton.qml12
-rw-r--r--src/imports/controls/fusion/ToolSeparator.qml15
-rw-r--r--src/imports/controls/fusion/ToolTip.qml12
-rw-r--r--src/imports/controls/fusion/Tumbler.qml12
-rw-r--r--src/imports/controls/fusion/fusion.pro2
-rw-r--r--src/imports/controls/fusion/qmldir2
-rw-r--r--src/imports/controls/fusion/qquickfusiontheme.cpp1
-rw-r--r--src/imports/controls/fusion/qquickfusiontheme_p.h2
-rw-r--r--src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp6
-rw-r--r--src/imports/controls/imagine/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/imagine/BusyIndicator.qml8
-rw-r--r--src/imports/controls/imagine/Button.qml12
-rw-r--r--src/imports/controls/imagine/CheckBox.qml8
-rw-r--r--src/imports/controls/imagine/CheckDelegate.qml12
-rw-r--r--src/imports/controls/imagine/ComboBox.qml10
-rw-r--r--src/imports/controls/imagine/DelayButton.qml8
-rw-r--r--src/imports/controls/imagine/Dial.qml8
-rw-r--r--src/imports/controls/imagine/Dialog.qml10
-rw-r--r--src/imports/controls/imagine/DialogButtonBox.qml10
-rw-r--r--src/imports/controls/imagine/Drawer.qml8
-rw-r--r--src/imports/controls/imagine/Frame.qml11
-rw-r--r--src/imports/controls/imagine/GroupBox.qml13
-rw-r--r--src/imports/controls/imagine/ItemDelegate.qml12
-rw-r--r--src/imports/controls/imagine/Label.qml8
-rw-r--r--src/imports/controls/imagine/Menu.qml10
-rw-r--r--src/imports/controls/imagine/MenuItem.qml12
-rw-r--r--src/imports/controls/imagine/MenuSeparator.qml8
-rw-r--r--src/imports/controls/imagine/Page.qml11
-rw-r--r--src/imports/controls/imagine/PageIndicator.qml8
-rw-r--r--src/imports/controls/imagine/Pane.qml11
-rw-r--r--src/imports/controls/imagine/Popup.qml8
-rw-r--r--src/imports/controls/imagine/ProgressBar.qml8
-rw-r--r--src/imports/controls/imagine/RadioButton.qml8
-rw-r--r--src/imports/controls/imagine/RadioDelegate.qml12
-rw-r--r--src/imports/controls/imagine/RangeSlider.qml8
-rw-r--r--src/imports/controls/imagine/RoundButton.qml12
-rw-r--r--src/imports/controls/imagine/ScrollBar.qml8
-rw-r--r--src/imports/controls/imagine/ScrollIndicator.qml8
-rw-r--r--src/imports/controls/imagine/ScrollView.qml10
-rw-r--r--src/imports/controls/imagine/Slider.qml8
-rw-r--r--src/imports/controls/imagine/SpinBox.qml8
-rw-r--r--src/imports/controls/imagine/StackView.qml8
-rw-r--r--src/imports/controls/imagine/SwipeDelegate.qml12
-rw-r--r--src/imports/controls/imagine/SwipeView.qml8
-rw-r--r--src/imports/controls/imagine/Switch.qml8
-rw-r--r--src/imports/controls/imagine/SwitchDelegate.qml12
-rw-r--r--src/imports/controls/imagine/TabBar.qml8
-rw-r--r--src/imports/controls/imagine/TabButton.qml12
-rw-r--r--src/imports/controls/imagine/TextArea.qml16
-rw-r--r--src/imports/controls/imagine/TextField.qml16
-rw-r--r--src/imports/controls/imagine/ToolBar.qml11
-rw-r--r--src/imports/controls/imagine/ToolButton.qml12
-rw-r--r--src/imports/controls/imagine/ToolSeparator.qml8
-rw-r--r--src/imports/controls/imagine/ToolTip.qml8
-rw-r--r--src/imports/controls/imagine/Tumbler.qml12
-rw-r--r--src/imports/controls/imagine/imagine.pro2
-rw-r--r--src/imports/controls/imagine/qmldir2
-rw-r--r--src/imports/controls/imagine/qquickimaginetheme.cpp16
-rw-r--r--src/imports/controls/imagine/qquickimaginetheme_p.h6
-rw-r--r--src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp6
-rw-r--r--src/imports/controls/material/ApplicationWindow.qml6
-rw-r--r--src/imports/controls/material/BoxShadow.qml6
-rw-r--r--src/imports/controls/material/BusyIndicator.qml12
-rw-r--r--src/imports/controls/material/Button.qml17
-rw-r--r--src/imports/controls/material/CheckBox.qml11
-rw-r--r--src/imports/controls/material/CheckDelegate.qml17
-rw-r--r--src/imports/controls/material/CheckIndicator.qml6
-rw-r--r--src/imports/controls/material/ComboBox.qml14
-rw-r--r--src/imports/controls/material/CursorDelegate.qml4
-rw-r--r--src/imports/controls/material/DelayButton.qml17
-rw-r--r--src/imports/controls/material/Dial.qml8
-rw-r--r--src/imports/controls/material/Dialog.qml12
-rw-r--r--src/imports/controls/material/DialogButtonBox.qml20
-rw-r--r--src/imports/controls/material/Drawer.qml8
-rw-r--r--src/imports/controls/material/ElevationEffect.qml6
-rw-r--r--src/imports/controls/material/Frame.qml12
-rw-r--r--src/imports/controls/material/GroupBox.qml14
-rw-r--r--src/imports/controls/material/ItemDelegate.qml17
-rw-r--r--src/imports/controls/material/Label.qml6
-rw-r--r--src/imports/controls/material/Menu.qml15
-rw-r--r--src/imports/controls/material/MenuBar.qml12
-rw-r--r--src/imports/controls/material/MenuBarItem.qml15
-rw-r--r--src/imports/controls/material/MenuItem.qml17
-rw-r--r--src/imports/controls/material/MenuSeparator.qml9
-rw-r--r--src/imports/controls/material/Page.qml9
-rw-r--r--src/imports/controls/material/PageIndicator.qml6
-rw-r--r--src/imports/controls/material/Pane.qml11
-rw-r--r--src/imports/controls/material/Popup.qml8
-rw-r--r--src/imports/controls/material/ProgressBar.qml8
-rw-r--r--src/imports/controls/material/RadioButton.qml11
-rw-r--r--src/imports/controls/material/RadioDelegate.qml17
-rw-r--r--src/imports/controls/material/RadioIndicator.qml6
-rw-r--r--src/imports/controls/material/RangeSlider.qml8
-rw-r--r--src/imports/controls/material/RectangularGlow.qml2
-rw-r--r--src/imports/controls/material/RoundButton.qml16
-rw-r--r--src/imports/controls/material/ScrollBar.qml6
-rw-r--r--src/imports/controls/material/ScrollIndicator.qml6
-rw-r--r--src/imports/controls/material/Slider.qml8
-rw-r--r--src/imports/controls/material/SliderHandle.qml6
-rw-r--r--src/imports/controls/material/SpinBox.qml18
-rw-r--r--src/imports/controls/material/StackView.qml6
-rw-r--r--src/imports/controls/material/SwipeDelegate.qml17
-rw-r--r--src/imports/controls/material/SwipeView.qml6
-rw-r--r--src/imports/controls/material/Switch.qml8
-rw-r--r--src/imports/controls/material/SwitchDelegate.qml17
-rw-r--r--src/imports/controls/material/SwitchIndicator.qml6
-rw-r--r--src/imports/controls/material/TabBar.qml8
-rw-r--r--src/imports/controls/material/TabButton.qml14
-rw-r--r--src/imports/controls/material/TextArea.qml16
-rw-r--r--src/imports/controls/material/TextField.qml15
-rw-r--r--src/imports/controls/material/ToolBar.qml11
-rw-r--r--src/imports/controls/material/ToolButton.qml16
-rw-r--r--src/imports/controls/material/ToolSeparator.qml12
-rw-r--r--src/imports/controls/material/ToolTip.qml11
-rw-r--r--src/imports/controls/material/Tumbler.qml10
-rw-r--r--src/imports/controls/material/material.pro2
-rw-r--r--src/imports/controls/material/qmldir2
-rw-r--r--src/imports/controls/material/qquickmaterialstyle.cpp217
-rw-r--r--src/imports/controls/material/qquickmaterialstyle_p.h28
-rw-r--r--src/imports/controls/material/qquickmaterialtheme.cpp70
-rw-r--r--src/imports/controls/material/qquickmaterialtheme_p.h5
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp7
-rw-r--r--src/imports/controls/qmldir2
-rw-r--r--src/imports/controls/qquickdefaulttheme.cpp9
-rw-r--r--src/imports/controls/qquickdefaulttheme_p.h5
-rw-r--r--src/imports/controls/qtquickcontrols2plugin.cpp6
-rw-r--r--src/imports/controls/universal/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/universal/BusyIndicator.qml8
-rw-r--r--src/imports/controls/universal/Button.qml13
-rw-r--r--src/imports/controls/universal/CheckBox.qml8
-rw-r--r--src/imports/controls/universal/CheckDelegate.qml12
-rw-r--r--src/imports/controls/universal/CheckIndicator.qml10
-rw-r--r--src/imports/controls/universal/ComboBox.qml10
-rw-r--r--src/imports/controls/universal/DelayButton.qml9
-rw-r--r--src/imports/controls/universal/Dial.qml6
-rw-r--r--src/imports/controls/universal/Dialog.qml11
-rw-r--r--src/imports/controls/universal/DialogButtonBox.qml8
-rw-r--r--src/imports/controls/universal/Drawer.qml6
-rw-r--r--src/imports/controls/universal/Frame.qml9
-rw-r--r--src/imports/controls/universal/GroupBox.qml9
-rw-r--r--src/imports/controls/universal/ItemDelegate.qml10
-rw-r--r--src/imports/controls/universal/Label.qml6
-rw-r--r--src/imports/controls/universal/Menu.qml8
-rw-r--r--src/imports/controls/universal/MenuBar.qml10
-rw-r--r--src/imports/controls/universal/MenuBarItem.qml10
-rw-r--r--src/imports/controls/universal/MenuItem.qml10
-rw-r--r--src/imports/controls/universal/MenuSeparator.qml6
-rw-r--r--src/imports/controls/universal/Page.qml9
-rw-r--r--src/imports/controls/universal/PageIndicator.qml6
-rw-r--r--src/imports/controls/universal/Pane.qml9
-rw-r--r--src/imports/controls/universal/Popup.qml6
-rw-r--r--src/imports/controls/universal/ProgressBar.qml8
-rw-r--r--src/imports/controls/universal/RadioButton.qml8
-rw-r--r--src/imports/controls/universal/RadioDelegate.qml12
-rw-r--r--src/imports/controls/universal/RadioIndicator.qml4
-rw-r--r--src/imports/controls/universal/RangeSlider.qml6
-rw-r--r--src/imports/controls/universal/RoundButton.qml10
-rw-r--r--src/imports/controls/universal/ScrollBar.qml6
-rw-r--r--src/imports/controls/universal/ScrollIndicator.qml6
-rw-r--r--src/imports/controls/universal/Slider.qml6
-rw-r--r--src/imports/controls/universal/SpinBox.qml10
-rw-r--r--src/imports/controls/universal/StackView.qml6
-rw-r--r--src/imports/controls/universal/SwipeDelegate.qml10
-rw-r--r--src/imports/controls/universal/Switch.qml8
-rw-r--r--src/imports/controls/universal/SwitchDelegate.qml12
-rw-r--r--src/imports/controls/universal/SwitchIndicator.qml6
-rw-r--r--src/imports/controls/universal/TabBar.qml6
-rw-r--r--src/imports/controls/universal/TabButton.qml10
-rw-r--r--src/imports/controls/universal/TextArea.qml16
-rw-r--r--src/imports/controls/universal/TextField.qml16
-rw-r--r--src/imports/controls/universal/ToolBar.qml9
-rw-r--r--src/imports/controls/universal/ToolButton.qml10
-rw-r--r--src/imports/controls/universal/ToolSeparator.qml6
-rw-r--r--src/imports/controls/universal/ToolTip.qml6
-rw-r--r--src/imports/controls/universal/Tumbler.qml10
-rw-r--r--src/imports/controls/universal/qmldir2
-rw-r--r--src/imports/controls/universal/qquickuniversaltheme.cpp17
-rw-r--r--src/imports/controls/universal/qquickuniversaltheme_p.h5
-rw-r--r--src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp6
-rw-r--r--src/imports/controls/universal/universal.pro2
-rw-r--r--src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc4
-rw-r--r--src/imports/templates/qtquicktemplates2plugin.cpp9
-rw-r--r--src/imports/templates/templates.pro2
-rw-r--r--src/quickcontrols2/qquickstyleplugin.cpp109
-rw-r--r--src/quickcontrols2/qquickstyleplugin_p.h7
-rw-r--r--src/quickcontrols2/qquicktheme.cpp165
-rw-r--r--src/quickcontrols2/quickcontrols2.pri8
-rw-r--r--src/quicktemplates2/qquickapplicationwindow.cpp8
-rw-r--r--src/quicktemplates2/qquickbutton.cpp4
-rw-r--r--src/quicktemplates2/qquickcheckbox.cpp4
-rw-r--r--src/quicktemplates2/qquickcheckdelegate.cpp2
-rw-r--r--src/quicktemplates2/qquickcombobox.cpp4
-rw-r--r--src/quicktemplates2/qquickcontrol.cpp248
-rw-r--r--src/quicktemplates2/qquickcontrol_p.h15
-rw-r--r--src/quicktemplates2/qquickcontrol_p_p.h34
-rw-r--r--src/quicktemplates2/qquickdelaybutton.cpp4
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox.cpp57
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox_p.h22
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox_p_p.h1
-rw-r--r--src/quicktemplates2/qquickgroupbox.cpp4
-rw-r--r--src/quicktemplates2/qquickitemdelegate.cpp4
-rw-r--r--src/quicktemplates2/qquicklabel.cpp4
-rw-r--r--src/quicktemplates2/qquickmenu.cpp4
-rw-r--r--src/quicktemplates2/qquickmenubar.cpp4
-rw-r--r--src/quicktemplates2/qquickmenubaritem.cpp4
-rw-r--r--src/quicktemplates2/qquickmenuitem.cpp4
-rw-r--r--src/quicktemplates2/qquickmenuseparator.cpp2
-rw-r--r--src/quicktemplates2/qquickpage.cpp148
-rw-r--r--src/quicktemplates2/qquickpage_p.h22
-rw-r--r--src/quicktemplates2/qquickpane.cpp156
-rw-r--r--src/quicktemplates2/qquickpane_p.h7
-rw-r--r--src/quicktemplates2/qquickpane_p_p.h18
-rw-r--r--src/quicktemplates2/qquickpopup.cpp90
-rw-r--r--src/quicktemplates2/qquickpopup_p.h15
-rw-r--r--src/quicktemplates2/qquickpopupitem.cpp4
-rw-r--r--src/quicktemplates2/qquickproxytheme.cpp (renamed from src/quickcontrols2/qquickproxytheme.cpp)2
-rw-r--r--src/quicktemplates2/qquickproxytheme_p.h (renamed from src/quickcontrols2/qquickproxytheme_p.h)6
-rw-r--r--src/quicktemplates2/qquickradiobutton.cpp4
-rw-r--r--src/quicktemplates2/qquickradiodelegate.cpp2
-rw-r--r--src/quicktemplates2/qquickspinbox.cpp4
-rw-r--r--src/quicktemplates2/qquickswipedelegate.cpp2
-rw-r--r--src/quicktemplates2/qquickswitch.cpp2
-rw-r--r--src/quicktemplates2/qquickswitchdelegate.cpp2
-rw-r--r--src/quicktemplates2/qquicktabbar.cpp2
-rw-r--r--src/quicktemplates2/qquicktabbutton.cpp4
-rw-r--r--src/quicktemplates2/qquicktextarea.cpp28
-rw-r--r--src/quicktemplates2/qquicktextarea_p.h8
-rw-r--r--src/quicktemplates2/qquicktextarea_p_p.h1
-rw-r--r--src/quicktemplates2/qquicktextfield.cpp28
-rw-r--r--src/quicktemplates2/qquicktextfield_p.h7
-rw-r--r--src/quicktemplates2/qquicktextfield_p_p.h1
-rw-r--r--src/quicktemplates2/qquicktheme.cpp140
-rw-r--r--src/quicktemplates2/qquicktheme_p.h143
-rw-r--r--src/quicktemplates2/qquicktheme_p_p.h (renamed from src/quickcontrols2/qquicktheme_p.h)33
-rw-r--r--src/quicktemplates2/qquicktoolbar.cpp2
-rw-r--r--src/quicktemplates2/qquicktoolbutton.cpp4
-rw-r--r--src/quicktemplates2/qquicktoolseparator.cpp2
-rw-r--r--src/quicktemplates2/qquicktooltip.cpp33
-rw-r--r--src/quicktemplates2/qquicktooltip_p.h4
-rw-r--r--src/quicktemplates2/qquicktumbler.cpp54
-rw-r--r--src/quicktemplates2/qquicktumbler_p.h13
-rw-r--r--src/quicktemplates2/qquicktumbler_p_p.h1
-rw-r--r--src/quicktemplates2/quicktemplates2.pri5
-rw-r--r--tests/auto/controls/data/tst_control.qml213
-rw-r--r--tests/auto/controls/data/tst_dialogbuttonbox.qml25
-rw-r--r--tests/auto/controls/data/tst_textarea.qml16
-rw-r--r--tests/auto/controls/data/tst_textfield.qml17
-rw-r--r--tests/auto/controls/data/tst_tooltip.qml18
-rw-r--r--tests/auto/controls/data/tst_tumbler.qml64
-rw-r--r--tests/auto/font/tst_font.cpp123
-rw-r--r--tests/auto/palette/tst_palette.cpp147
-rw-r--r--tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp11
-rw-r--r--tests/auto/qquickmaterialstyleconf/data/applicationwindow.qml5
-rw-r--r--tests/auto/qquickmaterialstyleconf/qquickmaterialstyleconf.qrc10
-rw-r--r--tests/auto/qquickmaterialstyleconf/tst_qquickmaterialstyleconf.cpp42
-rw-r--r--tests/auto/qquickmaterialstyleconf/variant-dense.conf6
-rw-r--r--tests/auto/qquickmaterialstyleconf/variant-normal.conf6
-rw-r--r--tests/manual/screenshots/qtquickcontrols2.conf3
-rw-r--r--tests/manual/screenshots/screenshots.qml2
372 files changed, 3500 insertions, 2201 deletions
diff --git a/.qmake.conf b/.qmake.conf
index e264502c..54e0cdc8 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -4,4 +4,4 @@ DEFINES += QT_NO_FOREACH
QQC2_SOURCE_TREE = $$PWD
-MODULE_VERSION = 5.11.0
+MODULE_VERSION = 5.12.0
diff --git a/src/imports/controls/AbstractButton.qml b/src/imports/controls/AbstractButton.qml
index 2ff1b82c..58a1a102 100644
--- a/src/imports/controls/AbstractButton.qml
+++ b/src/imports/controls/AbstractButton.qml
@@ -34,8 +34,8 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.AbstractButton {
id: control
diff --git a/src/imports/controls/Action.qml b/src/imports/controls/Action.qml
index 0ba5822f..fe86213a 100644
--- a/src/imports/controls/Action.qml
+++ b/src/imports/controls/Action.qml
@@ -34,7 +34,7 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.Action { }
diff --git a/src/imports/controls/ActionGroup.qml b/src/imports/controls/ActionGroup.qml
index a8c49d8b..ae8772d6 100644
--- a/src/imports/controls/ActionGroup.qml
+++ b/src/imports/controls/ActionGroup.qml
@@ -34,7 +34,7 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.ActionGroup { }
diff --git a/src/imports/controls/ApplicationWindow.qml b/src/imports/controls/ApplicationWindow.qml
index 84b618e1..4ad97082 100644
--- a/src/imports/controls/ApplicationWindow.qml
+++ b/src/imports/controls/ApplicationWindow.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ApplicationWindow {
id: window
diff --git a/src/imports/controls/BusyIndicator.qml b/src/imports/controls/BusyIndicator.qml
index bde5fa7c..13fd52c4 100644
--- a/src/imports/controls/BusyIndicator.qml
+++ b/src/imports/controls/BusyIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.BusyIndicator {
id: control
diff --git a/src/imports/controls/Button.qml b/src/imports/controls/Button.qml
index 7039dfc9..c0f96af3 100644
--- a/src/imports/controls/Button.qml
+++ b/src/imports/controls/Button.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Button {
id: control
@@ -49,8 +49,7 @@ T.Button {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 6
- leftPadding: padding + 2
- rightPadding: padding + 2
+ horizontalPadding: padding + 2
spacing: 6
icon.width: 24
diff --git a/src/imports/controls/ButtonGroup.qml b/src/imports/controls/ButtonGroup.qml
index 4e8ae893..50d3b840 100644
--- a/src/imports/controls/ButtonGroup.qml
+++ b/src/imports/controls/ButtonGroup.qml
@@ -34,7 +34,7 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.ButtonGroup { }
diff --git a/src/imports/controls/CheckBox.qml b/src/imports/controls/CheckBox.qml
index 136c9b36..140ce8a1 100644
--- a/src/imports/controls/CheckBox.qml
+++ b/src/imports/controls/CheckBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.CheckBox {
id: control
diff --git a/src/imports/controls/CheckDelegate.qml b/src/imports/controls/CheckDelegate.qml
index 087c9d75..af3a72d7 100644
--- a/src/imports/controls/CheckDelegate.qml
+++ b/src/imports/controls/CheckDelegate.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.CheckDelegate {
id: control
diff --git a/src/imports/controls/ComboBox.qml b/src/imports/controls/ComboBox.qml
index 2bb26967..73ffb89e 100644
--- a/src/imports/controls/ComboBox.qml
+++ b/src/imports/controls/ComboBox.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ComboBox {
id: control
diff --git a/src/imports/controls/Container.qml b/src/imports/controls/Container.qml
index e7cf8a2a..896091d8 100644
--- a/src/imports/controls/Container.qml
+++ b/src/imports/controls/Container.qml
@@ -34,8 +34,8 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.Container {
id: control
diff --git a/src/imports/controls/Control.qml b/src/imports/controls/Control.qml
index 5728da0a..4c673283 100644
--- a/src/imports/controls/Control.qml
+++ b/src/imports/controls/Control.qml
@@ -34,8 +34,8 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.Control {
id: control
diff --git a/src/imports/controls/DelayButton.qml b/src/imports/controls/DelayButton.qml
index b34caed6..ee4b227a 100644
--- a/src/imports/controls/DelayButton.qml
+++ b/src/imports/controls/DelayButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.DelayButton {
id: control
@@ -49,8 +49,7 @@ T.DelayButton {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 6
- leftPadding: padding + 2
- rightPadding: padding + 2
+ horizontalPadding: padding + 2
transition: Transition {
NumberAnimation {
diff --git a/src/imports/controls/Dial.qml b/src/imports/controls/Dial.qml
index f4132611..be029c37 100644
--- a/src/imports/controls/Dial.qml
+++ b/src/imports/controls/Dial.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Dial {
id: control
diff --git a/src/imports/controls/Dialog.qml b/src/imports/controls/Dialog.qml
index 913e23f1..768d3ff1 100644
--- a/src/imports/controls/Dialog.qml
+++ b/src/imports/controls/Dialog.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.Dialog {
id: control
diff --git a/src/imports/controls/DialogButtonBox.qml b/src/imports/controls/DialogButtonBox.qml
index 3189967d..feff1492 100644
--- a/src/imports/controls/DialogButtonBox.qml
+++ b/src/imports/controls/DialogButtonBox.qml
@@ -34,8 +34,8 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.DialogButtonBox {
id: control
diff --git a/src/imports/controls/Drawer.qml b/src/imports/controls/Drawer.qml
index dbafbd92..78199695 100644
--- a/src/imports/controls/Drawer.qml
+++ b/src/imports/controls/Drawer.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Drawer {
id: control
diff --git a/src/imports/controls/Frame.qml b/src/imports/controls/Frame.qml
index 7c8a4db7..2f647b64 100644
--- a/src/imports/controls/Frame.qml
+++ b/src/imports/controls/Frame.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Frame {
id: control
@@ -45,9 +45,6 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 12
background: Rectangle {
diff --git a/src/imports/controls/GroupBox.qml b/src/imports/controls/GroupBox.qml
index 2985c02e..165c5fff 100644
--- a/src/imports/controls/GroupBox.qml
+++ b/src/imports/controls/GroupBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.GroupBox {
id: control
@@ -47,9 +47,6 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
spacing: 6
padding: 12
topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0)
diff --git a/src/imports/controls/ItemDelegate.qml b/src/imports/controls/ItemDelegate.qml
index 6367bc86..f5f03bca 100644
--- a/src/imports/controls/ItemDelegate.qml
+++ b/src/imports/controls/ItemDelegate.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ItemDelegate {
id: control
diff --git a/src/imports/controls/Label.qml b/src/imports/controls/Label.qml
index aa02918f..6c3c05d4 100644
--- a/src/imports/controls/Label.qml
+++ b/src/imports/controls/Label.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Label {
id: control
diff --git a/src/imports/controls/Menu.qml b/src/imports/controls/Menu.qml
index deadc274..770db8eb 100644
--- a/src/imports/controls/Menu.qml
+++ b/src/imports/controls/Menu.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Menu {
id: control
diff --git a/src/imports/controls/MenuBar.qml b/src/imports/controls/MenuBar.qml
index 058c8736..677396ab 100644
--- a/src/imports/controls/MenuBar.qml
+++ b/src/imports/controls/MenuBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.MenuBar {
id: control
diff --git a/src/imports/controls/MenuBarItem.qml b/src/imports/controls/MenuBarItem.qml
index 02e3ac43..ee307532 100644
--- a/src/imports/controls/MenuBarItem.qml
+++ b/src/imports/controls/MenuBarItem.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.MenuBarItem {
id: control
diff --git a/src/imports/controls/MenuItem.qml b/src/imports/controls/MenuItem.qml
index 90a19f57..4c4ce005 100644
--- a/src/imports/controls/MenuItem.qml
+++ b/src/imports/controls/MenuItem.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.MenuItem {
id: control
diff --git a/src/imports/controls/MenuSeparator.qml b/src/imports/controls/MenuSeparator.qml
index ac47e32c..845bbdaa 100644
--- a/src/imports/controls/MenuSeparator.qml
+++ b/src/imports/controls/MenuSeparator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.MenuSeparator {
id: control
@@ -46,8 +46,7 @@ T.MenuSeparator {
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding)
padding: 2
- topPadding: padding + 4
- bottomPadding: padding + 4
+ verticalPadding: padding + 4
contentItem: Rectangle {
implicitWidth: 188
diff --git a/src/imports/controls/Page.qml b/src/imports/controls/Page.qml
index df56dcbe..3950d702 100644
--- a/src/imports/controls/Page.qml
+++ b/src/imports/controls/Page.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Page {
id: control
@@ -51,9 +51,6 @@ T.Page {
+ (header && header.visible ? header.implicitHeight + spacing : 0)
+ (footer && footer.visible ? footer.implicitHeight + spacing : 0))
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
background: Rectangle {
color: control.palette.window
}
diff --git a/src/imports/controls/PageIndicator.qml b/src/imports/controls/PageIndicator.qml
index 9d048002..77958d19 100644
--- a/src/imports/controls/PageIndicator.qml
+++ b/src/imports/controls/PageIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.PageIndicator {
id: control
diff --git a/src/imports/controls/Pane.qml b/src/imports/controls/Pane.qml
index 7517e2f2..3bfad75d 100644
--- a/src/imports/controls/Pane.qml
+++ b/src/imports/controls/Pane.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Pane {
id: control
@@ -45,9 +45,6 @@ T.Pane {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 12
background: Rectangle {
diff --git a/src/imports/controls/Popup.qml b/src/imports/controls/Popup.qml
index 7ea706ed..f7966be4 100644
--- a/src/imports/controls/Popup.qml
+++ b/src/imports/controls/Popup.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Popup {
id: control
diff --git a/src/imports/controls/ProgressBar.qml b/src/imports/controls/ProgressBar.qml
index d91bcd57..17cf9560 100644
--- a/src/imports/controls/ProgressBar.qml
+++ b/src/imports/controls/ProgressBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.ProgressBar {
id: control
diff --git a/src/imports/controls/RadioButton.qml b/src/imports/controls/RadioButton.qml
index d95d2a7b..751f505a 100644
--- a/src/imports/controls/RadioButton.qml
+++ b/src/imports/controls/RadioButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.RadioButton {
id: control
diff --git a/src/imports/controls/RadioDelegate.qml b/src/imports/controls/RadioDelegate.qml
index 556d678f..71544108 100644
--- a/src/imports/controls/RadioDelegate.qml
+++ b/src/imports/controls/RadioDelegate.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.RadioDelegate {
id: control
diff --git a/src/imports/controls/RangeSlider.qml b/src/imports/controls/RangeSlider.qml
index f2c9266e..c096608e 100644
--- a/src/imports/controls/RangeSlider.qml
+++ b/src/imports/controls/RangeSlider.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.RangeSlider {
id: control
diff --git a/src/imports/controls/RoundButton.qml b/src/imports/controls/RoundButton.qml
index 9692b9de..934bbf1c 100644
--- a/src/imports/controls/RoundButton.qml
+++ b/src/imports/controls/RoundButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.RoundButton {
id: control
diff --git a/src/imports/controls/ScrollBar.qml b/src/imports/controls/ScrollBar.qml
index 2f8826bf..c62c1544 100644
--- a/src/imports/controls/ScrollBar.qml
+++ b/src/imports/controls/ScrollBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ScrollBar {
id: control
diff --git a/src/imports/controls/ScrollIndicator.qml b/src/imports/controls/ScrollIndicator.qml
index 6616d6c6..d65a609f 100644
--- a/src/imports/controls/ScrollIndicator.qml
+++ b/src/imports/controls/ScrollIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ScrollIndicator {
id: control
diff --git a/src/imports/controls/ScrollView.qml b/src/imports/controls/ScrollView.qml
index 725a50a9..338e755e 100644
--- a/src/imports/controls/ScrollView.qml
+++ b/src/imports/controls/ScrollView.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ScrollView {
id: control
diff --git a/src/imports/controls/Slider.qml b/src/imports/controls/Slider.qml
index 9d4942c9..94f1ecb3 100644
--- a/src/imports/controls/Slider.qml
+++ b/src/imports/controls/Slider.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Slider {
id: control
diff --git a/src/imports/controls/SpinBox.qml b/src/imports/controls/SpinBox.qml
index 51d635a6..43543656 100644
--- a/src/imports/controls/SpinBox.qml
+++ b/src/imports/controls/SpinBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.SpinBox {
id: control
diff --git a/src/imports/controls/StackView.qml b/src/imports/controls/StackView.qml
index cc4e1472..5da0c541 100644
--- a/src/imports/controls/StackView.qml
+++ b/src/imports/controls/StackView.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.5 as T
T.StackView {
id: control
diff --git a/src/imports/controls/SwipeDelegate.qml b/src/imports/controls/SwipeDelegate.qml
index 4f2c9ee1..22162131 100644
--- a/src/imports/controls/SwipeDelegate.qml
+++ b/src/imports/controls/SwipeDelegate.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.SwipeDelegate {
id: control
diff --git a/src/imports/controls/SwipeView.qml b/src/imports/controls/SwipeView.qml
index 827c9cd6..e46c080e 100644
--- a/src/imports/controls/SwipeView.qml
+++ b/src/imports/controls/SwipeView.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.5 as T
T.SwipeView {
id: control
diff --git a/src/imports/controls/Switch.qml b/src/imports/controls/Switch.qml
index 30da70f4..b59675ea 100644
--- a/src/imports/controls/Switch.qml
+++ b/src/imports/controls/Switch.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.Switch {
id: control
diff --git a/src/imports/controls/SwitchDelegate.qml b/src/imports/controls/SwitchDelegate.qml
index 21a11491..7ef1dc3c 100644
--- a/src/imports/controls/SwitchDelegate.qml
+++ b/src/imports/controls/SwitchDelegate.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.SwitchDelegate {
id: control
diff --git a/src/imports/controls/TabBar.qml b/src/imports/controls/TabBar.qml
index d95d7f39..edde8cc7 100644
--- a/src/imports/controls/TabBar.qml
+++ b/src/imports/controls/TabBar.qml
@@ -34,8 +34,8 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
T.TabBar {
id: control
diff --git a/src/imports/controls/TabButton.qml b/src/imports/controls/TabButton.qml
index 964f4e1f..3c24caf0 100644
--- a/src/imports/controls/TabButton.qml
+++ b/src/imports/controls/TabButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.TabButton {
id: control
diff --git a/src/imports/controls/TextArea.qml b/src/imports/controls/TextArea.qml
index 04a44eae..6a30b799 100644
--- a/src/imports/controls/TextArea.qml
+++ b/src/imports/controls/TextArea.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.TextArea {
id: control
@@ -53,6 +53,7 @@ T.TextArea {
leftPadding: padding + 4
color: control.palette.text
+ placeholderTextColor: Color.transparent(control.color, 0.5)
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
@@ -65,8 +66,7 @@ T.TextArea {
text: control.placeholderText
font: control.font
- opacity: 0.5
- color: control.color
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
diff --git a/src/imports/controls/TextField.qml b/src/imports/controls/TextField.qml
index 4b80d8be..0264f25e 100644
--- a/src/imports/controls/TextField.qml
+++ b/src/imports/controls/TextField.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.TextField {
id: control
@@ -55,6 +55,7 @@ T.TextField {
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
verticalAlignment: TextInput.AlignVCenter
PlaceholderText {
@@ -66,8 +67,7 @@ T.TextField {
text: control.placeholderText
font: control.font
- opacity: 0.5
- color: control.color
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
diff --git a/src/imports/controls/ToolBar.qml b/src/imports/controls/ToolBar.qml
index ba6684b9..27a7f580 100644
--- a/src/imports/controls/ToolBar.qml
+++ b/src/imports/controls/ToolBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ToolBar {
id: control
@@ -45,9 +45,6 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
background: Rectangle {
implicitHeight: 40
color: control.palette.button
diff --git a/src/imports/controls/ToolButton.qml b/src/imports/controls/ToolButton.qml
index 371d1546..72983c94 100644
--- a/src/imports/controls/ToolButton.qml
+++ b/src/imports/controls/ToolButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ToolButton {
id: control
diff --git a/src/imports/controls/ToolSeparator.qml b/src/imports/controls/ToolSeparator.qml
index 306ca575..db156762 100644
--- a/src/imports/controls/ToolSeparator.qml
+++ b/src/imports/controls/ToolSeparator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ToolSeparator {
id: control
@@ -46,8 +46,7 @@ T.ToolSeparator {
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding)
padding: vertical ? 6 : 2
- topPadding: vertical ? 2 : 6
- bottomPadding: vertical ? 2 : 6
+ verticalPadding: vertical ? 2 : 6
contentItem: Rectangle {
implicitWidth: vertical ? 1 : 30
diff --git a/src/imports/controls/ToolTip.qml b/src/imports/controls/ToolTip.qml
index 46f7f577..57d28c53 100644
--- a/src/imports/controls/ToolTip.qml
+++ b/src/imports/controls/ToolTip.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.ToolTip {
id: control
diff --git a/src/imports/controls/Tumbler.qml b/src/imports/controls/Tumbler.qml
index b9cb51a1..24576b43 100644
--- a/src/imports/controls/Tumbler.qml
+++ b/src/imports/controls/Tumbler.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Tumbler {
id: control
diff --git a/src/imports/controls/controls.pro b/src/imports/controls/controls.pro
index 6bbbe0d4..8624e243 100644
--- a/src/imports/controls/controls.pro
+++ b/src/imports/controls/controls.pro
@@ -1,6 +1,6 @@
TARGET = qtquickcontrols2plugin
TARGETPATH = QtQuick/Controls.2
-IMPORT_VERSION = 2.4
+IMPORT_VERSION = 2.5
QT += qml quick
QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-material-variant-dense.png b/src/imports/controls/doc/images/qtquickcontrols2-material-variant-dense.png
new file mode 100644
index 00000000..02f39b78
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-material-variant-dense.png
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-material-variant-normal.png b/src/imports/controls/doc/images/qtquickcontrols2-material-variant-normal.png
new file mode 100644
index 00000000..c1e366c5
--- /dev/null
+++ b/src/imports/controls/doc/images/qtquickcontrols2-material-variant-normal.png
Binary files differ
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-material-variant.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-material-variant.qml
new file mode 100644
index 00000000..fc2be179
--- /dev/null
+++ b/src/imports/controls/doc/snippets/qtquickcontrols2-material-variant.qml
@@ -0,0 +1,212 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.11
+import QtQuick.Controls 2.4
+import QtQuick.Controls.Material 2.4
+import QtQuick.Layouts 1.3
+
+Pane {
+ implicitWidth: 400
+ implicitHeight: 600
+ padding: 10
+
+ readonly property color measurementColor: "darkorange"
+ readonly property int barLeftMargin: 10
+ readonly property int textTopMargin: 12
+
+ Component {
+ id: measurementComponent
+
+ Rectangle {
+ color: measurementColor
+ width: 1
+ height: parent.height
+
+ Rectangle {
+ width: 5
+ height: 1
+ color: measurementColor
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Rectangle {
+ width: 5
+ height: 1
+ color: measurementColor
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ }
+
+ Text {
+ x: 8
+ text: parent.height
+ height: parent.height
+ color: measurementColor
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 20
+
+ ColumnLayout {
+ spacing: textTopMargin
+
+ Button {
+ id: button
+ text: qsTr("Button")
+
+ Loader {
+ sourceComponent: measurementComponent
+ height: parent.height
+ anchors.left: parent.right
+ anchors.leftMargin: barLeftMargin
+ }
+
+ }
+ Text {
+ text: "Roboto " + button.font.pixelSize
+ color: measurementColor
+ }
+ }
+
+ ColumnLayout {
+ spacing: textTopMargin
+
+ ItemDelegate {
+ id: itemDelegate
+ text: qsTr("ItemDelegate")
+
+ Loader {
+ sourceComponent: measurementComponent
+ height: parent.height
+ anchors.left: parent.right
+ anchors.leftMargin: barLeftMargin
+ }
+
+ }
+ Text {
+ text: "Roboto " + itemDelegate.font.pixelSize
+ color: measurementColor
+ }
+ }
+
+ ColumnLayout {
+ spacing: textTopMargin
+
+ CheckDelegate {
+ id: checkDelegate
+ text: qsTr("CheckDelegate")
+
+ Loader {
+ sourceComponent: measurementComponent
+ height: parent.height
+ anchors.left: parent.right
+ anchors.leftMargin: barLeftMargin
+ }
+
+ }
+ Text {
+ text: "Roboto " + checkDelegate.font.pixelSize
+ color: measurementColor
+ }
+ }
+
+ ColumnLayout {
+ spacing: textTopMargin
+
+ RadioDelegate {
+ id: radioDelegate
+ text: qsTr("RadioDelegate")
+
+ Loader {
+ sourceComponent: measurementComponent
+ height: parent.height
+ anchors.left: parent.right
+ anchors.leftMargin: barLeftMargin
+ }
+
+ }
+ Text {
+ text: "Roboto " + radioDelegate.font.pixelSize
+ color: measurementColor
+ }
+ }
+
+ ColumnLayout {
+ spacing: textTopMargin
+
+ ComboBox {
+ id: comboBox
+ model: [ qsTr("ComboBox") ]
+
+ Loader {
+ sourceComponent: measurementComponent
+ height: parent.height
+ anchors.left: parent.right
+ anchors.leftMargin: barLeftMargin
+ }
+
+ }
+ Text {
+ text: "Roboto " + comboBox.font.pixelSize
+ color: measurementColor
+ }
+ }
+
+ ColumnLayout {
+ spacing: textTopMargin
+
+ Item {
+ implicitWidth: groupBox.implicitWidth
+ implicitHeight: groupBox.implicitHeight
+
+ GroupBox {
+ id: groupBox
+ title: qsTr("GroupBox")
+ }
+ Loader {
+ sourceComponent: measurementComponent
+ height: parent.height
+ anchors.left: parent.right
+ anchors.leftMargin: barLeftMargin
+ }
+ }
+ Text {
+ text: "Roboto " + groupBox.font.pixelSize
+ color: measurementColor
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ }
+ }
+}
diff --git a/src/imports/controls/doc/src/includes/qquickmaterialstyle.qdocinc b/src/imports/controls/doc/src/includes/qquickmaterialstyle.qdocinc
index c5d94279..72c97bb6 100644
--- a/src/imports/controls/doc/src/includes/qquickmaterialstyle.qdocinc
+++ b/src/imports/controls/doc/src/includes/qquickmaterialstyle.qdocinc
@@ -8,6 +8,14 @@
\li Specifies the default \l {material-theme-attached-prop}{Material theme}.
The value can be one of the available themes, for example \c "Dark".
\row
+ \li \c Variant
+ \li Specifies the Material variant. The Material Design has two
+ variants: a normal variant designed for touch devices, and a dense
+ variant for desktop. The dense variant uses smaller sizes for
+ controls and their fonts.
+
+ The value can be \c "Normal" or \c "Dense".
+ \row
\li \c Accent
\li Specifies the default \l {material-accent-attached-prop}{Material accent color}.
The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
@@ -40,6 +48,14 @@
\li Specifies the default \l {material-theme-attached-prop}{Material theme}.
The value can be one of the available themes, for example \c "Dark".
\row
+ \li \c QT_QUICK_CONTROLS_MATERIAL_VARIANT
+ \li Specifies the Material variant. The Material Design has two
+ variants: a normal variant designed for touch devices, and a dense
+ variant for desktop. The dense variant uses smaller sizes for
+ controls and their fonts.
+
+ The value can be \c "Normal" or \c "Dense".
+ \row
\li \c QT_QUICK_CONTROLS_MATERIAL_ACCENT
\li Specifies the default \l {material-accent-attached-prop}{Material accent color}.
The value can be any \l {colorbasictypedocs}{color}, but it is recommended to use
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
index 9061097b..75dec936 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
@@ -31,7 +31,7 @@
The Imagine Style is based on configurable image assets. \l{detailed-desc-imagine}{More...}
- \styleimport {QtQuick.Controls.Imagine 2.4} {Qt 5.10}
+ \styleimport {QtQuick.Controls.Imagine 2.5} {Qt 5.10}
\section1 Attached Properties
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
index 9b737939..ba8d7527 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
@@ -46,7 +46,7 @@
application using the following import statement in your \c {.qml} file:
\code
- import QtQuick.Controls 2.4
+ import QtQuick.Controls 2.5
\endcode
The \l{Qt Quick Controls 2 C++ Classes}{C++ classes} can be included into
@@ -107,6 +107,11 @@
\li 2.4
\li 1.0
\row
+ \li 5.12
+ \li 2.12
+ \li 2.5
+ \li 1.0
+ \row
\li ...
\li ...
\li ...
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc
index d0bcf63a..fa7874e5 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-material.qdoc
@@ -32,7 +32,7 @@
The Material Style is based on the Google Material Design Guidelines.
\l{detailed-desc-material}{More...}
- \styleimport {QtQuick.Controls.Material 2.4} {Qt 5.7}
+ \styleimport {QtQuick.Controls.Material 2.5} {Qt 5.7}
\section1 Attached Properties
@@ -222,6 +222,33 @@
\b {See also} \l {Default Style}, \l {Universal Style}
+ \section2 Variants
+
+ The Material style also supports a dense variant, where controls like
+ buttons and delegates are smaller in height and use smaller font sizes.
+ It is recommended to use the dense variant on desktop platforms, where
+ a mouse and keyboard allow more precise and flexible user interaction.
+
+ To use the dense variant, either set the
+ \c QT_QUICK_CONTROLS_MATERIAL_VARIANT environment variable to \c Dense,
+ or specify \c Variant=Dense in the
+ \l {Qt Quick Controls 2 Configuration File}{qtquickcontrols2.conf} file.
+ The default value in both cases is \c Normal.
+
+ The following images illustrate the differences between some of the
+ controls when using the normal and dense variants:
+
+ \table
+ \row
+ \li
+ \image qtquickcontrols2-material-variant-normal.png
+ \li
+ \image qtquickcontrols2-material-variant-dense.png
+ \endtable
+
+ Note that the heights shown above may vary based on differences in fonts
+ across platforms.
+
\section1 Attached Property Documentation
\styleproperty {Material.accent} {color} {material-accent-attached-prop}
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc
index d4576617..6ebe2fe9 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-qmltypes.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
- \qmlmodule QtQuick.Controls 2.4
+ \qmlmodule QtQuick.Controls 2.5
\title Qt Quick Controls 2 QML Types
\ingroup qmlmodules
\brief Provides QML types for user interfaces (Qt Quick Controls 2).
@@ -39,7 +39,7 @@
using the following import statement in your .qml file:
\badcode
- import QtQuick.Controls 2.4
+ import QtQuick.Controls 2.5
\endcode
\section1 QML Types
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc
index abd027e4..80bf9ef7 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-universal.qdoc
@@ -32,7 +32,7 @@
The Universal Style is based on the Microsoft Universal Design Guidelines.
\l {detailed-desc-universal}{More...}
- \styleimport {QtQuick.Controls.Universal 2.4} {Qt 5.7}
+ \styleimport {QtQuick.Controls.Universal 2.5} {Qt 5.7}
\section1 Attached Properties
diff --git a/src/imports/controls/fusion/ApplicationWindow.qml b/src/imports/controls/fusion/ApplicationWindow.qml
index 570d84b4..6abe832f 100644
--- a/src/imports/controls/fusion/ApplicationWindow.qml
+++ b/src/imports/controls/fusion/ApplicationWindow.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.2
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ApplicationWindow {
id: window
diff --git a/src/imports/controls/fusion/BusyIndicator.qml b/src/imports/controls/fusion/BusyIndicator.qml
index cba5fc2e..2658f477 100644
--- a/src/imports/controls/fusion/BusyIndicator.qml
+++ b/src/imports/controls/fusion/BusyIndicator.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.BusyIndicator {
id: control
diff --git a/src/imports/controls/fusion/Button.qml b/src/imports/controls/fusion/Button.qml
index d33544ae..492fe1e2 100644
--- a/src/imports/controls/fusion/Button.qml
+++ b/src/imports/controls/fusion/Button.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Button {
id: control
diff --git a/src/imports/controls/fusion/ButtonPanel.qml b/src/imports/controls/fusion/ButtonPanel.qml
index b1672bf0..fc1af2de 100644
--- a/src/imports/controls/fusion/ButtonPanel.qml
+++ b/src/imports/controls/fusion/ButtonPanel.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
Rectangle {
id: panel
diff --git a/src/imports/controls/fusion/CheckBox.qml b/src/imports/controls/fusion/CheckBox.qml
index 4a10238d..41cf1808 100644
--- a/src/imports/controls/fusion/CheckBox.qml
+++ b/src/imports/controls/fusion/CheckBox.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.CheckBox {
id: control
diff --git a/src/imports/controls/fusion/CheckDelegate.qml b/src/imports/controls/fusion/CheckDelegate.qml
index 9c6b97ff..99dbf794 100644
--- a/src/imports/controls/fusion/CheckDelegate.qml
+++ b/src/imports/controls/fusion/CheckDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.CheckDelegate {
id: control
diff --git a/src/imports/controls/fusion/CheckIndicator.qml b/src/imports/controls/fusion/CheckIndicator.qml
index 5a5837ae..8c49e6b2 100644
--- a/src/imports/controls/fusion/CheckIndicator.qml
+++ b/src/imports/controls/fusion/CheckIndicator.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
Rectangle {
id: indicator
diff --git a/src/imports/controls/fusion/ComboBox.qml b/src/imports/controls/fusion/ComboBox.qml
index bc232759..a7bacc66 100644
--- a/src/imports/controls/fusion/ComboBox.qml
+++ b/src/imports/controls/fusion/ComboBox.qml
@@ -34,13 +34,13 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ComboBox {
id: control
diff --git a/src/imports/controls/fusion/DelayButton.qml b/src/imports/controls/fusion/DelayButton.qml
index 261db320..d515602a 100644
--- a/src/imports/controls/fusion/DelayButton.qml
+++ b/src/imports/controls/fusion/DelayButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.DelayButton {
id: control
diff --git a/src/imports/controls/fusion/Dial.qml b/src/imports/controls/fusion/Dial.qml
index c9ed0c68..3f353275 100644
--- a/src/imports/controls/fusion/Dial.qml
+++ b/src/imports/controls/fusion/Dial.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Dial {
id: control
diff --git a/src/imports/controls/fusion/Dialog.qml b/src/imports/controls/fusion/Dialog.qml
index 4e43b038..a2366170 100644
--- a/src/imports/controls/fusion/Dialog.qml
+++ b/src/imports/controls/fusion/Dialog.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Dialog {
id: control
diff --git a/src/imports/controls/fusion/DialogButtonBox.qml b/src/imports/controls/fusion/DialogButtonBox.qml
index 5d30c329..cfd4be3e 100644
--- a/src/imports/controls/fusion/DialogButtonBox.qml
+++ b/src/imports/controls/fusion/DialogButtonBox.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.DialogButtonBox {
id: control
diff --git a/src/imports/controls/fusion/Drawer.qml b/src/imports/controls/fusion/Drawer.qml
index 711040a2..2ee18a9b 100644
--- a/src/imports/controls/fusion/Drawer.qml
+++ b/src/imports/controls/fusion/Drawer.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Drawer {
id: control
diff --git a/src/imports/controls/fusion/Frame.qml b/src/imports/controls/fusion/Frame.qml
index 4acce74a..bd4bb6f2 100644
--- a/src/imports/controls/fusion/Frame.qml
+++ b/src/imports/controls/fusion/Frame.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Frame {
id: control
@@ -47,9 +47,6 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 9
background: Rectangle {
diff --git a/src/imports/controls/fusion/GroupBox.qml b/src/imports/controls/fusion/GroupBox.qml
index 439783ac..5196f8b2 100644
--- a/src/imports/controls/fusion/GroupBox.qml
+++ b/src/imports/controls/fusion/GroupBox.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.GroupBox {
id: control
@@ -49,9 +49,6 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
spacing: 6
padding: 9
topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0)
diff --git a/src/imports/controls/fusion/ItemDelegate.qml b/src/imports/controls/fusion/ItemDelegate.qml
index 0936c7c2..7cdc8890 100644
--- a/src/imports/controls/fusion/ItemDelegate.qml
+++ b/src/imports/controls/fusion/ItemDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ItemDelegate {
id: control
diff --git a/src/imports/controls/fusion/Label.qml b/src/imports/controls/fusion/Label.qml
index 1c6951c2..23e337e2 100644
--- a/src/imports/controls/fusion/Label.qml
+++ b/src/imports/controls/fusion/Label.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Label {
id: control
diff --git a/src/imports/controls/fusion/Menu.qml b/src/imports/controls/fusion/Menu.qml
index dc8e2eb2..2b38119e 100644
--- a/src/imports/controls/fusion/Menu.qml
+++ b/src/imports/controls/fusion/Menu.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Menu {
id: control
diff --git a/src/imports/controls/fusion/MenuBar.qml b/src/imports/controls/fusion/MenuBar.qml
index d1530d75..d9776496 100644
--- a/src/imports/controls/fusion/MenuBar.qml
+++ b/src/imports/controls/fusion/MenuBar.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.MenuBar {
id: control
diff --git a/src/imports/controls/fusion/MenuBarItem.qml b/src/imports/controls/fusion/MenuBarItem.qml
index 2b4425a9..639c6ccb 100644
--- a/src/imports/controls/fusion/MenuBarItem.qml
+++ b/src/imports/controls/fusion/MenuBarItem.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.MenuBarItem {
id: control
diff --git a/src/imports/controls/fusion/MenuItem.qml b/src/imports/controls/fusion/MenuItem.qml
index 35d7248f..984f66f8 100644
--- a/src/imports/controls/fusion/MenuItem.qml
+++ b/src/imports/controls/fusion/MenuItem.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.MenuItem {
id: control
diff --git a/src/imports/controls/fusion/MenuSeparator.qml b/src/imports/controls/fusion/MenuSeparator.qml
index a426c0fe..95ad44a4 100644
--- a/src/imports/controls/fusion/MenuSeparator.qml
+++ b/src/imports/controls/fusion/MenuSeparator.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.MenuSeparator {
id: control
@@ -48,8 +48,7 @@ T.MenuSeparator {
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding)
padding: 5
- topPadding: 1
- bottomPadding: 1
+ verticalPadding: 1
contentItem: Rectangle {
implicitWidth: 188
diff --git a/src/imports/controls/fusion/Page.qml b/src/imports/controls/fusion/Page.qml
index 20febd6a..cdc473e5 100644
--- a/src/imports/controls/fusion/Page.qml
+++ b/src/imports/controls/fusion/Page.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Page {
id: control
@@ -53,9 +53,6 @@ T.Page {
+ (header && header.visible ? header.implicitHeight + spacing : 0)
+ (footer && footer.visible ? footer.implicitHeight + spacing : 0))
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
background: Rectangle {
color: palette.window
}
diff --git a/src/imports/controls/fusion/PageIndicator.qml b/src/imports/controls/fusion/PageIndicator.qml
index 39d28ca2..7958c03a 100644
--- a/src/imports/controls/fusion/PageIndicator.qml
+++ b/src/imports/controls/fusion/PageIndicator.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.PageIndicator {
id: control
diff --git a/src/imports/controls/fusion/Pane.qml b/src/imports/controls/fusion/Pane.qml
index 59c65cd9..24ed94a1 100644
--- a/src/imports/controls/fusion/Pane.qml
+++ b/src/imports/controls/fusion/Pane.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Pane {
id: control
@@ -47,9 +47,6 @@ T.Pane {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 9
background: Rectangle {
diff --git a/src/imports/controls/fusion/Popup.qml b/src/imports/controls/fusion/Popup.qml
index 319e5b8a..1ac87a25 100644
--- a/src/imports/controls/fusion/Popup.qml
+++ b/src/imports/controls/fusion/Popup.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Popup {
id: control
diff --git a/src/imports/controls/fusion/ProgressBar.qml b/src/imports/controls/fusion/ProgressBar.qml
index 547d5f7c..97b11a3f 100644
--- a/src/imports/controls/fusion/ProgressBar.qml
+++ b/src/imports/controls/fusion/ProgressBar.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ProgressBar {
id: control
diff --git a/src/imports/controls/fusion/RadioButton.qml b/src/imports/controls/fusion/RadioButton.qml
index 612319b4..3ddd02b4 100644
--- a/src/imports/controls/fusion/RadioButton.qml
+++ b/src/imports/controls/fusion/RadioButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.RadioButton {
id: control
diff --git a/src/imports/controls/fusion/RadioDelegate.qml b/src/imports/controls/fusion/RadioDelegate.qml
index f5f57071..53bbe3e0 100644
--- a/src/imports/controls/fusion/RadioDelegate.qml
+++ b/src/imports/controls/fusion/RadioDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.RadioDelegate {
id: control
diff --git a/src/imports/controls/fusion/RadioIndicator.qml b/src/imports/controls/fusion/RadioIndicator.qml
index d3d40c11..790a5e24 100644
--- a/src/imports/controls/fusion/RadioIndicator.qml
+++ b/src/imports/controls/fusion/RadioIndicator.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
Rectangle {
id: indicator
diff --git a/src/imports/controls/fusion/RangeSlider.qml b/src/imports/controls/fusion/RangeSlider.qml
index 260c21cf..72ac9252 100644
--- a/src/imports/controls/fusion/RangeSlider.qml
+++ b/src/imports/controls/fusion/RangeSlider.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.RangeSlider {
id: control
diff --git a/src/imports/controls/fusion/RoundButton.qml b/src/imports/controls/fusion/RoundButton.qml
index 5d28b52c..121d9df5 100644
--- a/src/imports/controls/fusion/RoundButton.qml
+++ b/src/imports/controls/fusion/RoundButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.RoundButton {
id: control
diff --git a/src/imports/controls/fusion/ScrollBar.qml b/src/imports/controls/fusion/ScrollBar.qml
index 25881d2d..0e61f7cd 100644
--- a/src/imports/controls/fusion/ScrollBar.qml
+++ b/src/imports/controls/fusion/ScrollBar.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ScrollBar {
id: control
diff --git a/src/imports/controls/fusion/ScrollIndicator.qml b/src/imports/controls/fusion/ScrollIndicator.qml
index 7d6372a3..c3e8d575 100644
--- a/src/imports/controls/fusion/ScrollIndicator.qml
+++ b/src/imports/controls/fusion/ScrollIndicator.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ScrollIndicator {
id: control
diff --git a/src/imports/controls/fusion/ScrollView.qml b/src/imports/controls/fusion/ScrollView.qml
index 5cbd170a..728888c3 100644
--- a/src/imports/controls/fusion/ScrollView.qml
+++ b/src/imports/controls/fusion/ScrollView.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ScrollView {
id: control
diff --git a/src/imports/controls/fusion/Slider.qml b/src/imports/controls/fusion/Slider.qml
index a4d28fe5..7cfe68e4 100644
--- a/src/imports/controls/fusion/Slider.qml
+++ b/src/imports/controls/fusion/Slider.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Slider {
id: control
diff --git a/src/imports/controls/fusion/SliderGroove.qml b/src/imports/controls/fusion/SliderGroove.qml
index cd90bd54..678ac8c2 100644
--- a/src/imports/controls/fusion/SliderGroove.qml
+++ b/src/imports/controls/fusion/SliderGroove.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
Rectangle {
id: groove
diff --git a/src/imports/controls/fusion/SliderHandle.qml b/src/imports/controls/fusion/SliderHandle.qml
index 5ea2dd03..9bfa45a1 100644
--- a/src/imports/controls/fusion/SliderHandle.qml
+++ b/src/imports/controls/fusion/SliderHandle.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
Rectangle {
id: handle
diff --git a/src/imports/controls/fusion/SpinBox.qml b/src/imports/controls/fusion/SpinBox.qml
index 9d975fa8..c773ebf8 100644
--- a/src/imports/controls/fusion/SpinBox.qml
+++ b/src/imports/controls/fusion/SpinBox.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.SpinBox {
id: control
diff --git a/src/imports/controls/fusion/SwipeDelegate.qml b/src/imports/controls/fusion/SwipeDelegate.qml
index 0704f5b3..047cf976 100644
--- a/src/imports/controls/fusion/SwipeDelegate.qml
+++ b/src/imports/controls/fusion/SwipeDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.SwipeDelegate {
id: control
diff --git a/src/imports/controls/fusion/Switch.qml b/src/imports/controls/fusion/Switch.qml
index 0f5d484b..0d104604 100644
--- a/src/imports/controls/fusion/Switch.qml
+++ b/src/imports/controls/fusion/Switch.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Switch {
id: control
diff --git a/src/imports/controls/fusion/SwitchDelegate.qml b/src/imports/controls/fusion/SwitchDelegate.qml
index 4a09ba25..23b64147 100644
--- a/src/imports/controls/fusion/SwitchDelegate.qml
+++ b/src/imports/controls/fusion/SwitchDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.SwitchDelegate {
id: control
diff --git a/src/imports/controls/fusion/SwitchIndicator.qml b/src/imports/controls/fusion/SwitchIndicator.qml
index 22430dc3..7948a794 100644
--- a/src/imports/controls/fusion/SwitchIndicator.qml
+++ b/src/imports/controls/fusion/SwitchIndicator.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
Rectangle {
id: indicator
diff --git a/src/imports/controls/fusion/TabBar.qml b/src/imports/controls/fusion/TabBar.qml
index d6f3194b..fa21fb66 100644
--- a/src/imports/controls/fusion/TabBar.qml
+++ b/src/imports/controls/fusion/TabBar.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.TabBar {
id: control
diff --git a/src/imports/controls/fusion/TabButton.qml b/src/imports/controls/fusion/TabButton.qml
index bdcee759..7f378d14 100644
--- a/src/imports/controls/fusion/TabButton.qml
+++ b/src/imports/controls/fusion/TabButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.TabButton {
id: control
@@ -51,8 +51,7 @@ T.TabButton {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 2
- leftPadding: 4
- rightPadding: 4
+ horizontalPadding: 4
spacing: 6
icon.width: 16
diff --git a/src/imports/controls/fusion/TextArea.qml b/src/imports/controls/fusion/TextArea.qml
index 36d9db04..573353dc 100644
--- a/src/imports/controls/fusion/TextArea.qml
+++ b/src/imports/controls/fusion/TextArea.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.TextArea {
id: control
@@ -57,6 +57,7 @@ T.TextArea {
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
PlaceholderText {
id: placeholder
@@ -65,10 +66,9 @@ T.TextArea {
width: control.width - (control.leftPadding + control.rightPadding)
height: control.height - (control.topPadding + control.bottomPadding)
- opacity: 0.5
text: control.placeholderText
font: control.font
- color: control.color
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
diff --git a/src/imports/controls/fusion/TextField.qml b/src/imports/controls/fusion/TextField.qml
index 2ea5c967..8c5fa634 100644
--- a/src/imports/controls/fusion/TextField.qml
+++ b/src/imports/controls/fusion/TextField.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.TextField {
id: control
@@ -56,6 +56,7 @@ T.TextField {
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
verticalAlignment: TextInput.AlignVCenter
PlaceholderText {
@@ -65,10 +66,9 @@ T.TextField {
width: control.width - (control.leftPadding + control.rightPadding)
height: control.height - (control.topPadding + control.bottomPadding)
- opacity: 0.5
text: control.placeholderText
font: control.font
- color: control.color
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
diff --git a/src/imports/controls/fusion/ToolBar.qml b/src/imports/controls/fusion/ToolBar.qml
index ab272517..b7f685ad 100644
--- a/src/imports/controls/fusion/ToolBar.qml
+++ b/src/imports/controls/fusion/ToolBar.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ToolBar {
id: control
@@ -47,11 +47,7 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
- leftPadding: 6
- rightPadding: 6
+ horizontalPadding: 6
topPadding: control.position === T.ToolBar.Footer ? 1 : 0
bottomPadding: control.position === T.ToolBar.Header ? 1 : 0
diff --git a/src/imports/controls/fusion/ToolButton.qml b/src/imports/controls/fusion/ToolButton.qml
index dc3c9663..20b4e642 100644
--- a/src/imports/controls/fusion/ToolButton.qml
+++ b/src/imports/controls/fusion/ToolButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ToolButton {
id: control
diff --git a/src/imports/controls/fusion/ToolSeparator.qml b/src/imports/controls/fusion/ToolSeparator.qml
index fd10dd72..b218604f 100644
--- a/src/imports/controls/fusion/ToolSeparator.qml
+++ b/src/imports/controls/fusion/ToolSeparator.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ToolSeparator {
id: control
@@ -48,8 +48,7 @@ T.ToolSeparator {
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding)
padding: vertical ? 6 : 2
- topPadding: vertical ? 2 : 6
- bottomPadding: vertical ? 2 : 6
+ verticalPadding: vertical ? 2 : 6
contentItem: Rectangle {
implicitWidth: vertical ? 2 : 8
diff --git a/src/imports/controls/fusion/ToolTip.qml b/src/imports/controls/fusion/ToolTip.qml
index 2b404a5e..59f64899 100644
--- a/src/imports/controls/fusion/ToolTip.qml
+++ b/src/imports/controls/fusion/ToolTip.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.ToolTip {
id: control
diff --git a/src/imports/controls/fusion/Tumbler.qml b/src/imports/controls/fusion/Tumbler.qml
index b66e4f2d..e6f2381f 100644
--- a/src/imports/controls/fusion/Tumbler.qml
+++ b/src/imports/controls/fusion/Tumbler.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Fusion 2.4
-import QtQuick.Controls.Fusion.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Fusion 2.5
+import QtQuick.Controls.Fusion.impl 2.5
T.Tumbler {
id: control
diff --git a/src/imports/controls/fusion/fusion.pro b/src/imports/controls/fusion/fusion.pro
index 2934778b..705157b7 100644
--- a/src/imports/controls/fusion/fusion.pro
+++ b/src/imports/controls/fusion/fusion.pro
@@ -1,6 +1,6 @@
TARGET = qtquickcontrols2fusionstyleplugin
TARGETPATH = QtQuick/Controls.2/Fusion
-IMPORT_VERSION = 2.4
+IMPORT_VERSION = 2.5
QT += qml quick
QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private
diff --git a/src/imports/controls/fusion/qmldir b/src/imports/controls/fusion/qmldir
index 6857b398..b584adc8 100644
--- a/src/imports/controls/fusion/qmldir
+++ b/src/imports/controls/fusion/qmldir
@@ -1,4 +1,4 @@
module QtQuick.Controls.Fusion
plugin qtquickcontrols2fusionstyleplugin
classname QtQuickControls2FusionStylePlugin
-depends QtQuick.Controls 2.4
+depends QtQuick.Controls 2.5
diff --git a/src/imports/controls/fusion/qquickfusiontheme.cpp b/src/imports/controls/fusion/qquickfusiontheme.cpp
index 31494efb..78465b6b 100644
--- a/src/imports/controls/fusion/qquickfusiontheme.cpp
+++ b/src/imports/controls/fusion/qquickfusiontheme.cpp
@@ -39,7 +39,6 @@
QT_BEGIN_NAMESPACE
QQuickFusionTheme::QQuickFusionTheme()
- : QQuickTheme(QStringLiteral("Fusion"))
{
}
diff --git a/src/imports/controls/fusion/qquickfusiontheme_p.h b/src/imports/controls/fusion/qquickfusiontheme_p.h
index 5dcfcf61..0cd77f77 100644
--- a/src/imports/controls/fusion/qquickfusiontheme_p.h
+++ b/src/imports/controls/fusion/qquickfusiontheme_p.h
@@ -50,7 +50,7 @@
#include <QtCore/qvariant.h>
#include <QtGui/qpalette.h>
-#include <QtQuickControls2/private/qquicktheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
QT_BEGIN_NAMESPACE
diff --git a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
index 542f088c..5bb1d062 100644
--- a/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
+++ b/src/imports/controls/fusion/qtquickcontrols2fusionstyleplugin.cpp
@@ -71,7 +71,7 @@ public:
void registerTypes(const char *uri) override;
QString name() const override;
- QQuickProxyTheme *createTheme() const override;
+ QQuickTheme *createTheme() const override;
};
QtQuickControls2FusionStylePlugin::QtQuickControls2FusionStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
@@ -103,10 +103,10 @@ void QtQuickControls2FusionStylePlugin::registerTypes(const char *uri)
QString QtQuickControls2FusionStylePlugin::name() const
{
- return QStringLiteral("fusion");
+ return QStringLiteral("Fusion");
}
-QQuickProxyTheme *QtQuickControls2FusionStylePlugin::createTheme() const
+QQuickTheme *QtQuickControls2FusionStylePlugin::createTheme() const
{
return new QQuickFusionTheme;
}
diff --git a/src/imports/controls/imagine/ApplicationWindow.qml b/src/imports/controls/imagine/ApplicationWindow.qml
index 8600e8d6..00922f63 100644
--- a/src/imports/controls/imagine/ApplicationWindow.qml
+++ b/src/imports/controls/imagine/ApplicationWindow.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.2
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ApplicationWindow {
id: window
diff --git a/src/imports/controls/imagine/BusyIndicator.qml b/src/imports/controls/imagine/BusyIndicator.qml
index a9a5ac40..e532bb18 100644
--- a/src/imports/controls/imagine/BusyIndicator.qml
+++ b/src/imports/controls/imagine/BusyIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.BusyIndicator {
id: control
diff --git a/src/imports/controls/imagine/Button.qml b/src/imports/controls/imagine/Button.qml
index 7c8ab584..a1c0c15f 100644
--- a/src/imports/controls/imagine/Button.qml
+++ b/src/imports/controls/imagine/Button.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Button {
id: control
diff --git a/src/imports/controls/imagine/CheckBox.qml b/src/imports/controls/imagine/CheckBox.qml
index 8c5cd918..f8a1841b 100644
--- a/src/imports/controls/imagine/CheckBox.qml
+++ b/src/imports/controls/imagine/CheckBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.CheckBox {
id: control
diff --git a/src/imports/controls/imagine/CheckDelegate.qml b/src/imports/controls/imagine/CheckDelegate.qml
index 76cd89c4..28782013 100644
--- a/src/imports/controls/imagine/CheckDelegate.qml
+++ b/src/imports/controls/imagine/CheckDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.CheckDelegate {
id: control
diff --git a/src/imports/controls/imagine/ComboBox.qml b/src/imports/controls/imagine/ComboBox.qml
index fa22ab90..604be993 100644
--- a/src/imports/controls/imagine/ComboBox.qml
+++ b/src/imports/controls/imagine/ComboBox.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ComboBox {
id: control
diff --git a/src/imports/controls/imagine/DelayButton.qml b/src/imports/controls/imagine/DelayButton.qml
index f0a2c568..fc604c5b 100644
--- a/src/imports/controls/imagine/DelayButton.qml
+++ b/src/imports/controls/imagine/DelayButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
import QtGraphicalEffects 1.0
T.DelayButton {
diff --git a/src/imports/controls/imagine/Dial.qml b/src/imports/controls/imagine/Dial.qml
index e9652249..726fbef2 100644
--- a/src/imports/controls/imagine/Dial.qml
+++ b/src/imports/controls/imagine/Dial.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Dial {
id: control
diff --git a/src/imports/controls/imagine/Dialog.qml b/src/imports/controls/imagine/Dialog.qml
index 67215ec5..241d426f 100644
--- a/src/imports/controls/imagine/Dialog.qml
+++ b/src/imports/controls/imagine/Dialog.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Dialog {
id: control
diff --git a/src/imports/controls/imagine/DialogButtonBox.qml b/src/imports/controls/imagine/DialogButtonBox.qml
index 69211ed9..eb756548 100644
--- a/src/imports/controls/imagine/DialogButtonBox.qml
+++ b/src/imports/controls/imagine/DialogButtonBox.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.DialogButtonBox {
id: control
diff --git a/src/imports/controls/imagine/Drawer.qml b/src/imports/controls/imagine/Drawer.qml
index d4bf5a7c..f653375b 100644
--- a/src/imports/controls/imagine/Drawer.qml
+++ b/src/imports/controls/imagine/Drawer.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Drawer {
id: control
diff --git a/src/imports/controls/imagine/Frame.qml b/src/imports/controls/imagine/Frame.qml
index 4c9b87d3..a149ae24 100644
--- a/src/imports/controls/imagine/Frame.qml
+++ b/src/imports/controls/imagine/Frame.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Frame {
id: control
@@ -45,9 +45,6 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
diff --git a/src/imports/controls/imagine/GroupBox.qml b/src/imports/controls/imagine/GroupBox.qml
index b2868cec..c16f90e1 100644
--- a/src/imports/controls/imagine/GroupBox.qml
+++ b/src/imports/controls/imagine/GroupBox.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.GroupBox {
id: control
@@ -48,9 +48,6 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
topPadding: (background ? background.topPadding : 0) + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0)
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
diff --git a/src/imports/controls/imagine/ItemDelegate.qml b/src/imports/controls/imagine/ItemDelegate.qml
index 6d1d7bbe..759a68db 100644
--- a/src/imports/controls/imagine/ItemDelegate.qml
+++ b/src/imports/controls/imagine/ItemDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ItemDelegate {
id: control
diff --git a/src/imports/controls/imagine/Label.qml b/src/imports/controls/imagine/Label.qml
index c73954b2..84e2a914 100644
--- a/src/imports/controls/imagine/Label.qml
+++ b/src/imports/controls/imagine/Label.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Label {
id: control
diff --git a/src/imports/controls/imagine/Menu.qml b/src/imports/controls/imagine/Menu.qml
index 83953d05..1846fe90 100644
--- a/src/imports/controls/imagine/Menu.qml
+++ b/src/imports/controls/imagine/Menu.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Menu {
id: control
diff --git a/src/imports/controls/imagine/MenuItem.qml b/src/imports/controls/imagine/MenuItem.qml
index 80d6f2cd..d55497a3 100644
--- a/src/imports/controls/imagine/MenuItem.qml
+++ b/src/imports/controls/imagine/MenuItem.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.MenuItem {
id: control
diff --git a/src/imports/controls/imagine/MenuSeparator.qml b/src/imports/controls/imagine/MenuSeparator.qml
index a14fe9a6..42577af4 100644
--- a/src/imports/controls/imagine/MenuSeparator.qml
+++ b/src/imports/controls/imagine/MenuSeparator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.MenuSeparator {
id: control
diff --git a/src/imports/controls/imagine/Page.qml b/src/imports/controls/imagine/Page.qml
index 72f54830..8dcd6dfc 100644
--- a/src/imports/controls/imagine/Page.qml
+++ b/src/imports/controls/imagine/Page.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Page {
id: control
@@ -51,9 +51,6 @@ T.Page {
+ (header && header.visible ? header.implicitHeight + spacing : 0)
+ (footer && footer.visible ? footer.implicitHeight + spacing : 0))
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
diff --git a/src/imports/controls/imagine/PageIndicator.qml b/src/imports/controls/imagine/PageIndicator.qml
index 156033e2..2234e18c 100644
--- a/src/imports/controls/imagine/PageIndicator.qml
+++ b/src/imports/controls/imagine/PageIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.PageIndicator {
id: control
diff --git a/src/imports/controls/imagine/Pane.qml b/src/imports/controls/imagine/Pane.qml
index a1899149..4061bd78 100644
--- a/src/imports/controls/imagine/Pane.qml
+++ b/src/imports/controls/imagine/Pane.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Pane {
id: control
@@ -45,9 +45,6 @@ T.Pane {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
diff --git a/src/imports/controls/imagine/Popup.qml b/src/imports/controls/imagine/Popup.qml
index a111df3a..089bc158 100644
--- a/src/imports/controls/imagine/Popup.qml
+++ b/src/imports/controls/imagine/Popup.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Popup {
id: control
diff --git a/src/imports/controls/imagine/ProgressBar.qml b/src/imports/controls/imagine/ProgressBar.qml
index 7fd0ce1b..2d207efb 100644
--- a/src/imports/controls/imagine/ProgressBar.qml
+++ b/src/imports/controls/imagine/ProgressBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
import QtGraphicalEffects 1.0
T.ProgressBar {
diff --git a/src/imports/controls/imagine/RadioButton.qml b/src/imports/controls/imagine/RadioButton.qml
index 57bdedaa..59e2729a 100644
--- a/src/imports/controls/imagine/RadioButton.qml
+++ b/src/imports/controls/imagine/RadioButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.RadioButton {
id: control
diff --git a/src/imports/controls/imagine/RadioDelegate.qml b/src/imports/controls/imagine/RadioDelegate.qml
index e7e37b0b..42b08b81 100644
--- a/src/imports/controls/imagine/RadioDelegate.qml
+++ b/src/imports/controls/imagine/RadioDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.RadioDelegate {
id: control
diff --git a/src/imports/controls/imagine/RangeSlider.qml b/src/imports/controls/imagine/RangeSlider.qml
index 5c7ee70e..45390595 100644
--- a/src/imports/controls/imagine/RangeSlider.qml
+++ b/src/imports/controls/imagine/RangeSlider.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.RangeSlider {
id: control
diff --git a/src/imports/controls/imagine/RoundButton.qml b/src/imports/controls/imagine/RoundButton.qml
index b9f4ae06..8ae96620 100644
--- a/src/imports/controls/imagine/RoundButton.qml
+++ b/src/imports/controls/imagine/RoundButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.RoundButton {
id: control
diff --git a/src/imports/controls/imagine/ScrollBar.qml b/src/imports/controls/imagine/ScrollBar.qml
index 49c8d1f0..2581654c 100644
--- a/src/imports/controls/imagine/ScrollBar.qml
+++ b/src/imports/controls/imagine/ScrollBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ScrollBar {
id: control
diff --git a/src/imports/controls/imagine/ScrollIndicator.qml b/src/imports/controls/imagine/ScrollIndicator.qml
index a2d0e94f..45eb139b 100644
--- a/src/imports/controls/imagine/ScrollIndicator.qml
+++ b/src/imports/controls/imagine/ScrollIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ScrollIndicator {
id: control
diff --git a/src/imports/controls/imagine/ScrollView.qml b/src/imports/controls/imagine/ScrollView.qml
index 9ab64881..f7b30b6b 100644
--- a/src/imports/controls/imagine/ScrollView.qml
+++ b/src/imports/controls/imagine/ScrollView.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ScrollView {
id: control
diff --git a/src/imports/controls/imagine/Slider.qml b/src/imports/controls/imagine/Slider.qml
index a206c03b..8a82ec3e 100644
--- a/src/imports/controls/imagine/Slider.qml
+++ b/src/imports/controls/imagine/Slider.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Slider {
id: control
diff --git a/src/imports/controls/imagine/SpinBox.qml b/src/imports/controls/imagine/SpinBox.qml
index 1ef862f5..4978402a 100644
--- a/src/imports/controls/imagine/SpinBox.qml
+++ b/src/imports/controls/imagine/SpinBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.SpinBox {
id: control
diff --git a/src/imports/controls/imagine/StackView.qml b/src/imports/controls/imagine/StackView.qml
index 8d749519..ffdf4f23 100644
--- a/src/imports/controls/imagine/StackView.qml
+++ b/src/imports/controls/imagine/StackView.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.StackView {
id: control
diff --git a/src/imports/controls/imagine/SwipeDelegate.qml b/src/imports/controls/imagine/SwipeDelegate.qml
index 23edfc58..cabd9f2e 100644
--- a/src/imports/controls/imagine/SwipeDelegate.qml
+++ b/src/imports/controls/imagine/SwipeDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.SwipeDelegate {
id: control
diff --git a/src/imports/controls/imagine/SwipeView.qml b/src/imports/controls/imagine/SwipeView.qml
index f997be0d..6f7f2ada 100644
--- a/src/imports/controls/imagine/SwipeView.qml
+++ b/src/imports/controls/imagine/SwipeView.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.SwipeView {
id: control
diff --git a/src/imports/controls/imagine/Switch.qml b/src/imports/controls/imagine/Switch.qml
index 085d6879..38e49117 100644
--- a/src/imports/controls/imagine/Switch.qml
+++ b/src/imports/controls/imagine/Switch.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Switch {
id: control
diff --git a/src/imports/controls/imagine/SwitchDelegate.qml b/src/imports/controls/imagine/SwitchDelegate.qml
index b53cf321..4b6f6319 100644
--- a/src/imports/controls/imagine/SwitchDelegate.qml
+++ b/src/imports/controls/imagine/SwitchDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.SwitchDelegate {
id: control
diff --git a/src/imports/controls/imagine/TabBar.qml b/src/imports/controls/imagine/TabBar.qml
index be143bf1..1e7a2e58 100644
--- a/src/imports/controls/imagine/TabBar.qml
+++ b/src/imports/controls/imagine/TabBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.TabBar {
id: control
diff --git a/src/imports/controls/imagine/TabButton.qml b/src/imports/controls/imagine/TabButton.qml
index d4098c9e..0076bd83 100644
--- a/src/imports/controls/imagine/TabButton.qml
+++ b/src/imports/controls/imagine/TabButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.TabButton {
id: control
diff --git a/src/imports/controls/imagine/TextArea.qml b/src/imports/controls/imagine/TextArea.qml
index 9867a0bd..d61565b8 100644
--- a/src/imports/controls/imagine/TextArea.qml
+++ b/src/imports/controls/imagine/TextArea.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.TextArea {
id: control
@@ -60,6 +60,7 @@ T.TextArea {
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
verticalAlignment: Qt.AlignVCenter
+ placeholderTextColor: Color.transparent(control.color, 0.5)
PlaceholderText {
id: placeholder
@@ -70,11 +71,10 @@ T.TextArea {
text: control.placeholderText
font: control.font
- color: control.color
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
- opacity: 0.5
}
background: NinePatchImage {
diff --git a/src/imports/controls/imagine/TextField.qml b/src/imports/controls/imagine/TextField.qml
index 17827b95..5c8347ad 100644
--- a/src/imports/controls/imagine/TextField.qml
+++ b/src/imports/controls/imagine/TextField.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.TextField {
id: control
@@ -59,6 +59,7 @@ T.TextField {
color: control.palette.text
selectionColor: control.palette.highlight
selectedTextColor: control.palette.highlightedText
+ placeholderTextColor: Color.transparent(control.color, 0.5)
verticalAlignment: Qt.AlignVCenter
PlaceholderText {
@@ -70,11 +71,10 @@ T.TextField {
text: control.placeholderText
font: control.font
- color: control.color
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
elide: Text.ElideRight
- opacity: 0.5
}
background: NinePatchImage {
diff --git a/src/imports/controls/imagine/ToolBar.qml b/src/imports/controls/imagine/ToolBar.qml
index 289566ec..a391bc9b 100644
--- a/src/imports/controls/imagine/ToolBar.qml
+++ b/src/imports/controls/imagine/ToolBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ToolBar {
id: control
@@ -45,9 +45,6 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
topPadding: background ? background.topPadding : 0
leftPadding: background ? background.leftPadding : 0
rightPadding: background ? background.rightPadding : 0
diff --git a/src/imports/controls/imagine/ToolButton.qml b/src/imports/controls/imagine/ToolButton.qml
index 63260ff5..0bbd523c 100644
--- a/src/imports/controls/imagine/ToolButton.qml
+++ b/src/imports/controls/imagine/ToolButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ToolButton {
id: control
diff --git a/src/imports/controls/imagine/ToolSeparator.qml b/src/imports/controls/imagine/ToolSeparator.qml
index 88b645cb..f61b0e49 100644
--- a/src/imports/controls/imagine/ToolSeparator.qml
+++ b/src/imports/controls/imagine/ToolSeparator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ToolSeparator {
id: control
diff --git a/src/imports/controls/imagine/ToolTip.qml b/src/imports/controls/imagine/ToolTip.qml
index 81a5e8aa..bd82b5a7 100644
--- a/src/imports/controls/imagine/ToolTip.qml
+++ b/src/imports/controls/imagine/ToolTip.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.ToolTip {
id: control
diff --git a/src/imports/controls/imagine/Tumbler.qml b/src/imports/controls/imagine/Tumbler.qml
index 7beb39c5..8c1ebec2 100644
--- a/src/imports/controls/imagine/Tumbler.qml
+++ b/src/imports/controls/imagine/Tumbler.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Imagine 2.4
-import QtQuick.Controls.Imagine.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Imagine 2.5
+import QtQuick.Controls.Imagine.impl 2.5
T.Tumbler {
id: control
diff --git a/src/imports/controls/imagine/imagine.pro b/src/imports/controls/imagine/imagine.pro
index 8e84c115..7322e27a 100644
--- a/src/imports/controls/imagine/imagine.pro
+++ b/src/imports/controls/imagine/imagine.pro
@@ -1,6 +1,6 @@
TARGET = qtquickcontrols2imaginestyleplugin
TARGETPATH = QtQuick/Controls.2/Imagine
-IMPORT_VERSION = 2.4
+IMPORT_VERSION = 2.5
QT += qml quick
QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private
diff --git a/src/imports/controls/imagine/qmldir b/src/imports/controls/imagine/qmldir
index 48fd3bdb..7b4b3ea0 100644
--- a/src/imports/controls/imagine/qmldir
+++ b/src/imports/controls/imagine/qmldir
@@ -1,5 +1,5 @@
module QtQuick.Controls.Imagine
plugin qtquickcontrols2imaginestyleplugin
classname QtQuickControls2ImagineStylePlugin
-depends QtQuick.Controls 2.4
+depends QtQuick.Controls 2.5
depends QtGraphicalEffects 1.0
diff --git a/src/imports/controls/imagine/qquickimaginetheme.cpp b/src/imports/controls/imagine/qquickimaginetheme.cpp
index 5505e7ce..57646326 100644
--- a/src/imports/controls/imagine/qquickimaginetheme.cpp
+++ b/src/imports/controls/imagine/qquickimaginetheme.cpp
@@ -41,11 +41,17 @@
QT_BEGIN_NAMESPACE
QQuickImagineTheme::QQuickImagineTheme()
- : QQuickTheme(QStringLiteral("Imagine"))
+{
+}
+
+void QQuickImagineTheme::resolveFonts(const QFont &defaultFont)
{
systemFont.setFamily(QLatin1String("Open Sans"));
- systemFont = resolveFont(systemFont);
+ systemFont = defaultFont.resolve(systemFont);
+}
+void QQuickImagineTheme::resolvePalettes(const QPalette &defaultPalette)
+{
const QColor accentColor = QColor::fromRgb(0x4fc1e9);
const QColor windowTextColor = QColor::fromRgb(0x434a54);
const QColor disabledWindowTextColor = QColor::fromRgb(0xccd1d9);
@@ -59,16 +65,16 @@ QQuickImagineTheme::QQuickImagineTheme()
systemPalette.setColor(QPalette::WindowText, windowTextColor);
systemPalette.setColor(QPalette::Disabled, QPalette::Text, disabledWindowTextColor);
systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, disabledWindowTextColor);
- systemPalette = resolvePalette(systemPalette);
+ systemPalette = defaultPalette.resolve(systemPalette);
}
-const QFont *QQuickImagineTheme::font(QPlatformTheme::Font type) const
+const QFont *QQuickImagineTheme::font(Font type) const
{
Q_UNUSED(type);
return &systemFont;
}
-const QPalette *QQuickImagineTheme::palette(QPlatformTheme::Palette type) const
+const QPalette *QQuickImagineTheme::palette(Palette type) const
{
Q_UNUSED(type);
return &systemPalette;
diff --git a/src/imports/controls/imagine/qquickimaginetheme_p.h b/src/imports/controls/imagine/qquickimaginetheme_p.h
index ea3a1cbd..3a388a86 100644
--- a/src/imports/controls/imagine/qquickimaginetheme_p.h
+++ b/src/imports/controls/imagine/qquickimaginetheme_p.h
@@ -48,7 +48,7 @@
// We mean it.
//
-#include <QtQuickControls2/private/qquicktheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
QT_BEGIN_NAMESPACE
@@ -60,6 +60,10 @@ public:
const QFont *font(Font type = SystemFont) const override;
const QPalette *palette(Palette type = SystemPalette) const override;
+protected:
+ void resolveFonts(const QFont &defaultFont) override;
+ void resolvePalettes(const QPalette &defaultPalette) override;
+
private:
QFont systemFont;
QPalette systemPalette;
diff --git a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
index 2a613f1c..292b8719 100644
--- a/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
+++ b/src/imports/controls/imagine/qtquickcontrols2imaginestyleplugin.cpp
@@ -66,7 +66,7 @@ public:
void registerTypes(const char *uri) override;
QString name() const override;
- QQuickProxyTheme *createTheme() const override;
+ QQuickTheme *createTheme() const override;
};
QtQuickControls2ImagineStylePlugin::QtQuickControls2ImagineStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
@@ -90,10 +90,10 @@ void QtQuickControls2ImagineStylePlugin::registerTypes(const char *uri)
QString QtQuickControls2ImagineStylePlugin::name() const
{
- return QStringLiteral("imagine");
+ return QStringLiteral("Imagine");
}
-QQuickProxyTheme *QtQuickControls2ImagineStylePlugin::createTheme() const
+QQuickTheme *QtQuickControls2ImagineStylePlugin::createTheme() const
{
return new QQuickImagineTheme;
}
diff --git a/src/imports/controls/material/ApplicationWindow.qml b/src/imports/controls/material/ApplicationWindow.qml
index c3d866ce..94aaeff3 100644
--- a/src/imports/controls/material/ApplicationWindow.qml
+++ b/src/imports/controls/material/ApplicationWindow.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.ApplicationWindow {
id: window
diff --git a/src/imports/controls/material/BoxShadow.qml b/src/imports/controls/material/BoxShadow.qml
index 3d352195..5004c7f6 100644
--- a/src/imports/controls/material/BoxShadow.qml
+++ b/src/imports/controls/material/BoxShadow.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
/*
A implementation of CSS's box-shadow, used by ElevationEffect for a Material Design
diff --git a/src/imports/controls/material/BusyIndicator.qml b/src/imports/controls/material/BusyIndicator.qml
index 5e53bdb9..349b3cb5 100644
--- a/src/imports/controls/material/BusyIndicator.qml
+++ b/src/imports/controls/material/BusyIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.BusyIndicator {
id: control
@@ -48,8 +48,8 @@ T.BusyIndicator {
padding: 6
contentItem: BusyIndicatorImpl {
- implicitWidth: 48
- implicitHeight: 48
+ implicitWidth: control.Material.buttonHeight
+ implicitHeight: control.Material.buttonHeight
color: control.Material.accentColor
running: control.running
diff --git a/src/imports/controls/material/Button.qml b/src/imports/controls/material/Button.qml
index 6401b2ad..2157a3a8 100644
--- a/src/imports/controls/material/Button.qml
+++ b/src/imports/controls/material/Button.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Button {
id: control
@@ -52,8 +52,7 @@ T.Button {
// external vertical padding is 6 (to increase touch area)
padding: 12
- leftPadding: padding - 4
- rightPadding: padding - 4
+ horizontalPadding: padding - 4
spacing: 6
icon.width: 24
@@ -82,7 +81,7 @@ T.Button {
// TODO: Add a proper ripple/ink effect for mouse/touch input and focus state
background: Rectangle {
implicitWidth: 64
- implicitHeight: 48
+ implicitHeight: control.Material.buttonHeight
// external vertical padding is 6 (to increase touch area)
y: 6
diff --git a/src/imports/controls/material/CheckBox.qml b/src/imports/controls/material/CheckBox.qml
index 1f818e6e..56f2f221 100644
--- a/src/imports/controls/material/CheckBox.qml
+++ b/src/imports/controls/material/CheckBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.CheckBox {
id: control
@@ -51,8 +51,7 @@ T.CheckBox {
spacing: 8
padding: 8
- topPadding: padding + 7
- bottomPadding: padding + 7
+ verticalPadding: padding + 7
indicator: CheckIndicator {
x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
diff --git a/src/imports/controls/material/CheckDelegate.qml b/src/imports/controls/material/CheckDelegate.qml
index 1d3ff61d..f349dfbc 100644
--- a/src/imports/controls/material/CheckDelegate.qml
+++ b/src/imports/controls/material/CheckDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.CheckDelegate {
id: control
@@ -52,8 +52,7 @@ T.CheckDelegate {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 16
- topPadding: 8
- bottomPadding: 8
+ verticalPadding: 8
spacing: 16
icon.width: 24
@@ -82,7 +81,7 @@ T.CheckDelegate {
}
background: Rectangle {
- implicitHeight: 48
+ implicitHeight: control.Material.delegateHeight
color: control.highlighted ? control.Material.listHighlightColor : "transparent"
diff --git a/src/imports/controls/material/CheckIndicator.qml b/src/imports/controls/material/CheckIndicator.qml
index 078b1637..bfeda537 100644
--- a/src/imports/controls/material/CheckIndicator.qml
+++ b/src/imports/controls/material/CheckIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
Rectangle {
id: indicatorItem
diff --git a/src/imports/controls/material/ComboBox.qml b/src/imports/controls/material/ComboBox.qml
index 3dd3cf30..55a503d0 100644
--- a/src/imports/controls/material/ComboBox.qml
+++ b/src/imports/controls/material/ComboBox.qml
@@ -34,13 +34,13 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.ComboBox {
id: control
@@ -99,7 +99,7 @@ T.ComboBox {
background: Rectangle {
implicitWidth: 120
- implicitHeight: 48
+ implicitHeight: control.Material.buttonHeight
// external vertical padding is 6 (to increase touch area)
y: 6
diff --git a/src/imports/controls/material/CursorDelegate.qml b/src/imports/controls/material/CursorDelegate.qml
index 5b2140a7..ffb3b3dd 100644
--- a/src/imports/controls/material/CursorDelegate.qml
+++ b/src/imports/controls/material/CursorDelegate.qml
@@ -34,8 +34,8 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
Rectangle {
id: cursor
diff --git a/src/imports/controls/material/DelayButton.qml b/src/imports/controls/material/DelayButton.qml
index 4043949c..3fd97301 100644
--- a/src/imports/controls/material/DelayButton.qml
+++ b/src/imports/controls/material/DelayButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.DelayButton {
id: control
@@ -52,8 +52,7 @@ T.DelayButton {
// external vertical padding is 6 (to increase touch area)
padding: 12
- leftPadding: padding - 4
- rightPadding: padding - 4
+ verticalPadding: padding - 4
Material.elevation: control.down ? 8 : 2
@@ -75,7 +74,7 @@ T.DelayButton {
// TODO: Add a proper ripple/ink effect for mouse/touch input and focus state
background: Rectangle {
implicitWidth: 64
- implicitHeight: 48
+ implicitHeight: control.Material.buttonHeight
// external vertical padding is 6 (to increase touch area)
y: 6
diff --git a/src/imports/controls/material/Dial.qml b/src/imports/controls/material/Dial.qml
index 54469c92..f4d49175 100644
--- a/src/imports/controls/material/Dial.qml
+++ b/src/imports/controls/material/Dial.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Dial {
id: control
diff --git a/src/imports/controls/material/Dialog.qml b/src/imports/controls/material/Dialog.qml
index 5bbafc68..51d2c654 100644
--- a/src/imports/controls/material/Dialog.qml
+++ b/src/imports/controls/material/Dialog.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Dialog {
id: control
diff --git a/src/imports/controls/material/DialogButtonBox.qml b/src/imports/controls/material/DialogButtonBox.qml
index 35df6362..7c217f59 100644
--- a/src/imports/controls/material/DialogButtonBox.qml
+++ b/src/imports/controls/material/DialogButtonBox.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.DialogButtonBox {
id: control
@@ -51,9 +51,9 @@ T.DialogButtonBox {
spacing: 8
padding: 8
- topPadding: 2
- bottomPadding: 2
+ verticalPadding: 2
alignment: Qt.AlignRight
+ buttonLayout: DialogButtonBox.AndroidLayout
Material.foreground: Material.accent
@@ -61,7 +61,7 @@ T.DialogButtonBox {
contentItem: ListView {
implicitWidth: contentWidth
- implicitHeight: 48
+ implicitHeight: control.Material.buttonHeight
model: control.contentModel
spacing: control.spacing
@@ -71,7 +71,7 @@ T.DialogButtonBox {
}
background: PaddedRectangle {
- implicitHeight: 52
+ implicitHeight: control.Material.dialogButtonBoxHeight
radius: 2
color: control.Material.dialogColor
// Rounded corners should be only at the top or at the bottom
diff --git a/src/imports/controls/material/Drawer.qml b/src/imports/controls/material/Drawer.qml
index 827e0b21..1d9314b8 100644
--- a/src/imports/controls/material/Drawer.qml
+++ b/src/imports/controls/material/Drawer.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Drawer {
id: control
diff --git a/src/imports/controls/material/ElevationEffect.qml b/src/imports/controls/material/ElevationEffect.qml
index 71eccf4e..7e5d79aa 100644
--- a/src/imports/controls/material/ElevationEffect.qml
+++ b/src/imports/controls/material/ElevationEffect.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
/*
An effect for standard Material Design elevation shadows. Useful for using as \c layer.effect.
diff --git a/src/imports/controls/material/Frame.qml b/src/imports/controls/material/Frame.qml
index 51721c2c..95ea7c84 100644
--- a/src/imports/controls/material/Frame.qml
+++ b/src/imports/controls/material/Frame.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Frame {
id: control
@@ -45,10 +45,8 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 12
+ verticalPadding: Material.frameVerticalPadding
background: Rectangle {
radius: 2
diff --git a/src/imports/controls/material/GroupBox.qml b/src/imports/controls/material/GroupBox.qml
index 7ac30ec6..552bbb17 100644
--- a/src/imports/controls/material/GroupBox.qml
+++ b/src/imports/controls/material/GroupBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.GroupBox {
id: control
@@ -47,12 +47,10 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
spacing: 6
padding: 12
- topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0)
+ topPadding: Material.frameVerticalPadding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0)
+ bottomPadding: Material.frameVerticalPadding
label: Text {
x: control.leftPadding
diff --git a/src/imports/controls/material/ItemDelegate.qml b/src/imports/controls/material/ItemDelegate.qml
index 3230ff26..d4425844 100644
--- a/src/imports/controls/material/ItemDelegate.qml
+++ b/src/imports/controls/material/ItemDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.ItemDelegate {
id: control
@@ -52,8 +52,7 @@ T.ItemDelegate {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 16
- topPadding: 8
- bottomPadding: 8
+ verticalPadding: 8
spacing: 16
icon.width: 24
@@ -73,7 +72,7 @@ T.ItemDelegate {
}
background: Rectangle {
- implicitHeight: 48
+ implicitHeight: control.Material.delegateHeight
color: control.highlighted ? control.Material.listHighlightColor : "transparent"
diff --git a/src/imports/controls/material/Label.qml b/src/imports/controls/material/Label.qml
index 26998a9e..49333e86 100644
--- a/src/imports/controls/material/Label.qml
+++ b/src/imports/controls/material/Label.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.Label {
id: control
diff --git a/src/imports/controls/material/Menu.qml b/src/imports/controls/material/Menu.qml
index 0f40380c..14006a91 100644
--- a/src/imports/controls/material/Menu.qml
+++ b/src/imports/controls/material/Menu.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Menu {
id: control
@@ -51,8 +51,7 @@ T.Menu {
contentItem ? contentItem.implicitHeight : 0) + topPadding + bottomPadding
margins: 0
- topPadding: 8
- bottomPadding: 8
+ verticalPadding: 8
transformOrigin: !cascade ? Item.Top : (mirrored ? Item.TopRight : Item.TopLeft)
@@ -84,7 +83,7 @@ T.Menu {
background: Rectangle {
implicitWidth: 200
- implicitHeight: 48
+ implicitHeight: control.Material.menuItemHeight
radius: 3
color: control.Material.dialogColor
diff --git a/src/imports/controls/material/MenuBar.qml b/src/imports/controls/material/MenuBar.qml
index da12c9e9..c1ab9d1e 100644
--- a/src/imports/controls/material/MenuBar.qml
+++ b/src/imports/controls/material/MenuBar.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.MenuBar {
id: control
diff --git a/src/imports/controls/material/MenuBarItem.qml b/src/imports/controls/material/MenuBarItem.qml
index 3c99cc15..9cbbb2e9 100644
--- a/src/imports/controls/material/MenuBarItem.qml
+++ b/src/imports/controls/material/MenuBarItem.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.MenuBarItem {
id: control
@@ -51,8 +51,7 @@ T.MenuBarItem {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 16
- topPadding: 12
- bottomPadding: 12
+ verticalPadding: 12
spacing: 16
icon.width: 24
diff --git a/src/imports/controls/material/MenuItem.qml b/src/imports/controls/material/MenuItem.qml
index 13d4694c..4a26fa47 100644
--- a/src/imports/controls/material/MenuItem.qml
+++ b/src/imports/controls/material/MenuItem.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.MenuItem {
id: control
@@ -52,8 +52,7 @@ T.MenuItem {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 16
- topPadding: 12
- bottomPadding: 12
+ verticalPadding: Material.menuItemVerticalPadding
spacing: 16
icon.width: 24
@@ -96,7 +95,7 @@ T.MenuItem {
background: Rectangle {
implicitWidth: 200
- implicitHeight: 48
+ implicitHeight: control.Material.menuItemHeight
color: control.highlighted ? control.Material.listHighlightColor : "transparent"
Ripple {
diff --git a/src/imports/controls/material/MenuSeparator.qml b/src/imports/controls/material/MenuSeparator.qml
index d2059d3a..c9ef35db 100644
--- a/src/imports/controls/material/MenuSeparator.qml
+++ b/src/imports/controls/material/MenuSeparator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.MenuSeparator {
id: control
@@ -44,8 +44,7 @@ T.MenuSeparator {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentItem.implicitWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding)
- topPadding: 8
- bottomPadding: 8
+ verticalPadding: 8
contentItem: Rectangle {
implicitWidth: 200
diff --git a/src/imports/controls/material/Page.qml b/src/imports/controls/material/Page.qml
index 9993aa0f..71420ed1 100644
--- a/src/imports/controls/material/Page.qml
+++ b/src/imports/controls/material/Page.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.Page {
id: control
@@ -50,9 +50,6 @@ T.Page {
+ (header && header.visible ? header.implicitHeight + spacing : 0)
+ (footer && footer.visible ? footer.implicitHeight + spacing : 0))
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
background: Rectangle {
color: control.Material.backgroundColor
}
diff --git a/src/imports/controls/material/PageIndicator.qml b/src/imports/controls/material/PageIndicator.qml
index 2ab9cd33..62444e1e 100644
--- a/src/imports/controls/material/PageIndicator.qml
+++ b/src/imports/controls/material/PageIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.PageIndicator {
id: control
diff --git a/src/imports/controls/material/Pane.qml b/src/imports/controls/material/Pane.qml
index 0e232a9d..6dfa13fb 100644
--- a/src/imports/controls/material/Pane.qml
+++ b/src/imports/controls/material/Pane.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Pane {
id: control
@@ -45,9 +45,6 @@ T.Pane {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 12
background: Rectangle {
diff --git a/src/imports/controls/material/Popup.qml b/src/imports/controls/material/Popup.qml
index 0d255f7d..adc070a4 100644
--- a/src/imports/controls/material/Popup.qml
+++ b/src/imports/controls/material/Popup.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Popup {
id: control
diff --git a/src/imports/controls/material/ProgressBar.qml b/src/imports/controls/material/ProgressBar.qml
index 0f08c732..68b99111 100644
--- a/src/imports/controls/material/ProgressBar.qml
+++ b/src/imports/controls/material/ProgressBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.ProgressBar {
id: control
diff --git a/src/imports/controls/material/RadioButton.qml b/src/imports/controls/material/RadioButton.qml
index 2a95f989..9cd48a2d 100644
--- a/src/imports/controls/material/RadioButton.qml
+++ b/src/imports/controls/material/RadioButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.RadioButton {
id: control
@@ -51,8 +51,7 @@ T.RadioButton {
spacing: 8
padding: 8
- topPadding: padding + 6
- bottomPadding: padding + 6
+ verticalPadding: padding + 6
indicator: RadioIndicator {
x: text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2
diff --git a/src/imports/controls/material/RadioDelegate.qml b/src/imports/controls/material/RadioDelegate.qml
index d498ee80..5aaa142e 100644
--- a/src/imports/controls/material/RadioDelegate.qml
+++ b/src/imports/controls/material/RadioDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.RadioDelegate {
id: control
@@ -52,8 +52,7 @@ T.RadioDelegate {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 16
- topPadding: 8
- bottomPadding: 8
+ verticalPadding: 8
spacing: 16
icon.width: 24
@@ -82,7 +81,7 @@ T.RadioDelegate {
}
background: Rectangle {
- implicitHeight: 48
+ implicitHeight: control.Material.delegateHeight
color: control.highlighted ? control.Material.listHighlightColor : "transparent"
diff --git a/src/imports/controls/material/RadioIndicator.qml b/src/imports/controls/material/RadioIndicator.qml
index 47505903..0ed632a6 100644
--- a/src/imports/controls/material/RadioIndicator.qml
+++ b/src/imports/controls/material/RadioIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
Rectangle {
implicitWidth: 20
diff --git a/src/imports/controls/material/RangeSlider.qml b/src/imports/controls/material/RangeSlider.qml
index cbe21400..3bbf9807 100644
--- a/src/imports/controls/material/RangeSlider.qml
+++ b/src/imports/controls/material/RangeSlider.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.RangeSlider {
id: control
diff --git a/src/imports/controls/material/RectangularGlow.qml b/src/imports/controls/material/RectangularGlow.qml
index 35ca8b46..58e11b9f 100644
--- a/src/imports/controls/material/RectangularGlow.qml
+++ b/src/imports/controls/material/RectangularGlow.qml
@@ -34,7 +34,7 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
/*
A cross-graphics API implementation of QtGraphicalEffects' RectangularGlow.
diff --git a/src/imports/controls/material/RoundButton.qml b/src/imports/controls/material/RoundButton.qml
index 92e6bc84..31ad6e5a 100644
--- a/src/imports/controls/material/RoundButton.qml
+++ b/src/imports/controls/material/RoundButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.RoundButton {
id: control
@@ -79,8 +79,8 @@ T.RoundButton {
// TODO: Add a proper ripple/ink effect for mouse/touch input and focus state
background: Rectangle {
- implicitWidth: 48
- implicitHeight: 48
+ implicitWidth: control.Material.buttonHeight
+ implicitHeight: control.Material.buttonHeight
// external vertical padding is 6 (to increase touch area)
x: 6
diff --git a/src/imports/controls/material/ScrollBar.qml b/src/imports/controls/material/ScrollBar.qml
index 2ff925af..8abb622c 100644
--- a/src/imports/controls/material/ScrollBar.qml
+++ b/src/imports/controls/material/ScrollBar.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.ScrollBar {
id: control
diff --git a/src/imports/controls/material/ScrollIndicator.qml b/src/imports/controls/material/ScrollIndicator.qml
index 92727822..ecd264a0 100644
--- a/src/imports/controls/material/ScrollIndicator.qml
+++ b/src/imports/controls/material/ScrollIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.ScrollIndicator {
id: control
diff --git a/src/imports/controls/material/Slider.qml b/src/imports/controls/material/Slider.qml
index 1044354a..0a957102 100644
--- a/src/imports/controls/material/Slider.qml
+++ b/src/imports/controls/material/Slider.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.Slider {
id: control
diff --git a/src/imports/controls/material/SliderHandle.qml b/src/imports/controls/material/SliderHandle.qml
index 64879a46..2ebbcccd 100644
--- a/src/imports/controls/material/SliderHandle.qml
+++ b/src/imports/controls/material/SliderHandle.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
Item {
id: root
diff --git a/src/imports/controls/material/SpinBox.qml b/src/imports/controls/material/SpinBox.qml
index cf9196ac..9100f0b8 100644
--- a/src/imports/controls/material/SpinBox.qml
+++ b/src/imports/controls/material/SpinBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.SpinBox {
id: control
@@ -83,8 +83,8 @@ T.SpinBox {
up.indicator: Item {
x: control.mirrored ? 0 : parent.width - width
- implicitWidth: 48
- implicitHeight: 48
+ implicitWidth: control.Material.buttonHeight
+ implicitHeight: control.Material.buttonHeight
height: parent.height
width: height
@@ -117,8 +117,8 @@ T.SpinBox {
down.indicator: Item {
x: control.mirrored ? parent.width - width : 0
- implicitWidth: 48
- implicitHeight: 48
+ implicitWidth: control.Material.buttonHeight
+ implicitHeight: control.Material.buttonHeight
height: parent.height
width: height
@@ -144,7 +144,7 @@ T.SpinBox {
background: Item {
implicitWidth: 192
- implicitHeight: 48
+ implicitHeight: control.Material.buttonHeight
Rectangle {
x: parent.width / 2 - width / 2
diff --git a/src/imports/controls/material/StackView.qml b/src/imports/controls/material/StackView.qml
index 8b69121b..6f76e2e3 100644
--- a/src/imports/controls/material/StackView.qml
+++ b/src/imports/controls/material/StackView.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.StackView {
id: control
diff --git a/src/imports/controls/material/SwipeDelegate.qml b/src/imports/controls/material/SwipeDelegate.qml
index 1095ac68..dce336d0 100644
--- a/src/imports/controls/material/SwipeDelegate.qml
+++ b/src/imports/controls/material/SwipeDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.SwipeDelegate {
id: control
@@ -52,8 +52,7 @@ T.SwipeDelegate {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 16
- topPadding: 8
- bottomPadding: 8
+ verticalPadding: 8
spacing: 16
icon.width: 24
@@ -75,7 +74,7 @@ T.SwipeDelegate {
}
background: Rectangle {
- implicitHeight: 48
+ implicitHeight: control.Material.delegateHeight
color: control.Material.backgroundColor
diff --git a/src/imports/controls/material/SwipeView.qml b/src/imports/controls/material/SwipeView.qml
index eb753579..eedb36e3 100644
--- a/src/imports/controls/material/SwipeView.qml
+++ b/src/imports/controls/material/SwipeView.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.SwipeView {
id: control
diff --git a/src/imports/controls/material/Switch.qml b/src/imports/controls/material/Switch.qml
index d44a9f2c..92b2cbf7 100644
--- a/src/imports/controls/material/Switch.qml
+++ b/src/imports/controls/material/Switch.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
-import QtQuick.Templates 2.4 as T
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
+import QtQuick.Templates 2.5 as T
T.Switch {
id: control
diff --git a/src/imports/controls/material/SwitchDelegate.qml b/src/imports/controls/material/SwitchDelegate.qml
index 308e9772..a5483146 100644
--- a/src/imports/controls/material/SwitchDelegate.qml
+++ b/src/imports/controls/material/SwitchDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.SwitchDelegate {
id: control
@@ -52,8 +52,7 @@ T.SwitchDelegate {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 16
- topPadding: 8
- bottomPadding: 8
+ verticalPadding: Material.switchDelegateVerticalPadding
spacing: 16
icon.width: 24
@@ -82,7 +81,7 @@ T.SwitchDelegate {
}
background: Rectangle {
- implicitHeight: 48
+ implicitHeight: control.Material.delegateHeight
color: control.highlighted ? control.Material.listHighlightColor : "transparent"
diff --git a/src/imports/controls/material/SwitchIndicator.qml b/src/imports/controls/material/SwitchIndicator.qml
index 2c5fc33d..f7567059 100644
--- a/src/imports/controls/material/SwitchIndicator.qml
+++ b/src/imports/controls/material/SwitchIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
Item {
id: indicator
diff --git a/src/imports/controls/material/TabBar.qml b/src/imports/controls/material/TabBar.qml
index c9410dfc..bd9b8491 100644
--- a/src/imports/controls/material/TabBar.qml
+++ b/src/imports/controls/material/TabBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.TabBar {
id: control
diff --git a/src/imports/controls/material/TabButton.qml b/src/imports/controls/material/TabButton.qml
index 3134cca9..00fad423 100644
--- a/src/imports/controls/material/TabButton.qml
+++ b/src/imports/controls/material/TabButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.TabButton {
id: control
@@ -69,7 +69,7 @@ T.TabButton {
}
background: Ripple {
- implicitHeight: 48
+ implicitHeight: control.Material.buttonHeight
clip: true
pressed: control.pressed
diff --git a/src/imports/controls/material/TextArea.qml b/src/imports/controls/material/TextArea.qml
index 2dc64570..7ba68017 100644
--- a/src/imports/controls/material/TextArea.qml
+++ b/src/imports/controls/material/TextArea.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.TextArea {
id: control
@@ -57,7 +57,7 @@ T.TextArea {
color: enabled ? Material.foreground : Material.hintTextColor
selectionColor: Material.accentColor
selectedTextColor: Material.primaryHighlightedTextColor
-
+ placeholderTextColor: Material.hintTextColor
cursorDelegate: CursorDelegate { }
PlaceholderText {
@@ -68,7 +68,7 @@ T.TextArea {
height: control.height - (control.topPadding + control.bottomPadding)
text: control.placeholderText
font: control.font
- color: control.Material.hintTextColor
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
elide: Text.ElideRight
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
diff --git a/src/imports/controls/material/TextField.qml b/src/imports/controls/material/TextField.qml
index 6ce905af..62843774 100644
--- a/src/imports/controls/material/TextField.qml
+++ b/src/imports/controls/material/TextField.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.TextField {
id: control
@@ -57,6 +57,7 @@ T.TextField {
color: enabled ? Material.foreground : Material.hintTextColor
selectionColor: Material.accentColor
selectedTextColor: Material.primaryHighlightedTextColor
+ placeholderTextColor: Material.hintTextColor
verticalAlignment: TextInput.AlignVCenter
cursorDelegate: CursorDelegate { }
@@ -69,7 +70,7 @@ T.TextField {
height: control.height - (control.topPadding + control.bottomPadding)
text: control.placeholderText
font: control.font
- color: control.Material.hintTextColor
+ color: control.placeholderTextColor
verticalAlignment: control.verticalAlignment
elide: Text.ElideRight
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
diff --git a/src/imports/controls/material/ToolBar.qml b/src/imports/controls/material/ToolBar.qml
index 766856d0..be0d8dc7 100644
--- a/src/imports/controls/material/ToolBar.qml
+++ b/src/imports/controls/material/ToolBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.ToolBar {
id: control
@@ -47,9 +47,6 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
Material.foreground: Material.toolTextColor
spacing: 16
diff --git a/src/imports/controls/material/ToolButton.qml b/src/imports/controls/material/ToolButton.qml
index 86a9f5c0..f4b03fa5 100644
--- a/src/imports/controls/material/ToolButton.qml
+++ b/src/imports/controls/material/ToolButton.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Material 2.4
-import QtQuick.Controls.Material.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Material 2.5
+import QtQuick.Controls.Material.impl 2.5
T.ToolButton {
id: control
@@ -70,8 +70,8 @@ T.ToolButton {
}
background: Ripple {
- implicitWidth: 48
- implicitHeight: 48
+ implicitWidth: control.Material.buttonHeight
+ implicitHeight: control.Material.buttonHeight
readonly property bool square: control.contentItem.width <= control.contentItem.height
diff --git a/src/imports/controls/material/ToolSeparator.qml b/src/imports/controls/material/ToolSeparator.qml
index d6feeb85..a3837e71 100644
--- a/src/imports/controls/material/ToolSeparator.qml
+++ b/src/imports/controls/material/ToolSeparator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.ToolSeparator {
id: control
@@ -44,10 +44,8 @@ T.ToolSeparator {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentItem.implicitWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentItem.implicitHeight + topPadding + bottomPadding)
- leftPadding: vertical ? 12 : 5
- rightPadding: vertical ? 12 : 5
- topPadding: vertical ? 5 : 12
- bottomPadding: vertical ? 5 : 12
+ horizontalPadding: vertical ? 12 : 5
+ verticalPadding: vertical ? 5 : 12
contentItem: Rectangle {
implicitWidth: vertical ? 1 : 38
diff --git a/src/imports/controls/material/ToolTip.qml b/src/imports/controls/material/ToolTip.qml
index bb7a9d7c..098dc8e6 100644
--- a/src/imports/controls/material/ToolTip.qml
+++ b/src/imports/controls/material/ToolTip.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.ToolTip {
id: control
@@ -51,8 +51,7 @@ T.ToolTip {
margins: 12
padding: 8
- leftPadding: padding + 8
- rightPadding: padding + 8
+ horizontalPadding: padding + 8
closePolicy: T.Popup.CloseOnEscape | T.Popup.CloseOnPressOutsideParent | T.Popup.CloseOnReleaseOutsideParent
@@ -76,7 +75,7 @@ T.ToolTip {
}
background: Rectangle {
- implicitHeight: 32
+ implicitHeight: control.Material.tooltipHeight
color: control.Material.tooltipColor
opacity: 0.9
radius: 2
diff --git a/src/imports/controls/material/Tumbler.qml b/src/imports/controls/material/Tumbler.qml
index d5c42422..836d9456 100644
--- a/src/imports/controls/material/Tumbler.qml
+++ b/src/imports/controls/material/Tumbler.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Material 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Material 2.5
T.Tumbler {
id: control
diff --git a/src/imports/controls/material/material.pro b/src/imports/controls/material/material.pro
index 9e04a23d..c66cdb92 100644
--- a/src/imports/controls/material/material.pro
+++ b/src/imports/controls/material/material.pro
@@ -1,6 +1,6 @@
TARGET = qtquickcontrols2materialstyleplugin
TARGETPATH = QtQuick/Controls.2/Material
-IMPORT_VERSION = 2.4
+IMPORT_VERSION = 2.5
QT += qml quick
QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private
diff --git a/src/imports/controls/material/qmldir b/src/imports/controls/material/qmldir
index d6ab0177..870a0382 100644
--- a/src/imports/controls/material/qmldir
+++ b/src/imports/controls/material/qmldir
@@ -1,4 +1,4 @@
module QtQuick.Controls.Material
plugin qtquickcontrols2materialstyleplugin
classname QtQuickControls2MaterialStylePlugin
-depends QtQuick.Controls 2.4
+depends QtQuick.Controls 2.5
diff --git a/src/imports/controls/material/qquickmaterialstyle.cpp b/src/imports/controls/material/qquickmaterialstyle.cpp
index 08d88ec7..8d348026 100644
--- a/src/imports/controls/material/qquickmaterialstyle.cpp
+++ b/src/imports/controls/material/qquickmaterialstyle.cpp
@@ -387,6 +387,10 @@ static bool globalPrimaryCustom = false;
static bool globalAccentCustom = false;
static bool globalForegroundCustom = true;
static bool globalBackgroundCustom = true;
+// This is global because:
+// 1) The theme needs access to it to determine font sizes.
+// 2) There can only be one variant used for the whole application.
+static QQuickMaterialStyle::Variant globalVariant = QQuickMaterialStyle::Normal;
static const QRgb backgroundColorLight = 0xFFFAFAFA;
static const QRgb backgroundColorDark = 0xFF303030;
@@ -445,7 +449,7 @@ QQuickMaterialStyle::QQuickMaterialStyle(QObject *parent) : QQuickAttachedObject
m_background(globalBackground),
m_elevation(0)
{
- init();
+ QQuickAttachedObject::init();
}
QQuickMaterialStyle *QQuickMaterialStyle::qmlAttachedProperties(QObject *object)
@@ -1135,17 +1139,55 @@ QColor QQuickMaterialStyle::shade(const QColor &color, Shade shade) const
}
}
-void QQuickMaterialStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent)
+int QQuickMaterialStyle::buttonHeight() const
{
- Q_UNUSED(oldParent);
- QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(newParent);
- if (material) {
- inheritPrimary(material->m_primary, material->m_customPrimary);
- inheritAccent(material->m_accent, material->m_customAccent);
- inheritForeground(material->m_foreground, material->m_customForeground, material->m_hasForeground);
- inheritBackground(material->m_background, material->m_customBackground, material->m_hasBackground);
- inheritTheme(material->theme());
- }
+ // https://material.io/guidelines/components/buttons.html#buttons-style
+ return globalVariant == Dense ? 44 : 48;
+}
+
+int QQuickMaterialStyle::delegateHeight() const
+{
+ // https://material.io/guidelines/components/lists.html#lists-specs
+ return globalVariant == Dense ? 40 : 48;
+}
+
+int QQuickMaterialStyle::dialogButtonBoxHeight() const
+{
+ return globalVariant == Dense ? 48 : 52;
+}
+
+int QQuickMaterialStyle::frameVerticalPadding() const
+{
+ return globalVariant == Dense ? 8 : 12;
+}
+
+int QQuickMaterialStyle::menuItemHeight() const
+{
+ // https://material.io/guidelines/components/menus.html#menus-simple-menus
+ return globalVariant == Dense ? 32 : 48;
+}
+
+int QQuickMaterialStyle::menuItemVerticalPadding() const
+{
+ return globalVariant == Dense ? 8 : 12;
+}
+
+int QQuickMaterialStyle::switchDelegateVerticalPadding() const
+{
+ // SwitchDelegate's indicator is much larger than the others due to the shadow,
+ // so we must reduce its padding to ensure its implicitHeight is 40 when dense.
+ return globalVariant == Dense ? 4 : 8;
+}
+
+int QQuickMaterialStyle::tooltipHeight() const
+{
+ // https://material.io/guidelines/components/tooltips.html
+ return globalVariant == Dense ? 22 : 32;
+}
+
+QQuickMaterialStyle::Variant QQuickMaterialStyle::variant()
+{
+ return globalVariant;
}
template <typename Enum>
@@ -1165,88 +1207,101 @@ static QByteArray resolveSetting(const QByteArray &env, const QSharedPointer<QSe
return value;
}
-void QQuickMaterialStyle::init()
+void QQuickMaterialStyle::initGlobals()
{
- static bool globalsInitialized = false;
- if (!globalsInitialized) {
- QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Material"));
+ QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(QStringLiteral("Material"));
- bool ok = false;
- QByteArray themeValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_THEME", settings, QStringLiteral("Theme"));
- Theme themeEnum = toEnumValue<Theme>(themeValue, &ok);
- if (ok)
- globalTheme = m_theme = effectiveTheme(themeEnum);
- else if (!themeValue.isEmpty())
- qWarning().nospace().noquote() << "Material: unknown theme value: " << themeValue;
+ bool ok = false;
+ QByteArray themeValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_THEME", settings, QStringLiteral("Theme"));
+ Theme themeEnum = toEnumValue<Theme>(themeValue, &ok);
+ if (ok)
+ globalTheme = effectiveTheme(themeEnum);
+ else if (!themeValue.isEmpty())
+ qWarning().nospace().noquote() << "Material: unknown theme value: " << themeValue;
- QByteArray primaryValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_PRIMARY", settings, QStringLiteral("Primary"));
- Color primaryEnum = toEnumValue<Color>(primaryValue, &ok);
- if (ok) {
- globalPrimaryCustom = m_customPrimary = false;
- globalPrimary = m_primary = primaryEnum;
- } else {
- QColor color(primaryValue.constData());
- if (color.isValid()) {
- globalPrimaryCustom = m_customPrimary = true;
- globalPrimary = m_primary = color.rgba();
- } else if (!primaryValue.isEmpty()) {
- qWarning().nospace().noquote() << "Material: unknown primary value: " << primaryValue;
- }
- }
+ QByteArray variantValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_VARIANT", settings, QStringLiteral("Variant"));
+ Variant variantEnum = toEnumValue<Variant>(variantValue, &ok);
+ if (ok)
+ globalVariant = variantEnum;
+ else if (!variantValue.isEmpty())
+ qWarning().nospace().noquote() << "Material: unknown variant value: " << variantValue;
- QByteArray accentValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_ACCENT", settings, QStringLiteral("Accent"));
- Color accentEnum = toEnumValue<Color>(accentValue, &ok);
- if (ok) {
- globalAccentCustom = m_customAccent = false;
- globalAccent = m_accent = accentEnum;
- } else if (!accentValue.isEmpty()) {
- QColor color(accentValue.constData());
- if (color.isValid()) {
- globalAccentCustom = m_customAccent = true;
- globalAccent = m_accent = color.rgba();
- } else {
- qWarning().nospace().noquote() << "Material: unknown accent value: " << accentValue;
- }
+ QByteArray primaryValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_PRIMARY", settings, QStringLiteral("Primary"));
+ Color primaryEnum = toEnumValue<Color>(primaryValue, &ok);
+ if (ok) {
+ globalPrimaryCustom = false;
+ globalPrimary = primaryEnum;
+ } else {
+ QColor color(primaryValue.constData());
+ if (color.isValid()) {
+ globalPrimaryCustom = true;
+ globalPrimary = color.rgba();
+ } else if (!primaryValue.isEmpty()) {
+ qWarning().nospace().noquote() << "Material: unknown primary value: " << primaryValue;
}
+ }
- QByteArray foregroundValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_FOREGROUND", settings, QStringLiteral("Foreground"));
- Color foregroundEnum = toEnumValue<Color>(foregroundValue, &ok);
- if (ok) {
- globalForegroundCustom = m_customForeground = false;
- globalForeground = m_foreground = foregroundEnum;
- hasGlobalForeground = m_hasForeground = true;
- } else if (!foregroundValue.isEmpty()) {
- QColor color(foregroundValue.constData());
- if (color.isValid()) {
- globalForegroundCustom = m_customForeground = true;
- globalForeground = m_foreground = color.rgba();
- hasGlobalForeground = m_hasForeground = true;
- } else {
- qWarning().nospace().noquote() << "Material: unknown foreground value: " << foregroundValue;
- }
+ QByteArray accentValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_ACCENT", settings, QStringLiteral("Accent"));
+ Color accentEnum = toEnumValue<Color>(accentValue, &ok);
+ if (ok) {
+ globalAccentCustom = false;
+ globalAccent = accentEnum;
+ } else if (!accentValue.isEmpty()) {
+ QColor color(accentValue.constData());
+ if (color.isValid()) {
+ globalAccentCustom = true;
+ globalAccent = color.rgba();
+ } else {
+ qWarning().nospace().noquote() << "Material: unknown accent value: " << accentValue;
}
+ }
- QByteArray backgroundValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_BACKGROUND", settings, QStringLiteral("Background"));
- Color backgroundEnum = toEnumValue<Color>(backgroundValue, &ok);
- if (ok) {
- globalBackgroundCustom = m_customBackground = false;
- globalBackground = m_background = backgroundEnum;
- hasGlobalBackground = m_hasBackground = true;
- } else if (!backgroundValue.isEmpty()) {
- QColor color(backgroundValue.constData());
- if (color.isValid()) {
- globalBackgroundCustom = m_customBackground = true;
- globalBackground = m_background = color.rgba();
- hasGlobalBackground = m_hasBackground = true;
- } else {
- qWarning().nospace().noquote() << "Material: unknown background value: " << backgroundValue;
- }
+ QByteArray foregroundValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_FOREGROUND", settings, QStringLiteral("Foreground"));
+ Color foregroundEnum = toEnumValue<Color>(foregroundValue, &ok);
+ if (ok) {
+ globalForegroundCustom = false;
+ globalForeground = foregroundEnum;
+ hasGlobalForeground = true;
+ } else if (!foregroundValue.isEmpty()) {
+ QColor color(foregroundValue.constData());
+ if (color.isValid()) {
+ globalForegroundCustom = true;
+ globalForeground = color.rgba();
+ hasGlobalForeground = true;
+ } else {
+ qWarning().nospace().noquote() << "Material: unknown foreground value: " << foregroundValue;
}
+ }
- globalsInitialized = true;
+ QByteArray backgroundValue = resolveSetting("QT_QUICK_CONTROLS_MATERIAL_BACKGROUND", settings, QStringLiteral("Background"));
+ Color backgroundEnum = toEnumValue<Color>(backgroundValue, &ok);
+ if (ok) {
+ globalBackgroundCustom = false;
+ globalBackground = backgroundEnum;
+ hasGlobalBackground = true;
+ } else if (!backgroundValue.isEmpty()) {
+ QColor color(backgroundValue.constData());
+ if (color.isValid()) {
+ globalBackgroundCustom = true;
+ globalBackground = color.rgba();
+ hasGlobalBackground = true;
+ } else {
+ qWarning().nospace().noquote() << "Material: unknown background value: " << backgroundValue;
+ }
}
+}
- QQuickAttachedObject::init(); // TODO: lazy init?
+void QQuickMaterialStyle::attachedParentChange(QQuickAttachedObject *newParent, QQuickAttachedObject *oldParent)
+{
+ Q_UNUSED(oldParent);
+ QQuickMaterialStyle *material = qobject_cast<QQuickMaterialStyle *>(newParent);
+ if (material) {
+ inheritPrimary(material->m_primary, material->m_customPrimary);
+ inheritAccent(material->m_accent, material->m_customAccent);
+ inheritForeground(material->m_foreground, material->m_customForeground, material->m_hasForeground);
+ inheritBackground(material->m_background, material->m_customBackground, material->m_hasBackground);
+ inheritTheme(material->theme());
+ }
}
bool QQuickMaterialStyle::variantToRgba(const QVariant &var, const char *name, QRgb *rgba, bool *custom) const
diff --git a/src/imports/controls/material/qquickmaterialstyle_p.h b/src/imports/controls/material/qquickmaterialstyle_p.h
index 2374eefb..0cb168a9 100644
--- a/src/imports/controls/material/qquickmaterialstyle_p.h
+++ b/src/imports/controls/material/qquickmaterialstyle_p.h
@@ -98,6 +98,15 @@ class QQuickMaterialStyle : public QQuickAttachedObject
Q_PROPERTY(QColor toolTextColor READ toolTextColor NOTIFY paletteChanged FINAL)
Q_PROPERTY(QColor spinBoxDisabledIconColor READ spinBoxDisabledIconColor NOTIFY paletteChanged FINAL)
+ Q_PROPERTY(int buttonHeight READ buttonHeight CONSTANT FINAL)
+ Q_PROPERTY(int delegateHeight READ delegateHeight CONSTANT FINAL)
+ Q_PROPERTY(int dialogButtonBoxHeight READ dialogButtonBoxHeight CONSTANT FINAL)
+ Q_PROPERTY(int frameVerticalPadding READ frameVerticalPadding CONSTANT FINAL)
+ Q_PROPERTY(int menuItemHeight READ menuItemHeight CONSTANT FINAL)
+ Q_PROPERTY(int menuItemVerticalPadding READ menuItemVerticalPadding CONSTANT FINAL)
+ Q_PROPERTY(int switchDelegateVerticalPadding READ switchDelegateVerticalPadding CONSTANT FINAL)
+ Q_PROPERTY(int tooltipHeight READ tooltipHeight CONSTANT FINAL)
+
public:
enum Theme {
Light,
@@ -105,6 +114,11 @@ public:
System
};
+ enum Variant {
+ Normal,
+ Dense
+ };
+
enum Color {
Red,
Pink,
@@ -145,6 +159,7 @@ public:
};
Q_ENUM(Theme)
+ Q_ENUM(Variant)
Q_ENUM(Color)
Q_ENUM(Shade)
@@ -225,6 +240,19 @@ public:
Q_INVOKABLE QColor color(Color color, Shade shade = Shade500) const;
Q_INVOKABLE QColor shade(const QColor &color, Shade shade) const;
+ int buttonHeight() const;
+ int delegateHeight() const;
+ int dialogButtonBoxHeight() const;
+ int frameVerticalPadding() const;
+ int menuItemHeight() const;
+ int menuItemVerticalPadding() const;
+ int switchDelegateVerticalPadding() const;
+ int tooltipHeight() const;
+
+ static void initGlobals();
+
+ static Variant variant();
+
Q_SIGNALS:
void themeChanged();
void primaryChanged();
diff --git a/src/imports/controls/material/qquickmaterialtheme.cpp b/src/imports/controls/material/qquickmaterialtheme.cpp
index c697b2a5..471f5143 100644
--- a/src/imports/controls/material/qquickmaterialtheme.cpp
+++ b/src/imports/controls/material/qquickmaterialtheme.cpp
@@ -35,6 +35,7 @@
****************************************************************************/
#include "qquickmaterialtheme_p.h"
+#include "qquickmaterialstyle_p.h"
#include <QtGui/qpa/qplatformdialoghelper.h>
#include <QtGui/qfont.h>
@@ -43,7 +44,10 @@
QT_BEGIN_NAMESPACE
QQuickMaterialTheme::QQuickMaterialTheme()
- : QQuickTheme(QStringLiteral("Material"))
+{
+}
+
+void QQuickMaterialTheme::resolveFonts(const QFont &defaultFont)
{
QFont font;
font.setFamily(QLatin1String("Roboto"));
@@ -64,64 +68,58 @@ QQuickMaterialTheme::QQuickMaterialTheme()
editorFont.setFamily(family);
}
- systemFont.setPixelSize(14);
- systemFont = resolveFont(systemFont);
+ const bool dense = QQuickMaterialStyle::variant() == QQuickMaterialStyle::Dense;
+ systemFont.setPixelSize(dense ? 13 : 14);
+ systemFont = defaultFont.resolve(systemFont);
- buttonFont.setPixelSize(14);
+ // https://material.io/guidelines/components/buttons.html#buttons-style
+ buttonFont.setPixelSize(dense ? 13 : 14);
buttonFont.setCapitalization(QFont::AllUppercase);
buttonFont.setWeight(QFont::Medium);
- buttonFont = resolveFont(buttonFont);
+ buttonFont = defaultFont.resolve(buttonFont);
- toolTipFont.setPixelSize(14);
+ // https://material.io/guidelines/components/tooltips.html
+ toolTipFont.setPixelSize(dense ? 10 : 14);
toolTipFont.setWeight(QFont::Medium);
- toolTipFont = resolveFont(toolTipFont);
+ toolTipFont = defaultFont.resolve(toolTipFont);
- itemViewFont.setPixelSize(14);
+ itemViewFont.setPixelSize(dense ? 13 : 14);
itemViewFont.setWeight(QFont::Medium);
- itemViewFont = resolveFont(itemViewFont);
+ itemViewFont = defaultFont.resolve(itemViewFont);
- listViewFont.setPixelSize(16);
- listViewFont = resolveFont(listViewFont);
+ // https://material.io/guidelines/components/lists.html#lists-specs
+ listViewFont.setPixelSize(dense ? 13 : 16);
+ listViewFont = defaultFont.resolve(listViewFont);
- menuItemFont.setPixelSize(16);
- menuItemFont = resolveFont(menuItemFont);
+ menuItemFont.setPixelSize(dense ? 13 : 16);
+ menuItemFont = defaultFont.resolve(menuItemFont);
- editorFont.setPixelSize(16);
- editorFont = resolveFont(editorFont);
+ editorFont.setPixelSize(dense ? 13 : 16);
+ editorFont = defaultFont.resolve(editorFont);
}
-const QFont *QQuickMaterialTheme::font(QPlatformTheme::Font type) const
+const QFont *QQuickMaterialTheme::font(Font type) const
{
switch (type) {
- case QPlatformTheme::TabButtonFont:
- case QPlatformTheme::PushButtonFont:
- case QPlatformTheme::ToolButtonFont:
+ case TabButtonFont:
+ case PushButtonFont:
+ case ToolButtonFont:
return &buttonFont;
- case QPlatformTheme::TipLabelFont:
+ case TipLabelFont:
return &toolTipFont;
- case QPlatformTheme::ItemViewFont:
+ case ItemViewFont:
return &itemViewFont;
- case QPlatformTheme::ListViewFont:
+ case ListViewFont:
return &listViewFont;
- case QPlatformTheme::MenuBarFont:
- case QPlatformTheme::MenuItemFont:
- case QPlatformTheme::ComboMenuItemFont:
+ case MenuBarFont:
+ case MenuItemFont:
+ case ComboMenuItemFont:
return &menuItemFont;
- case QPlatformTheme::EditorFont:
+ case EditorFont:
return &editorFont;
default:
return &systemFont;
}
}
-QVariant QQuickMaterialTheme::themeHint(ThemeHint hint) const
-{
- switch (hint) {
- case QPlatformTheme::DialogButtonBoxLayout:
- return QVariant(QPlatformDialogHelper::AndroidLayout);
- default:
- return QQuickProxyTheme::themeHint(hint);
- }
-}
-
QT_END_NAMESPACE
diff --git a/src/imports/controls/material/qquickmaterialtheme_p.h b/src/imports/controls/material/qquickmaterialtheme_p.h
index 0e791386..8df1f962 100644
--- a/src/imports/controls/material/qquickmaterialtheme_p.h
+++ b/src/imports/controls/material/qquickmaterialtheme_p.h
@@ -50,7 +50,7 @@
#include <QtCore/qvariant.h>
#include <QtGui/qfont.h>
-#include <QtQuickControls2/private/qquicktheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
QT_BEGIN_NAMESPACE
@@ -61,7 +61,8 @@ public:
const QFont *font(Font type = SystemFont) const override;
- QVariant themeHint(ThemeHint hint) const override;
+protected:
+ void resolveFonts(const QFont &defaultFont) override;
private:
QFont systemFont;
diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
index 33c14d04..f0cf8f3f 100644
--- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
+++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
@@ -66,12 +66,13 @@ public:
void registerTypes(const char *uri) override;
QString name() const override;
- QQuickProxyTheme *createTheme() const override;
+ QQuickTheme *createTheme() const override;
};
QtQuickControls2MaterialStylePlugin::QtQuickControls2MaterialStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
{
initResources();
+ QQuickMaterialStyle::initGlobals();
}
void QtQuickControls2MaterialStylePlugin::registerTypes(const char *uri)
@@ -97,10 +98,10 @@ void QtQuickControls2MaterialStylePlugin::registerTypes(const char *uri)
QString QtQuickControls2MaterialStylePlugin::name() const
{
- return QStringLiteral("material");
+ return QStringLiteral("Material");
}
-QQuickProxyTheme *QtQuickControls2MaterialStylePlugin::createTheme() const
+QQuickTheme *QtQuickControls2MaterialStylePlugin::createTheme() const
{
return new QQuickMaterialTheme;
}
diff --git a/src/imports/controls/qmldir b/src/imports/controls/qmldir
index de40013f..c9ccb8f9 100644
--- a/src/imports/controls/qmldir
+++ b/src/imports/controls/qmldir
@@ -1,5 +1,5 @@
module QtQuick.Controls
plugin qtquickcontrols2plugin
classname QtQuickControls2Plugin
-depends QtQuick.Templates 2.4
+depends QtQuick.Templates 2.5
designersupported
diff --git a/src/imports/controls/qquickdefaulttheme.cpp b/src/imports/controls/qquickdefaulttheme.cpp
index f4b6f5d7..c53d4c57 100644
--- a/src/imports/controls/qquickdefaulttheme.cpp
+++ b/src/imports/controls/qquickdefaulttheme.cpp
@@ -39,7 +39,10 @@
QT_BEGIN_NAMESPACE
QQuickDefaultTheme::QQuickDefaultTheme()
- : QQuickTheme(QStringLiteral("Default"))
+{
+}
+
+void QQuickDefaultTheme::resolvePalettes(const QPalette &defaultPalette)
{
systemPalette.setColor(QPalette::Base, QColor::fromRgba(0xFFFFFFFF));
systemPalette.setColor(QPalette::Disabled, QPalette::Base, QColor::fromRgba(0xFFD6D6D6));
@@ -80,10 +83,10 @@ QQuickDefaultTheme::QQuickDefaultTheme()
systemPalette.setColor(QPalette::WindowText, QColor::fromRgba(0xFF26282A));
systemPalette.setColor(QPalette::Disabled, QPalette::WindowText, QColor::fromRgba(0xFFBDBEBF));
- systemPalette = resolvePalette(systemPalette);
+ systemPalette = defaultPalette.resolve(systemPalette);
}
-const QPalette *QQuickDefaultTheme::palette(QPlatformTheme::Palette type) const
+const QPalette *QQuickDefaultTheme::palette(Palette type) const
{
Q_UNUSED(type);
return &systemPalette;
diff --git a/src/imports/controls/qquickdefaulttheme_p.h b/src/imports/controls/qquickdefaulttheme_p.h
index 16e4d061..05c1c344 100644
--- a/src/imports/controls/qquickdefaulttheme_p.h
+++ b/src/imports/controls/qquickdefaulttheme_p.h
@@ -48,7 +48,7 @@
// We mean it.
//
-#include <QtQuickControls2/private/qquicktheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
QT_BEGIN_NAMESPACE
@@ -59,6 +59,9 @@ public:
const QPalette *palette(Palette type) const override;
+protected:
+ void resolvePalettes(const QPalette &defaultPalette) override;
+
private:
QPalette systemPalette;
};
diff --git a/src/imports/controls/qtquickcontrols2plugin.cpp b/src/imports/controls/qtquickcontrols2plugin.cpp
index 76086376..c495b6b2 100644
--- a/src/imports/controls/qtquickcontrols2plugin.cpp
+++ b/src/imports/controls/qtquickcontrols2plugin.cpp
@@ -82,7 +82,7 @@ public:
void registerTypes(const char *uri) override;
QString name() const override;
- QQuickProxyTheme *createTheme() const override;
+ QQuickTheme *createTheme() const override;
};
QtQuickControls2Plugin::QtQuickControls2Plugin(QObject *parent) : QQuickStylePlugin(parent)
@@ -212,10 +212,10 @@ void QtQuickControls2Plugin::registerTypes(const char *uri)
QString QtQuickControls2Plugin::name() const
{
- return QStringLiteral("default");
+ return QStringLiteral("Default");
}
-QQuickProxyTheme *QtQuickControls2Plugin::createTheme() const
+QQuickTheme *QtQuickControls2Plugin::createTheme() const
{
return new QQuickDefaultTheme;
}
diff --git a/src/imports/controls/universal/ApplicationWindow.qml b/src/imports/controls/universal/ApplicationWindow.qml
index 0b119693..313b980e 100644
--- a/src/imports/controls/universal/ApplicationWindow.qml
+++ b/src/imports/controls/universal/ApplicationWindow.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.ApplicationWindow {
id: window
diff --git a/src/imports/controls/universal/BusyIndicator.qml b/src/imports/controls/universal/BusyIndicator.qml
index cc9e6b85..80f8ae1c 100644
--- a/src/imports/controls/universal/BusyIndicator.qml
+++ b/src/imports/controls/universal/BusyIndicator.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.BusyIndicator {
id: control
diff --git a/src/imports/controls/universal/Button.qml b/src/imports/controls/universal/Button.qml
index d8b6836d..b1742fa8 100644
--- a/src/imports/controls/universal/Button.qml
+++ b/src/imports/controls/universal/Button.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.Button {
id: control
@@ -50,8 +50,7 @@ T.Button {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 8
- topPadding: padding - 4
- bottomPadding: padding - 4
+ verticalPadding: padding - 4
spacing: 8
icon.width: 20
diff --git a/src/imports/controls/universal/CheckBox.qml b/src/imports/controls/universal/CheckBox.qml
index 7566c33a..008733b1 100644
--- a/src/imports/controls/universal/CheckBox.qml
+++ b/src/imports/controls/universal/CheckBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.CheckBox {
id: control
diff --git a/src/imports/controls/universal/CheckDelegate.qml b/src/imports/controls/universal/CheckDelegate.qml
index 8419ac1e..d4f441e4 100644
--- a/src/imports/controls/universal/CheckDelegate.qml
+++ b/src/imports/controls/universal/CheckDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.CheckDelegate {
id: control
diff --git a/src/imports/controls/universal/CheckIndicator.qml b/src/imports/controls/universal/CheckIndicator.qml
index 63bbc3d0..cf8ce3c6 100644
--- a/src/imports/controls/universal/CheckIndicator.qml
+++ b/src/imports/controls/universal/CheckIndicator.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
Rectangle {
implicitWidth: 20
diff --git a/src/imports/controls/universal/ComboBox.qml b/src/imports/controls/universal/ComboBox.qml
index f8ea2874..38d9c445 100644
--- a/src/imports/controls/universal/ComboBox.qml
+++ b/src/imports/controls/universal/ComboBox.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
+import QtQuick 2.12
import QtQuick.Window 2.3
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.ComboBox {
id: control
diff --git a/src/imports/controls/universal/DelayButton.qml b/src/imports/controls/universal/DelayButton.qml
index be0cccad..bc18d3e3 100644
--- a/src/imports/controls/universal/DelayButton.qml
+++ b/src/imports/controls/universal/DelayButton.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.DelayButton {
id: control
@@ -48,8 +48,7 @@ T.DelayButton {
baselineOffset: contentItem.y + contentItem.baselineOffset
padding: 8
- topPadding: padding - 4
- bottomPadding: padding - 4
+ verticalPadding: padding - 4
property bool useSystemFocusVisuals: true
diff --git a/src/imports/controls/universal/Dial.qml b/src/imports/controls/universal/Dial.qml
index d2634713..ffeee7c1 100644
--- a/src/imports/controls/universal/Dial.qml
+++ b/src/imports/controls/universal/Dial.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Dial {
id: control
diff --git a/src/imports/controls/universal/Dialog.qml b/src/imports/controls/universal/Dialog.qml
index 08cc441a..3d17e77b 100644
--- a/src/imports/controls/universal/Dialog.qml
+++ b/src/imports/controls/universal/Dialog.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.Universal 2.5
T.Dialog {
id: control
@@ -55,8 +55,7 @@ T.Dialog {
contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 24
- topPadding: 18
- bottomPadding: 18
+ verticalPadding: 18
background: Rectangle {
color: control.Universal.chromeMediumLowColor
diff --git a/src/imports/controls/universal/DialogButtonBox.qml b/src/imports/controls/universal/DialogButtonBox.qml
index 17a9156d..6dff51d1 100644
--- a/src/imports/controls/universal/DialogButtonBox.qml
+++ b/src/imports/controls/universal/DialogButtonBox.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.Universal 2.5
T.DialogButtonBox {
id: control
diff --git a/src/imports/controls/universal/Drawer.qml b/src/imports/controls/universal/Drawer.qml
index 8fbd57c6..dbb3f2a9 100644
--- a/src/imports/controls/universal/Drawer.qml
+++ b/src/imports/controls/universal/Drawer.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Drawer {
id: control
diff --git a/src/imports/controls/universal/Frame.qml b/src/imports/controls/universal/Frame.qml
index 4f11bc18..fa4efc19 100644
--- a/src/imports/controls/universal/Frame.qml
+++ b/src/imports/controls/universal/Frame.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Frame {
id: control
@@ -44,9 +44,6 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 12
background: Rectangle {
diff --git a/src/imports/controls/universal/GroupBox.qml b/src/imports/controls/universal/GroupBox.qml
index 8fb68e29..aaae298b 100644
--- a/src/imports/controls/universal/GroupBox.qml
+++ b/src/imports/controls/universal/GroupBox.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.GroupBox {
id: control
@@ -46,9 +46,6 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
spacing: 12
padding: 12
topPadding: padding + (label && label.implicitWidth > 0 ? label.implicitHeight + spacing : 0)
diff --git a/src/imports/controls/universal/ItemDelegate.qml b/src/imports/controls/universal/ItemDelegate.qml
index 65d52729..28a97837 100644
--- a/src/imports/controls/universal/ItemDelegate.qml
+++ b/src/imports/controls/universal/ItemDelegate.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.ItemDelegate {
id: control
diff --git a/src/imports/controls/universal/Label.qml b/src/imports/controls/universal/Label.qml
index bad9ac04..2e6bb1c3 100644
--- a/src/imports/controls/universal/Label.qml
+++ b/src/imports/controls/universal/Label.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Label {
id: control
diff --git a/src/imports/controls/universal/Menu.qml b/src/imports/controls/universal/Menu.qml
index 36241f3a..803bb96f 100644
--- a/src/imports/controls/universal/Menu.qml
+++ b/src/imports/controls/universal/Menu.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls 2.4
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Menu {
id: control
diff --git a/src/imports/controls/universal/MenuBar.qml b/src/imports/controls/universal/MenuBar.qml
index a1d7e88a..add049e9 100644
--- a/src/imports/controls/universal/MenuBar.qml
+++ b/src/imports/controls/universal/MenuBar.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.MenuBar {
id: control
diff --git a/src/imports/controls/universal/MenuBarItem.qml b/src/imports/controls/universal/MenuBarItem.qml
index e88a3ced..a04835a6 100644
--- a/src/imports/controls/universal/MenuBarItem.qml
+++ b/src/imports/controls/universal/MenuBarItem.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.MenuBarItem {
id: control
diff --git a/src/imports/controls/universal/MenuItem.qml b/src/imports/controls/universal/MenuItem.qml
index c9c38cb5..c7546fa9 100644
--- a/src/imports/controls/universal/MenuItem.qml
+++ b/src/imports/controls/universal/MenuItem.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.MenuItem {
id: control
diff --git a/src/imports/controls/universal/MenuSeparator.qml b/src/imports/controls/universal/MenuSeparator.qml
index 6d0d9dd5..186a50d5 100644
--- a/src/imports/controls/universal/MenuSeparator.qml
+++ b/src/imports/controls/universal/MenuSeparator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.MenuSeparator {
id: control
diff --git a/src/imports/controls/universal/Page.qml b/src/imports/controls/universal/Page.qml
index de8482d8..7eda011e 100644
--- a/src/imports/controls/universal/Page.qml
+++ b/src/imports/controls/universal/Page.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Page {
id: control
@@ -50,9 +50,6 @@ T.Page {
+ (header && header.visible ? header.implicitHeight + spacing : 0)
+ (footer && footer.visible ? footer.implicitHeight + spacing : 0))
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
background: Rectangle {
color: control.Universal.background
}
diff --git a/src/imports/controls/universal/PageIndicator.qml b/src/imports/controls/universal/PageIndicator.qml
index c14a3365..ed6c6a7d 100644
--- a/src/imports/controls/universal/PageIndicator.qml
+++ b/src/imports/controls/universal/PageIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.PageIndicator {
id: control
diff --git a/src/imports/controls/universal/Pane.qml b/src/imports/controls/universal/Pane.qml
index 340653ea..adb4b9f2 100644
--- a/src/imports/controls/universal/Pane.qml
+++ b/src/imports/controls/universal/Pane.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Pane {
id: control
@@ -44,9 +44,6 @@ T.Pane {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
padding: 12
background: Rectangle {
diff --git a/src/imports/controls/universal/Popup.qml b/src/imports/controls/universal/Popup.qml
index 567fa7d2..9d250782 100644
--- a/src/imports/controls/universal/Popup.qml
+++ b/src/imports/controls/universal/Popup.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Popup {
id: control
diff --git a/src/imports/controls/universal/ProgressBar.qml b/src/imports/controls/universal/ProgressBar.qml
index e7aa6bbe..a4ed1e42 100644
--- a/src/imports/controls/universal/ProgressBar.qml
+++ b/src/imports/controls/universal/ProgressBar.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.ProgressBar {
id: control
diff --git a/src/imports/controls/universal/RadioButton.qml b/src/imports/controls/universal/RadioButton.qml
index 763725b6..ed098fa9 100644
--- a/src/imports/controls/universal/RadioButton.qml
+++ b/src/imports/controls/universal/RadioButton.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.RadioButton {
id: control
diff --git a/src/imports/controls/universal/RadioDelegate.qml b/src/imports/controls/universal/RadioDelegate.qml
index 90d023b3..e88f8de3 100644
--- a/src/imports/controls/universal/RadioDelegate.qml
+++ b/src/imports/controls/universal/RadioDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.RadioDelegate {
id: control
diff --git a/src/imports/controls/universal/RadioIndicator.qml b/src/imports/controls/universal/RadioIndicator.qml
index 11f388c2..71cb7098 100644
--- a/src/imports/controls/universal/RadioIndicator.qml
+++ b/src/imports/controls/universal/RadioIndicator.qml
@@ -34,8 +34,8 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Controls.Universal 2.5
Rectangle {
implicitWidth: 20
diff --git a/src/imports/controls/universal/RangeSlider.qml b/src/imports/controls/universal/RangeSlider.qml
index 6ee923e1..90e33d3b 100644
--- a/src/imports/controls/universal/RangeSlider.qml
+++ b/src/imports/controls/universal/RangeSlider.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.RangeSlider {
id: control
diff --git a/src/imports/controls/universal/RoundButton.qml b/src/imports/controls/universal/RoundButton.qml
index 34983ac9..dde60a3b 100644
--- a/src/imports/controls/universal/RoundButton.qml
+++ b/src/imports/controls/universal/RoundButton.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.RoundButton {
id: control
diff --git a/src/imports/controls/universal/ScrollBar.qml b/src/imports/controls/universal/ScrollBar.qml
index 91b77366..8de9eb5b 100644
--- a/src/imports/controls/universal/ScrollBar.qml
+++ b/src/imports/controls/universal/ScrollBar.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.ScrollBar {
id: control
diff --git a/src/imports/controls/universal/ScrollIndicator.qml b/src/imports/controls/universal/ScrollIndicator.qml
index f09124db..edcb9920 100644
--- a/src/imports/controls/universal/ScrollIndicator.qml
+++ b/src/imports/controls/universal/ScrollIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.ScrollIndicator {
id: control
diff --git a/src/imports/controls/universal/Slider.qml b/src/imports/controls/universal/Slider.qml
index 49b6d371..768b752d 100644
--- a/src/imports/controls/universal/Slider.qml
+++ b/src/imports/controls/universal/Slider.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.Slider {
id: control
diff --git a/src/imports/controls/universal/SpinBox.qml b/src/imports/controls/universal/SpinBox.qml
index d9ceed78..8dec9d1b 100644
--- a/src/imports/controls/universal/SpinBox.qml
+++ b/src/imports/controls/universal/SpinBox.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.SpinBox {
id: control
diff --git a/src/imports/controls/universal/StackView.qml b/src/imports/controls/universal/StackView.qml
index 77d70255..c4cf70e7 100644
--- a/src/imports/controls/universal/StackView.qml
+++ b/src/imports/controls/universal/StackView.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.StackView {
id: control
diff --git a/src/imports/controls/universal/SwipeDelegate.qml b/src/imports/controls/universal/SwipeDelegate.qml
index ffcdf0a9..7070372c 100644
--- a/src/imports/controls/universal/SwipeDelegate.qml
+++ b/src/imports/controls/universal/SwipeDelegate.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.SwipeDelegate {
id: control
diff --git a/src/imports/controls/universal/Switch.qml b/src/imports/controls/universal/Switch.qml
index b0d1923b..4ace9809 100644
--- a/src/imports/controls/universal/Switch.qml
+++ b/src/imports/controls/universal/Switch.qml
@@ -34,10 +34,10 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.Switch {
id: control
diff --git a/src/imports/controls/universal/SwitchDelegate.qml b/src/imports/controls/universal/SwitchDelegate.qml
index 48248193..8e5384d7 100644
--- a/src/imports/controls/universal/SwitchDelegate.qml
+++ b/src/imports/controls/universal/SwitchDelegate.qml
@@ -34,12 +34,12 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls.Universal.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls.Universal.impl 2.5
T.SwitchDelegate {
id: control
diff --git a/src/imports/controls/universal/SwitchIndicator.qml b/src/imports/controls/universal/SwitchIndicator.qml
index b1072b88..12a71f16 100644
--- a/src/imports/controls/universal/SwitchIndicator.qml
+++ b/src/imports/controls/universal/SwitchIndicator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
Item {
implicitWidth: 44
diff --git a/src/imports/controls/universal/TabBar.qml b/src/imports/controls/universal/TabBar.qml
index 81003b48..70cf38f2 100644
--- a/src/imports/controls/universal/TabBar.qml
+++ b/src/imports/controls/universal/TabBar.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.TabBar {
id: control
diff --git a/src/imports/controls/universal/TabButton.qml b/src/imports/controls/universal/TabButton.qml
index 3a9e6d45..bec6951b 100644
--- a/src/imports/controls/universal/TabButton.qml
+++ b/src/imports/controls/universal/TabButton.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.TabButton {
id: control
diff --git a/src/imports/controls/universal/TextArea.qml b/src/imports/controls/universal/TextArea.qml
index 5dc78c80..82421c78 100644
--- a/src/imports/controls/universal/TextArea.qml
+++ b/src/imports/controls/universal/TextArea.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.TextArea {
id: control
@@ -61,6 +61,9 @@ T.TextArea {
color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
selectionColor: Universal.accent
selectedTextColor: Universal.chromeWhiteColor
+ placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
+ activeFocus ? Universal.chromeBlackMediumLowColor :
+ Universal.baseMediumColor
PlaceholderText {
id: placeholder
@@ -71,8 +74,7 @@ T.TextArea {
text: control.placeholderText
font: control.font
- color: !control.enabled ? control.Universal.chromeDisabledLowColor :
- control.activeFocus ? control.Universal.chromeBlackMediumLowColor : control.Universal.baseMediumColor
+ color: control.placeholderTextColor
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
verticalAlignment: control.verticalAlignment
elide: Text.ElideRight
diff --git a/src/imports/controls/universal/TextField.qml b/src/imports/controls/universal/TextField.qml
index f4164fed..96736fe0 100644
--- a/src/imports/controls/universal/TextField.qml
+++ b/src/imports/controls/universal/TextField.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.TextField {
id: control
@@ -61,6 +61,9 @@ T.TextField {
color: !enabled ? Universal.chromeDisabledLowColor : Universal.foreground
selectionColor: Universal.accent
selectedTextColor: Universal.chromeWhiteColor
+ placeholderTextColor: !enabled ? Universal.chromeDisabledLowColor :
+ activeFocus ? Universal.chromeBlackMediumLowColor :
+ Universal.baseMediumColor
verticalAlignment: TextInput.AlignVCenter
PlaceholderText {
@@ -72,8 +75,7 @@ T.TextField {
text: control.placeholderText
font: control.font
- color: !control.enabled ? control.Universal.chromeDisabledLowColor :
- control.activeFocus ? control.Universal.chromeBlackMediumLowColor : control.Universal.baseMediumColor
+ color: control.placeholderTextColor
visible: !control.length && !control.preeditText && (!control.activeFocus || control.horizontalAlignment !== Qt.AlignHCenter)
verticalAlignment: control.verticalAlignment
elide: Text.ElideRight
diff --git a/src/imports/controls/universal/ToolBar.qml b/src/imports/controls/universal/ToolBar.qml
index 65dca3bb..6a11a1ce 100644
--- a/src/imports/controls/universal/ToolBar.qml
+++ b/src/imports/controls/universal/ToolBar.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.ToolBar {
id: control
@@ -44,9 +44,6 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
- contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
-
background: Rectangle {
implicitHeight: 48 // AppBarThemeCompactHeight
color: control.Universal.chromeMediumColor
diff --git a/src/imports/controls/universal/ToolButton.qml b/src/imports/controls/universal/ToolButton.qml
index 118d4baa..c69de89a 100644
--- a/src/imports/controls/universal/ToolButton.qml
+++ b/src/imports/controls/universal/ToolButton.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
+import QtQuick.Controls.Universal 2.5
T.ToolButton {
id: control
diff --git a/src/imports/controls/universal/ToolSeparator.qml b/src/imports/controls/universal/ToolSeparator.qml
index 2e7b6a01..5ce24d7e 100644
--- a/src/imports/controls/universal/ToolSeparator.qml
+++ b/src/imports/controls/universal/ToolSeparator.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.ToolSeparator {
id: control
diff --git a/src/imports/controls/universal/ToolTip.qml b/src/imports/controls/universal/ToolTip.qml
index 1c7c7b69..961c38a3 100644
--- a/src/imports/controls/universal/ToolTip.qml
+++ b/src/imports/controls/universal/ToolTip.qml
@@ -34,9 +34,9 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
T.ToolTip {
id: control
diff --git a/src/imports/controls/universal/Tumbler.qml b/src/imports/controls/universal/Tumbler.qml
index f0dbc163..93f9f678 100644
--- a/src/imports/controls/universal/Tumbler.qml
+++ b/src/imports/controls/universal/Tumbler.qml
@@ -34,11 +34,11 @@
**
****************************************************************************/
-import QtQuick 2.11
-import QtQuick.Templates 2.4 as T
-import QtQuick.Controls.Universal 2.4
-import QtQuick.Controls 2.4
-import QtQuick.Controls.impl 2.4
+import QtQuick 2.12
+import QtQuick.Templates 2.5 as T
+import QtQuick.Controls.Universal 2.5
+import QtQuick.Controls 2.5
+import QtQuick.Controls.impl 2.5
T.Tumbler {
id: control
diff --git a/src/imports/controls/universal/qmldir b/src/imports/controls/universal/qmldir
index 6555626f..6870a4e1 100644
--- a/src/imports/controls/universal/qmldir
+++ b/src/imports/controls/universal/qmldir
@@ -1,4 +1,4 @@
module QtQuick.Controls.Universal
plugin qtquickcontrols2universalstyleplugin
classname QtQuickControls2UniversalStylePlugin
-depends QtQuick.Controls 2.4
+depends QtQuick.Controls 2.5
diff --git a/src/imports/controls/universal/qquickuniversaltheme.cpp b/src/imports/controls/universal/qquickuniversaltheme.cpp
index 549840b6..e5ee88b7 100644
--- a/src/imports/controls/universal/qquickuniversaltheme.cpp
+++ b/src/imports/controls/universal/qquickuniversaltheme.cpp
@@ -42,7 +42,10 @@
QT_BEGIN_NAMESPACE
QQuickUniversalTheme::QQuickUniversalTheme()
- : QQuickTheme(QStringLiteral("Universal"))
+{
+}
+
+void QQuickUniversalTheme::resolveFonts(const QFont &defaultFont)
{
const QFont font(QLatin1String("Segoe UI"));
if (QFontInfo(font).family() == QLatin1String("Segoe UI")) {
@@ -53,23 +56,23 @@ QQuickUniversalTheme::QQuickUniversalTheme()
}
systemFont.setPixelSize(15);
- systemFont = resolveFont(systemFont);
+ systemFont = defaultFont.resolve(systemFont);
groupBoxTitleFont.setPixelSize(15);
groupBoxTitleFont.setWeight(QFont::DemiBold);
- groupBoxTitleFont = resolveFont(groupBoxTitleFont);
+ groupBoxTitleFont = defaultFont.resolve(groupBoxTitleFont);
tabButtonFont.setPixelSize(24);
tabButtonFont.setWeight(QFont::Light);
- tabButtonFont = resolveFont(tabButtonFont);
+ tabButtonFont = defaultFont.resolve(tabButtonFont);
}
-const QFont *QQuickUniversalTheme::font(QPlatformTheme::Font type) const
+const QFont *QQuickUniversalTheme::font(Font type) const
{
switch (type) {
- case QPlatformTheme::GroupBoxTitleFont:
+ case GroupBoxTitleFont:
return &groupBoxTitleFont;
- case QPlatformTheme::TabButtonFont:
+ case TabButtonFont:
return &tabButtonFont;
default:
return &systemFont;
diff --git a/src/imports/controls/universal/qquickuniversaltheme_p.h b/src/imports/controls/universal/qquickuniversaltheme_p.h
index f15dee3e..3a4cc792 100644
--- a/src/imports/controls/universal/qquickuniversaltheme_p.h
+++ b/src/imports/controls/universal/qquickuniversaltheme_p.h
@@ -49,7 +49,7 @@
//
#include <QtGui/qfont.h>
-#include <QtQuickControls2/private/qquicktheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
QT_BEGIN_NAMESPACE
@@ -60,6 +60,9 @@ public:
const QFont *font(Font type = SystemFont) const override;
+protected:
+ void resolveFonts(const QFont &defaultFont) override;
+
private:
QFont systemFont;
QFont groupBoxTitleFont;
diff --git a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
index 139acab9..fa55e18a 100644
--- a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
+++ b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
@@ -63,7 +63,7 @@ public:
void registerTypes(const char *uri) override;
QString name() const override;
- QQuickProxyTheme *createTheme() const override;
+ QQuickTheme *createTheme() const override;
};
QtQuickControls2UniversalStylePlugin::QtQuickControls2UniversalStylePlugin(QObject *parent) : QQuickStylePlugin(parent)
@@ -91,10 +91,10 @@ void QtQuickControls2UniversalStylePlugin::registerTypes(const char *uri)
QString QtQuickControls2UniversalStylePlugin::name() const
{
- return QStringLiteral("universal");
+ return QStringLiteral("Universal");
}
-QQuickProxyTheme *QtQuickControls2UniversalStylePlugin::createTheme() const
+QQuickTheme *QtQuickControls2UniversalStylePlugin::createTheme() const
{
return new QQuickUniversalTheme;
}
diff --git a/src/imports/controls/universal/universal.pro b/src/imports/controls/universal/universal.pro
index c437328c..bce86bac 100644
--- a/src/imports/controls/universal/universal.pro
+++ b/src/imports/controls/universal/universal.pro
@@ -1,6 +1,6 @@
TARGET = qtquickcontrols2universalstyleplugin
TARGETPATH = QtQuick/Controls.2/Universal
-IMPORT_VERSION = 2.4
+IMPORT_VERSION = 2.5
QT += qml quick
QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private quickcontrols2-private
diff --git a/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc b/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc
index 695156b4..01e70bb2 100644
--- a/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc
+++ b/src/imports/templates/doc/src/qtquicktemplates2-qmltypes.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
- \qmlmodule QtQuick.Templates 2.4
+ \qmlmodule QtQuick.Templates 2.5
\title Qt Quick Templates 2 QML Types
\ingroup qmlmodules
\brief Provides QML types for templates (Qt Quick Templates).
@@ -38,7 +38,7 @@
\c .qml file:
\badcode
- import QtQuick.Templates 2.4 as T
+ import QtQuick.Templates 2.5 as T
\endcode
For the sake of clarity, there is a one-to-one mapping between the types
diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp
index 72e84c3a..09bd2d87 100644
--- a/src/imports/templates/qtquicktemplates2plugin.cpp
+++ b/src/imports/templates/qtquicktemplates2plugin.cpp
@@ -328,6 +328,15 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri)
qmlRegisterType<QQuickScrollBar, 4>(uri, 2, 4, "ScrollBar");
qmlRegisterType<QQuickScrollIndicator, 4>(uri, 2, 4, "ScrollIndicator");
qmlRegisterType<QQuickSpinBox, 4>(uri, 2, 4, "SpinBox");
+
+ // QtQuick.Templates 2.5 (new types and revisions in Qt 5.12)
+ qmlRegisterType<QQuickDialogButtonBox, 5>(uri, 2, 5, "DialogButtonBox");
+ qmlRegisterType<QQuickControl, 5>(uri, 2, 5, "Control");
+ qmlRegisterType<QQuickPopup, 5>(uri, 2, 5, "Popup");
+ qmlRegisterType<QQuickTextArea, 5>(uri, 2, 5, "TextArea");
+ qmlRegisterType<QQuickTextField, 5>(uri, 2, 5, "TextField");
+ qmlRegisterType<QQuickToolTip, 5>(uri, 2, 5, "ToolTip");
+
}
QT_END_NAMESPACE
diff --git a/src/imports/templates/templates.pro b/src/imports/templates/templates.pro
index b505dceb..b132f47d 100644
--- a/src/imports/templates/templates.pro
+++ b/src/imports/templates/templates.pro
@@ -1,6 +1,6 @@
TARGET = qtquicktemplates2plugin
TARGETPATH = QtQuick/Templates.2
-IMPORT_VERSION = 2.4
+IMPORT_VERSION = 2.5
QT += qml quick
QT_PRIVATE += core-private gui-private qml-private quick-private quicktemplates2-private
diff --git a/src/quickcontrols2/qquickstyleplugin.cpp b/src/quickcontrols2/qquickstyleplugin.cpp
index fa8e9785..61f845cb 100644
--- a/src/quickcontrols2/qquickstyleplugin.cpp
+++ b/src/quickcontrols2/qquickstyleplugin.cpp
@@ -35,19 +35,102 @@
****************************************************************************/
#include "qquickstyleplugin_p.h"
-#include "qquickproxytheme_p.h"
#include "qquickstyle.h"
+#include "qquickstyle_p.h"
+#include <QtCore/qmetaobject.h>
+#include <QtCore/qsettings.h>
#include <QtGui/private/qguiapplication_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
+
+#include <functional>
QT_BEGIN_NAMESPACE
+#if QT_CONFIG(settings)
+static void readValue(const QSharedPointer<QSettings> &settings, const QString &name, std::function<void(const QVariant &)> setValue)
+{
+ const QVariant var = settings->value(name);
+ if (var.isValid())
+ setValue(var);
+}
+
+template <typename Enum>
+static Enum toEnumValue(const QVariant &var)
+{
+ // ### TODO: expose QFont enums to the meta object system using Q_ENUM
+ //QMetaEnum enumeration = QMetaEnum::fromType<Enum>();
+ //bool ok = false;
+ //int value = enumeration.keyToValue(var.toByteArray(), &ok);
+ //if (!ok)
+ // value = var.toInt();
+ //return static_cast<Enum>(value);
+
+ return static_cast<Enum>(var.toInt());
+}
+
+static const QFont *readFont(const QSharedPointer<QSettings> &settings)
+{
+ const QVariant var = settings->value(QStringLiteral("Font"));
+ if (var.isValid())
+ return new QFont(var.value<QFont>());
+
+ QFont f;
+ settings->beginGroup(QStringLiteral("Font"));
+ readValue(settings, QStringLiteral("Family"), [&f](const QVariant &var) { f.setFamily(var.toString()); });
+ readValue(settings, QStringLiteral("PointSize"), [&f](const QVariant &var) { f.setPointSizeF(var.toReal()); });
+ readValue(settings, QStringLiteral("PixelSize"), [&f](const QVariant &var) { f.setPixelSize(var.toInt()); });
+ readValue(settings, QStringLiteral("StyleHint"), [&f](const QVariant &var) { f.setStyleHint(toEnumValue<QFont::StyleHint>(var.toInt())); });
+ readValue(settings, QStringLiteral("Weight"), [&f](const QVariant &var) { f.setWeight(toEnumValue<QFont::Weight>(var)); });
+ readValue(settings, QStringLiteral("Style"), [&f](const QVariant &var) { f.setStyle(toEnumValue<QFont::Style>(var.toInt())); });
+ settings->endGroup();
+ return new QFont(f);
+}
+
+static void readColorGroup(const QSharedPointer<QSettings> &settings, QPalette::ColorGroup group, QPalette *palette)
+{
+ const QStringList keys = settings->childKeys();
+ if (keys.isEmpty())
+ return;
+
+ static const int index = QPalette::staticMetaObject.indexOfEnumerator("ColorRole");
+ Q_ASSERT(index != -1);
+ QMetaEnum metaEnum = QPalette::staticMetaObject.enumerator(index);
+
+ for (const QString &key : keys) {
+ bool ok = false;
+ int role = metaEnum.keyToValue(key.toUtf8(), &ok);
+ if (ok)
+ palette->setColor(group, static_cast<QPalette::ColorRole>(role), settings->value(key).value<QColor>());
+ }
+}
+
+static const QPalette *readPalette(const QSharedPointer<QSettings> &settings)
+{
+ QPalette p;
+ settings->beginGroup(QStringLiteral("Palette"));
+ readColorGroup(settings, QPalette::All, &p);
+
+ settings->beginGroup(QStringLiteral("Normal"));
+ readColorGroup(settings, QPalette::Normal, &p);
+ settings->endGroup();
+
+ settings->beginGroup(QStringLiteral("Disabled"));
+ readColorGroup(settings, QPalette::Disabled, &p);
+ settings->endGroup();
+ return new QPalette(p);
+}
+
+#endif // QT_CONFIG(settings)
+
QQuickStylePlugin::QQuickStylePlugin(QObject *parent) : QQmlExtensionPlugin(parent)
{
}
QQuickStylePlugin::~QQuickStylePlugin()
{
+ if (QQuickTheme::current() == m_theme)
+ QQuickTheme::setCurrent(nullptr);
}
void QQuickStylePlugin::registerTypes(const char *uri)
@@ -60,15 +143,27 @@ void QQuickStylePlugin::initializeEngine(QQmlEngine *engine, const char *uri)
Q_UNUSED(engine);
Q_UNUSED(uri);
- // make sure not to re-create the proxy theme if initializeEngine()
+ // make sure not to re-create the theme if initializeEngine()
// is called multiple times, like in case of qml2puppet (QTBUG-54995)
- if (!m_theme.isNull())
+ if (m_theme)
return;
if (isCurrent()) {
- m_theme.reset(createTheme());
- if (m_theme)
- QGuiApplicationPrivate::platform_theme = m_theme.data();
+ m_theme = createTheme();
+ if (m_theme) {
+ const QFont *font = nullptr;
+ const QPalette *palette = nullptr;
+#if QT_CONFIG(settings)
+ QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(name());
+ if (settings) {
+ font = readFont(settings);
+ palette = readPalette(settings);
+ }
+#endif
+ m_theme->setDefaultFont(font);
+ m_theme->setDefaultPalette(palette);
+ QQuickTheme::setCurrent(m_theme);
+ }
}
}
@@ -87,7 +182,7 @@ QString QQuickStylePlugin::name() const
return QString();
}
-QQuickProxyTheme *QQuickStylePlugin::createTheme() const
+QQuickTheme *QQuickStylePlugin::createTheme() const
{
return nullptr;
}
diff --git a/src/quickcontrols2/qquickstyleplugin_p.h b/src/quickcontrols2/qquickstyleplugin_p.h
index 9457b472..771a07e2 100644
--- a/src/quickcontrols2/qquickstyleplugin_p.h
+++ b/src/quickcontrols2/qquickstyleplugin_p.h
@@ -48,13 +48,12 @@
// We mean it.
//
-#include <QtCore/qscopedpointer.h>
#include <QtQml/qqmlextensionplugin.h>
#include <QtQuickControls2/private/qtquickcontrols2global_p.h>
QT_BEGIN_NAMESPACE
-class QQuickProxyTheme;
+class QQuickTheme;
class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickStylePlugin : public QQmlExtensionPlugin
{
@@ -69,12 +68,12 @@ public:
bool isCurrent() const;
virtual QString name() const;
- virtual QQuickProxyTheme *createTheme() const;
+ virtual QQuickTheme *createTheme() const;
QUrl typeUrl(const QString &name = QString()) const;
private:
- QScopedPointer<QQuickProxyTheme> m_theme;
+ QQuickTheme *m_theme = nullptr;
};
QT_END_NAMESPACE
diff --git a/src/quickcontrols2/qquicktheme.cpp b/src/quickcontrols2/qquicktheme.cpp
deleted file mode 100644
index 3643e975..00000000
--- a/src/quickcontrols2/qquicktheme.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Quick Controls 2 module 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 "qquicktheme_p.h"
-#include "qquickstyle_p.h"
-
-#include <QtCore/qmetaobject.h>
-#include <QtCore/qsettings.h>
-
-#include <functional>
-
-QT_BEGIN_NAMESPACE
-
-#if QT_CONFIG(settings)
-static void readValue(const QSharedPointer<QSettings> &settings, const QString &name, std::function<void(const QVariant &)> setValue)
-{
- const QVariant var = settings->value(name);
- if (var.isValid())
- setValue(var);
-}
-
-template <typename Enum>
-static Enum toEnumValue(const QVariant &var)
-{
- // ### TODO: expose QFont enums to the meta object system using Q_ENUM
- //QMetaEnum enumeration = QMetaEnum::fromType<Enum>();
- //bool ok = false;
- //int value = enumeration.keyToValue(var.toByteArray(), &ok);
- //if (!ok)
- // value = var.toInt();
- //return static_cast<Enum>(value);
-
- return static_cast<Enum>(var.toInt());
-}
-
-QFont *readFont(const QSharedPointer<QSettings> &settings)
-{
- const QVariant var = settings->value(QStringLiteral("Font"));
- if (var.isValid())
- return new QFont(var.value<QFont>());
-
- QFont f;
- settings->beginGroup(QStringLiteral("Font"));
- readValue(settings, QStringLiteral("Family"), [&f](const QVariant &var) { f.setFamily(var.toString()); });
- readValue(settings, QStringLiteral("PointSize"), [&f](const QVariant &var) { f.setPointSizeF(var.toReal()); });
- readValue(settings, QStringLiteral("PixelSize"), [&f](const QVariant &var) { f.setPixelSize(var.toInt()); });
- readValue(settings, QStringLiteral("StyleHint"), [&f](const QVariant &var) { f.setStyleHint(toEnumValue<QFont::StyleHint>(var.toInt())); });
- readValue(settings, QStringLiteral("Weight"), [&f](const QVariant &var) { f.setWeight(toEnumValue<QFont::Weight>(var)); });
- readValue(settings, QStringLiteral("Style"), [&f](const QVariant &var) { f.setStyle(toEnumValue<QFont::Style>(var.toInt())); });
- settings->endGroup();
- return new QFont(f);
-}
-
-static void readColorGroup(const QSharedPointer<QSettings> &settings, QPalette::ColorGroup group, QPalette *palette)
-{
- const QStringList keys = settings->childKeys();
- if (keys.isEmpty())
- return;
-
- static const int index = QPalette::staticMetaObject.indexOfEnumerator("ColorRole");
- Q_ASSERT(index != -1);
- QMetaEnum metaEnum = QPalette::staticMetaObject.enumerator(index);
-
- for (const QString &key : keys) {
- bool ok = false;
- int role = metaEnum.keyToValue(key.toUtf8(), &ok);
- if (ok)
- palette->setColor(group, static_cast<QPalette::ColorRole>(role), settings->value(key).value<QColor>());
- }
-}
-
-static QPalette *readPalette(const QSharedPointer<QSettings> &settings)
-{
- QPalette p;
- settings->beginGroup(QStringLiteral("Palette"));
- readColorGroup(settings, QPalette::All, &p);
-
- settings->beginGroup(QStringLiteral("Normal"));
- readColorGroup(settings, QPalette::Normal, &p);
- settings->endGroup();
-
- settings->beginGroup(QStringLiteral("Disabled"));
- readColorGroup(settings, QPalette::Disabled, &p);
- settings->endGroup();
- return new QPalette(p);
-}
-
-#endif // QT_CONFIG(settings)
-
-QQuickTheme::QQuickTheme(const QString &style)
- : QQuickProxyTheme()
-{
-#if QT_CONFIG(settings)
- QSharedPointer<QSettings> settings = QQuickStylePrivate::settings(style);
- if (settings) {
- m_styleFont.reset(readFont(settings));
- m_stylePalette.reset(readPalette(settings));
- }
-#endif
-}
-
-const QFont *QQuickTheme::font(Font type) const
-{
- if (m_styleFont)
- return m_styleFont.data();
- return QQuickProxyTheme::font(type);
-}
-
-const QPalette *QQuickTheme::palette(Palette type) const
-{
- if (m_stylePalette)
- return m_stylePalette.data();
- return QQuickProxyTheme::palette(type);
-}
-
-QFont QQuickTheme::resolveFont(const QFont &font) const
-{
- if (!m_styleFont)
- return font;
-
- return m_styleFont->resolve(font);
-}
-
-QPalette QQuickTheme::resolvePalette(const QPalette &palette) const
-{
- if (!m_stylePalette)
- return palette;
-
- return m_stylePalette->resolve(palette);
-}
-
-QT_END_NAMESPACE
diff --git a/src/quickcontrols2/quickcontrols2.pri b/src/quickcontrols2/quickcontrols2.pri
index ac20b78d..781658ef 100644
--- a/src/quickcontrols2/quickcontrols2.pri
+++ b/src/quickcontrols2/quickcontrols2.pri
@@ -13,13 +13,11 @@ HEADERS += \
$$PWD/qquickmnemoniclabel_p.h \
$$PWD/qquickpaddedrectangle_p.h \
$$PWD/qquickplaceholdertext_p.h \
- $$PWD/qquickproxytheme_p.h \
$$PWD/qquickstyle.h \
$$PWD/qquickstyle_p.h \
$$PWD/qquickstyleplugin_p.h \
$$PWD/qquickstyleselector_p.h \
- $$PWD/qquickstyleselector_p_p.h \
- $$PWD/qquicktheme_p.h
+ $$PWD/qquickstyleselector_p_p.h
SOURCES += \
$$PWD/qquickanimatednode.cpp \
@@ -34,11 +32,9 @@ SOURCES += \
$$PWD/qquickmnemoniclabel.cpp \
$$PWD/qquickpaddedrectangle.cpp \
$$PWD/qquickplaceholdertext.cpp \
- $$PWD/qquickproxytheme.cpp \
$$PWD/qquickstyle.cpp \
$$PWD/qquickstyleplugin.cpp \
- $$PWD/qquickstyleselector.cpp \
- $$PWD/qquicktheme.cpp
+ $$PWD/qquickstyleselector.cpp
qtConfig(quick-listview):qtConfig(quick-pathview) {
HEADERS += \
diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp
index 77cf5465..370f47bb 100644
--- a/src/quicktemplates2/qquickapplicationwindow.cpp
+++ b/src/quicktemplates2/qquickapplicationwindow.cpp
@@ -274,7 +274,7 @@ void QQuickApplicationWindowPrivate::updateFont(const QFont &f)
void QQuickApplicationWindowPrivate::resolveFont()
{
- QFont resolvedFont = font.resolve(QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont));
+ QFont resolvedFont = font.resolve(QQuickTheme::themeFont(QQuickTheme::SystemFont));
setFont_helper(resolvedFont);
}
@@ -296,7 +296,7 @@ void QQuickApplicationWindowPrivate::updatePalette(const QPalette &p)
void QQuickApplicationWindowPrivate::resolvePalette()
{
- QPalette resolvedPalette = palette.resolve(QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette));
+ QPalette resolvedPalette = palette.resolve(QQuickTheme::themePalette(QQuickTheme::SystemPalette));
setPalette_helper(resolvedPalette);
}
@@ -691,7 +691,7 @@ void QQuickApplicationWindow::setFont(const QFont &font)
if (d->font.resolve() == font.resolve() && d->font == font)
return;
- QFont resolvedFont = font.resolve(QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont));
+ QFont resolvedFont = font.resolve(QQuickTheme::themeFont(QQuickTheme::SystemFont));
d->setFont_helper(resolvedFont);
}
@@ -770,7 +770,7 @@ void QQuickApplicationWindow::setPalette(const QPalette &palette)
if (d->palette.resolve() == palette.resolve() && d->palette == palette)
return;
- QPalette resolvedPalette = palette.resolve(QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette));
+ QPalette resolvedPalette = palette.resolve(QQuickTheme::themePalette(QQuickTheme::SystemPalette));
d->setPalette_helper(resolvedPalette);
}
diff --git a/src/quicktemplates2/qquickbutton.cpp b/src/quicktemplates2/qquickbutton.cpp
index a1bea792..f50736f1 100644
--- a/src/quicktemplates2/qquickbutton.cpp
+++ b/src/quicktemplates2/qquickbutton.cpp
@@ -102,12 +102,12 @@ QQuickButton::QQuickButton(QQuickButtonPrivate &dd, QQuickItem *parent)
QFont QQuickButton::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::PushButtonFont);
+ return QQuickTheme::themeFont(QQuickTheme::PushButtonFont);
}
QPalette QQuickButton::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ButtonPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ButtonPalette);
}
/*!
diff --git a/src/quicktemplates2/qquickcheckbox.cpp b/src/quicktemplates2/qquickcheckbox.cpp
index c6519338..e1ca675e 100644
--- a/src/quicktemplates2/qquickcheckbox.cpp
+++ b/src/quicktemplates2/qquickcheckbox.cpp
@@ -189,12 +189,12 @@ void QQuickCheckBox::setCheckState(Qt::CheckState state)
QFont QQuickCheckBox::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::CheckBoxFont);
+ return QQuickTheme::themeFont(QQuickTheme::CheckBoxFont);
}
QPalette QQuickCheckBox::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::CheckBoxPalette);
+ return QQuickTheme::themePalette(QQuickTheme::CheckBoxPalette);
}
void QQuickCheckBox::buttonChange(ButtonChange change)
diff --git a/src/quicktemplates2/qquickcheckdelegate.cpp b/src/quicktemplates2/qquickcheckdelegate.cpp
index b53877df..9d892154 100644
--- a/src/quicktemplates2/qquickcheckdelegate.cpp
+++ b/src/quicktemplates2/qquickcheckdelegate.cpp
@@ -176,7 +176,7 @@ void QQuickCheckDelegate::setCheckState(Qt::CheckState state)
QFont QQuickCheckDelegate::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont);
+ return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
}
void QQuickCheckDelegate::buttonChange(ButtonChange change)
diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp
index 74efb6bb..6aef6391 100644
--- a/src/quicktemplates2/qquickcombobox.cpp
+++ b/src/quicktemplates2/qquickcombobox.cpp
@@ -1700,12 +1700,12 @@ void QQuickComboBox::localeChange(const QLocale &newLocale, const QLocale &oldLo
QFont QQuickComboBox::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ComboMenuItemFont);
+ return QQuickTheme::themeFont(QQuickTheme::ComboMenuItemFont);
}
QPalette QQuickComboBox::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ComboBoxPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ComboBoxPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp
index 9f796a70..03a92b00 100644
--- a/src/quicktemplates2/qquickcontrol.cpp
+++ b/src/quicktemplates2/qquickcontrol.cpp
@@ -50,9 +50,6 @@
#include "qquickapplicationwindow_p.h"
#include "qquickdeferredexecute_p_p.h"
-#include <QtGui/private/qguiapplication_p.h>
-#include <QtGui/qpa/qplatformtheme.h>
-
#if QT_CONFIG(accessibility)
#include <QtQuick/private/qquickaccessibleattached_p.h>
#endif
@@ -106,14 +103,20 @@ static bool isKeyFocusReason(Qt::FocusReason reason)
}
QQuickControlPrivate::ExtraData::ExtraData()
-{
-}
-
-QQuickControlPrivate::QQuickControlPrivate()
: hasTopPadding(false),
hasLeftPadding(false),
hasRightPadding(false),
hasBottomPadding(false),
+ topPadding(0),
+ leftPadding(0),
+ rightPadding(0),
+ bottomPadding(0)
+{
+}
+
+QQuickControlPrivate::QQuickControlPrivate()
+ : hasHorizontalPadding(false),
+ hasVerticalPadding(false),
hasLocale(false),
wheelEnabled(false),
#if QT_CONFIG(quicktemplates2_hover)
@@ -122,10 +125,8 @@ QQuickControlPrivate::QQuickControlPrivate()
#endif
touchId(-1),
padding(0),
- topPadding(0),
- leftPadding(0),
- rightPadding(0),
- bottomPadding(0),
+ horizontalPadding(0),
+ verticalPadding(0),
spacing(0),
focusPolicy(Qt::NoFocus),
focusReason(Qt::OtherFocusReason),
@@ -207,56 +208,90 @@ void QQuickControlPrivate::mirrorChange()
void QQuickControlPrivate::setTopPadding(qreal value, bool reset)
{
Q_Q(QQuickControl);
- qreal oldPadding = q->topPadding();
- topPadding = value;
- hasTopPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) {
+ const QMarginsF oldPadding = getPadding();
+ extra.value().topPadding = value;
+ extra.value().hasTopPadding = !reset;
+ if ((!reset && !qFuzzyCompare(oldPadding.top(), value)) || (reset && !qFuzzyCompare(oldPadding.top(), getVerticalPadding()))) {
emit q->topPaddingChanged();
emit q->availableHeightChanged();
- q->paddingChange(QMarginsF(leftPadding, topPadding, rightPadding, bottomPadding),
- QMarginsF(leftPadding, oldPadding, rightPadding, bottomPadding));
+ q->paddingChange(getPadding(), oldPadding);
}
}
void QQuickControlPrivate::setLeftPadding(qreal value, bool reset)
{
Q_Q(QQuickControl);
- qreal oldPadding = q->leftPadding();
- leftPadding = value;
- hasLeftPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) {
+ const QMarginsF oldPadding = getPadding();
+ extra.value().leftPadding = value;
+ extra.value().hasLeftPadding = !reset;
+ if ((!reset && !qFuzzyCompare(oldPadding.left(), value)) || (reset && !qFuzzyCompare(oldPadding.left(), getHorizontalPadding()))) {
emit q->leftPaddingChanged();
emit q->availableWidthChanged();
- q->paddingChange(QMarginsF(leftPadding, topPadding, rightPadding, bottomPadding),
- QMarginsF(oldPadding, topPadding, rightPadding, bottomPadding));
+ q->paddingChange(getPadding(), oldPadding);
}
}
void QQuickControlPrivate::setRightPadding(qreal value, bool reset)
{
Q_Q(QQuickControl);
- qreal oldPadding = q->rightPadding();
- rightPadding = value;
- hasRightPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) {
+ const QMarginsF oldPadding = getPadding();
+ extra.value().rightPadding = value;
+ extra.value().hasRightPadding = !reset;
+ if ((!reset && !qFuzzyCompare(oldPadding.right(), value)) || (reset && !qFuzzyCompare(oldPadding.right(), getHorizontalPadding()))) {
emit q->rightPaddingChanged();
emit q->availableWidthChanged();
- q->paddingChange(QMarginsF(leftPadding, topPadding, rightPadding, bottomPadding),
- QMarginsF(leftPadding, topPadding, oldPadding, bottomPadding));
+ q->paddingChange(getPadding(), oldPadding);
}
}
void QQuickControlPrivate::setBottomPadding(qreal value, bool reset)
{
Q_Q(QQuickControl);
- qreal oldPadding = q->bottomPadding();
- bottomPadding = value;
- hasBottomPadding = !reset;
- if ((!reset && !qFuzzyCompare(oldPadding, value)) || (reset && !qFuzzyCompare(oldPadding, padding))) {
+ const QMarginsF oldPadding = getPadding();
+ extra.value().bottomPadding = value;
+ extra.value().hasBottomPadding = !reset;
+ if ((!reset && !qFuzzyCompare(oldPadding.bottom(), value)) || (reset && !qFuzzyCompare(oldPadding.bottom(), getVerticalPadding()))) {
emit q->bottomPaddingChanged();
emit q->availableHeightChanged();
- q->paddingChange(QMarginsF(leftPadding, topPadding, rightPadding, bottomPadding),
- QMarginsF(leftPadding, topPadding, rightPadding, oldPadding));
+ q->paddingChange(getPadding(), oldPadding);
+ }
+}
+
+void QQuickControlPrivate::setHorizontalPadding(qreal value, bool reset)
+{
+ Q_Q(QQuickControl);
+ const QMarginsF oldPadding = getPadding();
+ const qreal oldHorizontalPadding = getHorizontalPadding();
+ horizontalPadding = value;
+ hasHorizontalPadding = !reset;
+ if ((!reset && !qFuzzyCompare(oldHorizontalPadding, value)) || (reset && !qFuzzyCompare(oldHorizontalPadding, padding))) {
+ const QMarginsF newPadding = getPadding();
+ if (!qFuzzyCompare(newPadding.left(), oldPadding.left()))
+ emit q->leftPaddingChanged();
+ if (!qFuzzyCompare(newPadding.right(), oldPadding.right()))
+ emit q->rightPaddingChanged();
+ emit q->horizontalPaddingChanged();
+ emit q->availableWidthChanged();
+ q->paddingChange(newPadding, oldPadding);
+ }
+}
+
+void QQuickControlPrivate::setVerticalPadding(qreal value, bool reset)
+{
+ Q_Q(QQuickControl);
+ const QMarginsF oldPadding = getPadding();
+ const qreal oldVerticalPadding = getVerticalPadding();
+ verticalPadding = value;
+ hasVerticalPadding = !reset;
+ if ((!reset && !qFuzzyCompare(oldVerticalPadding, value)) || (reset && !qFuzzyCompare(oldVerticalPadding, padding))) {
+ const QMarginsF newPadding = getPadding();
+ if (!qFuzzyCompare(newPadding.top(), oldPadding.top()))
+ emit q->topPaddingChanged();
+ if (!qFuzzyCompare(newPadding.bottom(), oldPadding.bottom()))
+ emit q->bottomPaddingChanged();
+ emit q->verticalPaddingChanged();
+ emit q->availableHeightChanged();
+ q->paddingChange(newPadding, oldPadding);
}
}
@@ -362,21 +397,7 @@ QFont QQuickControlPrivate::parentFont(const QQuickItem *item)
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window()))
return window->font();
- return themeFont(QPlatformTheme::SystemFont);
-}
-
-QFont QQuickControlPrivate::themeFont(QPlatformTheme::Font type)
-{
- if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- if (const QFont *font = theme->font(type)) {
- QFont f = *font;
- if (type == QPlatformTheme::SystemFont)
- f.resolve(0);
- return f;
- }
- }
-
- return QFont();
+ return QQuickTheme::themeFont(QQuickTheme::SystemFont);
}
/*!
@@ -467,21 +488,7 @@ QPalette QQuickControlPrivate::parentPalette(const QQuickItem *item)
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(item->window()))
return window->palette();
- return themePalette(QPlatformTheme::SystemPalette);
-}
-
-QPalette QQuickControlPrivate::themePalette(QPlatformTheme::Palette type)
-{
- if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
- if (const QPalette *palette = theme->palette(type)) {
- QPalette p = *palette;
- if (type == QPlatformTheme::SystemPalette)
- p.resolve(0);
- return p;
- }
- }
-
- return QPalette();
+ return QQuickTheme::themePalette(QQuickTheme::SystemPalette);
}
/*!
@@ -866,10 +873,18 @@ void QQuickControl::setPadding(qreal padding)
Q_D(QQuickControl);
if (qFuzzyCompare(d->padding, padding))
return;
- QMarginsF oldPadding(leftPadding(), topPadding(), rightPadding(), bottomPadding());
+
+ const QMarginsF oldPadding = d->getPadding();
+ const qreal oldVerticalPadding = d->getVerticalPadding();
+ const qreal oldHorizontalPadding = d->getHorizontalPadding();
+
d->padding = padding;
emit paddingChanged();
- QMarginsF newPadding(leftPadding(), topPadding(), rightPadding(), bottomPadding());
+
+ const QMarginsF newPadding = d->getPadding();
+ const qreal newVerticalPadding = d->getVerticalPadding();
+ const qreal newHorizontalPadding = d->getHorizontalPadding();
+
if (!qFuzzyCompare(newPadding.top(), oldPadding.top()))
emit topPaddingChanged();
if (!qFuzzyCompare(newPadding.left(), oldPadding.left()))
@@ -878,10 +893,15 @@ void QQuickControl::setPadding(qreal padding)
emit rightPaddingChanged();
if (!qFuzzyCompare(newPadding.bottom(), oldPadding.bottom()))
emit bottomPaddingChanged();
+ if (!qFuzzyCompare(newVerticalPadding, oldVerticalPadding))
+ emit verticalPaddingChanged();
+ if (!qFuzzyCompare(newHorizontalPadding, oldHorizontalPadding))
+ emit horizontalPaddingChanged();
if (!qFuzzyCompare(newPadding.top(), oldPadding.top()) || !qFuzzyCompare(newPadding.bottom(), oldPadding.bottom()))
emit availableHeightChanged();
if (!qFuzzyCompare(newPadding.left(), oldPadding.left()) || !qFuzzyCompare(newPadding.right(), oldPadding.right()))
emit availableWidthChanged();
+
paddingChange(newPadding, oldPadding);
}
@@ -893,16 +913,15 @@ void QQuickControl::resetPadding()
/*!
\qmlproperty real QtQuick.Controls::Control::topPadding
- This property holds the top padding.
+ This property holds the top padding. Unless explicitly set, the value
+ is equal to \c verticalPadding.
- \sa {Control Layout}, padding, bottomPadding, availableHeight
+ \sa {Control Layout}, padding, bottomPadding, verticalPadding, availableHeight
*/
qreal QQuickControl::topPadding() const
{
Q_D(const QQuickControl);
- if (d->hasTopPadding)
- return d->topPadding;
- return d->padding;
+ return d->getTopPadding();
}
void QQuickControl::setTopPadding(qreal padding)
@@ -920,16 +939,15 @@ void QQuickControl::resetTopPadding()
/*!
\qmlproperty real QtQuick.Controls::Control::leftPadding
- This property holds the left padding.
+ This property holds the left padding. Unless explicitly set, the value
+ is equal to \c horizontalPadding.
- \sa {Control Layout}, padding, rightPadding, availableWidth
+ \sa {Control Layout}, padding, rightPadding, horizontalPadding, availableWidth
*/
qreal QQuickControl::leftPadding() const
{
Q_D(const QQuickControl);
- if (d->hasLeftPadding)
- return d->leftPadding;
- return d->padding;
+ return d->getLeftPadding();
}
void QQuickControl::setLeftPadding(qreal padding)
@@ -947,16 +965,15 @@ void QQuickControl::resetLeftPadding()
/*!
\qmlproperty real QtQuick.Controls::Control::rightPadding
- This property holds the right padding.
+ This property holds the right padding. Unless explicitly set, the value
+ is equal to \c horizontalPadding.
- \sa {Control Layout}, padding, leftPadding, availableWidth
+ \sa {Control Layout}, padding, leftPadding, horizontalPadding, availableWidth
*/
qreal QQuickControl::rightPadding() const
{
Q_D(const QQuickControl);
- if (d->hasRightPadding)
- return d->rightPadding;
- return d->padding;
+ return d->getRightPadding();
}
void QQuickControl::setRightPadding(qreal padding)
@@ -974,16 +991,15 @@ void QQuickControl::resetRightPadding()
/*!
\qmlproperty real QtQuick.Controls::Control::bottomPadding
- This property holds the bottom padding.
+ This property holds the bottom padding. Unless explicitly set, the value
+ is equal to \c verticalPadding.
- \sa {Control Layout}, padding, topPadding, availableHeight
+ \sa {Control Layout}, padding, topPadding, verticalPadding, availableHeight
*/
qreal QQuickControl::bottomPadding() const
{
Q_D(const QQuickControl);
- if (d->hasBottomPadding)
- return d->bottomPadding;
- return d->padding;
+ return d->getBottomPadding();
}
void QQuickControl::setBottomPadding(qreal padding)
@@ -1440,6 +1456,60 @@ void QQuickControl::resetPalette()
setPalette(QPalette());
}
+/*!
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+ \qmlproperty real QtQuick.Controls::Control::horizontalPadding
+
+ This property holds the horizontal padding. Unless explicitly set, the value
+ is equal to \c padding.
+
+ \sa {Control Layout}, padding, leftPadding, rightPadding, verticalPadding
+*/
+qreal QQuickControl::horizontalPadding() const
+{
+ Q_D(const QQuickControl);
+ return d->getHorizontalPadding();
+}
+
+void QQuickControl::setHorizontalPadding(qreal padding)
+{
+ Q_D(QQuickControl);
+ d->setHorizontalPadding(padding);
+}
+
+void QQuickControl::resetHorizontalPadding()
+{
+ Q_D(QQuickControl);
+ d->setHorizontalPadding(0, true);
+}
+
+/*!
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+ \qmlproperty real QtQuick.Controls::Control::verticalPadding
+
+ This property holds the vertical padding. Unless explicitly set, the value
+ is equal to \c padding.
+
+ \sa {Control Layout}, padding, topPadding, bottomPadding, horizontalPadding
+*/
+qreal QQuickControl::verticalPadding() const
+{
+ Q_D(const QQuickControl);
+ return d->getVerticalPadding();
+}
+
+void QQuickControl::setVerticalPadding(qreal padding)
+{
+ Q_D(QQuickControl);
+ d->setVerticalPadding(padding);
+}
+
+void QQuickControl::resetVerticalPadding()
+{
+ Q_D(QQuickControl);
+ d->setVerticalPadding(0, true);
+}
+
void QQuickControl::classBegin()
{
Q_D(QQuickControl);
@@ -1470,12 +1540,12 @@ void QQuickControl::componentComplete()
QFont QQuickControl::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont);
+ return QQuickTheme::themeFont(QQuickTheme::SystemFont);
}
QPalette QQuickControl::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette);
+ return QQuickTheme::themePalette(QQuickTheme::SystemPalette);
}
void QQuickControl::focusInEvent(QFocusEvent *event)
diff --git a/src/quicktemplates2/qquickcontrol_p.h b/src/quicktemplates2/qquickcontrol_p.h
index 6b2d48d6..cd317850 100644
--- a/src/quicktemplates2/qquickcontrol_p.h
+++ b/src/quicktemplates2/qquickcontrol_p.h
@@ -81,6 +81,9 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickControl : public QQuickItem
Q_PROPERTY(QQuickItem *contentItem READ contentItem WRITE setContentItem NOTIFY contentItemChanged FINAL)
// 2.3 (Qt 5.10)
Q_PROPERTY(QPalette palette READ palette WRITE setPalette RESET resetPalette NOTIFY paletteChanged FINAL REVISION 3)
+ // 2.5 (Qt 5.12)
+ Q_PROPERTY(qreal horizontalPadding READ horizontalPadding WRITE setHorizontalPadding RESET resetHorizontalPadding NOTIFY horizontalPaddingChanged FINAL REVISION 5)
+ Q_PROPERTY(qreal verticalPadding READ verticalPadding WRITE setVerticalPadding RESET resetVerticalPadding NOTIFY verticalPaddingChanged FINAL REVISION 5)
Q_CLASSINFO("DeferredPropertyNames", "background,contentItem")
public:
@@ -152,6 +155,15 @@ public:
void setPalette(const QPalette &palette);
void resetPalette();
+ // 2.5 (Qt 5.12)
+ qreal horizontalPadding() const;
+ void setHorizontalPadding(qreal padding);
+ void resetHorizontalPadding();
+
+ qreal verticalPadding() const;
+ void setVerticalPadding(qreal padding);
+ void resetVerticalPadding();
+
Q_SIGNALS:
void fontChanged();
void availableWidthChanged();
@@ -174,6 +186,9 @@ Q_SIGNALS:
void contentItemChanged();
// 2.3 (Qt 5.10)
Q_REVISION(3) void paletteChanged();
+ // 2.5 (Qt 5.12)
+ Q_REVISION(5) void horizontalPaddingChanged();
+ Q_REVISION(5) void verticalPaddingChanged();
protected:
virtual QFont defaultFont() const;
diff --git a/src/quicktemplates2/qquickcontrol_p_p.h b/src/quicktemplates2/qquickcontrol_p_p.h
index 7d040ded..250c383b 100644
--- a/src/quicktemplates2/qquickcontrol_p_p.h
+++ b/src/quicktemplates2/qquickcontrol_p_p.h
@@ -50,10 +50,10 @@
#include <QtQuickTemplates2/private/qquickcontrol_p.h>
#include <QtQuickTemplates2/private/qquickdeferredpointer_p_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
#include <QtQuick/private/qquickitem_p.h>
#include <QtQml/private/qlazilyallocated_p.h>
-#include <qpa/qplatformtheme.h>
#if QT_CONFIG(accessibility)
#include <QtGui/qaccessible.h>
@@ -89,10 +89,20 @@ public:
void mirrorChange() override;
+ inline QMarginsF getPadding() const { return QMarginsF(getLeftPadding(), getTopPadding(), getRightPadding(), getBottomPadding()); }
+ inline qreal getTopPadding() const { return extra.isAllocated() && extra->hasTopPadding ? extra->topPadding : getVerticalPadding(); }
+ inline qreal getLeftPadding() const { return extra.isAllocated() && extra->hasLeftPadding ? extra->leftPadding : getHorizontalPadding(); }
+ inline qreal getRightPadding() const { return extra.isAllocated() && extra->hasRightPadding ? extra->rightPadding : getHorizontalPadding(); }
+ inline qreal getBottomPadding() const { return extra.isAllocated() && extra->hasBottomPadding ? extra->bottomPadding : getVerticalPadding(); }
+ inline qreal getHorizontalPadding() const { return hasHorizontalPadding ? horizontalPadding : padding; }
+ inline qreal getVerticalPadding() const { return hasVerticalPadding ? verticalPadding : padding; }
+
void setTopPadding(qreal value, bool reset = false);
void setLeftPadding(qreal value, bool reset = false);
void setRightPadding(qreal value, bool reset = false);
void setBottomPadding(qreal value, bool reset = false);
+ void setHorizontalPadding(qreal value, bool reset = false);
+ void setVerticalPadding(qreal value, bool reset = false);
void resizeBackground();
virtual void resizeContent();
@@ -116,7 +126,6 @@ public:
updateFont(font);
}
static QFont parentFont(const QQuickItem *item);
- static QFont themeFont(QPlatformTheme::Font type);
virtual void resolvePalette();
void inheritPalette(const QPalette &palette);
@@ -128,7 +137,6 @@ public:
updatePalette(palette);
}
static QPalette parentPalette(const QQuickItem *item);
- static QPalette themePalette(QPlatformTheme::Palette type);
void updateLocale(const QLocale &l, bool e);
static void updateLocaleRecur(QQuickItem *item, const QLocale &l);
@@ -148,15 +156,21 @@ public:
struct ExtraData {
ExtraData();
+ bool hasTopPadding;
+ bool hasLeftPadding;
+ bool hasRightPadding;
+ bool hasBottomPadding;
+ qreal topPadding;
+ qreal leftPadding;
+ qreal rightPadding;
+ qreal bottomPadding;
QFont requestedFont;
QPalette requestedPalette;
};
QLazilyAllocated<ExtraData> extra;
- bool hasTopPadding;
- bool hasLeftPadding;
- bool hasRightPadding;
- bool hasBottomPadding;
+ bool hasHorizontalPadding;
+ bool hasVerticalPadding;
bool hasLocale;
bool wheelEnabled;
#if QT_CONFIG(quicktemplates2_hover)
@@ -165,10 +179,8 @@ public:
#endif
int touchId;
qreal padding;
- qreal topPadding;
- qreal leftPadding;
- qreal rightPadding;
- qreal bottomPadding;
+ qreal horizontalPadding;
+ qreal verticalPadding;
qreal spacing;
QLocale locale;
QFont resolvedFont;
diff --git a/src/quicktemplates2/qquickdelaybutton.cpp b/src/quicktemplates2/qquickdelaybutton.cpp
index 128f0c78..79bd738f 100644
--- a/src/quicktemplates2/qquickdelaybutton.cpp
+++ b/src/quicktemplates2/qquickdelaybutton.cpp
@@ -265,12 +265,12 @@ void QQuickDelayButton::nextCheckState()
QFont QQuickDelayButton::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::PushButtonFont);
+ return QQuickTheme::themeFont(QQuickTheme::PushButtonFont);
}
QPalette QQuickDelayButton::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ButtonPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ButtonPalette);
}
QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickdialogbuttonbox.cpp b/src/quicktemplates2/qquickdialogbuttonbox.cpp
index f16f1b74..a69b006f 100644
--- a/src/quicktemplates2/qquickdialogbuttonbox.cpp
+++ b/src/quicktemplates2/qquickdialogbuttonbox.cpp
@@ -168,10 +168,16 @@ QT_BEGIN_NAMESPACE
\sa accepted(), rejected(), helpRequested()
*/
+static QQuickDialogButtonBox::ButtonLayout platformButtonLayout()
+{
+ return QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::DialogButtonBoxLayout).value<QQuickDialogButtonBox::ButtonLayout>();
+}
+
QQuickDialogButtonBoxPrivate::QQuickDialogButtonBoxPrivate()
: alignment(0),
position(QQuickDialogButtonBox::Footer),
standardButtons(QPlatformDialogHelper::NoButton),
+ buttonLayout(platformButtonLayout()),
delegate(nullptr)
{
}
@@ -258,6 +264,11 @@ void QQuickDialogButtonBoxPrivate::updateLayout()
}
struct ButtonLayout {
+ ButtonLayout(QPlatformDialogHelper::ButtonLayout layout)
+ : m_layout(QPlatformDialogHelper::buttonLayout(Qt::Horizontal, layout))
+ {
+ }
+
bool operator()(QQuickAbstractButton *first, QQuickAbstractButton *second)
{
const QPlatformDialogHelper::ButtonRole firstRole = QQuickDialogPrivate::buttonRole(first);
@@ -280,15 +291,10 @@ void QQuickDialogButtonBoxPrivate::updateLayout()
return firstRole != QPlatformDialogHelper::InvalidRole;
}
- static const int *themeButtonLayout()
- {
- const int hint = QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::DialogButtonBoxLayout).toInt();
- return QPlatformDialogHelper::buttonLayout(Qt::Horizontal, static_cast<QPlatformDialogHelper::ButtonLayout>(hint));
- }
- const int *m_layout = themeButtonLayout();
+ const int *m_layout;
};
- std::sort(buttons.begin(), buttons.end(), ButtonLayout());
+ std::sort(buttons.begin(), buttons.end(), ButtonLayout(static_cast<QPlatformDialogHelper::ButtonLayout>(buttonLayout)));
for (int i = 0; i < buttons.count() - 1; ++i)
q->insertItem(i, buttons.at(i));
@@ -580,6 +586,43 @@ QQuickDialogButtonBoxAttached *QQuickDialogButtonBox::qmlAttachedProperties(QObj
return new QQuickDialogButtonBoxAttached(object);
}
+/*!
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+ \qmlproperty enumeration QtQuick.Controls::DialogButtonBox::buttonLayout
+
+ This property holds the button layout policy to be used when arranging the buttons contained in the button box.
+ The default value is platform-specific.
+
+ Available values:
+ \value DialogButtonBox.WinLayout Use a policy appropriate for applications on Windows.
+ \value DialogButtonBox.MacLayout Use a policy appropriate for applications on macOS.
+ \value DialogButtonBox.KdeLayout Use a policy appropriate for applications on KDE.
+ \value DialogButtonBox.GnomeLayout Use a policy appropriate for applications on GNOME.
+ \value DialogButtonBox.AndroidLayout Use a policy appropriate for applications on Android.
+*/
+QQuickDialogButtonBox::ButtonLayout QQuickDialogButtonBox::buttonLayout() const
+{
+ Q_D(const QQuickDialogButtonBox);
+ return d->buttonLayout;
+}
+
+void QQuickDialogButtonBox::setButtonLayout(ButtonLayout layout)
+{
+ Q_D(QQuickDialogButtonBox);
+ if (d->buttonLayout == layout)
+ return;
+
+ d->buttonLayout = layout;
+ if (isComponentComplete())
+ d->updateLayout();
+ emit buttonLayoutChanged();
+}
+
+void QQuickDialogButtonBox::resetButtonLayout()
+{
+ setButtonLayout(platformButtonLayout());
+}
+
void QQuickDialogButtonBox::updatePolish()
{
Q_D(QQuickDialogButtonBox);
diff --git a/src/quicktemplates2/qquickdialogbuttonbox_p.h b/src/quicktemplates2/qquickdialogbuttonbox_p.h
index 1e3cdeef..df302e54 100644
--- a/src/quicktemplates2/qquickdialogbuttonbox_p.h
+++ b/src/quicktemplates2/qquickdialogbuttonbox_p.h
@@ -66,6 +66,8 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialogButtonBox : public QQuickCont
Q_PROPERTY(Qt::Alignment alignment READ alignment WRITE setAlignment RESET resetAlignment NOTIFY alignmentChanged FINAL)
Q_PROPERTY(QPlatformDialogHelper::StandardButtons standardButtons READ standardButtons WRITE setStandardButtons NOTIFY standardButtonsChanged FINAL)
Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged FINAL)
+ // 2.5 (Qt 5.12)
+ Q_PROPERTY(ButtonLayout buttonLayout READ buttonLayout WRITE setButtonLayout RESET resetButtonLayout NOTIFY buttonLayoutChanged FINAL REVISION 5)
Q_FLAGS(QPlatformDialogHelper::StandardButtons)
public:
@@ -94,6 +96,24 @@ public:
static QQuickDialogButtonBoxAttached *qmlAttachedProperties(QObject *object);
+ // 2.5 (Qt 5.12)
+
+ // ### TODO: use Q_ENUMS(QPlatformDialogHelper::ButtonLayout)
+ enum ButtonLayout {
+ UnknownLayout = -1,
+ WinLayout,
+ MacLayout,
+ KdeLayout,
+ GnomeLayout,
+ MacModelessLayout,
+ AndroidLayout
+ };
+ Q_ENUM(ButtonLayout)
+
+ ButtonLayout buttonLayout() const;
+ void setButtonLayout(ButtonLayout layout);
+ void resetButtonLayout();
+
Q_SIGNALS:
void accepted();
void rejected();
@@ -107,6 +127,8 @@ Q_SIGNALS:
Q_REVISION(3) void applied();
Q_REVISION(3) void reset();
Q_REVISION(3) void discarded();
+ // 2.5 (Qt 5.12)
+ Q_REVISION(5) void buttonLayoutChanged();
protected:
void updatePolish() override;
diff --git a/src/quicktemplates2/qquickdialogbuttonbox_p_p.h b/src/quicktemplates2/qquickdialogbuttonbox_p_p.h
index 7247d591..3c761d6b 100644
--- a/src/quicktemplates2/qquickdialogbuttonbox_p_p.h
+++ b/src/quicktemplates2/qquickdialogbuttonbox_p_p.h
@@ -78,6 +78,7 @@ public:
Qt::Alignment alignment;
QQuickDialogButtonBox::Position position;
QPlatformDialogHelper::StandardButtons standardButtons;
+ QQuickDialogButtonBox::ButtonLayout buttonLayout;
QQmlComponent *delegate;
};
diff --git a/src/quicktemplates2/qquickgroupbox.cpp b/src/quicktemplates2/qquickgroupbox.cpp
index 4f4c5eed..4a8420b2 100644
--- a/src/quicktemplates2/qquickgroupbox.cpp
+++ b/src/quicktemplates2/qquickgroupbox.cpp
@@ -189,12 +189,12 @@ void QQuickGroupBox::componentComplete()
QFont QQuickGroupBox::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::GroupBoxTitleFont);
+ return QQuickTheme::themeFont(QQuickTheme::GroupBoxTitleFont);
}
QPalette QQuickGroupBox::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::GroupBoxPalette);
+ return QQuickTheme::themePalette(QQuickTheme::GroupBoxPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickitemdelegate.cpp b/src/quicktemplates2/qquickitemdelegate.cpp
index 044141f2..ac29936c 100644
--- a/src/quicktemplates2/qquickitemdelegate.cpp
+++ b/src/quicktemplates2/qquickitemdelegate.cpp
@@ -122,12 +122,12 @@ void QQuickItemDelegate::setHighlighted(bool highlighted)
QFont QQuickItemDelegate::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ItemViewFont);
+ return QQuickTheme::themeFont(QQuickTheme::ItemViewFont);
}
QPalette QQuickItemDelegate::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ItemViewPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ItemViewPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquicklabel.cpp b/src/quicktemplates2/qquicklabel.cpp
index 41b2d93a..7a4ea8df 100644
--- a/src/quicktemplates2/qquicklabel.cpp
+++ b/src/quicktemplates2/qquicklabel.cpp
@@ -113,7 +113,7 @@ void QQuickLabelPrivate::inheritFont(const QFont &font)
QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve());
- const QFont defaultFont = QQuickControlPrivate::themeFont(QPlatformTheme::LabelFont);
+ const QFont defaultFont = QQuickTheme::themeFont(QQuickTheme::LabelFont);
const QFont resolvedFont = parentFont.resolve(defaultFont);
setFont_helper(resolvedFont);
@@ -155,7 +155,7 @@ void QQuickLabelPrivate::inheritPalette(const QPalette &palette)
QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette;
parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve());
- const QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::LabelPalette);
+ const QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::LabelPalette);
const QPalette resolvedPalette = parentPalette.resolve(defaultPalette);
setPalette_helper(resolvedPalette);
diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp
index 5dbfe3d9..cd3b9db6 100644
--- a/src/quicktemplates2/qquickmenu.cpp
+++ b/src/quicktemplates2/qquickmenu.cpp
@@ -1432,12 +1432,12 @@ void QQuickMenu::timerEvent(QTimerEvent *event)
QFont QQuickMenu::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::MenuFont);
+ return QQuickTheme::themeFont(QQuickTheme::MenuFont);
}
QPalette QQuickMenu::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::MenuPalette);
+ return QQuickTheme::themePalette(QQuickTheme::MenuPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickmenubar.cpp b/src/quicktemplates2/qquickmenubar.cpp
index 8398633c..ee3d49f3 100644
--- a/src/quicktemplates2/qquickmenubar.cpp
+++ b/src/quicktemplates2/qquickmenubar.cpp
@@ -643,12 +643,12 @@ void QQuickMenuBar::itemRemoved(int index, QQuickItem *item)
QFont QQuickMenuBar::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::MenuBarFont);
+ return QQuickTheme::themeFont(QQuickTheme::MenuBarFont);
}
QPalette QQuickMenuBar::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::MenuBarPalette);
+ return QQuickTheme::themePalette(QQuickTheme::MenuBarPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickmenubaritem.cpp b/src/quicktemplates2/qquickmenubaritem.cpp
index cbf490b8..aa4f869a 100644
--- a/src/quicktemplates2/qquickmenubaritem.cpp
+++ b/src/quicktemplates2/qquickmenubaritem.cpp
@@ -167,12 +167,12 @@ void QQuickMenuBarItem::geometryChanged(const QRectF &newGeometry, const QRectF
QFont QQuickMenuBarItem::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::MenuBarFont);
+ return QQuickTheme::themeFont(QQuickTheme::MenuBarFont);
}
QPalette QQuickMenuBarItem::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::MenuBarPalette);
+ return QQuickTheme::themePalette(QQuickTheme::MenuBarPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickmenuitem.cpp b/src/quicktemplates2/qquickmenuitem.cpp
index 6693d4f8..318416ce 100644
--- a/src/quicktemplates2/qquickmenuitem.cpp
+++ b/src/quicktemplates2/qquickmenuitem.cpp
@@ -264,12 +264,12 @@ void QQuickMenuItem::componentComplete()
QFont QQuickMenuItem::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::MenuItemFont);
+ return QQuickTheme::themeFont(QQuickTheme::MenuItemFont);
}
QPalette QQuickMenuItem::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::MenuPalette);
+ return QQuickTheme::themePalette(QQuickTheme::MenuPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickmenuseparator.cpp b/src/quicktemplates2/qquickmenuseparator.cpp
index dee5287a..7b30c009 100644
--- a/src/quicktemplates2/qquickmenuseparator.cpp
+++ b/src/quicktemplates2/qquickmenuseparator.cpp
@@ -73,7 +73,7 @@ QQuickMenuSeparator::QQuickMenuSeparator(QQuickItem *parent)
QPalette QQuickMenuSeparator::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::MenuPalette);
+ return QQuickTheme::themePalette(QQuickTheme::MenuPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickpage.cpp b/src/quicktemplates2/qquickpage.cpp
index 8f34dca9..b8838f20 100644
--- a/src/quicktemplates2/qquickpage.cpp
+++ b/src/quicktemplates2/qquickpage.cpp
@@ -35,14 +35,14 @@
****************************************************************************/
#include "qquickpage_p.h"
-#include "qquickcontrol_p_p.h"
+#include "qquickpane_p_p.h"
#include "qquickpagelayout_p_p.h"
QT_BEGIN_NAMESPACE
/*!
\qmltype Page
- \inherits Control
+ \inherits Pane
\instantiates QQuickPage
\inqmlmodule QtQuick.Controls
\since 5.7
@@ -84,44 +84,19 @@ QT_BEGIN_NAMESPACE
{Focus Management in Qt Quick Controls 2}
*/
-class QQuickPagePrivate : public QQuickControlPrivate
+class QQuickPagePrivate : public QQuickPanePrivate
{
Q_DECLARE_PUBLIC(QQuickPage)
public:
- QQuickPagePrivate();
-
- QQuickItem *getContentItem() override;
-
- qreal contentWidth;
- qreal contentHeight;
QString title;
QScopedPointer<QQuickPageLayout> layout;
};
-QQuickPagePrivate::QQuickPagePrivate()
- : contentWidth(0),
- contentHeight(0)
-{
-}
-
-QQuickItem *QQuickPagePrivate::getContentItem()
-{
- Q_Q(QQuickPage);
- if (QQuickItem *item = QQuickControlPrivate::getContentItem())
- return item;
- return new QQuickItem(q);
-}
-
QQuickPage::QQuickPage(QQuickItem *parent)
- : QQuickControl(*(new QQuickPagePrivate), parent)
+ : QQuickPane(*(new QQuickPagePrivate), parent)
{
Q_D(QQuickPage);
- setFlag(ItemIsFocusScope);
- setAcceptedMouseButtons(Qt::AllButtons);
-#if QT_CONFIG(cursor)
- setCursor(Qt::ArrowCursor);
-#endif
d->layout.reset(new QQuickPageLayout(this));
}
@@ -234,136 +209,31 @@ void QQuickPage::setFooter(QQuickItem *footer)
emit footerChanged();
}
-/*!
- \qmlproperty list<Object> QtQuick.Controls::Page::contentData
- \default
-
- This property holds the list of content data.
-
- The list contains all objects that have been declared in QML as children
- of the container.
-
- \note Unlike \c contentChildren, \c contentData does include non-visual QML
- objects.
-
- \sa Item::data, contentChildren
-*/
-QQmlListProperty<QObject> QQuickPage::contentData()
-{
- return QQmlListProperty<QObject>(contentItem(), nullptr,
- QQuickItemPrivate::data_append,
- QQuickItemPrivate::data_count,
- QQuickItemPrivate::data_at,
- QQuickItemPrivate::data_clear);
-}
-
-/*!
- \qmlproperty list<Item> QtQuick.Controls::Page::contentChildren
-
- This property holds the list of content children.
-
- The list contains all items that have been declared in QML as children
- of the page.
-
- \note Unlike \c contentData, \c contentChildren does not include non-visual
- QML objects.
-
- \sa Item::children, contentData
-*/
-QQmlListProperty<QQuickItem> QQuickPage::contentChildren()
-{
- return QQmlListProperty<QQuickItem>(contentItem(), nullptr,
- QQuickItemPrivate::children_append,
- QQuickItemPrivate::children_count,
- QQuickItemPrivate::children_at,
- QQuickItemPrivate::children_clear);
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Page::contentWidth
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This property holds the content width. It is used for calculating the total
- implicit width of the page.
-
- \sa contentHeight
-*/
-qreal QQuickPage::contentWidth() const
-{
- Q_D(const QQuickPage);
- return d->contentWidth;
-}
-
-void QQuickPage::setContentWidth(qreal width)
-{
- Q_D(QQuickPage);
- if (qFuzzyCompare(d->contentWidth, width))
- return;
-
- d->contentWidth = width;
- emit contentWidthChanged();
-}
-
-/*!
- \qmlproperty real QtQuick.Controls::Page::contentHeight
- \since QtQuick.Controls 2.1 (Qt 5.8)
-
- This property holds the content height. It is used for calculating the total
- implicit height of the page.
-
- \sa contentWidth
-*/
-qreal QQuickPage::contentHeight() const
-{
- Q_D(const QQuickPage);
- return d->contentHeight;
-}
-
-void QQuickPage::setContentHeight(qreal height)
-{
- Q_D(QQuickPage);
- if (qFuzzyCompare(d->contentHeight, height))
- return;
-
- d->contentHeight = height;
- emit contentHeightChanged();
-}
-
void QQuickPage::componentComplete()
{
Q_D(QQuickPage);
- QQuickControl::componentComplete();
+ QQuickPane::componentComplete();
d->layout->update();
}
-void QQuickPage::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
-{
- QQuickControl::contentItemChange(newItem, oldItem);
- if (oldItem)
- disconnect(oldItem, &QQuickItem::childrenChanged, this, &QQuickPage::contentChildrenChanged);
- if (newItem)
- connect(newItem, &QQuickItem::childrenChanged, this, &QQuickPage::contentChildrenChanged);
- emit contentChildrenChanged();
-}
-
void QQuickPage::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
{
Q_D(QQuickPage);
- QQuickControl::geometryChanged(newGeometry, oldGeometry);
+ QQuickPane::geometryChanged(newGeometry, oldGeometry);
d->layout->update();
}
void QQuickPage::paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding)
{
Q_D(QQuickPage);
- QQuickControl::paddingChange(newPadding, oldPadding);
+ QQuickPane::paddingChange(newPadding, oldPadding);
d->layout->update();
}
void QQuickPage::spacingChange(qreal newSpacing, qreal oldSpacing)
{
Q_D(QQuickPage);
- QQuickControl::spacingChange(newSpacing, oldSpacing);
+ QQuickPane::spacingChange(newSpacing, oldSpacing);
d->layout->update();
}
@@ -376,7 +246,7 @@ QAccessible::Role QQuickPage::accessibleRole() const
void QQuickPage::accessibilityActiveChanged(bool active)
{
Q_D(QQuickPage);
- QQuickControl::accessibilityActiveChanged(active);
+ QQuickPane::accessibilityActiveChanged(active);
if (active)
setAccessibleName(d->title);
diff --git a/src/quicktemplates2/qquickpage_p.h b/src/quicktemplates2/qquickpage_p.h
index 0789e996..49f9f85f 100644
--- a/src/quicktemplates2/qquickpage_p.h
+++ b/src/quicktemplates2/qquickpage_p.h
@@ -48,25 +48,22 @@
// We mean it.
//
-#include <QtQuickTemplates2/private/qquickcontrol_p.h>
+#include <QtQuickTemplates2/private/qquickpane_p.h>
#include <QtQml/qqmllist.h>
QT_BEGIN_NAMESPACE
class QQuickPagePrivate;
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPage : public QQuickControl
+class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPage : public QQuickPane
{
Q_OBJECT
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
Q_PROPERTY(QQuickItem *header READ header WRITE setHeader NOTIFY headerChanged FINAL)
Q_PROPERTY(QQuickItem *footer READ footer WRITE setFooter NOTIFY footerChanged FINAL)
- Q_PROPERTY(QQmlListProperty<QObject> contentData READ contentData FINAL)
- Q_PROPERTY(QQmlListProperty<QQuickItem> contentChildren READ contentChildren NOTIFY contentChildrenChanged FINAL)
// 2.1 (Qt 5.8)
Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth NOTIFY contentWidthChanged FINAL REVISION 1)
Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight NOTIFY contentHeightChanged FINAL REVISION 1)
- Q_CLASSINFO("DefaultProperty", "contentData")
public:
explicit QQuickPage(QQuickItem *parent = nullptr);
@@ -80,29 +77,14 @@ public:
QQuickItem *footer() const;
void setFooter(QQuickItem *footer);
- QQmlListProperty<QObject> contentData();
- QQmlListProperty<QQuickItem> contentChildren();
-
- // 2.1 (Qt 5.8)
- qreal contentWidth() const;
- void setContentWidth(qreal width);
-
- qreal contentHeight() const;
- void setContentHeight(qreal height);
-
Q_SIGNALS:
void titleChanged();
void headerChanged();
void footerChanged();
- void contentChildrenChanged();
- // 2.1 (Qt 5.8)
- Q_REVISION(1) void contentWidthChanged();
- Q_REVISION(1) void contentHeightChanged();
protected:
void componentComplete() override;
- void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override;
void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override;
void spacingChange(qreal newSpacing, qreal oldSpacing) override;
diff --git a/src/quicktemplates2/qquickpane.cpp b/src/quicktemplates2/qquickpane.cpp
index 8038f1b1..98c4d1f3 100644
--- a/src/quicktemplates2/qquickpane.cpp
+++ b/src/quicktemplates2/qquickpane.cpp
@@ -106,8 +106,12 @@ QT_BEGIN_NAMESPACE
{Focus Management in Qt Quick Controls 2}
*/
+static const QQuickItemPrivate::ChangeTypes ImplicitSizeChanges = QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight | QQuickItemPrivate::Destroyed;
+
QQuickPanePrivate::QQuickPanePrivate()
- : contentWidth(0),
+ : hasContentWidth(false),
+ hasContentHeight(false),
+ contentWidth(0),
contentHeight(0)
{
}
@@ -120,6 +124,112 @@ QQuickItem *QQuickPanePrivate::getContentItem()
return new QQuickItem(q);
}
+void QQuickPanePrivate::addImplicitSizeListener(QQuickItem *item)
+{
+ if (!item)
+ return;
+
+ QQuickItemPrivate::get(item)->addItemChangeListener(this, ImplicitSizeChanges);
+}
+
+void QQuickPanePrivate::removeImplicitSizeListener(QQuickItem *item)
+{
+ if (!item)
+ return;
+
+ QQuickItemPrivate::get(item)->removeItemChangeListener(this, ImplicitSizeChanges);
+}
+
+void QQuickPanePrivate::itemImplicitWidthChanged(QQuickItem *item)
+{
+ Q_Q(QQuickPane);
+ if (item == contentItem && updateContentWidth(item))
+ emit q->contentWidthChanged();
+}
+
+void QQuickPanePrivate::itemImplicitHeightChanged(QQuickItem *item)
+{
+ Q_Q(QQuickPane);
+ if (item == contentItem && updateContentHeight(item))
+ emit q->contentHeightChanged();
+}
+
+void QQuickPanePrivate::itemDestroyed(QQuickItem *item)
+{
+ if (item == contentItem)
+ updateContentSize(nullptr);
+}
+
+void QQuickPanePrivate::contentChildrenChange()
+{
+ Q_Q(QQuickPane);
+ updateContentSize(contentItem);
+ emit q->contentChildrenChanged();
+}
+
+static qreal getContentWidth(QQuickItem *item)
+{
+ if (!item)
+ return 0;
+
+ const qreal cw = item->implicitWidth();
+ if (!qFuzzyIsNull(cw))
+ return cw;
+
+ const auto contentChildren = item->childItems();
+ if (contentChildren.count() == 1)
+ return contentChildren.first()->implicitWidth();
+
+ return 0;
+}
+
+static qreal getContentHeight(QQuickItem *item)
+{
+ if (!item)
+ return 0;
+
+ const qreal ch = item->implicitHeight();
+ if (!qFuzzyIsNull(ch))
+ return ch;
+
+ const auto contentChildren = item->childItems();
+ if (contentChildren.count() == 1)
+ return contentChildren.first()->implicitHeight();
+
+ return 0;
+}
+
+bool QQuickPanePrivate::updateContentWidth(QQuickItem *item)
+{
+ if (hasContentWidth)
+ return false;
+
+ qreal oldContentWidth = contentWidth;
+ contentWidth = getContentWidth(item);
+ return !qFuzzyCompare(contentWidth, oldContentWidth);
+}
+
+bool QQuickPanePrivate::updateContentHeight(QQuickItem *item)
+{
+ if (hasContentHeight)
+ return false;
+
+ qreal oldContentHeight = contentHeight;
+ contentHeight = getContentHeight(item);
+ return !qFuzzyCompare(contentHeight, oldContentHeight);
+}
+
+void QQuickPanePrivate::updateContentSize(QQuickItem *item)
+{
+ Q_Q(QQuickPane);
+ bool widthChanged = updateContentWidth(item);
+ bool heightChanged = updateContentHeight(item);
+ if (widthChanged)
+ emit q->contentWidthChanged();
+ if (heightChanged)
+ emit q->contentHeightChanged();
+}
+
QQuickPane::QQuickPane(QQuickItem *parent)
: QQuickControl(*(new QQuickPanePrivate), parent)
{
@@ -130,6 +240,12 @@ QQuickPane::QQuickPane(QQuickItem *parent)
#endif
}
+QQuickPane::~QQuickPane()
+{
+ Q_D(QQuickPane);
+ d->removeImplicitSizeListener(d->contentItem);
+}
+
QQuickPane::QQuickPane(QQuickPanePrivate &dd, QQuickItem *parent)
: QQuickControl(dd, parent)
{
@@ -159,6 +275,7 @@ qreal QQuickPane::contentWidth() const
void QQuickPane::setContentWidth(qreal width)
{
Q_D(QQuickPane);
+ d->hasContentWidth = true;
if (qFuzzyCompare(d->contentWidth, width))
return;
@@ -166,6 +283,17 @@ void QQuickPane::setContentWidth(qreal width)
emit contentWidthChanged();
}
+void QQuickPane::resetContentWidth()
+{
+ Q_D(QQuickPane);
+ if (!d->hasContentWidth)
+ return;
+
+ d->hasContentHeight = false;
+ if (d->updateContentWidth(d->contentItem))
+ emit contentWidthChanged();
+}
+
/*!
\qmlproperty real QtQuick.Controls::Pane::contentHeight
@@ -185,6 +313,7 @@ qreal QQuickPane::contentHeight() const
void QQuickPane::setContentHeight(qreal height)
{
Q_D(QQuickPane);
+ d->hasContentHeight = true;
if (qFuzzyCompare(d->contentHeight, height))
return;
@@ -192,6 +321,17 @@ void QQuickPane::setContentHeight(qreal height)
emit contentHeightChanged();
}
+void QQuickPane::resetContentHeight()
+{
+ Q_D(QQuickPane);
+ if (!d->hasContentHeight)
+ return;
+
+ d->hasContentHeight = false;
+ if (d->updateContentHeight(d->contentItem))
+ emit contentHeightChanged();
+}
+
/*!
\qmlproperty list<Object> QtQuick.Controls::Pane::contentData
\default
@@ -239,11 +379,17 @@ QQmlListProperty<QQuickItem> QQuickPane::contentChildren()
void QQuickPane::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
{
+ Q_D(QQuickPane);
QQuickControl::contentItemChange(newItem, oldItem);
- if (oldItem)
- disconnect(oldItem, &QQuickItem::childrenChanged, this, &QQuickPane::contentChildrenChanged);
- if (newItem)
- connect(newItem, &QQuickItem::childrenChanged, this, &QQuickPane::contentChildrenChanged);
+ if (oldItem) {
+ d->removeImplicitSizeListener(oldItem);
+ QObjectPrivate::disconnect(oldItem, &QQuickItem::childrenChanged, d, &QQuickPanePrivate::contentChildrenChange);
+ }
+ if (newItem) {
+ d->addImplicitSizeListener(newItem);
+ QObjectPrivate::connect(newItem, &QQuickItem::childrenChanged, d, &QQuickPanePrivate::contentChildrenChange);
+ }
+ d->updateContentSize(newItem);
emit contentChildrenChanged();
}
diff --git a/src/quicktemplates2/qquickpane_p.h b/src/quicktemplates2/qquickpane_p.h
index 759c59d8..53bf7067 100644
--- a/src/quicktemplates2/qquickpane_p.h
+++ b/src/quicktemplates2/qquickpane_p.h
@@ -58,20 +58,23 @@ class QQuickPanePrivate;
class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPane : public QQuickControl
{
Q_OBJECT
- Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth NOTIFY contentWidthChanged FINAL)
- Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight NOTIFY contentHeightChanged FINAL)
+ Q_PROPERTY(qreal contentWidth READ contentWidth WRITE setContentWidth RESET resetContentWidth NOTIFY contentWidthChanged FINAL)
+ Q_PROPERTY(qreal contentHeight READ contentHeight WRITE setContentHeight RESET resetContentHeight NOTIFY contentHeightChanged FINAL)
Q_PROPERTY(QQmlListProperty<QObject> contentData READ contentData FINAL)
Q_PROPERTY(QQmlListProperty<QQuickItem> contentChildren READ contentChildren NOTIFY contentChildrenChanged FINAL)
Q_CLASSINFO("DefaultProperty", "contentData")
public:
explicit QQuickPane(QQuickItem *parent = nullptr);
+ ~QQuickPane();
qreal contentWidth() const;
void setContentWidth(qreal width);
+ void resetContentWidth();
qreal contentHeight() const;
void setContentHeight(qreal height);
+ void resetContentHeight();
QQmlListProperty<QObject> contentData();
QQmlListProperty<QQuickItem> contentChildren();
diff --git a/src/quicktemplates2/qquickpane_p_p.h b/src/quicktemplates2/qquickpane_p_p.h
index 16a07f08..4d9a1747 100644
--- a/src/quicktemplates2/qquickpane_p_p.h
+++ b/src/quicktemplates2/qquickpane_p_p.h
@@ -49,12 +49,13 @@
//
#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
+#include <QtQuick/private/qquickitemchangelistener_p.h>
QT_BEGIN_NAMESPACE
class QQuickPane;
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPanePrivate : public QQuickControlPrivate
+class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPanePrivate : public QQuickControlPrivate, public QQuickItemChangeListener
{
Q_DECLARE_PUBLIC(QQuickPane)
@@ -63,6 +64,21 @@ public:
QQuickItem *getContentItem() override;
+ void addImplicitSizeListener(QQuickItem *item);
+ void removeImplicitSizeListener(QQuickItem *item);
+
+ void itemImplicitWidthChanged(QQuickItem *item) override;
+ void itemImplicitHeightChanged(QQuickItem *item) override;
+ void itemDestroyed(QQuickItem *item) override;
+
+ void contentChildrenChange();
+
+ bool updateContentWidth(QQuickItem *item);
+ bool updateContentHeight(QQuickItem *item);
+ void updateContentSize(QQuickItem *item);
+
+ bool hasContentWidth;
+ bool hasContentHeight;
qreal contentWidth;
qreal contentHeight;
};
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp
index e3ab952d..c21b8b68 100644
--- a/src/quicktemplates2/qquickpopup.cpp
+++ b/src/quicktemplates2/qquickpopup.cpp
@@ -1294,11 +1294,12 @@ void QQuickPopup::resetPadding()
/*!
\qmlproperty real QtQuick.Controls::Popup::topPadding
- This property holds the top padding.
+ This property holds the top padding. Unless explicitly set, the value
+ is equal to \c verticalPadding.
\include qquickpopup-padding.qdocinc
- \sa padding, bottomPadding, availableHeight
+ \sa padding, bottomPadding, verticalPadding, availableHeight
*/
qreal QQuickPopup::topPadding() const
{
@@ -1321,11 +1322,12 @@ void QQuickPopup::resetTopPadding()
/*!
\qmlproperty real QtQuick.Controls::Popup::leftPadding
- This property holds the left padding.
+ This property holds the left padding. Unless explicitly set, the value
+ is equal to \c horizontalPadding.
\include qquickpopup-padding.qdocinc
- \sa padding, rightPadding, availableWidth
+ \sa padding, rightPadding, horizontalPadding, availableWidth
*/
qreal QQuickPopup::leftPadding() const
{
@@ -1348,11 +1350,12 @@ void QQuickPopup::resetLeftPadding()
/*!
\qmlproperty real QtQuick.Controls::Popup::rightPadding
- This property holds the right padding.
+ This property holds the right padding. Unless explicitly set, the value
+ is equal to \c horizontalPadding.
\include qquickpopup-padding.qdocinc
- \sa padding, leftPadding, availableWidth
+ \sa padding, leftPadding, horizontalPadding, availableWidth
*/
qreal QQuickPopup::rightPadding() const
{
@@ -1375,11 +1378,12 @@ void QQuickPopup::resetRightPadding()
/*!
\qmlproperty real QtQuick.Controls::Popup::bottomPadding
- This property holds the bottom padding.
+ This property holds the bottom padding. Unless explicitly set, the value
+ is equal to \c verticalPadding.
\include qquickpopup-padding.qdocinc
- \sa padding, topPadding, availableHeight
+ \sa padding, topPadding, verticalPadding, availableHeight
*/
qreal QQuickPopup::bottomPadding() const
{
@@ -2087,6 +2091,64 @@ void QQuickPopup::setExit(QQuickTransition *transition)
emit exitChanged();
}
+/*!
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+ \qmlproperty real QtQuick.Controls::Popup::horizontalPadding
+
+ This property holds the horizontal padding. Unless explicitly set, the value
+ is equal to \c padding.
+
+ \include qquickpopup-padding.qdocinc
+
+ \sa padding, leftPadding, rightPadding, verticalPadding
+*/
+qreal QQuickPopup::horizontalPadding() const
+{
+ Q_D(const QQuickPopup);
+ return d->popupItem->horizontalPadding();
+}
+
+void QQuickPopup::setHorizontalPadding(qreal padding)
+{
+ Q_D(QQuickPopup);
+ d->popupItem->setHorizontalPadding(padding);
+}
+
+void QQuickPopup::resetHorizontalPadding()
+{
+ Q_D(QQuickPopup);
+ d->popupItem->resetHorizontalPadding();
+}
+
+/*!
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+ \qmlproperty real QtQuick.Controls::Popup::verticalPadding
+
+ This property holds the vertical padding. Unless explicitly set, the value
+ is equal to \c padding.
+
+ \include qquickpopup-padding.qdocinc
+
+ \sa padding, topPadding, bottomPadding, horizontalPadding
+*/
+qreal QQuickPopup::verticalPadding() const
+{
+ Q_D(const QQuickPopup);
+ return d->popupItem->verticalPadding();
+}
+
+void QQuickPopup::setVerticalPadding(qreal padding)
+{
+ Q_D(QQuickPopup);
+ d->popupItem->setVerticalPadding(padding);
+}
+
+void QQuickPopup::resetVerticalPadding()
+{
+ Q_D(QQuickPopup);
+ d->popupItem->resetVerticalPadding();
+}
+
bool QQuickPopup::filtersChildMouseEvents() const
{
Q_D(const QQuickPopup);
@@ -2337,10 +2399,14 @@ void QQuickPopup::paddingChange(const QMarginsF &newPadding, const QMarginsF &ol
if (bp)
emit bottomPaddingChanged();
- if (lp || rp)
+ if (lp || rp) {
+ emit horizontalPaddingChanged();
emit availableWidthChanged();
- if (tp || bp)
+ }
+ if (tp || bp) {
+ emit verticalPaddingChanged();
emit availableHeightChanged();
+ }
}
void QQuickPopup::paletteChange(const QPalette &newPalette, const QPalette &oldPalette)
@@ -2359,12 +2425,12 @@ void QQuickPopup::spacingChange(qreal newSpacing, qreal oldSpacing)
QFont QQuickPopup::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont);
+ return QQuickTheme::themeFont(QQuickTheme::SystemFont);
}
QPalette QQuickPopup::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette);
+ return QQuickTheme::themePalette(QQuickTheme::SystemPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickpopup_p.h b/src/quicktemplates2/qquickpopup_p.h
index 2a42ff27..9e2f3649 100644
--- a/src/quicktemplates2/qquickpopup_p.h
+++ b/src/quicktemplates2/qquickpopup_p.h
@@ -121,6 +121,9 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopup : public QObject, public QQml
Q_PROPERTY(bool mirrored READ isMirrored NOTIFY mirroredChanged FINAL REVISION 3)
Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled NOTIFY enabledChanged FINAL REVISION 3)
Q_PROPERTY(QPalette palette READ palette WRITE setPalette RESET resetPalette NOTIFY paletteChanged FINAL REVISION 3)
+ // 2.5 (Qt 5.12)
+ Q_PROPERTY(qreal horizontalPadding READ horizontalPadding WRITE setHorizontalPadding RESET resetHorizontalPadding NOTIFY horizontalPaddingChanged FINAL)
+ Q_PROPERTY(qreal verticalPadding READ verticalPadding WRITE setVerticalPadding RESET resetVerticalPadding NOTIFY verticalPaddingChanged FINAL)
Q_CLASSINFO("DeferredPropertyNames", "background,contentItem")
Q_CLASSINFO("DefaultProperty", "contentData")
@@ -304,6 +307,15 @@ public:
void setPalette(const QPalette &palette);
void resetPalette();
+ // 2.5 (Qt 5.12)
+ qreal horizontalPadding() const;
+ void setHorizontalPadding(qreal padding);
+ void resetHorizontalPadding();
+
+ qreal verticalPadding() const;
+ void setVerticalPadding(qreal padding);
+ void resetVerticalPadding();
+
public Q_SLOTS:
void open();
void close();
@@ -359,6 +371,9 @@ Q_SIGNALS:
Q_REVISION(3) void mirroredChanged();
Q_REVISION(3) void enabledChanged();
Q_REVISION(3) void paletteChanged();
+ // 2.5 (Qt 5.12)
+ Q_REVISION(5) void horizontalPaddingChanged();
+ Q_REVISION(5) void verticalPaddingChanged();
protected:
QQuickPopup(QQuickPopupPrivate &dd, QObject *parent);
diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp
index 566a5245..5c906312 100644
--- a/src/quicktemplates2/qquickpopupitem.cpp
+++ b/src/quicktemplates2/qquickpopupitem.cpp
@@ -97,7 +97,7 @@ void QQuickPopupItemPrivate::resolveFont()
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(popup->window()))
inheritFont(window->font());
else
- inheritFont(themeFont(QPlatformTheme::SystemFont));
+ inheritFont(QQuickTheme::themeFont(QQuickTheme::SystemFont));
}
void QQuickPopupItemPrivate::resolvePalette()
@@ -105,7 +105,7 @@ void QQuickPopupItemPrivate::resolvePalette()
if (QQuickApplicationWindow *window = qobject_cast<QQuickApplicationWindow *>(popup->window()))
inheritPalette(window->palette());
else
- inheritPalette(themePalette(QPlatformTheme::SystemPalette));
+ inheritPalette(QQuickTheme::themePalette(QQuickTheme::SystemPalette));
}
QQuickItem *QQuickPopupItemPrivate::getContentItem()
diff --git a/src/quickcontrols2/qquickproxytheme.cpp b/src/quicktemplates2/qquickproxytheme.cpp
index 9b395b28..f6e8f773 100644
--- a/src/quickcontrols2/qquickproxytheme.cpp
+++ b/src/quicktemplates2/qquickproxytheme.cpp
@@ -3,7 +3,7 @@
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL3$
** Commercial License Usage
diff --git a/src/quickcontrols2/qquickproxytheme_p.h b/src/quicktemplates2/qquickproxytheme_p.h
index 2d271e8c..f580f6c5 100644
--- a/src/quickcontrols2/qquickproxytheme_p.h
+++ b/src/quicktemplates2/qquickproxytheme_p.h
@@ -3,7 +3,7 @@
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL3$
** Commercial License Usage
@@ -49,11 +49,11 @@
//
#include <QtGui/qpa/qplatformtheme.h>
-#include <QtQuickControls2/private/qtquickcontrols2global_p.h>
+#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
QT_BEGIN_NAMESPACE
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickProxyTheme : public QPlatformTheme
+class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickProxyTheme : public QPlatformTheme
{
public:
explicit QQuickProxyTheme(QPlatformTheme *theme = nullptr);
diff --git a/src/quicktemplates2/qquickradiobutton.cpp b/src/quicktemplates2/qquickradiobutton.cpp
index 86be3ed6..1d6f6771 100644
--- a/src/quicktemplates2/qquickradiobutton.cpp
+++ b/src/quicktemplates2/qquickradiobutton.cpp
@@ -99,12 +99,12 @@ QQuickRadioButton::QQuickRadioButton(QQuickItem *parent)
QFont QQuickRadioButton::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::RadioButtonFont);
+ return QQuickTheme::themeFont(QQuickTheme::RadioButtonFont);
}
QPalette QQuickRadioButton::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::RadioButtonPalette);
+ return QQuickTheme::themePalette(QQuickTheme::RadioButtonPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickradiodelegate.cpp b/src/quicktemplates2/qquickradiodelegate.cpp
index fe603d36..fb55ba7c 100644
--- a/src/quicktemplates2/qquickradiodelegate.cpp
+++ b/src/quicktemplates2/qquickradiodelegate.cpp
@@ -100,7 +100,7 @@ QQuickRadioDelegate::QQuickRadioDelegate(QQuickItem *parent)
QFont QQuickRadioDelegate::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont);
+ return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickspinbox.cpp b/src/quicktemplates2/qquickspinbox.cpp
index 04bdec43..8aa8ed5f 100644
--- a/src/quicktemplates2/qquickspinbox.cpp
+++ b/src/quicktemplates2/qquickspinbox.cpp
@@ -1024,12 +1024,12 @@ void QQuickSpinBox::localeChange(const QLocale &newLocale, const QLocale &oldLoc
QFont QQuickSpinBox::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::EditorFont);
+ return QQuickTheme::themeFont(QQuickTheme::EditorFont);
}
QPalette QQuickSpinBox::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::TextLineEditPalette);
+ return QQuickTheme::themePalette(QQuickTheme::TextLineEditPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickswipedelegate.cpp b/src/quicktemplates2/qquickswipedelegate.cpp
index dcf93437..6c3d804b 100644
--- a/src/quicktemplates2/qquickswipedelegate.cpp
+++ b/src/quicktemplates2/qquickswipedelegate.cpp
@@ -1230,7 +1230,7 @@ void QQuickSwipeDelegate::geometryChanged(const QRectF &newGeometry, const QRect
QFont QQuickSwipeDelegate::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont);
+ return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickswitch.cpp b/src/quicktemplates2/qquickswitch.cpp
index da1f0408..db71e423 100644
--- a/src/quicktemplates2/qquickswitch.cpp
+++ b/src/quicktemplates2/qquickswitch.cpp
@@ -234,7 +234,7 @@ void QQuickSwitch::buttonChange(ButtonChange change)
QPalette QQuickSwitch::defaultPalette() const
{
// ### TODO: add QPlatformTheme::SwitchPalette
- return QQuickControlPrivate::themePalette(QPlatformTheme::CheckBoxPalette);
+ return QQuickTheme::themePalette(QQuickTheme::CheckBoxPalette);
}
QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickswitchdelegate.cpp b/src/quicktemplates2/qquickswitchdelegate.cpp
index d8ce8096..8b673662 100644
--- a/src/quicktemplates2/qquickswitchdelegate.cpp
+++ b/src/quicktemplates2/qquickswitchdelegate.cpp
@@ -202,7 +202,7 @@ void QQuickSwitchDelegate::touchEvent(QTouchEvent *event)
QFont QQuickSwitchDelegate::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont);
+ return QQuickTheme::themeFont(QQuickTheme::ListViewFont);
}
void QQuickSwitchDelegate::mirrorChange()
diff --git a/src/quicktemplates2/qquicktabbar.cpp b/src/quicktemplates2/qquicktabbar.cpp
index cd0c5c45..e2cd06fc 100644
--- a/src/quicktemplates2/qquicktabbar.cpp
+++ b/src/quicktemplates2/qquicktabbar.cpp
@@ -443,7 +443,7 @@ void QQuickTabBar::itemRemoved(int index, QQuickItem *item)
QPalette QQuickTabBar::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::TabBarPalette);
+ return QQuickTheme::themePalette(QQuickTheme::TabBarPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquicktabbutton.cpp b/src/quicktemplates2/qquicktabbutton.cpp
index 617d4aea..59905a63 100644
--- a/src/quicktemplates2/qquicktabbutton.cpp
+++ b/src/quicktemplates2/qquicktabbutton.cpp
@@ -72,12 +72,12 @@ QQuickTabButton::QQuickTabButton(QQuickItem *parent)
QFont QQuickTabButton::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::TabButtonFont);
+ return QQuickTheme::themeFont(QQuickTheme::TabButtonFont);
}
QPalette QQuickTabButton::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::TabBarPalette);
+ return QQuickTheme::themePalette(QQuickTheme::TabBarPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp
index 319f7bbe..fb724225 100644
--- a/src/quicktemplates2/qquicktextarea.cpp
+++ b/src/quicktemplates2/qquicktextarea.cpp
@@ -194,7 +194,7 @@ void QQuickTextAreaPrivate::inheritFont(const QFont &font)
QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve());
- const QFont defaultFont = QQuickControlPrivate::themeFont(QPlatformTheme::EditorFont);
+ const QFont defaultFont = QQuickTheme::themeFont(QQuickTheme::EditorFont);
const QFont resolvedFont = parentFont.resolve(defaultFont);
setFont_helper(resolvedFont);
@@ -236,7 +236,7 @@ void QQuickTextAreaPrivate::inheritPalette(const QPalette &palette)
QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette;
parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve());
- const QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::TextEditPalette);
+ const QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::TextEditPalette);
const QPalette resolvedPalette = parentPalette.resolve(defaultPalette);
setPalette_helper(resolvedPalette);
@@ -566,6 +566,30 @@ void QQuickTextArea::setPlaceholderText(const QString &text)
}
/*!
+ \qmlproperty color QtQuick.Controls::TextArea::placeholderTextColor
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+
+ This property holds the color of placeholderText.
+
+ \sa placeholderText
+*/
+QColor QQuickTextArea::placeholderTextColor() const
+{
+ Q_D(const QQuickTextArea);
+ return d->placeholderColor;
+}
+
+void QQuickTextArea::setPlaceholderTextColor(const QColor &color)
+{
+ Q_D(QQuickTextArea);
+ if (d->placeholderColor == color)
+ return;
+
+ d->placeholderColor = color;
+ emit placeholderTextColorChanged();
+}
+
+/*!
\qmlproperty enumeration QtQuick.Controls::TextArea::focusReason
\include qquickcontrol-focusreason.qdocinc
diff --git a/src/quicktemplates2/qquicktextarea_p.h b/src/quicktemplates2/qquicktextarea_p.h
index 5482ceae..346438ea 100644
--- a/src/quicktemplates2/qquicktextarea_p.h
+++ b/src/quicktemplates2/qquicktextarea_p.h
@@ -74,6 +74,8 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTextArea : public QQuickTextEdit
// 2.3 (Qt 5.10)
Q_PROPERTY(QPalette palette READ palette WRITE setPalette RESET resetPalette NOTIFY paletteChanged FINAL REVISION 3)
Q_CLASSINFO("DeferredPropertyNames", "background")
+ // 2.5 (Qt 5.12)
+ Q_PROPERTY(QColor placeholderTextColor READ placeholderTextColor WRITE setPlaceholderTextColor NOTIFY placeholderTextColorChanged FINAL REVISION 5)
public:
explicit QQuickTextArea(QQuickItem *parent = nullptr);
@@ -108,6 +110,10 @@ public:
void setPalette(const QPalette &palette);
void resetPalette();
+ // 2.5 (Qt 5.12)
+ QColor placeholderTextColor() const;
+ void setPlaceholderTextColor(const QColor &color);
+
Q_SIGNALS:
void fontChanged();
void implicitWidthChanged3();
@@ -123,6 +129,8 @@ Q_SIGNALS:
Q_REVISION(1) void hoverEnabledChanged();
// 2.3 (Qt 5.10)
Q_REVISION(3) void paletteChanged();
+ // 2.5 (Qt 5.12)
+ Q_REVISION(5) void placeholderTextColorChanged();
protected:
void classBegin() override;
diff --git a/src/quicktemplates2/qquicktextarea_p_p.h b/src/quicktemplates2/qquicktextarea_p_p.h
index 8621c61c..c271660a 100644
--- a/src/quicktemplates2/qquicktextarea_p_p.h
+++ b/src/quicktemplates2/qquicktextarea_p_p.h
@@ -142,6 +142,7 @@ public:
QPalette resolvedPalette;
QQuickDeferredPointer<QQuickItem> background;
QString placeholder;
+ QColor placeholderColor;
Qt::FocusReason focusReason;
QQuickPressHandler pressHandler;
QQuickFlickable *flickable;
diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp
index 49f9b4c8..385ea48e 100644
--- a/src/quicktemplates2/qquicktextfield.cpp
+++ b/src/quicktemplates2/qquicktextfield.cpp
@@ -168,7 +168,7 @@ void QQuickTextFieldPrivate::inheritFont(const QFont &font)
QFont parentFont = extra.isAllocated() ? extra->requestedFont.resolve(font) : font;
parentFont.resolve(extra.isAllocated() ? extra->requestedFont.resolve() | font.resolve() : font.resolve());
- const QFont defaultFont = QQuickControlPrivate::themeFont(QPlatformTheme::EditorFont);
+ const QFont defaultFont = QQuickTheme::themeFont(QQuickTheme::EditorFont);
const QFont resolvedFont = parentFont.resolve(defaultFont);
setFont_helper(resolvedFont);
@@ -210,7 +210,7 @@ void QQuickTextFieldPrivate::inheritPalette(const QPalette &palette)
QPalette parentPalette = extra.isAllocated() ? extra->requestedPalette.resolve(palette) : palette;
parentPalette.resolve(extra.isAllocated() ? extra->requestedPalette.resolve() | palette.resolve() : palette.resolve());
- const QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::TextLineEditPalette);
+ const QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::TextLineEditPalette);
const QPalette resolvedPalette = parentPalette.resolve(defaultPalette);
setPalette_helper(resolvedPalette);
@@ -428,6 +428,30 @@ void QQuickTextField::setPlaceholderText(const QString &text)
}
/*!
+ \qmlproperty color QtQuick.Controls::TextField::placeholderTextColor
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+
+ This property holds the color of placeholderText.
+
+ \sa placeholderText
+*/
+QColor QQuickTextField::placeholderTextColor() const
+{
+ Q_D(const QQuickTextField);
+ return d->placeholderColor;
+}
+
+void QQuickTextField::setPlaceholderTextColor(const QColor &color)
+{
+ Q_D(QQuickTextField);
+ if (d->placeholderColor == color)
+ return;
+
+ d->placeholderColor = color;
+ emit placeholderTextColorChanged();
+}
+
+/*!
\qmlproperty enumeration QtQuick.Controls::TextField::focusReason
\include qquickcontrol-focusreason.qdocinc
diff --git a/src/quicktemplates2/qquicktextfield_p.h b/src/quicktemplates2/qquicktextfield_p.h
index 4757bd2d..b2e77342 100644
--- a/src/quicktemplates2/qquicktextfield_p.h
+++ b/src/quicktemplates2/qquicktextfield_p.h
@@ -73,6 +73,8 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTextField : public QQuickTextInput
// 2.3 (Qt 5.10)
Q_PROPERTY(QPalette palette READ palette WRITE setPalette RESET resetPalette NOTIFY paletteChanged FINAL REVISION 3)
Q_CLASSINFO("DeferredPropertyNames", "background")
+ // 2.5 (Qt 5.12)
+ Q_PROPERTY(QColor placeholderTextColor READ placeholderTextColor WRITE setPlaceholderTextColor NOTIFY placeholderTextColorChanged FINAL REVISION 5)
public:
explicit QQuickTextField(QQuickItem *parent = nullptr);
@@ -101,6 +103,9 @@ public:
QPalette palette() const;
void setPalette(const QPalette &palette);
void resetPalette();
+ // 2.5 (Qt 5.12)
+ QColor placeholderTextColor() const;
+ void setPlaceholderTextColor(const QColor &color);
Q_SIGNALS:
void fontChanged();
@@ -117,6 +122,8 @@ Q_SIGNALS:
Q_REVISION(1) void hoverEnabledChanged();
// 2.3 (Qt 5.10)
Q_REVISION(3) void paletteChanged();
+ // 2.5 (Qt 5.12)
+ Q_REVISION(5) void placeholderTextColorChanged();
protected:
void classBegin() override;
diff --git a/src/quicktemplates2/qquicktextfield_p_p.h b/src/quicktemplates2/qquicktextfield_p_p.h
index 41843370..13a20e32 100644
--- a/src/quicktemplates2/qquicktextfield_p_p.h
+++ b/src/quicktemplates2/qquicktextfield_p_p.h
@@ -130,6 +130,7 @@ public:
QPalette resolvedPalette;
QQuickDeferredPointer<QQuickItem> background;
QString placeholder;
+ QColor placeholderColor;
Qt::FocusReason focusReason;
QQuickPressHandler pressHandler;
};
diff --git a/src/quicktemplates2/qquicktheme.cpp b/src/quicktemplates2/qquicktheme.cpp
new file mode 100644
index 00000000..02389ed0
--- /dev/null
+++ b/src/quicktemplates2/qquicktheme.cpp
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Templates 2 module 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 "qquicktheme_p.h"
+#include "qquicktheme_p_p.h"
+
+#include <QtGui/qpa/qplatformtheme.h>
+#include <QtGui/private/qguiapplication_p.h>
+
+QT_BEGIN_NAMESPACE
+
+QScopedPointer<QQuickTheme> QQuickThemePrivate::current;
+
+QQuickTheme::QQuickTheme()
+ : d_ptr(new QQuickThemePrivate)
+{
+}
+
+QQuickTheme::~QQuickTheme()
+{
+}
+
+QQuickTheme *QQuickTheme::current()
+{
+ return QQuickThemePrivate::current.data();
+}
+
+void QQuickTheme::setCurrent(QQuickTheme *theme)
+{
+ QQuickThemePrivate::current.reset(theme);
+}
+
+QFont QQuickTheme::themeFont(Font type)
+{
+ const QFont *font = nullptr;
+ if (QQuickTheme *theme = current())
+ font = theme->font(type);
+ else if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
+ font = theme->font(static_cast<QPlatformTheme::Font>(type));
+
+ if (font) {
+ QFont f = *font;
+ if (type == SystemFont)
+ f.resolve(0);
+ return f;
+ }
+
+ return QFont();
+}
+
+QPalette QQuickTheme::themePalette(Palette type)
+{
+ const QPalette *palette = nullptr;
+ if (QQuickTheme *theme = current())
+ palette = theme->palette(type);
+ else if (QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme())
+ palette = theme->palette(static_cast<QPlatformTheme::Palette>(type));
+
+ if (palette) {
+ QPalette f = *palette;
+ if (type == SystemPalette)
+ f.resolve(0);
+ return f;
+ }
+
+ return QPalette();
+}
+
+const QFont *QQuickTheme::font(Font type) const
+{
+ Q_D(const QQuickTheme);
+ Q_UNUSED(type)
+ return d->defaultFont.data();
+}
+
+const QPalette *QQuickTheme::palette(Palette type) const
+{
+ Q_D(const QQuickTheme);
+ Q_UNUSED(type)
+ return d->defaultPalette.data();
+}
+
+void QQuickTheme::setDefaultFont(const QFont *defaultFont)
+{
+ Q_D(QQuickTheme);
+ d->defaultFont.reset(defaultFont);
+ resolveFonts(defaultFont ? *defaultFont : QFont());
+}
+
+void QQuickTheme::setDefaultPalette(const QPalette *defaultPalette)
+{
+ Q_D(QQuickTheme);
+ d->defaultPalette.reset(defaultPalette);
+ resolvePalettes(defaultPalette ? *defaultPalette : QPalette());
+}
+
+void QQuickTheme::resolveFonts(const QFont &defaultFont)
+{
+ Q_UNUSED(defaultFont)
+}
+
+void QQuickTheme::resolvePalettes(const QPalette &defaultPalette)
+{
+ Q_UNUSED(defaultPalette)
+}
+
+QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktheme_p.h b/src/quicktemplates2/qquicktheme_p.h
new file mode 100644
index 00000000..f4efd359
--- /dev/null
+++ b/src/quicktemplates2/qquicktheme_p.h
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Templates 2 module 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$
+**
+****************************************************************************/
+
+#ifndef QQUICKTHEME_P_H
+#define QQUICKTHEME_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
+#include <QtCore/qscopedpointer.h>
+#include <QtGui/qfont.h>
+#include <QtGui/qpalette.h>
+
+QT_BEGIN_NAMESPACE
+
+class QQuickThemePrivate;
+
+class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickTheme
+{
+public:
+ QQuickTheme();
+ virtual ~QQuickTheme();
+
+ static QQuickTheme *current();
+ static void setCurrent(QQuickTheme *theme);
+
+ enum Font {
+ SystemFont,
+ MenuFont,
+ MenuBarFont,
+ MenuItemFont,
+ MessageBoxFont,
+ LabelFont,
+ TipLabelFont,
+ StatusBarFont,
+ TitleBarFont,
+ MdiSubWindowTitleFont,
+ DockWidgetTitleFont,
+ PushButtonFont,
+ CheckBoxFont,
+ RadioButtonFont,
+ ToolButtonFont,
+ ItemViewFont,
+ ListViewFont,
+ HeaderViewFont,
+ ListBoxFont,
+ ComboMenuItemFont,
+ ComboLineEditFont,
+ SmallFont,
+ MiniFont,
+ FixedFont,
+ GroupBoxTitleFont,
+ TabButtonFont,
+ EditorFont,
+ NFonts
+ };
+
+ enum Palette {
+ SystemPalette,
+ ToolTipPalette,
+ ToolButtonPalette,
+ ButtonPalette,
+ CheckBoxPalette,
+ RadioButtonPalette,
+ HeaderPalette,
+ ComboBoxPalette,
+ ItemViewPalette,
+ MessageBoxLabelPelette,
+ MessageBoxLabelPalette = MessageBoxLabelPelette,
+ TabBarPalette,
+ LabelPalette,
+ GroupBoxPalette,
+ MenuPalette,
+ MenuBarPalette,
+ TextEditPalette,
+ TextLineEditPalette,
+ NPalettes
+ };
+
+ static QFont themeFont(Font type);
+ static QPalette themePalette(Palette type);
+
+ virtual const QFont *font(Font type = SystemFont) const;
+ virtual const QPalette *palette(Palette type = SystemPalette) const;
+
+ void setDefaultFont(const QFont *defaultFont);
+ void setDefaultPalette(const QPalette *defaultPalette);
+
+protected:
+ virtual void resolveFonts(const QFont &defaultFont);
+ virtual void resolvePalettes(const QPalette &defaultPalette);
+
+private:
+ Q_DISABLE_COPY(QQuickTheme)
+ Q_DECLARE_PRIVATE(QQuickTheme)
+ QScopedPointer<QQuickThemePrivate> d_ptr;
+};
+
+QT_END_NAMESPACE
+
+#endif // QQUICKTHEME_P_H
diff --git a/src/quickcontrols2/qquicktheme_p.h b/src/quicktemplates2/qquicktheme_p_p.h
index 098ac7f1..b8cdc4aa 100644
--- a/src/quickcontrols2/qquicktheme_p.h
+++ b/src/quicktemplates2/qquicktheme_p_p.h
@@ -3,7 +3,7 @@
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
-** This file is part of the Qt Quick Controls 2 module of the Qt Toolkit.
+** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL3$
** Commercial License Usage
@@ -34,8 +34,8 @@
**
****************************************************************************/
-#ifndef QQUICKTHEME_P_H
-#define QQUICKTHEME_P_H
+#ifndef QQUICKTHEME_P_P_H
+#define QQUICKTHEME_P_P_H
//
// W A R N I N G
@@ -48,30 +48,23 @@
// We mean it.
//
-#include <QtQuickControls2/private/qquickproxytheme_p.h>
-#include <QtCore/qscopedpointer.h>
-#include <QtGui/qfont.h>
-#include <QtGui/qpalette.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
QT_BEGIN_NAMESPACE
-class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickTheme : public QQuickProxyTheme
+class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickThemePrivate
{
public:
- QQuickTheme(const QString &name);
+ static QQuickThemePrivate *get(QQuickTheme *theme)
+ {
+ return theme->d_func();
+ }
- const QFont *font(Font type = SystemFont) const override;
- const QPalette *palette(Palette type = SystemPalette) const override;
-
-protected:
- QFont resolveFont(const QFont &font) const;
- QPalette resolvePalette(const QPalette &palette) const;
-
-private:
- QScopedPointer<QFont> m_styleFont;
- QScopedPointer<QPalette> m_stylePalette;
+ static QScopedPointer<QQuickTheme> current;
+ QScopedPointer<const QFont> defaultFont;
+ QScopedPointer<const QPalette> defaultPalette;
};
QT_END_NAMESPACE
-#endif // QQUICKTHEME_P_H
+#endif // QQUICKTHEME_P_P_H
diff --git a/src/quicktemplates2/qquicktoolbar.cpp b/src/quicktemplates2/qquicktoolbar.cpp
index 99775c6a..77288547 100644
--- a/src/quicktemplates2/qquicktoolbar.cpp
+++ b/src/quicktemplates2/qquicktoolbar.cpp
@@ -143,7 +143,7 @@ void QQuickToolBar::setPosition(Position position)
QPalette QQuickToolBar::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ToolButtonPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ToolButtonPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquicktoolbutton.cpp b/src/quicktemplates2/qquicktoolbutton.cpp
index f87a58b2..7a44792b 100644
--- a/src/quicktemplates2/qquicktoolbutton.cpp
+++ b/src/quicktemplates2/qquicktoolbutton.cpp
@@ -71,12 +71,12 @@ QQuickToolButton::QQuickToolButton(QQuickItem *parent)
QFont QQuickToolButton::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ToolButtonFont);
+ return QQuickTheme::themeFont(QQuickTheme::ToolButtonFont);
}
QPalette QQuickToolButton::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ToolButtonPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ToolButtonPalette);
}
QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquicktoolseparator.cpp b/src/quicktemplates2/qquicktoolseparator.cpp
index 2ec7799f..80d5fc86 100644
--- a/src/quicktemplates2/qquicktoolseparator.cpp
+++ b/src/quicktemplates2/qquicktoolseparator.cpp
@@ -135,7 +135,7 @@ bool QQuickToolSeparator::isVertical() const
QPalette QQuickToolSeparator::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ToolButtonPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ToolButtonPalette);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp
index 1bf6ca55..b186d2b0 100644
--- a/src/quicktemplates2/qquicktooltip.cpp
+++ b/src/quicktemplates2/qquicktooltip.cpp
@@ -276,14 +276,39 @@ QQuickToolTipAttached *QQuickToolTip::qmlAttachedProperties(QObject *object)
return new QQuickToolTipAttached(object);
}
+/*!
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+ \qmlmethod void QtQuick.Controls::ToolTip::show(string text, int timeout = -1)
+
+ This method shows the tooltip with \a text and \a timeout (milliseconds).
+*/
+void QQuickToolTip::show(const QString &text, int ms)
+{
+ if (ms >= 0)
+ setTimeout(ms);
+ setText(text);
+ open();
+}
+
+/*!
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+ \qmlmethod void QtQuick.Controls::ToolTip::hide()
+
+ This method hides the tooltip.
+*/
+void QQuickToolTip::hide()
+{
+ close();
+}
+
QFont QQuickToolTip::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::TipLabelFont);
+ return QQuickTheme::themeFont(QQuickTheme::TipLabelFont);
}
QPalette QQuickToolTip::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ToolTipPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ToolTipPalette);
}
void QQuickToolTip::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data)
@@ -520,10 +545,8 @@ void QQuickToolTipAttached::show(const QString &text, int ms)
tip->resetWidth();
tip->resetHeight();
tip->setParentItem(qobject_cast<QQuickItem *>(parent()));
- tip->setTimeout(ms >= 0 ? ms : d->timeout);
tip->setDelay(d->delay);
- tip->setText(text);
- tip->open();
+ tip->show(text, ms >= 0 ? ms : d->timeout);
}
/*!
diff --git a/src/quicktemplates2/qquicktooltip_p.h b/src/quicktemplates2/qquicktooltip_p.h
index 60b02502..432bdd8e 100644
--- a/src/quicktemplates2/qquicktooltip_p.h
+++ b/src/quicktemplates2/qquicktooltip_p.h
@@ -84,6 +84,10 @@ Q_SIGNALS:
void delayChanged();
void timeoutChanged();
+public Q_SLOTS:
+ Q_REVISION(5) void show(const QString &text, int ms = -1);
+ Q_REVISION(5) void hide();
+
protected:
QFont defaultFont() const override;
QPalette defaultPalette() const override;
diff --git a/src/quicktemplates2/qquicktumbler.cpp b/src/quicktemplates2/qquicktumbler.cpp
index efa61dad..fa3a5ce4 100644
--- a/src/quicktemplates2/qquicktumbler.cpp
+++ b/src/quicktemplates2/qquicktumbler.cpp
@@ -70,7 +70,8 @@ QT_BEGIN_NAMESPACE
The API is similar to that of views like \l ListView and \l PathView; a
\l model and \l delegate can be set, and the \l count and \l currentItem
- properties provide read-only access to information about the view.
+ properties provide read-only access to information about the view. To
+ position the view at a certain index, use \l positionViewAtIndex().
Unlike views like \l PathView and \l ListView, however, there is always a
current item (when the model isn't empty). This means that when \l count is
@@ -350,6 +351,8 @@ int QQuickTumbler::count() const
The value of this property is \c -1 when \l count is equal to \c 0. In all
other cases, it will be greater than or equal to \c 0.
+
+ \sa currentItem, positionViewAtIndex()
*/
int QQuickTumbler::currentIndex() const
{
@@ -410,6 +413,8 @@ void QQuickTumbler::setCurrentIndex(int currentIndex)
\readonly
This property holds the item at the current index.
+
+ \sa currentIndex, positionViewAtIndex()
*/
QQuickItem *QQuickTumbler::currentItem() const
{
@@ -511,6 +516,41 @@ bool QQuickTumbler::isMoving() const
return d->view && d->view->property("moving").toBool();
}
+/*!
+ \qmlmethod void QtQuick.Controls::Tumbler::positionViewAtIndex(int index, PositionMode mode)
+ \since QtQuick.Controls 2.5 (Qt 5.12)
+
+ Positions the view so that the \a index is at the position specified by \a mode.
+
+ For example:
+
+ \code
+ positionViewAtIndex(10, Tumbler.Center)
+ \endcode
+
+ If \l wrap is true (the default), the modes available to \l {PathView}'s
+ \l {PathView::}{positionViewAtIndex()} function
+ are available, otherwise the modes available to \l {ListView}'s
+ \l {ListView::}{positionViewAtIndex()} function
+ are available.
+
+ \note There is a known limitation that using \c Tumbler.Beginning when \l
+ wrap is \c true will result in the wrong item being positioned at the top
+ of view. As a workaround, pass \c {index - 1}.
+
+ \sa currentIndex
+*/
+void QQuickTumbler::positionViewAtIndex(int index, QQuickTumbler::PositionMode mode)
+{
+ Q_D(QQuickTumbler);
+ if (!d->view) {
+ d->warnAboutIncorrectContentItem();
+ return;
+ }
+
+ QMetaObject::invokeMethod(d->view, "positionViewAtIndex", Q_ARG(int, index), Q_ARG(int, mode));
+}
+
void QQuickTumbler::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry)
{
Q_D(QQuickTumbler);
@@ -609,7 +649,7 @@ void QQuickTumblerPrivate::setupViewData(QQuickItem *newControlContentItem)
return;
if (viewContentItemType == QQuickTumblerPrivate::UnsupportedContentItemType) {
- qWarning() << "Tumbler: contentItem must contain either a PathView or a ListView";
+ warnAboutIncorrectContentItem();
return;
}
@@ -636,6 +676,12 @@ void QQuickTumblerPrivate::setupViewData(QQuickItem *newControlContentItem)
calculateDisplacements();
}
+void QQuickTumblerPrivate::warnAboutIncorrectContentItem()
+{
+ Q_Q(QQuickTumbler);
+ qmlWarning(q) << "Tumbler: contentItem must contain either a PathView or a ListView";
+}
+
void QQuickTumblerPrivate::syncCurrentIndex()
{
const int actualViewIndex = view->property("currentIndex").toInt();
@@ -784,12 +830,12 @@ void QQuickTumbler::updatePolish()
QFont QQuickTumbler::defaultFont() const
{
- return QQuickControlPrivate::themeFont(QPlatformTheme::ItemViewFont);
+ return QQuickTheme::themeFont(QQuickTheme::ItemViewFont);
}
QPalette QQuickTumbler::defaultPalette() const
{
- return QQuickControlPrivate::themePalette(QPlatformTheme::ItemViewPalette);
+ return QQuickTheme::themePalette(QQuickTheme::ItemViewPalette);
}
QQuickTumblerAttachedPrivate::QQuickTumblerAttachedPrivate()
diff --git a/src/quicktemplates2/qquicktumbler_p.h b/src/quicktemplates2/qquicktumbler_p.h
index 5d4df4a7..3f7c06db 100644
--- a/src/quicktemplates2/qquicktumbler_p.h
+++ b/src/quicktemplates2/qquicktumbler_p.h
@@ -100,6 +100,19 @@ public:
// 2.2 (Qt 5.9)
bool isMoving() const;
+ enum PositionMode {
+ Beginning,
+ Center,
+ End,
+ Visible, // ListView-only
+ Contain,
+ SnapPosition
+ };
+ Q_ENUM(PositionMode)
+
+ // 2.5 (Qt 5.12)
+ Q_REVISION(5) Q_INVOKABLE void positionViewAtIndex(int index, PositionMode mode);
+
Q_SIGNALS:
void modelChanged();
void countChanged();
diff --git a/src/quicktemplates2/qquicktumbler_p_p.h b/src/quicktemplates2/qquicktumbler_p_p.h
index 75b1a396..6f0879b3 100644
--- a/src/quicktemplates2/qquicktumbler_p_p.h
+++ b/src/quicktemplates2/qquicktumbler_p_p.h
@@ -105,6 +105,7 @@ public:
void disconnectFromView();
void setupViewData(QQuickItem *newControlContentItem);
+ void warnAboutIncorrectContentItem();
void syncCurrentIndex();
void setCount(int newCount);
diff --git a/src/quicktemplates2/quicktemplates2.pri b/src/quicktemplates2/quicktemplates2.pri
index b2193ec0..c9ccc420 100644
--- a/src/quicktemplates2/quicktemplates2.pri
+++ b/src/quicktemplates2/quicktemplates2.pri
@@ -59,6 +59,7 @@ HEADERS += \
$$PWD/qquickpopuppositioner_p_p.h \
$$PWD/qquickpresshandler_p_p.h \
$$PWD/qquickprogressbar_p.h \
+ $$PWD/qquickproxytheme_p.h \
$$PWD/qquickradiobutton_p.h \
$$PWD/qquickradiodelegate_p.h \
$$PWD/qquickrangeslider_p.h \
@@ -86,6 +87,8 @@ HEADERS += \
$$PWD/qquicktextarea_p_p.h \
$$PWD/qquicktextfield_p.h \
$$PWD/qquicktextfield_p_p.h \
+ $$PWD/qquicktheme_p.h \
+ $$PWD/qquicktheme_p_p.h \
$$PWD/qquicktoolbar_p.h \
$$PWD/qquicktoolbutton_p.h \
$$PWD/qquicktoolseparator_p.h \
@@ -133,6 +136,7 @@ SOURCES += \
$$PWD/qquickpopuppositioner.cpp \
$$PWD/qquickpresshandler.cpp \
$$PWD/qquickprogressbar.cpp \
+ $$PWD/qquickproxytheme.cpp \
$$PWD/qquickradiobutton.cpp \
$$PWD/qquickradiodelegate.cpp \
$$PWD/qquickrangeslider.cpp \
@@ -155,6 +159,7 @@ SOURCES += \
$$PWD/qquicktabbutton.cpp \
$$PWD/qquicktextarea.cpp \
$$PWD/qquicktextfield.cpp \
+ $$PWD/qquicktheme.cpp \
$$PWD/qquicktoolbar.cpp \
$$PWD/qquicktoolbutton.cpp \
$$PWD/qquicktoolseparator.cpp \
diff --git a/tests/auto/controls/data/tst_control.qml b/tests/auto/controls/data/tst_control.qml
index a4d06fc1..30feb4be 100644
--- a/tests/auto/controls/data/tst_control.qml
+++ b/tests/auto/controls/data/tst_control.qml
@@ -85,11 +85,42 @@ TestCase {
var control = createTemporaryObject(component, testCase)
verify(control)
+ var paddingSpy = createTemporaryObject(signalSpy, testCase, {target: control, signalName: "paddingChanged"})
+ verify(paddingSpy.valid)
+
+ var topPaddingSpy = createTemporaryObject(signalSpy, testCase, {target: control, signalName: "topPaddingChanged"})
+ verify(topPaddingSpy.valid)
+
+ var leftPaddingSpy = createTemporaryObject(signalSpy, testCase, {target: control, signalName: "leftPaddingChanged"})
+ verify(leftPaddingSpy.valid)
+
+ var rightPaddingSpy = createTemporaryObject(signalSpy, testCase, {target: control, signalName: "rightPaddingChanged"})
+ verify(rightPaddingSpy.valid)
+
+ var bottomPaddingSpy = createTemporaryObject(signalSpy, testCase, {target: control, signalName: "bottomPaddingChanged"})
+ verify(bottomPaddingSpy.valid)
+
+ var horizontalPaddingSpy = createTemporaryObject(signalSpy, testCase, {target: control, signalName: "horizontalPaddingChanged"})
+ verify(horizontalPaddingSpy.valid)
+
+ var verticalPaddingSpy = createTemporaryObject(signalSpy, testCase, {target: control, signalName: "verticalPaddingChanged"})
+ verify(verticalPaddingSpy.valid)
+
+ var paddingChanges = 0
+ var topPaddingChanges = 0
+ var leftPaddingChanges = 0
+ var rightPaddingChanges = 0
+ var bottomPaddingChanges = 0
+ var horizontalPaddingChanges = 0
+ var verticalPaddingChanges = 0
+
compare(control.padding, 0)
compare(control.topPadding, 0)
compare(control.leftPadding, 0)
compare(control.rightPadding, 0)
compare(control.bottomPadding, 0)
+ compare(control.horizontalPadding, 0)
+ compare(control.verticalPadding, 0)
compare(control.availableWidth, 0)
compare(control.availableHeight, 0)
@@ -102,6 +133,15 @@ TestCase {
compare(control.leftPadding, 10)
compare(control.rightPadding, 10)
compare(control.bottomPadding, 10)
+ compare(control.horizontalPadding, 10)
+ compare(control.verticalPadding, 10)
+ compare(paddingSpy.count, ++paddingChanges)
+ compare(topPaddingSpy.count, ++topPaddingChanges)
+ compare(leftPaddingSpy.count, ++leftPaddingChanges)
+ compare(rightPaddingSpy.count, ++rightPaddingChanges)
+ compare(bottomPaddingSpy.count, ++bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, ++horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, ++verticalPaddingChanges)
control.topPadding = 20
compare(control.padding, 10)
@@ -109,6 +149,15 @@ TestCase {
compare(control.leftPadding, 10)
compare(control.rightPadding, 10)
compare(control.bottomPadding, 10)
+ compare(control.horizontalPadding, 10)
+ compare(control.verticalPadding, 10)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, ++topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
control.leftPadding = 30
compare(control.padding, 10)
@@ -116,6 +165,15 @@ TestCase {
compare(control.leftPadding, 30)
compare(control.rightPadding, 10)
compare(control.bottomPadding, 10)
+ compare(control.horizontalPadding, 10)
+ compare(control.verticalPadding, 10)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, ++leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
control.rightPadding = 40
compare(control.padding, 10)
@@ -123,6 +181,15 @@ TestCase {
compare(control.leftPadding, 30)
compare(control.rightPadding, 40)
compare(control.bottomPadding, 10)
+ compare(control.horizontalPadding, 10)
+ compare(control.verticalPadding, 10)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, ++rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
control.bottomPadding = 50
compare(control.padding, 10)
@@ -130,6 +197,15 @@ TestCase {
compare(control.leftPadding, 30)
compare(control.rightPadding, 40)
compare(control.bottomPadding, 50)
+ compare(control.horizontalPadding, 10)
+ compare(control.verticalPadding, 10)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, ++bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
control.padding = 60
compare(control.padding, 60)
@@ -137,6 +213,143 @@ TestCase {
compare(control.leftPadding, 30)
compare(control.rightPadding, 40)
compare(control.bottomPadding, 50)
+ compare(control.horizontalPadding, 60)
+ compare(control.verticalPadding, 60)
+ compare(paddingSpy.count, ++paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, ++horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, ++verticalPaddingChanges)
+
+ control.horizontalPadding = 80
+ compare(control.padding, 60)
+ compare(control.topPadding, 20)
+ compare(control.leftPadding, 30)
+ compare(control.rightPadding, 40)
+ compare(control.bottomPadding, 50)
+ compare(control.horizontalPadding, 80)
+ compare(control.verticalPadding, 60)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, ++horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
+
+ control.verticalPadding = 90
+ compare(control.padding, 60)
+ compare(control.topPadding, 20)
+ compare(control.leftPadding, 30)
+ compare(control.rightPadding, 40)
+ compare(control.bottomPadding, 50)
+ compare(control.horizontalPadding, 80)
+ compare(control.verticalPadding, 90)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, ++verticalPaddingChanges)
+
+ control.leftPadding = undefined
+ compare(control.padding, 60)
+ compare(control.topPadding, 20)
+ compare(control.leftPadding, 80)
+ compare(control.rightPadding, 40)
+ compare(control.bottomPadding, 50)
+ compare(control.horizontalPadding, 80)
+ compare(control.verticalPadding, 90)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, ++leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
+
+ control.rightPadding = undefined
+ compare(control.padding, 60)
+ compare(control.topPadding, 20)
+ compare(control.leftPadding, 80)
+ compare(control.rightPadding, 80)
+ compare(control.bottomPadding, 50)
+ compare(control.horizontalPadding, 80)
+ compare(control.verticalPadding, 90)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, ++rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
+
+ control.topPadding = undefined
+ compare(control.padding, 60)
+ compare(control.topPadding, 90)
+ compare(control.leftPadding, 80)
+ compare(control.rightPadding, 80)
+ compare(control.bottomPadding, 50)
+ compare(control.horizontalPadding, 80)
+ compare(control.verticalPadding, 90)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, ++topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
+
+ control.bottomPadding = undefined
+ compare(control.padding, 60)
+ compare(control.topPadding, 90)
+ compare(control.leftPadding, 80)
+ compare(control.rightPadding, 80)
+ compare(control.bottomPadding, 90)
+ compare(control.horizontalPadding, 80)
+ compare(control.verticalPadding, 90)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, ++bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
+
+ control.horizontalPadding = undefined
+ compare(control.padding, 60)
+ compare(control.topPadding, 90)
+ compare(control.leftPadding, 60)
+ compare(control.rightPadding, 60)
+ compare(control.bottomPadding, 90)
+ compare(control.horizontalPadding, 60)
+ compare(control.verticalPadding, 90)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, topPaddingChanges)
+ compare(leftPaddingSpy.count, ++leftPaddingChanges)
+ compare(rightPaddingSpy.count, ++rightPaddingChanges)
+ compare(bottomPaddingSpy.count, bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, ++horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, verticalPaddingChanges)
+
+ control.verticalPadding = undefined
+ compare(control.padding, 60)
+ compare(control.topPadding, 60)
+ compare(control.leftPadding, 60)
+ compare(control.rightPadding, 60)
+ compare(control.bottomPadding, 60)
+ compare(control.horizontalPadding, 60)
+ compare(control.verticalPadding, 60)
+ compare(paddingSpy.count, paddingChanges)
+ compare(topPaddingSpy.count, ++topPaddingChanges)
+ compare(leftPaddingSpy.count, leftPaddingChanges)
+ compare(rightPaddingSpy.count, rightPaddingChanges)
+ compare(bottomPaddingSpy.count, ++bottomPaddingChanges)
+ compare(horizontalPaddingSpy.count, horizontalPaddingChanges)
+ compare(verticalPaddingSpy.count, ++verticalPaddingChanges)
}
function test_availableSize() {
diff --git a/tests/auto/controls/data/tst_dialogbuttonbox.qml b/tests/auto/controls/data/tst_dialogbuttonbox.qml
index 6faf0db4..27989703 100644
--- a/tests/auto/controls/data/tst_dialogbuttonbox.qml
+++ b/tests/auto/controls/data/tst_dialogbuttonbox.qml
@@ -196,6 +196,31 @@ TestCase {
compare(roleSpy.count, 1)
}
+ function test_buttonLayout_data() {
+ return [
+ { tag: "WinLayout", buttonLayout: DialogButtonBox.WinLayout, button1Role: DialogButtonBox.AcceptRole, button2Role: DialogButtonBox.RejectRole },
+ { tag: "MacLayout", buttonLayout: DialogButtonBox.MacLayout, button1Role: DialogButtonBox.RejectRole, button2Role: DialogButtonBox.AcceptRole },
+ { tag: "KdeLayout", buttonLayout: DialogButtonBox.KdeLayout, button1Role: DialogButtonBox.AcceptRole, button2Role: DialogButtonBox.RejectRole },
+ { tag: "GnomeLayout", buttonLayout: DialogButtonBox.GnomeLayout, button1Role: DialogButtonBox.RejectRole, button2Role: DialogButtonBox.AcceptRole },
+ { tag: "AndroidLayout", buttonLayout: DialogButtonBox.AndroidLayout, button1Role: DialogButtonBox.RejectRole, button2Role: DialogButtonBox.AcceptRole }
+ ]
+ }
+
+ function test_buttonLayout(data) {
+ var control = createTemporaryObject(buttonBox, testCase, {buttonLayout: data.buttonLayout, standardButtons: DialogButtonBox.Ok|DialogButtonBox.Cancel})
+ verify(control)
+
+ compare(control.count, 2)
+
+ var button1 = control.itemAt(0)
+ verify(button1)
+ compare(button1.DialogButtonBox.buttonRole, data.button1Role)
+
+ var button2 = control.itemAt(1)
+ verify(button2)
+ compare(button2.DialogButtonBox.buttonRole, data.button2Role)
+ }
+
function test_implicitSize_data() {
return [
{ tag: "Ok", standardButtons: DialogButtonBox.Ok },
diff --git a/tests/auto/controls/data/tst_textarea.qml b/tests/auto/controls/data/tst_textarea.qml
index 7c47aa25..ea30c8d6 100644
--- a/tests/auto/controls/data/tst_textarea.qml
+++ b/tests/auto/controls/data/tst_textarea.qml
@@ -465,4 +465,20 @@ TestCase {
control.destroy()
wait(0)
}
+
+ function test_placeholderTextColor() {
+ var control = createTemporaryObject(textArea, testCase)
+ verify(control)
+
+ // usually default value should not be pure opacue black
+ verify(control.placeholderTextColor !== "#ff000000")
+ control.placeholderTextColor = "#12345678"
+ compare(control.placeholderTextColor, "#12345678")
+
+ for (var i = 0; i < control.children.length; ++i) {
+ if (control.children[i].hasOwnProperty("text"))
+ compare(control.children[i].color, control.placeholderTextColor) // placeholder.color
+ }
+ }
+
}
diff --git a/tests/auto/controls/data/tst_textfield.qml b/tests/auto/controls/data/tst_textfield.qml
index 0fee7363..1bdf5151 100644
--- a/tests/auto/controls/data/tst_textfield.qml
+++ b/tests/auto/controls/data/tst_textfield.qml
@@ -435,4 +435,21 @@ TestCase {
mouseClick(control, control.width / 2, control.height / 2, Qt.LeftButton | Qt.RightButton)
compare(control.selectedText, "")
}
+
+ // QTBUG-66260
+ function test_placeholderTextColor() {
+ var control = createTemporaryObject(textField, testCase)
+ verify(control)
+
+ // usually default value should not be pure opacue black
+ verify(control.placeholderTextColor !== "#ff000000")
+ control.placeholderTextColor = "#12345678"
+ compare(control.placeholderTextColor, "#12345678")
+
+ for (var i = 0; i < control.children.length; ++i) {
+ if (control.children[i].hasOwnProperty("text"))
+ compare(control.children[i].color, control.placeholderTextColor) // placeholder.color
+ }
+
+ }
}
diff --git a/tests/auto/controls/data/tst_tooltip.qml b/tests/auto/controls/data/tst_tooltip.qml
index e7cc6787..99b6ee14 100644
--- a/tests/auto/controls/data/tst_tooltip.qml
+++ b/tests/auto/controls/data/tst_tooltip.qml
@@ -329,4 +329,22 @@ TestCase {
verify(tooltip.visible)
}
}
+
+ Component {
+ id: nonAttachedToolTipComponent
+ ToolTip { }
+ }
+
+ function test_nonAttachedToolTipShowAndHide() {
+ var tip = createTemporaryObject(nonAttachedToolTipComponent, testCase)
+ verify(tip)
+ tip.show("hello");
+ verify(tip.visible)
+ verify(tip.text === "hello")
+ tip.hide()
+ tryCompare(tip, "visible", false)
+ tip.show("delay", 200)
+ verify(tip.visible)
+ tryCompare(tip, "visible", false)
+ }
}
diff --git a/tests/auto/controls/data/tst_tumbler.qml b/tests/auto/controls/data/tst_tumbler.qml
index 058cbeca..d64f7c9c 100644
--- a/tests/auto/controls/data/tst_tumbler.qml
+++ b/tests/auto/controls/data/tst_tumbler.qml
@@ -107,6 +107,10 @@ TestCase {
return Qt.point(tumblerXCenter(), yCenter);
}
+ function itemTopLeftPos(visualItemIndex) {
+ return Qt.point(tumbler.leftPadding, tumbler.topPadding + (tumblerDelegateHeight * visualItemIndex));
+ }
+
function checkItemSizes() {
var contentChildren = tumbler.wrap ? tumblerView.children : tumblerView.contentItem.children;
verify(contentChildren.length >= tumbler.count);
@@ -131,6 +135,21 @@ TestCase {
return null;
}
+ function findDelegateWithText(parent, text) {
+ for (var i = 0; i < parent.children.length; ++i) {
+ var child = parent.children[i];
+ if (child.hasOwnProperty("text") && child.text === text) {
+ return child;
+ }
+
+ var grandChild = findDelegateWithText(child, text);
+ if (grandChild)
+ return grandChild;
+ }
+
+ return null;
+ }
+
property Component noAttachedPropertiesDelegate: Text {
text: modelData
}
@@ -1112,4 +1131,49 @@ TestCase {
var label = row.label;
compare(label.text, "2");
}
+
+ function test_positionViewAtIndex_data() {
+ return [
+ // Should be 20, 21, ... but there is a documented limitation for this in positionViewAtIndex()'s docs.
+ { tag: "wrap=true, mode=Beginning", wrap: true, mode: Tumbler.Beginning, expectedVisibleIndices: [21, 22, 23, 24, 25] },
+ { tag: "wrap=true, mode=Center", wrap: true, mode: Tumbler.Center, expectedVisibleIndices: [18, 19, 20, 21, 22] },
+ { tag: "wrap=true, mode=End", wrap: true, mode: Tumbler.End, expectedVisibleIndices: [16, 17, 18, 19, 20] },
+ // Same as Beginning; should start at 20.
+ { tag: "wrap=true, mode=Contain", wrap: true, mode: Tumbler.Contain, expectedVisibleIndices: [21, 22, 23, 24, 25] },
+ { tag: "wrap=true, mode=SnapPosition", wrap: true, mode: Tumbler.SnapPosition, expectedVisibleIndices: [18, 19, 20, 21, 22] },
+ { tag: "wrap=false, mode=Beginning", wrap: false, mode: Tumbler.Beginning, expectedVisibleIndices: [20, 21, 22, 23, 24] },
+ { tag: "wrap=false, mode=Center", wrap: false, mode: Tumbler.Center, expectedVisibleIndices: [18, 19, 20, 21, 22] },
+ { tag: "wrap=false, mode=End", wrap: false, mode: Tumbler.End, expectedVisibleIndices: [16, 17, 18, 19, 20] },
+ { tag: "wrap=false, mode=Visible", wrap: false, mode: Tumbler.Visible, expectedVisibleIndices: [16, 17, 18, 19, 20] },
+ { tag: "wrap=false, mode=Contain", wrap: false, mode: Tumbler.Contain, expectedVisibleIndices: [16, 17, 18, 19, 20] },
+ { tag: "wrap=false, mode=SnapPosition", wrap: false, mode: Tumbler.SnapPosition, expectedVisibleIndices: [18, 19, 20, 21, 22] }
+ ]
+ }
+
+ function test_positionViewAtIndex(data) {
+ createTumbler({ wrap: data.wrap, model: 40, visibleItemCount: 5 })
+ compare(tumbler.wrap, data.wrap)
+
+ waitForRendering(tumbler)
+
+ tumbler.positionViewAtIndex(20, data.mode)
+ tryCompare(tumbler, "moving", false)
+
+ compare(tumbler.visibleItemCount, 5)
+ for (var i = 0; i < 5; ++i) {
+ // Find the item through its text, as that's easier than child/itemAt().
+ var text = data.expectedVisibleIndices[i].toString()
+ var item = findDelegateWithText(tumblerView, text)
+ verify(item, "found no item with text \"" + text + "\"")
+ compare(item.text, data.expectedVisibleIndices[i].toString())
+
+ // Ensure that it's at the position we expect.
+ var expectedPos = itemTopLeftPos(i)
+ var actualPos = testCase.mapFromItem(item, 0, 0)
+ compare(actualPos.x, expectedPos.x, "expected delegate with text " + item.text
+ + " to have an x pos of " + expectedPos.x + " but it was " + actualPos.x)
+ compare(actualPos.y, expectedPos.y, "expected delegate with text " + item.text
+ + " to have an y pos of " + expectedPos.y + " but it was " + actualPos.y)
+ }
+ }
}
diff --git a/tests/auto/font/tst_font.cpp b/tests/auto/font/tst_font.cpp
index 75942286..65dd4971 100644
--- a/tests/auto/font/tst_font.cpp
+++ b/tests/auto/font/tst_font.cpp
@@ -45,7 +45,7 @@
#include <QtQuickTemplates2/private/qquickapplicationwindow_p.h>
#include <QtQuickTemplates2/private/qquickcontrol_p.h>
#include <QtQuickTemplates2/private/qquickpopup_p.h>
-#include <QtQuickControls2/private/qquickproxytheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
using namespace QQuickVisualTestUtil;
@@ -217,20 +217,18 @@ void tst_font::inheritance()
QCOMPARE(grandChild->property("font").value<QFont>(), windowFont);
}
-class TestFontTheme : public QQuickProxyTheme
+class TestFontTheme : public QQuickTheme
{
public:
- TestFontTheme(QPlatformTheme *theme) : QQuickProxyTheme(theme)
+ TestFontTheme()
{
- std::fill(fonts, fonts + QPlatformTheme::NFonts, static_cast<QFont *>(0));
+ std::fill(fonts, fonts + QQuickTheme::NFonts, static_cast<QFont *>(0));
- for (int i = QPlatformTheme::SystemFont; i < QPlatformTheme::NFonts; ++i) {
+ for (int i = QQuickTheme::SystemFont; i < QQuickTheme::NFonts; ++i) {
QFont font = QFont();
font.setPixelSize(i + 10);
fonts[i] = new QFont(font);
}
-
- QGuiApplicationPrivate::platform_theme = this;
}
const QFont *font(Font type = SystemFont) const override
@@ -239,73 +237,73 @@ public:
}
private:
- QFont *fonts[QPlatformTheme::NFonts];
+ QFont *fonts[QQuickTheme::NFonts];
};
-Q_DECLARE_METATYPE(QPlatformTheme::Font)
+Q_DECLARE_METATYPE(QQuickTheme::Font)
void tst_font::defaultFont_data()
{
QTest::addColumn<QString>("control");
- QTest::addColumn<QPlatformTheme::Font>("fontType");
-
- QTest::newRow("AbstractButton") << "AbstractButton" << QPlatformTheme::SystemFont;
- QTest::newRow("ApplicationWindow") << "ApplicationWindow" << QPlatformTheme::SystemFont;
- QTest::newRow("Button") << "Button" << QPlatformTheme::PushButtonFont;
- QTest::newRow("CheckBox") << "CheckBox" << QPlatformTheme::CheckBoxFont;
- QTest::newRow("CheckDelegate") << "CheckDelegate" << QPlatformTheme::ListViewFont;
- QTest::newRow("ComboBox") << "ComboBox" << QPlatformTheme::ComboMenuItemFont;
- QTest::newRow("Container") << "Container" << QPlatformTheme::SystemFont;
- QTest::newRow("Control") << "Control" << QPlatformTheme::SystemFont;
- QTest::newRow("Dial") << "Dial" << QPlatformTheme::SystemFont;
- QTest::newRow("Dialog") << "Dialog" << QPlatformTheme::SystemFont;
- QTest::newRow("DialogButtonBox") << "DialogButtonBox" << QPlatformTheme::SystemFont;
- QTest::newRow("Drawer") << "Drawer" << QPlatformTheme::SystemFont;
- QTest::newRow("Frame") << "Frame" << QPlatformTheme::SystemFont;
- QTest::newRow("GroupBox") << "GroupBox" << QPlatformTheme::GroupBoxTitleFont;
- QTest::newRow("ItemDelegate") << "ItemDelegate" << QPlatformTheme::ItemViewFont;
- QTest::newRow("Label") << "Label" << QPlatformTheme::LabelFont;
- QTest::newRow("Menu") << "Menu" << QPlatformTheme::MenuFont;
- QTest::newRow("MenuItem") << "MenuItem" << QPlatformTheme::MenuItemFont;
- QTest::newRow("MenuSeparator") << "MenuSeparator" << QPlatformTheme::SystemFont;
- QTest::newRow("Page") << "Page" << QPlatformTheme::SystemFont;
- QTest::newRow("Pane") << "Pane" << QPlatformTheme::SystemFont;
- QTest::newRow("Popup") << "Popup" << QPlatformTheme::SystemFont;
- QTest::newRow("ProgressBar") << "ProgressBar" << QPlatformTheme::SystemFont;
- QTest::newRow("RadioButton") << "RadioButton" << QPlatformTheme::RadioButtonFont;
- QTest::newRow("RadioDelegate") << "RadioDelegate" << QPlatformTheme::ListViewFont;
- QTest::newRow("RangeSlider") << "RangeSlider" << QPlatformTheme::SystemFont;
- QTest::newRow("RoundButton") << "RoundButton" << QPlatformTheme::PushButtonFont;
- QTest::newRow("ScrollBar") << "ScrollBar" << QPlatformTheme::SystemFont;
- QTest::newRow("ScrollIndicator") << "ScrollIndicator" << QPlatformTheme::SystemFont;
- QTest::newRow("Slider") << "Slider" << QPlatformTheme::SystemFont;
- QTest::newRow("SpinBox") << "SpinBox" << QPlatformTheme::EditorFont;
- QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QPlatformTheme::ListViewFont;
- QTest::newRow("Switch") << "Switch" << QPlatformTheme::SystemFont; // ### TODO: add QPlatformTheme::SwitchFont
- QTest::newRow("SwitchDelegate") << "SwitchDelegate" << QPlatformTheme::ListViewFont;
- QTest::newRow("TabBar") << "TabBar" << QPlatformTheme::SystemFont;
- QTest::newRow("TabButton") << "TabButton" << QPlatformTheme::TabButtonFont;
- QTest::newRow("TextArea") << "TextArea" << QPlatformTheme::EditorFont;
- QTest::newRow("TextField") << "TextField" << QPlatformTheme::EditorFont;
- QTest::newRow("ToolBar") << "ToolBar" << QPlatformTheme::SystemFont;
- QTest::newRow("ToolButton") << "ToolButton" << QPlatformTheme::ToolButtonFont;
- QTest::newRow("ToolSeparator") << "ToolSeparator" << QPlatformTheme::SystemFont;
- QTest::newRow("ToolTip") << "ToolTip" << QPlatformTheme::TipLabelFont;
- QTest::newRow("Tumbler") << "Tumbler" << QPlatformTheme::ItemViewFont;
+ QTest::addColumn<QQuickTheme::Font>("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::EditorFont;
+ QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QQuickTheme::ListViewFont;
+ QTest::newRow("Switch") << "Switch" << QQuickTheme::SystemFont; // ### TODO: add 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::ItemViewFont;
}
void tst_font::defaultFont()
{
QFETCH(QString, control);
- QFETCH(QPlatformTheme::Font, fontType);
+ QFETCH(QQuickTheme::Font, fontType);
QQmlEngine engine;
QQmlComponent component(&engine);
component.setData(QString("import QtQuick.Controls 2.2; %1 { }").arg(control).toUtf8(), QUrl());
- // The call to setData() above causes QQuickDefaultTheme to be set as the platform theme,
+ // The call to setData() above causes QQuickDefaultTheme to be set as the current theme,
// so we must make sure we only set our theme afterwards.
- TestFontTheme theme(QGuiApplicationPrivate::platform_theme);
+ QQuickTheme::setCurrent(new TestFontTheme);
QScopedPointer<QObject> object(component.create());
QVERIFY2(!object.isNull(), qPrintable(component.errorString()));
@@ -313,16 +311,9 @@ void tst_font::defaultFont()
QVariant var = object->property("font");
QVERIFY(var.isValid());
- const QFont *expectedFont = theme.font(fontType);
- QVERIFY(expectedFont);
-
+ QFont expectedFont = QQuickTheme::themeFont(fontType);
QFont actualFont = var.value<QFont>();
-
- if (actualFont != *expectedFont) {
- qDebug() << QTest::currentDataTag() << actualFont << *expectedFont;
- }
-
- QCOMPARE(actualFont, *expectedFont);
+ QCOMPARE(actualFont, expectedFont);
}
void tst_font::listView_data()
diff --git a/tests/auto/palette/tst_palette.cpp b/tests/auto/palette/tst_palette.cpp
index f74e358a..f0ce77f0 100644
--- a/tests/auto/palette/tst_palette.cpp
+++ b/tests/auto/palette/tst_palette.cpp
@@ -38,7 +38,6 @@
#include "../shared/visualtestutil.h"
#include <QtGui/qpalette.h>
-#include <QtGui/qpa/qplatformtheme.h>
#include <QtGui/private/qguiapplication_p.h>
#include <QtQml/qqmlengine.h>
#include <QtQml/qqmlcomponent.h>
@@ -46,7 +45,7 @@
#include <QtQuickTemplates2/private/qquickcontrol_p.h>
#include <QtQuickTemplates2/private/qquickcontrol_p_p.h>
#include <QtQuickTemplates2/private/qquickpopup_p.h>
-#include <QtQuickControls2/private/qquickproxytheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
using namespace QQuickVisualTestUtil;
@@ -88,7 +87,7 @@ void tst_palette::palette_data()
QTest::addColumn<QString>("testFile");
QTest::addColumn<QPalette>("expectedPalette");
- QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette);
+ QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::SystemPalette);
defaultPalette.setColor(QPalette::Base, QColor("#efefef"));
defaultPalette.setColor(QPalette::Text, QColor("#101010"));
@@ -172,7 +171,7 @@ void tst_palette::inheritance()
QObject *grandChild = window->property("grandChild").value<QObject *>();
QVERIFY(control && child && grandChild);
- QPalette defaultPalette = QQuickControlPrivate::themePalette(QPlatformTheme::SystemPalette);
+ QPalette defaultPalette = QQuickTheme::themePalette(QQuickTheme::SystemPalette);
defaultPalette.setColor(QPalette::Base, QColor("#efefef"));
defaultPalette.setColor(QPalette::Text, QColor("#101010"));
@@ -217,63 +216,61 @@ void tst_palette::inheritance()
QCOMPARE(grandChild->property("palette").value<QPalette>(), windowPalette);
}
-class TestTheme : public QQuickProxyTheme
+class TestTheme : public QQuickTheme
{
public:
- TestTheme(QPlatformTheme *theme) : QQuickProxyTheme(theme)
+ TestTheme()
{
- std::fill(palettes, palettes + QPlatformTheme::NPalettes, static_cast<QPalette *>(0));
+ std::fill(palettes, palettes + QQuickTheme::NPalettes, static_cast<QPalette *>(0));
QPalette palette = QPalette();
palette.setColor(QPalette::Window, Qt::gray);
- palettes[QPlatformTheme::SystemPalette] = new QPalette(palette);
+ palettes[QQuickTheme::SystemPalette] = new QPalette(palette);
palette.setColor(QPalette::ToolTipBase, Qt::yellow);
- palettes[QPlatformTheme::ToolTipPalette] = new QPalette(palette);
+ palettes[QQuickTheme::ToolTipPalette] = new QPalette(palette);
palette.setColor(QPalette::ButtonText, Qt::blue);
- palettes[QPlatformTheme::ToolButtonPalette] = new QPalette(palette);
+ palettes[QQuickTheme::ToolButtonPalette] = new QPalette(palette);
palette.setColor(QPalette::Button, Qt::red);
- palettes[QPlatformTheme::ButtonPalette] = new QPalette(palette);
+ palettes[QQuickTheme::ButtonPalette] = new QPalette(palette);
palette.setColor(QPalette::Text, Qt::green);
- palettes[QPlatformTheme::CheckBoxPalette] = new QPalette(palette);
+ palettes[QQuickTheme::CheckBoxPalette] = new QPalette(palette);
palette.setColor(QPalette::Text, Qt::blue);
- palettes[QPlatformTheme::RadioButtonPalette] = new QPalette(palette);
+ palettes[QQuickTheme::RadioButtonPalette] = new QPalette(palette);
// HeaderPalette unused
palette.setColor(QPalette::Base, Qt::darkGray);
- palettes[QPlatformTheme::ComboBoxPalette] = new QPalette(palette);
+ palettes[QQuickTheme::ComboBoxPalette] = new QPalette(palette);
palette.setColor(QPalette::Base, Qt::lightGray);
- palettes[QPlatformTheme::ItemViewPalette] = new QPalette(palette);
+ palettes[QQuickTheme::ItemViewPalette] = new QPalette(palette);
// MessageBoxLabelPalette unused
palette.setColor(QPalette::ButtonText, Qt::white);
- palettes[QPlatformTheme::TabBarPalette] = new QPalette(palette);
+ palettes[QQuickTheme::TabBarPalette] = new QPalette(palette);
palette.setColor(QPalette::WindowText, Qt::darkGray);
- palettes[QPlatformTheme::LabelPalette] = new QPalette(palette);
+ palettes[QQuickTheme::LabelPalette] = new QPalette(palette);
palette.setColor(QPalette::Mid, Qt::gray);
- palettes[QPlatformTheme::GroupBoxPalette] = new QPalette(palette);
+ palettes[QQuickTheme::GroupBoxPalette] = new QPalette(palette);
palette.setColor(QPalette::Shadow, Qt::darkYellow);
- palettes[QPlatformTheme::MenuPalette] = new QPalette(palette);
+ palettes[QQuickTheme::MenuPalette] = new QPalette(palette);
// MenuBarPalette unused
palette.setColor(QPalette::Base, Qt::cyan);
- palettes[QPlatformTheme::TextEditPalette] = new QPalette(palette);
+ palettes[QQuickTheme::TextEditPalette] = new QPalette(palette);
palette.setColor(QPalette::Base, Qt::magenta);
- palettes[QPlatformTheme::TextLineEditPalette] = new QPalette(palette);
-
- QGuiApplicationPrivate::platform_theme = this;
+ palettes[QQuickTheme::TextLineEditPalette] = new QPalette(palette);
}
const QPalette *palette(Palette type = SystemPalette) const override
@@ -282,67 +279,67 @@ public:
}
private:
- QPalette *palettes[QPlatformTheme::NPalettes];
+ QPalette *palettes[QQuickTheme::NPalettes];
};
-Q_DECLARE_METATYPE(QPlatformTheme::Palette)
+Q_DECLARE_METATYPE(QQuickTheme::Palette)
void tst_palette::defaultPalette_data()
{
QTest::addColumn<QString>("control");
- QTest::addColumn<QPlatformTheme::Palette>("paletteType");
-
- QTest::newRow("AbstractButton") << "AbstractButton" << QPlatformTheme::SystemPalette;
- QTest::newRow("ApplicationWindow") << "ApplicationWindow" << QPlatformTheme::SystemPalette;
- QTest::newRow("Button") << "Button" << QPlatformTheme::ButtonPalette;
- QTest::newRow("CheckBox") << "CheckBox" << QPlatformTheme::CheckBoxPalette;
- QTest::newRow("CheckDelegate") << "CheckDelegate" << QPlatformTheme::ItemViewPalette;
- QTest::newRow("ComboBox") << "ComboBox" << QPlatformTheme::ComboBoxPalette;
- QTest::newRow("Container") << "Container" << QPlatformTheme::SystemPalette;
- QTest::newRow("Control") << "Control" << QPlatformTheme::SystemPalette;
- QTest::newRow("Dial") << "Dial" << QPlatformTheme::SystemPalette;
- QTest::newRow("Dialog") << "Dialog" << QPlatformTheme::SystemPalette;
- QTest::newRow("DialogButtonBox") << "DialogButtonBox" << QPlatformTheme::SystemPalette;
- QTest::newRow("Drawer") << "Drawer" << QPlatformTheme::SystemPalette;
- QTest::newRow("Frame") << "Frame" << QPlatformTheme::SystemPalette;
- QTest::newRow("GroupBox") << "GroupBox" << QPlatformTheme::GroupBoxPalette;
- QTest::newRow("ItemDelegate") << "ItemDelegate" << QPlatformTheme::ItemViewPalette;
- QTest::newRow("Label") << "Label" << QPlatformTheme::LabelPalette;
- QTest::newRow("Menu") << "Menu" << QPlatformTheme::MenuPalette;
- QTest::newRow("MenuItem") << "MenuItem" << QPlatformTheme::MenuPalette;
- QTest::newRow("MenuSeparator") << "MenuSeparator" << QPlatformTheme::MenuPalette;
- QTest::newRow("Page") << "Page" << QPlatformTheme::SystemPalette;
- QTest::newRow("Pane") << "Pane" << QPlatformTheme::SystemPalette;
- QTest::newRow("Popup") << "Popup" << QPlatformTheme::SystemPalette;
- QTest::newRow("ProgressBar") << "ProgressBar" << QPlatformTheme::SystemPalette;
- QTest::newRow("RadioButton") << "RadioButton" << QPlatformTheme::RadioButtonPalette;
- QTest::newRow("RadioDelegate") << "RadioDelegate" << QPlatformTheme::ItemViewPalette;
- QTest::newRow("RangeSlider") << "RangeSlider" << QPlatformTheme::SystemPalette;
- QTest::newRow("RoundButton") << "RoundButton" << QPlatformTheme::ButtonPalette;
- QTest::newRow("ScrollBar") << "ScrollBar" << QPlatformTheme::SystemPalette;
- QTest::newRow("ScrollIndicator") << "ScrollIndicator" << QPlatformTheme::SystemPalette;
- QTest::newRow("Slider") << "Slider" << QPlatformTheme::SystemPalette;
- QTest::newRow("SpinBox") << "SpinBox" << QPlatformTheme::TextLineEditPalette;
- QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QPlatformTheme::ItemViewPalette;
- QTest::newRow("Switch") << "Switch" << QPlatformTheme::CheckBoxPalette; // ### TODO: add QPlatformTheme::SwitchPalette
- QTest::newRow("SwitchDelegate") << "SwitchDelegate" << QPlatformTheme::ItemViewPalette;
- QTest::newRow("TabBar") << "TabBar" << QPlatformTheme::TabBarPalette;
- QTest::newRow("TabButton") << "TabButton" << QPlatformTheme::TabBarPalette;
- QTest::newRow("TextArea") << "TextArea" << QPlatformTheme::TextEditPalette;
- QTest::newRow("TextField") << "TextField" << QPlatformTheme::TextLineEditPalette;
- QTest::newRow("ToolBar") << "ToolBar" << QPlatformTheme::ToolButtonPalette;
- QTest::newRow("ToolButton") << "ToolButton" << QPlatformTheme::ToolButtonPalette;
- QTest::newRow("ToolSeparator") << "ToolSeparator" << QPlatformTheme::ToolButtonPalette;
- QTest::newRow("ToolTip") << "ToolTip" << QPlatformTheme::ToolTipPalette;
- QTest::newRow("Tumbler") << "Tumbler" << QPlatformTheme::ItemViewPalette;
+ QTest::addColumn<QQuickTheme::Palette>("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::TextLineEditPalette;
+ QTest::newRow("SwipeDelegate") << "SwipeDelegate" << QQuickTheme::ItemViewPalette;
+ QTest::newRow("Switch") << "Switch" << QQuickTheme::CheckBoxPalette; // ### TODO: add 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::ItemViewPalette;
}
void tst_palette::defaultPalette()
{
QFETCH(QString, control);
- QFETCH(QPlatformTheme::Palette, paletteType);
+ QFETCH(QQuickTheme::Palette, paletteType);
- TestTheme theme(QGuiApplicationPrivate::platform_theme);
+ QQuickTheme::setCurrent(new TestTheme);
QQmlEngine engine;
QQmlComponent component(&engine);
@@ -354,11 +351,9 @@ void tst_palette::defaultPalette()
QVariant var = object->property("palette");
QVERIFY(var.isValid());
- const QPalette *expectedPalette = theme.palette(paletteType);
- QVERIFY(expectedPalette);
-
+ QPalette expectedPalette = QQuickTheme::themePalette(paletteType);
QPalette actualPalette = var.value<QPalette>();
- QCOMPARE(actualPalette, *expectedPalette);
+ QCOMPARE(actualPalette, expectedPalette);
}
void tst_palette::listView_data()
diff --git a/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp b/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp
index aeeddb10..6228a15d 100644
--- a/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp
+++ b/tests/auto/qquickapplicationwindow/tst_qquickapplicationwindow.cpp
@@ -50,7 +50,7 @@
#include <QtQuickTemplates2/private/qquickpopup_p.h>
#include <QtQuickTemplates2/private/qquicktextarea_p.h>
#include <QtQuickTemplates2/private/qquicktextfield_p.h>
-#include <QtQuickControls2/private/qquickproxytheme_p.h>
+#include <QtQuickTemplates2/private/qquicktheme_p.h>
#include "../shared/util.h"
#include "../shared/visualtestutil.h"
@@ -555,11 +555,10 @@ void tst_QQuickApplicationWindow::font()
QCOMPARE(item6->font(), font);
}
-class TestTheme : public QQuickProxyTheme
+class TestTheme : public QQuickTheme
{
public:
- TestTheme(QPlatformTheme *theme) : QQuickProxyTheme(theme), m_font("Courier")
- { QGuiApplicationPrivate::platform_theme = this; }
+ TestTheme() : m_font("Courier") { }
const QFont *font(Font type = SystemFont) const override
{
@@ -572,7 +571,7 @@ public:
void tst_QQuickApplicationWindow::defaultFont()
{
- TestTheme theme(QGuiApplicationPrivate::platform_theme);
+ QQuickTheme::setCurrent(new TestTheme);
QQmlEngine engine;
QQmlComponent component(&engine);
@@ -581,7 +580,7 @@ void tst_QQuickApplicationWindow::defaultFont()
QScopedPointer<QQuickApplicationWindow> window;
window.reset(static_cast<QQuickApplicationWindow *>(component.create()));
QVERIFY(!window.isNull());
- QCOMPARE(window->font(), *theme.font());
+ QCOMPARE(window->font(), QQuickTheme::themeFont(QQuickTheme::SystemFont));
}
void tst_QQuickApplicationWindow::locale()
diff --git a/tests/auto/qquickmaterialstyleconf/data/applicationwindow.qml b/tests/auto/qquickmaterialstyleconf/data/applicationwindow.qml
index 65196393..9a31966f 100644
--- a/tests/auto/qquickmaterialstyleconf/data/applicationwindow.qml
+++ b/tests/auto/qquickmaterialstyleconf/data/applicationwindow.qml
@@ -57,8 +57,13 @@ ApplicationWindow {
height: 400
property alias label: label
+ property alias button: button
Label {
id: label
}
+
+ Button {
+ id: button
+ }
}
diff --git a/tests/auto/qquickmaterialstyleconf/qquickmaterialstyleconf.qrc b/tests/auto/qquickmaterialstyleconf/qquickmaterialstyleconf.qrc
index 53ba6450..49219139 100644
--- a/tests/auto/qquickmaterialstyleconf/qquickmaterialstyleconf.qrc
+++ b/tests/auto/qquickmaterialstyleconf/qquickmaterialstyleconf.qrc
@@ -1,5 +1,7 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource>
- <file>qtquickcontrols2.conf</file>
-</qresource>
+<RCC>
+ <qresource prefix="/">
+ <file>qtquickcontrols2.conf</file>
+ <file>variant-dense.conf</file>
+ <file>variant-normal.conf</file>
+ </qresource>
</RCC>
diff --git a/tests/auto/qquickmaterialstyleconf/tst_qquickmaterialstyleconf.cpp b/tests/auto/qquickmaterialstyleconf/tst_qquickmaterialstyleconf.cpp
index 17d1ea6d..72136445 100644
--- a/tests/auto/qquickmaterialstyleconf/tst_qquickmaterialstyleconf.cpp
+++ b/tests/auto/qquickmaterialstyleconf/tst_qquickmaterialstyleconf.cpp
@@ -36,6 +36,7 @@
#include <qtest.h>
#include <QtQuick/private/qquickitem_p.h>
+#include <QtQuickControls2/private/qquickstyle_p.h>
#include "../shared/util.h"
#include "../shared/visualtestutil.h"
@@ -49,6 +50,8 @@ public:
private slots:
void conf();
+ void variants_data();
+ void variants();
};
void tst_qquickmaterialstyleconf::conf()
@@ -73,6 +76,45 @@ void tst_qquickmaterialstyleconf::conf()
QCOMPARE(label->property("font").value<QFont>(), customFont);
}
+void tst_qquickmaterialstyleconf::variants_data()
+{
+ QTest::addColumn<QByteArray>("confPath");
+ QTest::addColumn<int>("expectedButtonHeight");
+ // Just to ensure that the correct conf is loaded.
+ QTest::addColumn<QColor>("expectedColor");
+
+ // (36 button height + 12 touchable area)
+ QTest::newRow("normal") << QByteArray(":/variant-normal.conf") << 48 << QColor::fromRgb(0x123456);
+ // We specified a custom variant (dense), so the button should be small.
+ // (32 button height + 12 touchable area)
+ QTest::newRow("dense") << QByteArray(":/variant-dense.conf") << 44 << QColor::fromRgb(0x789abc);
+}
+
+void tst_qquickmaterialstyleconf::variants()
+{
+ QFETCH(QByteArray, confPath);
+ QFETCH(int, expectedButtonHeight);
+ QFETCH(QColor, expectedColor);
+
+ qmlClearTypeRegistrations();
+ QQuickStylePrivate::reset();
+ qputenv("QT_QUICK_CONTROLS_CONF", confPath);
+
+ QQuickApplicationHelper helper(this, QLatin1String("applicationwindow.qml"));
+
+ QQuickApplicationWindow *window = helper.appWindow;
+ window->show();
+ QVERIFY(QTest::qWaitForWindowExposed(window));
+
+ QQuickItem *label = window->property("label").value<QQuickItem*>();
+ QVERIFY(label);
+ QCOMPARE(label->property("color").value<QColor>(), expectedColor);
+
+ QQuickItem *button = window->property("button").value<QQuickItem*>();
+ QVERIFY(button);
+ QCOMPARE(button->height(), expectedButtonHeight);
+}
+
QTEST_MAIN(tst_qquickmaterialstyleconf)
#include "tst_qquickmaterialstyleconf.moc"
diff --git a/tests/auto/qquickmaterialstyleconf/variant-dense.conf b/tests/auto/qquickmaterialstyleconf/variant-dense.conf
new file mode 100644
index 00000000..6636894e
--- /dev/null
+++ b/tests/auto/qquickmaterialstyleconf/variant-dense.conf
@@ -0,0 +1,6 @@
+[Controls]
+Style=Material
+
+[Material]
+Variant=Dense
+Foreground=#789abc
diff --git a/tests/auto/qquickmaterialstyleconf/variant-normal.conf b/tests/auto/qquickmaterialstyleconf/variant-normal.conf
new file mode 100644
index 00000000..08778e92
--- /dev/null
+++ b/tests/auto/qquickmaterialstyleconf/variant-normal.conf
@@ -0,0 +1,6 @@
+[Controls]
+Style=Material
+
+[Material]
+Variant=Normal
+Foreground=#123456
diff --git a/tests/manual/screenshots/qtquickcontrols2.conf b/tests/manual/screenshots/qtquickcontrols2.conf
index b6c7c87e..d2081db1 100644
--- a/tests/manual/screenshots/qtquickcontrols2.conf
+++ b/tests/manual/screenshots/qtquickcontrols2.conf
@@ -1,2 +1,5 @@
[Controls]
Style=Material
+
+[Material]
+;Variant=Dense
diff --git a/tests/manual/screenshots/screenshots.qml b/tests/manual/screenshots/screenshots.qml
index 2b031dce..20275b17 100644
--- a/tests/manual/screenshots/screenshots.qml
+++ b/tests/manual/screenshots/screenshots.qml
@@ -58,7 +58,7 @@ ApplicationWindow {
title: "Qt Quick Controls 2 - Screenshots"
visible: true
width: Math.max(600, loader.implicitWidth)
- height: Math.max(600, loader.implicitHeight)
+ height: Math.max(600, loader.implicitHeight + header.implicitHeight + footer.implicitHeight)
property string currentFilePath
property url lastSaveUrl