aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/imports/controls/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/designer/ControlSection.qml4
-rw-r--r--src/imports/controls/designer/DialSpecifics.qml14
-rw-r--r--src/imports/controls/designer/InsetSection.qml119
-rw-r--r--src/imports/controls/designer/LabelSpecifics.qml4
-rw-r--r--src/imports/controls/designer/PageIndicatorSpecifics.qml16
-rw-r--r--src/imports/controls/designer/RangeSliderSpecifics.qml14
-rw-r--r--src/imports/controls/designer/RoundButtonSpecifics.qml5
-rw-r--r--src/imports/controls/designer/SliderSpecifics.qml14
-rw-r--r--src/imports/controls/designer/SpinBoxSpecifics.qml12
-rw-r--r--src/imports/controls/designer/TextAreaSpecifics.qml27
-rw-r--r--src/imports/controls/designer/TextFieldSpecifics.qml27
-rw-r--r--src/imports/controls/designer/designer.pri1
-rw-r--r--src/imports/controls/doc/qtquickcontrols.qdocconf2
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-overview.cmake4
-rw-r--r--src/imports/controls/doc/src/includes/qquickicon.qdocinc2
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-cppclasses.qdoc1
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc12
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc1
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc5
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-index.qdoc29
-rw-r--r--src/imports/controls/fusion/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/fusion/plugins.qmltypes2
-rw-r--r--src/imports/controls/imagine/ApplicationWindow.qml20
-rw-r--r--src/imports/controls/imagine/Drawer.qml2
-rw-r--r--src/imports/controls/imagine/plugins.qmltypes14
-rw-r--r--src/imports/controls/imagine/qquickninepatchimage.cpp36
-rw-r--r--src/imports/controls/material/ApplicationWindow.qml10
-rw-r--r--src/imports/controls/material/ComboBox.qml2
-rw-r--r--src/imports/controls/material/plugins.qmltypes3
-rw-r--r--src/imports/controls/material/qquickmaterialstyle.cpp1
-rw-r--r--src/imports/controls/plugins.qmltypes18
-rw-r--r--src/imports/controls/universal/ApplicationWindow.qml8
-rw-r--r--src/imports/controls/universal/plugins.qmltypes2
-rw-r--r--src/imports/controls/universal/qquickuniversalfocusrectangle.cpp2
-rw-r--r--src/imports/platform/qquickplatformfiledialog.cpp17
-rw-r--r--src/imports/platform/qquickplatformfolderdialog.cpp1
-rw-r--r--src/imports/platform/qquickplatformmenu.cpp48
-rw-r--r--src/imports/platform/qquickplatformmenu_p.h10
-rw-r--r--src/imports/platform/qquickplatformmenuitem.cpp42
-rw-r--r--src/imports/platform/qquickplatformmenuitem_p.h10
-rw-r--r--src/imports/platform/qquickplatformmenuitemgroup_p.h4
-rw-r--r--src/imports/platform/qquickplatformmessagedialog.cpp1
-rw-r--r--src/imports/platform/qquickplatformsystemtrayicon.cpp42
-rw-r--r--src/imports/platform/qquickplatformsystemtrayicon_p.h10
-rw-r--r--src/imports/platform/widgets/qwidgetplatform_p.h4
-rw-r--r--src/imports/platform/widgets/qwidgetplatformmenu_p.h2
-rw-r--r--src/imports/templates/plugins.qmltypes80
-rw-r--r--src/quickcontrols2/configure.cmake17
-rw-r--r--src/quickcontrols2/qquickmnemoniclabel.cpp2
-rw-r--r--src/quickcontrols2/qquickstyle.cpp6
-rw-r--r--src/quickcontrols2/qquickstyleplugin.cpp2
-rw-r--r--src/quicktemplates2/configure.cmake8
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp1
-rw-r--r--src/quicktemplates2/qquickaction.cpp1
-rw-r--r--src/quicktemplates2/qquickaction_p_p.h2
-rw-r--r--src/quicktemplates2/qquickactiongroup.cpp2
-rw-r--r--src/quicktemplates2/qquickapplicationwindow.cpp78
-rw-r--r--src/quicktemplates2/qquickapplicationwindow_p.h7
-rw-r--r--src/quicktemplates2/qquickbuttongroup.cpp2
-rw-r--r--src/quicktemplates2/qquickcombobox.cpp178
-rw-r--r--src/quicktemplates2/qquickcombobox_p.h17
-rw-r--r--src/quicktemplates2/qquickcontrol.cpp10
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox.cpp2
-rw-r--r--src/quicktemplates2/qquickdrawer.cpp2
-rw-r--r--src/quicktemplates2/qquickheaderview.cpp4
-rw-r--r--src/quicktemplates2/qquicklabel.cpp2
-rw-r--r--src/quicktemplates2/qquickmenu_p_p.h4
-rw-r--r--src/quicktemplates2/qquickoverlay.cpp18
-rw-r--r--src/quicktemplates2/qquickoverlay_p_p.h8
-rw-r--r--src/quicktemplates2/qquickpane.cpp4
-rw-r--r--src/quicktemplates2/qquickpopup.cpp14
-rw-r--r--src/quicktemplates2/qquickpopupanchors.cpp26
-rw-r--r--src/quicktemplates2/qquickpopupanchors_p.h6
-rw-r--r--src/quicktemplates2/qquickpresshandler.cpp13
-rw-r--r--src/quicktemplates2/qquickrangeslider.cpp16
-rw-r--r--src/quicktemplates2/qquickscrollbar.cpp2
-rw-r--r--src/quicktemplates2/qquickslider.cpp12
-rw-r--r--src/quicktemplates2/qquickspinbox.cpp4
-rw-r--r--src/quicktemplates2/qquicksplitview.cpp4
-rw-r--r--src/quicktemplates2/qquicksplitview_p_p.h2
-rw-r--r--src/quicktemplates2/qquickstackview.cpp13
-rw-r--r--src/quicktemplates2/qquickstackview_p.h2
-rw-r--r--src/quicktemplates2/qquickswipedelegate.cpp16
-rw-r--r--src/quicktemplates2/qquickswitch.cpp6
-rw-r--r--src/quicktemplates2/qquickswitchdelegate.cpp6
-rw-r--r--src/quicktemplates2/qquicktabbar.cpp2
-rw-r--r--src/quicktemplates2/qquicktextfield.cpp2
88 files changed, 752 insertions, 491 deletions
diff --git a/src/imports/controls/ApplicationWindow.qml b/src/imports/controls/ApplicationWindow.qml
index 85dfd279..235ebf13 100644
--- a/src/imports/controls/ApplicationWindow.qml
+++ b/src/imports/controls/ApplicationWindow.qml
@@ -44,12 +44,4 @@ T.ApplicationWindow {
id: window
color: window.palette.window
-
- overlay.modal: Rectangle {
- color: Color.transparent(window.palette.shadow, 0.5)
- }
-
- overlay.modeless: Rectangle {
- color: Color.transparent(window.palette.shadow, 0.12)
- }
}
diff --git a/src/imports/controls/designer/ControlSection.qml b/src/imports/controls/designer/ControlSection.qml
index 7c53ac73..3446c08f 100644
--- a/src/imports/controls/designer/ControlSection.qml
+++ b/src/imports/controls/designer/ControlSection.qml
@@ -69,7 +69,7 @@ Section {
Label {
text: qsTr("Hover")
- tooltip: qsTr("Whether control accepts hover evets.")
+ tooltip: qsTr("Whether control accepts hover events.")
}
SecondColumnLayout {
CheckBox {
@@ -95,7 +95,7 @@ Section {
Label {
text: qsTr("Wheel")
- tooltip: qsTr("Whether control accepts wheel evets.")
+ tooltip: qsTr("Whether control accepts wheel events.")
}
SecondColumnLayout {
CheckBox {
diff --git a/src/imports/controls/designer/DialSpecifics.qml b/src/imports/controls/designer/DialSpecifics.qml
index fc5b5e83..a0df81ef 100644
--- a/src/imports/controls/designer/DialSpecifics.qml
+++ b/src/imports/controls/designer/DialSpecifics.qml
@@ -112,7 +112,7 @@ Column {
}
SecondColumnLayout {
ComboBox {
- backendValue: backendValues.orientation
+ backendValue: backendValues.snapMode
model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ]
scope: "Dial"
Layout.fillWidth: true
@@ -143,6 +143,18 @@ Column {
Layout.fillWidth: true
}
}
+
+ Label {
+ text: qsTr("Wrap")
+ tooltip: qsTr("Whether the dial wraps when dragged.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.wrap.valueToString
+ backendValue: backendValues.wrap
+ Layout.fillWidth: true
+ }
+ }
}
}
diff --git a/src/imports/controls/designer/InsetSection.qml b/src/imports/controls/designer/InsetSection.qml
new file mode 100644
index 00000000..4253b170
--- /dev/null
+++ b/src/imports/controls/designer/InsetSection.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 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$
+**
+****************************************************************************/
+
+import QtQuick 2.12
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.12
+
+Section {
+ caption: qsTr("Inset")
+
+ SectionLayout {
+ Label {
+ text: qsTr("Vertical")
+ }
+ SecondColumnLayout {
+ Label {
+ text: qsTr("Top")
+ tooltip: qsTr("Top inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.topInset
+ Layout.fillWidth: true
+ }
+ Item {
+ width: 4
+ height: 4
+ }
+
+ Label {
+ text: qsTr("Bottom")
+ tooltip: qsTr("Bottom inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.bottomInset
+ Layout.fillWidth: true
+ }
+ }
+
+ Label {
+ text: qsTr("Horizontal")
+ }
+ SecondColumnLayout {
+ Label {
+ text: qsTr("Left")
+ tooltip: qsTr("Left inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.leftInset
+ Layout.fillWidth: true
+ }
+ Item {
+ width: 4
+ height: 4
+ }
+
+ Label {
+ text: qsTr("Right")
+ tooltip: qsTr("Right inset for the background.")
+ width: 42
+ }
+ SpinBox {
+ maximumValue: 10000
+ minimumValue: -10000
+ realDragRange: 5000
+ decimals: 0
+ backendValue: backendValues.rightInset
+ Layout.fillWidth: true
+ }
+ }
+ }
+}
diff --git a/src/imports/controls/designer/LabelSpecifics.qml b/src/imports/controls/designer/LabelSpecifics.qml
index c832f894..e5d5e04f 100644
--- a/src/imports/controls/designer/LabelSpecifics.qml
+++ b/src/imports/controls/designer/LabelSpecifics.qml
@@ -79,4 +79,8 @@ Column {
PaddingSection {
width: parent.width
}
+
+ InsetSection {
+ width: parent.width
+ }
}
diff --git a/src/imports/controls/designer/PageIndicatorSpecifics.qml b/src/imports/controls/designer/PageIndicatorSpecifics.qml
index 042672a9..20aa8577 100644
--- a/src/imports/controls/designer/PageIndicatorSpecifics.qml
+++ b/src/imports/controls/designer/PageIndicatorSpecifics.qml
@@ -73,6 +73,18 @@ Column {
Layout.fillWidth: true
}
}
+
+ Label {
+ text: qsTr("Interactive")
+ tooltip: qsTr("Whether the control is interactive.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.interactive.valueToString
+ backendValue: backendValues.interactive
+ Layout.fillWidth: true
+ }
+ }
}
}
@@ -80,10 +92,6 @@ Column {
width: parent.width
}
- FontSection {
- width: parent.width
- }
-
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/RangeSliderSpecifics.qml b/src/imports/controls/designer/RangeSliderSpecifics.qml
index 79d2404f..2324a66f 100644
--- a/src/imports/controls/designer/RangeSliderSpecifics.qml
+++ b/src/imports/controls/designer/RangeSliderSpecifics.qml
@@ -158,6 +158,20 @@ Column {
Layout.fillWidth: true
}
}
+
+ Label {
+ text: qsTr("Touch drag threshold")
+ tooltip: qsTr("The threshold (in logical pixels) at which a touch drag event will be initiated.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: 0
+ maximumValue: 10000
+ decimals: 0
+ backendValue: backendValues.touchDragThreshold
+ Layout.fillWidth: true
+ }
+ }
}
}
diff --git a/src/imports/controls/designer/RoundButtonSpecifics.qml b/src/imports/controls/designer/RoundButtonSpecifics.qml
index 2da4cda6..af4ab5d0 100644
--- a/src/imports/controls/designer/RoundButtonSpecifics.qml
+++ b/src/imports/controls/designer/RoundButtonSpecifics.qml
@@ -42,6 +42,7 @@ Column {
width: parent.width
Section {
+ width: parent.width
caption: qsTr("RoundButton")
SectionLayout {
@@ -51,8 +52,8 @@ Column {
}
SecondColumnLayout {
SpinBox {
- maximumValue: 9999999
- minimumValue: -9999999
+ minimumValue: 0
+ maximumValue: 10000
decimals: 0
backendValue: backendValues.radius
Layout.fillWidth: true
diff --git a/src/imports/controls/designer/SliderSpecifics.qml b/src/imports/controls/designer/SliderSpecifics.qml
index 076d8a1c..d126dd06 100644
--- a/src/imports/controls/designer/SliderSpecifics.qml
+++ b/src/imports/controls/designer/SliderSpecifics.qml
@@ -143,6 +143,20 @@ Column {
Layout.fillWidth: true
}
}
+
+ Label {
+ text: qsTr("Touch drag threshold")
+ tooltip: qsTr("The threshold (in logical pixels) at which a touch drag event will be initiated.")
+ }
+ SecondColumnLayout {
+ SpinBox {
+ minimumValue: 0
+ maximumValue: 10000
+ decimals: 0
+ backendValue: backendValues.touchDragThreshold
+ Layout.fillWidth: true
+ }
+ }
}
}
diff --git a/src/imports/controls/designer/SpinBoxSpecifics.qml b/src/imports/controls/designer/SpinBoxSpecifics.qml
index d6375d7c..db59f074 100644
--- a/src/imports/controls/designer/SpinBoxSpecifics.qml
+++ b/src/imports/controls/designer/SpinBoxSpecifics.qml
@@ -113,6 +113,18 @@ Column {
Layout.fillWidth: true
}
}
+
+ Label {
+ text: qsTr("Wrap")
+ tooltip: qsTr("Whether the spinbox wraps.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.wrap.valueToString
+ backendValue: backendValues.wrap
+ Layout.fillWidth: true
+ }
+ }
}
}
diff --git a/src/imports/controls/designer/TextAreaSpecifics.qml b/src/imports/controls/designer/TextAreaSpecifics.qml
index a14584e7..f8cf92e8 100644
--- a/src/imports/controls/designer/TextAreaSpecifics.qml
+++ b/src/imports/controls/designer/TextAreaSpecifics.qml
@@ -57,6 +57,29 @@ Column {
}
}
+
+ Label {
+ text: qsTr("Hover")
+ tooltip: qsTr("Whether text area accepts hover events.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.hoverEnabled.valueToString
+ backendValue: backendValues.hoverEnabled
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ Section {
+ width: parent.width
+ caption: qsTr("Placeholder Text Color")
+
+ ColorEditor {
+ caption: qsTr("Placeholder Text Color")
+ backendValue: backendValues.placeholderTextColor
+ supportGradient: false
}
}
@@ -74,4 +97,8 @@ Column {
PaddingSection {
width: parent.width
}
+
+ InsetSection {
+ width: parent.width
+ }
}
diff --git a/src/imports/controls/designer/TextFieldSpecifics.qml b/src/imports/controls/designer/TextFieldSpecifics.qml
index 67a63ec4..f95f282c 100644
--- a/src/imports/controls/designer/TextFieldSpecifics.qml
+++ b/src/imports/controls/designer/TextFieldSpecifics.qml
@@ -57,6 +57,29 @@ Column {
}
}
+
+ Label {
+ text: qsTr("Hover")
+ tooltip: qsTr("Whether text field accepts hover events.")
+ }
+ SecondColumnLayout {
+ CheckBox {
+ text: backendValues.hoverEnabled.valueToString
+ backendValue: backendValues.hoverEnabled
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ Section {
+ width: parent.width
+ caption: qsTr("Placeholder Text Color")
+
+ ColorEditor {
+ caption: qsTr("Placeholder Text Color")
+ backendValue: backendValues.placeholderTextColor
+ supportGradient: false
}
}
@@ -71,4 +94,8 @@ Column {
PaddingSection {
width: parent.width
}
+
+ InsetSection {
+ width: parent.width
+ }
}
diff --git a/src/imports/controls/designer/designer.pri b/src/imports/controls/designer/designer.pri
index 3ad99df7..6692b203 100644
--- a/src/imports/controls/designer/designer.pri
+++ b/src/imports/controls/designer/designer.pri
@@ -17,6 +17,7 @@ AUX_QML_FILES += \
$$PWD/DialSpecifics.qml \
$$PWD/FrameSpecifics.qml \
$$PWD/GroupBoxSpecifics.qml \
+ $$PWD/InsetSection.qml \
$$PWD/ItemDelegateSection.qml \
$$PWD/ItemDelegateSpecifics.qml \
$$PWD/LabelSpecifics.qml \
diff --git a/src/imports/controls/doc/qtquickcontrols.qdocconf b/src/imports/controls/doc/qtquickcontrols.qdocconf
index d52aceb8..604b4b7d 100644
--- a/src/imports/controls/doc/qtquickcontrols.qdocconf
+++ b/src/imports/controls/doc/qtquickcontrols.qdocconf
@@ -33,7 +33,7 @@ qhp.QtQuickControls.subprojects.examples.title = Examples
qhp.QtQuickControls.subprojects.examples.indexTitle = Qt Quick Controls Examples
qhp.QtQuickControls.subprojects.examples.selectors = fake:example
-depends = qtcore qtgui qtdoc qtqml qtqmlmodels qtquick qtquickdialogs qtquickcontrols1 qtquickextras qmake qtsql qtwidgets qtlabscalendar qtlabsplatform qtgraphicaleffects
+depends = qtcore qtgui qtdoc qtqml qtqmlmodels qtquick qtquickdialogs qtquickcontrols1 qtquickextras qtsql qtwidgets qtlabscalendar qtlabsplatform qtgraphicaleffects qmake qtcmake
# Specify the install path under QT_INSTALL_EXAMPLES
# Note: paths passed to \example command must contain the parent directory, e.g.
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-overview.cmake b/src/imports/controls/doc/snippets/qtquickcontrols2-overview.cmake
new file mode 100644
index 00000000..2e9d2f3f
--- /dev/null
+++ b/src/imports/controls/doc/snippets/qtquickcontrols2-overview.cmake
@@ -0,0 +1,4 @@
+#! [0]
+find_package(Qt6 COMPONENTS QuickControls2 REQUIRED)
+target_link_libraries(mytarget Qt::QuickControls2)
+#! [0]
diff --git a/src/imports/controls/doc/src/includes/qquickicon.qdocinc b/src/imports/controls/doc/src/includes/qquickicon.qdocinc
index ba7cede9..beef5624 100644
--- a/src/imports/controls/doc/src/includes/qquickicon.qdocinc
+++ b/src/imports/controls/doc/src/includes/qquickicon.qdocinc
@@ -44,5 +44,7 @@
\li This property specifies whether the icon should be cached.
The default value is true.
+
+ This property was introduced in QtQuick.Controls 2.13.
\endtable
//! [grouped-properties]
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-cppclasses.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-cppclasses.qdoc
index 4a8ecfea..a9147086 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-cppclasses.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-cppclasses.qdoc
@@ -31,6 +31,7 @@
\title Qt Quick Controls C++ Classes
\keyword Qt Quick Controls 2 C++ Classes
\ingroup modules
+ \qtcmakepackage QuickControls2
\qtvariable quickcontrols2
\brief Provides classes for setting up the controls from C++.
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
index 5901663a..938b8d42 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc
@@ -488,9 +488,7 @@
\section2 Customizing ApplicationWindow
ApplicationWindow consists of one visual item:
- \l {ApplicationWindow::background}{background}. It is also possible
- to customize the \l {ApplicationWindow::overlay}{modal} and
- \l {ApplicationWindow::overlay}{modeless} items.
+ \l {ApplicationWindow::background}{background}.
\code \QtMinorVersion
import QtQuick 2.\1
@@ -505,14 +503,6 @@
GradientStop { position: 1; color: "#c1bbf9" }
}
}
-
- overlay.modal: Rectangle {
- color: "#8f28282a"
- }
-
- overlay.modeless: Rectangle {
- color: "#2f28282a"
- }
}
\endcode
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc
index f8cb1f52..190aafd9 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-icons.qdoc
@@ -44,6 +44,7 @@
\li \c icon.width
\li \c icon.height
\li \c icon.color
+ \li \c icon.cache
\endlist
Theme icons are referenced by a name, and regular icons by a source URL. Both
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
index ac2e9cc1..bca826fd 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-imagine.qdoc
@@ -87,11 +87,6 @@
\li active
\li .9.png (or .png)
\row
- \li
- \li overlay
- \li modal
- \li .9.png (or .png)
- \row
\li \l BusyIndicator
\li animation
\li disabled, running, mirrored, hovered
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
index fee009e6..c0047c30 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
@@ -41,7 +41,10 @@
Qt Quick Controls comes with a selection customizable styles.
See \l {Styling Qt Quick Controls} for more details.
- \section1 Prerequisites
+
+ \section1 Using the Module
+
+ \section2 QML API
The \l{Qt Quick Controls QML Types}{QML types} can be imported into your
application using the following import statement in your \c {.qml} file:
@@ -50,22 +53,27 @@
import QtQuick.Controls 2.\1
\endqml
- The \l{Qt Quick Controls C++ Classes}{C++ classes} can be included into
- your application using the following include statement:
+ \section2 C++ API
- \code
- #include <QtQuickControls2>
- \endcode
+ Using the \l{Qt Quick Controls C++ Classes}{C++ API} requires linking against the module library,
+ either directly or through other dependencies.
+ Several build tools have dedicated support for this, including CMake and qmake.
- To link against the corresponding C++ libraries, add the following to your
- qmake project file:
+ \section3 Building with CMake
+ Use the \c find_package() command to locate the needed module components in the Qt6 package:
+
+ \snippet qtquickcontrols2-overview.cmake 0
+
+ See also the \l{Build with CMake} overview.
+
+ \section3 Building with qmake
+ To configure the module for building with qmake,
+ add the module as a value of the QT variable in the project's .pro file:
\code
QT += quickcontrols2
\endcode
- For more details, see \l {Getting Started with Qt Quick Controls}.
-
\section2 Building From Source
When building from source, ensure that the \l {Qt Graphical Effects} module
@@ -145,6 +153,7 @@
\section1 Topics
\list
+ \li \l{Getting Started with Qt Quick Controls}{Getting Started}
\li \l{Qt Quick Controls Guidelines}{Guidelines}
\li \l{Styling Qt Quick Controls}{Styling}
\li \l{Icons in Qt Quick Controls}{Icons}
diff --git a/src/imports/controls/fusion/ApplicationWindow.qml b/src/imports/controls/fusion/ApplicationWindow.qml
index 30c921cb..26dfbbdf 100644
--- a/src/imports/controls/fusion/ApplicationWindow.qml
+++ b/src/imports/controls/fusion/ApplicationWindow.qml
@@ -44,12 +44,4 @@ T.ApplicationWindow {
id: window
color: window.palette.window
-
- overlay.modal: Rectangle {
- color: Fusion.topShadow
- }
-
- overlay.modeless: Rectangle {
- color: Fusion.topShadow
- }
}
diff --git a/src/imports/controls/fusion/plugins.qmltypes b/src/imports/controls/fusion/plugins.qmltypes
index 5140d1e8..681b8b90 100644
--- a/src/imports/controls/fusion/plugins.qmltypes
+++ b/src/imports/controls/fusion/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Fusion 2.14'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Fusion 2.15'
Module {
dependencies: ["QtQuick.Controls 2.0"]
diff --git a/src/imports/controls/imagine/ApplicationWindow.qml b/src/imports/controls/imagine/ApplicationWindow.qml
index 7bfcc3f9..092da1f6 100644
--- a/src/imports/controls/imagine/ApplicationWindow.qml
+++ b/src/imports/controls/imagine/ApplicationWindow.qml
@@ -43,26 +43,6 @@ import QtQuick.Controls.Imagine.impl 2.12
T.ApplicationWindow {
id: window
- // ### remove?
- overlay.modal: NinePatchImage {
- source: Imagine.url + "applicationwindow-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": true}
- ]
- }
- }
-
- // ### remove?
- overlay.modeless: NinePatchImage {
- source: Imagine.url + "applicationwindow-overlay"
- NinePatchImageSelector on source {
- states: [
- {"modal": false}
- ]
- }
- }
-
background: NinePatchImage {
width: window.width
height: window.height
diff --git a/src/imports/controls/imagine/Drawer.qml b/src/imports/controls/imagine/Drawer.qml
index 2c93ba75..8f278621 100644
--- a/src/imports/controls/imagine/Drawer.qml
+++ b/src/imports/controls/imagine/Drawer.qml
@@ -42,7 +42,7 @@ import QtQuick.Controls.Imagine.impl 2.12
T.Drawer {
id: control
- parent: T.ApplicationWindow.overlay
+ parent: T.Overlay.overlay
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
diff --git a/src/imports/controls/imagine/plugins.qmltypes b/src/imports/controls/imagine/plugins.qmltypes
index 191807ae..785b6dba 100644
--- a/src/imports/controls/imagine/plugins.qmltypes
+++ b/src/imports/controls/imagine/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Imagine 2.14'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Imagine 2.15'
Module {
dependencies: ["QtQuick.Controls 2.0"]
@@ -54,6 +54,7 @@ Module {
Property { name: "verticalAlignment"; type: "VAlignment" }
Property { name: "mipmap"; revision: 3; type: "bool" }
Property { name: "autoTransform"; revision: 5; type: "bool" }
+ Property { name: "sourceClipRect"; revision: 15; type: "QRectF" }
Signal { name: "paintedGeometryChanged" }
Signal {
name: "horizontalAlignmentChanged"
@@ -75,6 +76,14 @@ Module {
defaultProperty: "data"
prototype: "QQuickImplicitSizeItem"
Enum {
+ name: "LoadPixmapOptions"
+ values: {
+ "NoOption": 0,
+ "HandleDPR": 1,
+ "UseProviderOptions": 2
+ }
+ }
+ Enum {
name: "Status"
values: {
"Null": 0,
@@ -92,6 +101,7 @@ Module {
Property { name: "mirror"; type: "bool" }
Property { name: "currentFrame"; revision: 14; type: "int" }
Property { name: "frameCount"; revision: 14; type: "int"; isReadonly: true }
+ Property { name: "colorSpace"; revision: 15; type: "QColorSpace" }
Signal {
name: "sourceChanged"
Parameter { type: "QUrl" }
@@ -106,6 +116,8 @@ Module {
}
Signal { name: "currentFrameChanged"; revision: 14 }
Signal { name: "frameCountChanged"; revision: 14 }
+ Signal { name: "sourceClipRectChanged"; revision: 15 }
+ Signal { name: "colorSpaceChanged"; revision: 15 }
}
Component {
name: "QQuickImageSelector"
diff --git a/src/imports/controls/imagine/qquickninepatchimage.cpp b/src/imports/controls/imagine/qquickninepatchimage.cpp
index 7d5e4f71..1d6d60dd 100644
--- a/src/imports/controls/imagine/qquickninepatchimage.cpp
+++ b/src/imports/controls/imagine/qquickninepatchimage.cpp
@@ -46,22 +46,22 @@ QT_BEGIN_NAMESPACE
struct QQuickNinePatchData
{
- QVector<qreal> coordsForSize(qreal count) const;
+ QList<qreal> coordsForSize(qreal count) const;
inline bool isNull() const { return data.isEmpty(); }
inline int count() const { return data.size(); }
inline qreal at(int index) const { return data.at(index); }
inline qreal size() const { return data.last(); }
- void fill(const QVector<qreal> &coords, qreal count);
+ void fill(const QList<qreal> &coords, qreal count);
void clear();
private:
bool inverted = false;
- QVector<qreal> data;
+ QList<qreal> data;
};
-QVector<qreal> QQuickNinePatchData::coordsForSize(qreal size) const
+QList<qreal> QQuickNinePatchData::coordsForSize(qreal size) const
{
// n = number of stretchable sections
// We have to compensate when adding 0 and/or
@@ -70,7 +70,7 @@ QVector<qreal> QQuickNinePatchData::coordsForSize(qreal size) const
const int n = (inverted ? l - 1 : l) / 2;
const qreal stretch = (size - data.last()) / n;
- QVector<qreal> coords;
+ QList<qreal> coords;
coords.reserve(l);
coords.append(0);
@@ -87,7 +87,7 @@ QVector<qreal> QQuickNinePatchData::coordsForSize(qreal size) const
return coords;
}
-void QQuickNinePatchData::fill(const QVector<qreal> &coords, qreal size)
+void QQuickNinePatchData::fill(const QList<qreal> &coords, qreal size)
{
data.clear();
inverted = coords.isEmpty() || coords.first() != 0;
@@ -151,8 +151,8 @@ void QQuickNinePatchNode::initialize(QSGTexture *texture, const QSizeF &targetSi
m_geometry.allocate(xlen * ylen, verticesPerQuad * quads);
QSGGeometry::TexturedPoint2D *vertices = m_geometry.vertexDataAsTexturedPoint2D();
- QVector<qreal> xCoords = xDivs.coordsForSize(targetSize.width());
- QVector<qreal> yCoords = yDivs.coordsForSize(targetSize.height());
+ QList<qreal> xCoords = xDivs.coordsForSize(targetSize.width());
+ QList<qreal> yCoords = yDivs.coordsForSize(targetSize.height());
for (int y = 0; y < ylen; ++y) {
for (int x = 0; x < xlen; ++x, ++vertices)
@@ -189,8 +189,8 @@ class QQuickNinePatchImagePrivate : public QQuickImagePrivate
public:
void updatePatches();
- void updatePaddings(const QSizeF &size, const QVector<qreal> &horizontal, const QVector<qreal> &vertical);
- void updateInsets(const QVector<qreal> &horizontal, const QVector<qreal> &vertical);
+ void updatePaddings(const QSizeF &size, const QList<qreal> &horizontal, const QList<qreal> &vertical);
+ void updateInsets(const QList<qreal> &horizontal, const QList<qreal> &vertical);
bool resetNode = false;
qreal topPadding = 0;
@@ -207,10 +207,10 @@ public:
QQuickNinePatchData yDivs;
};
-static QVector<qreal> readCoords(const QRgb *data, int from, int count, int offset, QRgb color)
+static QList<qreal> readCoords(const QRgb *data, int from, int count, int offset, QRgb color)
{
int p1 = -1;
- QVector<qreal> coords;
+ QList<qreal> coords;
for (int i = 0; i < count; ++i) {
int p2 = from + i * offset;
if (data[p2] == color) {
@@ -243,17 +243,17 @@ void QQuickNinePatchImagePrivate::updatePatches()
xDivs.fill(readCoords(data, 1, w - 1, 1, black), w - 2); // top left -> top right
yDivs.fill(readCoords(data, w, h - 1, w, black), h - 2); // top left -> bottom left
- QVector<qreal> hInsets = readCoords(data, (h - 1) * w + 1, w - 1, 1, red); // bottom left -> bottom right
- QVector<qreal> vInsets = readCoords(data, 2 * w - 1, h - 1, w, red); // top right -> bottom right
+ QList<qreal> hInsets = readCoords(data, (h - 1) * w + 1, w - 1, 1, red); // bottom left -> bottom right
+ QList<qreal> vInsets = readCoords(data, 2 * w - 1, h - 1, w, red); // top right -> bottom right
updateInsets(hInsets, vInsets);
const QSizeF sz(w - leftInset - rightInset, h - topInset - bottomInset);
- QVector<qreal> hPaddings = readCoords(data, (h - 1) * w + leftInset + 1, sz.width() - 2, 1, black); // bottom left -> bottom right
- QVector<qreal> vPaddings = readCoords(data, (2 + topInset) * w - 1, sz.height() - 2, w, black); // top right -> bottom right
+ QList<qreal> hPaddings = readCoords(data, (h - 1) * w + leftInset + 1, sz.width() - 2, 1, black); // bottom left -> bottom right
+ QList<qreal> vPaddings = readCoords(data, (2 + topInset) * w - 1, sz.height() - 2, w, black); // top right -> bottom right
updatePaddings(sz, hPaddings, vPaddings);
}
-void QQuickNinePatchImagePrivate::updatePaddings(const QSizeF &size, const QVector<qreal> &horizontal, const QVector<qreal> &vertical)
+void QQuickNinePatchImagePrivate::updatePaddings(const QSizeF &size, const QList<qreal> &horizontal, const QList<qreal> &vertical)
{
Q_Q(QQuickNinePatchImage);
qreal oldTopPadding = topPadding;
@@ -287,7 +287,7 @@ void QQuickNinePatchImagePrivate::updatePaddings(const QSizeF &size, const QVect
emit q->rightPaddingChanged();
}
-void QQuickNinePatchImagePrivate::updateInsets(const QVector<qreal> &horizontal, const QVector<qreal> &vertical)
+void QQuickNinePatchImagePrivate::updateInsets(const QList<qreal> &horizontal, const QList<qreal> &vertical)
{
Q_Q(QQuickNinePatchImage);
qreal oldTopInset = topInset;
diff --git a/src/imports/controls/material/ApplicationWindow.qml b/src/imports/controls/material/ApplicationWindow.qml
index 6a10ed7f..5b8cefac 100644
--- a/src/imports/controls/material/ApplicationWindow.qml
+++ b/src/imports/controls/material/ApplicationWindow.qml
@@ -43,14 +43,4 @@ T.ApplicationWindow {
id: window
color: Material.backgroundColor
-
- overlay.modal: Rectangle {
- color: window.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
-
- overlay.modeless: Rectangle {
- color: window.Material.backgroundDimColor
- Behavior on opacity { NumberAnimation { duration: 150 } }
- }
}
diff --git a/src/imports/controls/material/ComboBox.qml b/src/imports/controls/material/ComboBox.qml
index e4e5f935..a9bdd934 100644
--- a/src/imports/controls/material/ComboBox.qml
+++ b/src/imports/controls/material/ComboBox.qml
@@ -65,7 +65,7 @@ T.ComboBox {
delegate: MenuItem {
width: ListView.view.width
text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData
- Material.foreground: control.currentIndex === index ? parent.Material.accent : parent.Material.foreground
+ Material.foreground: control.currentIndex === index ? ListView.view.contentItem.Material.accent : ListView.view.contentItem.Material.foreground
highlighted: control.highlightedIndex === index
hoverEnabled: control.hoverEnabled
}
diff --git a/src/imports/controls/material/plugins.qmltypes b/src/imports/controls/material/plugins.qmltypes
index 7546a7b0..e290e0ea 100644
--- a/src/imports/controls/material/plugins.qmltypes
+++ b/src/imports/controls/material/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Material 2.14'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Material 2.15'
Module {
dependencies: ["QtQuick.Controls 2.0"]
@@ -328,6 +328,7 @@ Module {
Property { name: "toolBarColor"; type: "QColor"; isReadonly: true }
Property { name: "toolTextColor"; type: "QColor"; isReadonly: true }
Property { name: "spinBoxDisabledIconColor"; type: "QColor"; isReadonly: true }
+ Property { name: "sliderDisabledColor"; revision: 15; type: "QColor"; isReadonly: true }
Property { name: "touchTarget"; type: "int"; isReadonly: true }
Property { name: "buttonHeight"; type: "int"; isReadonly: true }
Property { name: "delegateHeight"; type: "int"; isReadonly: true }
diff --git a/src/imports/controls/material/qquickmaterialstyle.cpp b/src/imports/controls/material/qquickmaterialstyle.cpp
index 35afeb00..08f47990 100644
--- a/src/imports/controls/material/qquickmaterialstyle.cpp
+++ b/src/imports/controls/material/qquickmaterialstyle.cpp
@@ -661,6 +661,7 @@ void QQuickMaterialStyle::setForeground(const QVariant &var)
m_foreground = foreground;
propagateForeground();
emit foregroundChanged();
+ emit paletteChanged();
}
void QQuickMaterialStyle::inheritForeground(uint foreground, bool custom, bool has)
diff --git a/src/imports/controls/plugins.qmltypes b/src/imports/controls/plugins.qmltypes
index c3e53431..e8212c55 100644
--- a/src/imports/controls/plugins.qmltypes
+++ b/src/imports/controls/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls 2.14'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls 2.15'
Module {
dependencies: [
@@ -589,6 +589,14 @@ Module {
defaultProperty: "contentData"
}
Component {
+ prototype: "QQuickHorizontalHeaderView"
+ name: "QtQuick.Controls/HorizontalHeaderView 2.15"
+ exports: ["QtQuick.Controls/HorizontalHeaderView 2.15"]
+ exportMetaObjectRevisions: [15]
+ isComposite: true
+ defaultProperty: "flickableData"
+ }
+ Component {
prototype: "QQuickItemDelegate"
name: "QtQuick.Controls/ItemDelegate 2.0"
exports: ["QtQuick.Controls/ItemDelegate 2.0"]
@@ -876,4 +884,12 @@ Module {
isComposite: true
defaultProperty: "data"
}
+ Component {
+ prototype: "QQuickVerticalHeaderView"
+ name: "QtQuick.Controls/VerticalHeaderView 2.15"
+ exports: ["QtQuick.Controls/VerticalHeaderView 2.15"]
+ exportMetaObjectRevisions: [15]
+ isComposite: true
+ defaultProperty: "flickableData"
+ }
}
diff --git a/src/imports/controls/universal/ApplicationWindow.qml b/src/imports/controls/universal/ApplicationWindow.qml
index 153b9e8e..80cda477 100644
--- a/src/imports/controls/universal/ApplicationWindow.qml
+++ b/src/imports/controls/universal/ApplicationWindow.qml
@@ -45,14 +45,6 @@ T.ApplicationWindow {
color: Universal.background
- overlay.modal: Rectangle {
- color: window.Universal.baseLowColor
- }
-
- overlay.modeless: Rectangle {
- color: window.Universal.baseLowColor
- }
-
FocusRectangle {
parent: window.activeFocusControl
width: parent ? parent.width : 0
diff --git a/src/imports/controls/universal/plugins.qmltypes b/src/imports/controls/universal/plugins.qmltypes
index 1734c01b..c38e39e1 100644
--- a/src/imports/controls/universal/plugins.qmltypes
+++ b/src/imports/controls/universal/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Universal 2.14'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Controls.Universal 2.15'
Module {
dependencies: ["QtQuick.Controls 2.0"]
diff --git a/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp b/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp
index 88b78e10..51508c6f 100644
--- a/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp
+++ b/src/imports/controls/universal/qquickuniversalfocusrectangle.cpp
@@ -72,7 +72,7 @@ void QQuickUniversalFocusRectangle::paint(QPainter *painter)
p.drawRect(bounds);
pen.setColor(Qt::black);
- pen.setDashPattern(QVector<qreal>(2, 1));
+ pen.setDashPattern(QList<qreal>(2, 1));
p.setPen(pen);
p.drawRect(bounds);
diff --git a/src/imports/platform/qquickplatformfiledialog.cpp b/src/imports/platform/qquickplatformfiledialog.cpp
index 2ef08ef6..3b9ceab2 100644
--- a/src/imports/platform/qquickplatformfiledialog.cpp
+++ b/src/imports/platform/qquickplatformfiledialog.cpp
@@ -36,7 +36,7 @@
#include "qquickplatformfiledialog_p.h"
-#include <QtCore/qvector.h>
+#include <QtCore/qlist.h>
QT_BEGIN_NAMESPACE
@@ -86,7 +86,6 @@ QT_BEGIN_NAMESPACE
\li Linux (when running with the GTK+ platform theme)
\li macOS
\li Windows
- \li WinRT
\endlist
\input includes/widgets.qdocinc 1
@@ -611,21 +610,21 @@ static QString extractName(const QString &filter)
return filter.left(filter.indexOf(QLatin1Char('(')) - 1);
}
-static QString extractExtension(const QString &filter)
+static QString extractExtension(QStringView filter)
{
- return filter.mid(filter.indexOf(QLatin1Char('.')) + 1);
+ return filter.mid(filter.indexOf(QLatin1Char('.')) + 1).toString();
}
-static QStringList extractExtensions(const QString &filter)
+static QStringList extractExtensions(QStringView filter)
{
QStringList extensions;
const int from = filter.indexOf(QLatin1Char('('));
const int to = filter.lastIndexOf(QLatin1Char(')')) - 1;
if (from >= 0 && from < to) {
- const QStringRef ref = filter.midRef(from + 1, to - from);
- const QVector<QStringRef> exts = ref.split(QLatin1Char(' '), Qt::SkipEmptyParts);
- for (const QStringRef &ref : exts)
- extensions += extractExtension(ref.toString());
+ const QStringView ref = filter.mid(from + 1, to - from);
+ const QList<QStringView> exts = ref.split(QLatin1Char(' '), Qt::SkipEmptyParts);
+ for (const QStringView &ref : exts)
+ extensions += extractExtension(ref);
}
return extensions;
diff --git a/src/imports/platform/qquickplatformfolderdialog.cpp b/src/imports/platform/qquickplatformfolderdialog.cpp
index 4ae6341e..a28dc828 100644
--- a/src/imports/platform/qquickplatformfolderdialog.cpp
+++ b/src/imports/platform/qquickplatformfolderdialog.cpp
@@ -83,7 +83,6 @@ QT_BEGIN_NAMESPACE
\li Linux (when running with the GTK+ platform theme)
\li macOS
\li Windows
- \li WinRT
\endlist
\input includes/widgets.qdocinc 1
diff --git a/src/imports/platform/qquickplatformmenu.cpp b/src/imports/platform/qquickplatformmenu.cpp
index 8954d439..7219ef54 100644
--- a/src/imports/platform/qquickplatformmenu.cpp
+++ b/src/imports/platform/qquickplatformmenu.cpp
@@ -419,8 +419,7 @@ QQuickPlatformMenuItem *QQuickPlatformMenu::menuItem() const
m_menuItem = new QQuickPlatformMenuItem(that);
m_menuItem->setSubMenu(that);
m_menuItem->setText(m_title);
- m_menuItem->setIconName(iconName());
- m_menuItem->setIconSource(iconSource());
+ m_menuItem->setIcon(icon());
m_menuItem->setVisible(m_visible);
m_menuItem->setEnabled(m_enabled);
m_menuItem->componentComplete();
@@ -542,51 +541,6 @@ void QQuickPlatformMenu::setTitle(const QString &title)
}
/*!
- \qmlproperty url Qt.labs.platform::Menu::iconSource
- \deprecated Use icon.source instead
-*/
-QUrl QQuickPlatformMenu::iconSource() const
-{
- return icon().source();
-}
-
-void QQuickPlatformMenu::setIconSource(const QUrl& source)
-{
- QQuickPlatformIcon newIcon = icon();
- if (source == newIcon.source())
- return;
-
- if (m_menuItem)
- m_menuItem->setIconSource(source);
-
- newIcon.setSource(source);
- iconLoader()->setIcon(newIcon);
- emit iconSourceChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::Menu::iconName
- \deprecated Use icon.name instead
-*/
-QString QQuickPlatformMenu::iconName() const
-{
- return icon().name();
-}
-
-void QQuickPlatformMenu::setIconName(const QString& name)
-{
- QQuickPlatformIcon newIcon = icon();
- if (name == newIcon.name())
- return;
-
- if (m_menuItem)
- m_menuItem->setIconName(name);
-
- newIcon.setName(name);
- iconLoader()->setIcon(newIcon);
- emit iconNameChanged();}
-
-/*!
\qmlproperty font Qt.labs.platform::Menu::font
This property holds the menu's font.
diff --git a/src/imports/platform/qquickplatformmenu_p.h b/src/imports/platform/qquickplatformmenu_p.h
index eb18f66b..089e1f89 100644
--- a/src/imports/platform/qquickplatformmenu_p.h
+++ b/src/imports/platform/qquickplatformmenu_p.h
@@ -85,8 +85,6 @@ class QQuickPlatformMenu : public QObject, public QQmlParserStatus
Q_PROPERTY(int minimumWidth READ minimumWidth WRITE setMinimumWidth NOTIFY minimumWidthChanged FINAL)
Q_PROPERTY(QPlatformMenu::MenuType type READ type WRITE setType NOTIFY typeChanged FINAL)
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged FINAL)
- Q_PROPERTY(QUrl iconSource READ iconSource WRITE setIconSource NOTIFY iconSourceChanged FINAL)
- Q_PROPERTY(QString iconName READ iconName WRITE setIconName NOTIFY iconNameChanged FINAL)
Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged FINAL)
Q_PROPERTY(QQuickPlatformIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL REVISION 1)
Q_ENUMS(QPlatformMenu::MenuType)
@@ -130,12 +128,6 @@ public:
QString title() const;
void setTitle(const QString &title);
- QUrl iconSource() const;
- void setIconSource(const QUrl &source);
-
- QString iconName() const;
- void setIconName(const QString &name);
-
QFont font() const;
void setFont(const QFont &font);
@@ -165,8 +157,6 @@ Q_SIGNALS:
void parentMenuChanged();
void systemTrayIconChanged();
void titleChanged();
- void iconSourceChanged();
- void iconNameChanged();
void enabledChanged();
void visibleChanged();
void minimumWidthChanged();
diff --git a/src/imports/platform/qquickplatformmenuitem.cpp b/src/imports/platform/qquickplatformmenuitem.cpp
index b63f7202..11cf98b4 100644
--- a/src/imports/platform/qquickplatformmenuitem.cpp
+++ b/src/imports/platform/qquickplatformmenuitem.cpp
@@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE
\image qtlabsplatform-menu.png
- A menu item consists of an \l {iconSource}{icon}, \l text, and \l shortcut.
+ A menu item consists of an \l icon, \l text, and \l shortcut.
\code
Menu {
@@ -458,46 +458,6 @@ void QQuickPlatformMenuItem::setText(const QString &text)
}
/*!
- \qmlproperty url Qt.labs.platform::MenuItem::iconSource
- \deprecated Use icon.source instead
-*/
-QUrl QQuickPlatformMenuItem::iconSource() const
-{
- return icon().source();
-}
-
-void QQuickPlatformMenuItem::setIconSource(const QUrl& source)
-{
- QQuickPlatformIcon newIcon = icon();
- if (source == newIcon.source())
- return;
-
- newIcon.setSource(source);
- iconLoader()->setIcon(newIcon);
- emit iconSourceChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::MenuItem::iconName
- \deprecated Use icon.name instead
-*/
-QString QQuickPlatformMenuItem::iconName() const
-{
- return icon().name();
-}
-
-void QQuickPlatformMenuItem::setIconName(const QString& name)
-{
- QQuickPlatformIcon newIcon = icon();
- if (name == newIcon.name())
- return;
-
- newIcon.setName(name);
- iconLoader()->setIcon(newIcon);
- emit iconNameChanged();
-}
-
-/*!
\qmlproperty keysequence Qt.labs.platform::MenuItem::shortcut
This property holds the menu item's shortcut.
diff --git a/src/imports/platform/qquickplatformmenuitem_p.h b/src/imports/platform/qquickplatformmenuitem_p.h
index e3d5258a..c1e6cc30 100644
--- a/src/imports/platform/qquickplatformmenuitem_p.h
+++ b/src/imports/platform/qquickplatformmenuitem_p.h
@@ -78,8 +78,6 @@ class QQuickPlatformMenuItem : public QObject, public QQmlParserStatus
Q_PROPERTY(bool checked READ isChecked WRITE setChecked NOTIFY checkedChanged FINAL)
Q_PROPERTY(QPlatformMenuItem::MenuRole role READ role WRITE setRole NOTIFY roleChanged FINAL)
Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged FINAL)
- Q_PROPERTY(QUrl iconSource READ iconSource WRITE setIconSource NOTIFY iconSourceChanged FINAL)
- Q_PROPERTY(QString iconName READ iconName WRITE setIconName NOTIFY iconNameChanged FINAL)
Q_PROPERTY(QVariant shortcut READ shortcut WRITE setShortcut NOTIFY shortcutChanged FINAL)
Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged FINAL)
Q_PROPERTY(QQuickPlatformIcon icon READ icon WRITE setIcon NOTIFY iconChanged FINAL REVISION 1)
@@ -123,12 +121,6 @@ public:
QString text() const;
void setText(const QString &text);
- QUrl iconSource() const;
- void setIconSource(const QUrl &source);
-
- QString iconName() const;
- void setIconName(const QString &name);
-
QVariant shortcut() const;
void setShortcut(const QVariant& shortcut);
@@ -155,8 +147,6 @@ Q_SIGNALS:
void checkedChanged();
void roleChanged();
void textChanged();
- void iconSourceChanged();
- void iconNameChanged();
void shortcutChanged();
void fontChanged();
Q_REVISION(1) void iconChanged();
diff --git a/src/imports/platform/qquickplatformmenuitemgroup_p.h b/src/imports/platform/qquickplatformmenuitemgroup_p.h
index 8b3531d9..57499347 100644
--- a/src/imports/platform/qquickplatformmenuitemgroup_p.h
+++ b/src/imports/platform/qquickplatformmenuitemgroup_p.h
@@ -49,7 +49,7 @@
//
#include <QtCore/qobject.h>
-#include <QtCore/qvector.h>
+#include <QtCore/qlist.h>
#include <QtQml/qqml.h>
QT_BEGIN_NAMESPACE
@@ -113,7 +113,7 @@ private:
bool m_visible;
bool m_exclusive;
QQuickPlatformMenuItem *m_checkedItem;
- QVector<QQuickPlatformMenuItem*> m_items;
+ QList<QQuickPlatformMenuItem*> m_items;
};
QT_END_NAMESPACE
diff --git a/src/imports/platform/qquickplatformmessagedialog.cpp b/src/imports/platform/qquickplatformmessagedialog.cpp
index 075b4d62..f2e0970c 100644
--- a/src/imports/platform/qquickplatformmessagedialog.cpp
+++ b/src/imports/platform/qquickplatformmessagedialog.cpp
@@ -99,7 +99,6 @@ QT_BEGIN_NAMESPACE
\list
\li iOS
\li Android
- \li WinRT
\endlist
\input includes/widgets.qdocinc 1
diff --git a/src/imports/platform/qquickplatformsystemtrayicon.cpp b/src/imports/platform/qquickplatformsystemtrayicon.cpp
index 4a96b38f..1631e449 100644
--- a/src/imports/platform/qquickplatformsystemtrayicon.cpp
+++ b/src/imports/platform/qquickplatformsystemtrayicon.cpp
@@ -253,48 +253,6 @@ void QQuickPlatformSystemTrayIcon::setVisible(bool visible)
}
/*!
- \qmlproperty url Qt.labs.platform::SystemTrayIcon::iconSource
- \deprecated Use icon.source instead.
- \sa icon
-*/
-QUrl QQuickPlatformSystemTrayIcon::iconSource() const
-{
- return icon().source();
-}
-
-void QQuickPlatformSystemTrayIcon::setIconSource(const QUrl& source)
-{
- QQuickPlatformIcon newIcon = icon();
- if (source == newIcon.source())
- return;
-
- newIcon.setSource(source);
- iconLoader()->setIcon(newIcon);
- emit iconSourceChanged();
-}
-
-/*!
- \qmlproperty string Qt.labs.platform::SystemTrayIcon::iconName
- \deprecated Use icon.name instead.
- \sa icon
-*/
-QString QQuickPlatformSystemTrayIcon::iconName() const
-{
- return icon().name();
-}
-
-void QQuickPlatformSystemTrayIcon::setIconName(const QString& name)
-{
- QQuickPlatformIcon newIcon = icon();
- if (name == newIcon.name())
- return;
-
- newIcon.setName(name);
- iconLoader()->setIcon(newIcon);
- emit iconNameChanged();
-}
-
-/*!
\qmlproperty string Qt.labs.platform::SystemTrayIcon::tooltip
This property holds the tooltip of the system tray icon.
diff --git a/src/imports/platform/qquickplatformsystemtrayicon_p.h b/src/imports/platform/qquickplatformsystemtrayicon_p.h
index e43366cb..0216aee3 100644
--- a/src/imports/platform/qquickplatformsystemtrayicon_p.h
+++ b/src/imports/platform/qquickplatformsystemtrayicon_p.h
@@ -70,8 +70,6 @@ class QQuickPlatformSystemTrayIcon : public QObject, public QQmlParserStatus
Q_PROPERTY(bool available READ isAvailable CONSTANT FINAL)
Q_PROPERTY(bool supportsMessages READ supportsMessages CONSTANT FINAL)
Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibleChanged FINAL)
- Q_PROPERTY(QUrl iconSource READ iconSource WRITE setIconSource NOTIFY iconSourceChanged FINAL)
- Q_PROPERTY(QString iconName READ iconName WRITE setIconName NOTIFY iconNameChanged FINAL)
Q_PROPERTY(QString tooltip READ tooltip WRITE setTooltip NOTIFY tooltipChanged FINAL)
Q_PROPERTY(QQuickPlatformMenu *menu READ menu WRITE setMenu NOTIFY menuChanged FINAL)
Q_PROPERTY(QRect geometry READ geometry NOTIFY geometryChanged FINAL REVISION 1)
@@ -90,12 +88,6 @@ public:
bool isVisible() const;
void setVisible(bool visible);
- QUrl iconSource() const;
- void setIconSource(const QUrl &source);
-
- QString iconName() const;
- void setIconName(const QString &name);
-
QString tooltip() const;
void setTooltip(const QString &tooltip);
@@ -118,8 +110,6 @@ Q_SIGNALS:
void activated(QPlatformSystemTrayIcon::ActivationReason reason);
void messageClicked();
void visibleChanged();
- void iconSourceChanged();
- void iconNameChanged();
void tooltipChanged();
void menuChanged();
Q_REVISION(1) void geometryChanged();
diff --git a/src/imports/platform/widgets/qwidgetplatform_p.h b/src/imports/platform/widgets/qwidgetplatform_p.h
index c203406c..cbdaa24a 100644
--- a/src/imports/platform/widgets/qwidgetplatform_p.h
+++ b/src/imports/platform/widgets/qwidgetplatform_p.h
@@ -111,8 +111,8 @@ namespace QWidgetPlatform
if (available)
return new T(parent);
#else
- Q_UNUSED(parent)
- Q_UNUSED(available)
+ Q_UNUSED(parent);
+ Q_UNUSED(available);
#endif
return nullptr;
}
diff --git a/src/imports/platform/widgets/qwidgetplatformmenu_p.h b/src/imports/platform/widgets/qwidgetplatformmenu_p.h
index 4d58f528..9d1ef57e 100644
--- a/src/imports/platform/widgets/qwidgetplatformmenu_p.h
+++ b/src/imports/platform/widgets/qwidgetplatformmenu_p.h
@@ -90,7 +90,7 @@ public:
private:
QScopedPointer<QMenu> m_menu;
- QVector<QWidgetPlatformMenuItem *> m_items;
+ QList<QWidgetPlatformMenuItem *> m_items;
};
QT_END_NAMESPACE
diff --git a/src/imports/templates/plugins.qmltypes b/src/imports/templates/plugins.qmltypes
index da81e095..42c04c80 100644
--- a/src/imports/templates/plugins.qmltypes
+++ b/src/imports/templates/plugins.qmltypes
@@ -4,7 +4,7 @@ import QtQuick.tooling 1.2
// It is used for QML tooling purposes only.
//
// This file was auto-generated by:
-// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Templates 2.14'
+// 'qmlplugindump -nonrelocatable -dependencies dependencies.json QtQuick.Templates 2.15'
Module {
dependencies: ["QtQuick 2.9", "QtQuick.Window 2.2"]
@@ -273,10 +273,11 @@ Module {
"QtQuick.Templates/ComboBox 2.0",
"QtQuick.Templates/ComboBox 2.1",
"QtQuick.Templates/ComboBox 2.14",
+ "QtQuick.Templates/ComboBox 2.15",
"QtQuick.Templates/ComboBox 2.2",
"QtQuick.Templates/ComboBox 2.5"
]
- exportMetaObjectRevisions: [0, 1, 14, 2, 5]
+ exportMetaObjectRevisions: [0, 1, 14, 15, 2, 5]
Property { name: "count"; type: "int"; isReadonly: true }
Property { name: "model"; type: "QVariant" }
Property { name: "delegateModel"; type: "QQmlInstanceModel"; isReadonly: true; isPointer: true }
@@ -301,6 +302,7 @@ Module {
Property { name: "implicitIndicatorHeight"; revision: 5; type: "double"; isReadonly: true }
Property { name: "currentValue"; revision: 14; type: "QVariant"; isReadonly: true }
Property { name: "valueRole"; revision: 14; type: "string" }
+ Property { name: "selectTextByMouse"; revision: 15; type: "bool" }
Signal {
name: "activated"
Parameter { name: "index"; type: "int" }
@@ -322,6 +324,7 @@ Module {
Signal { name: "implicitIndicatorHeightChanged"; revision: 5 }
Signal { name: "valueRoleChanged"; revision: 14 }
Signal { name: "currentValueChanged"; revision: 14 }
+ Signal { name: "selectTextByMouseChanged"; revision: 15 }
Method { name: "incrementCurrentIndex" }
Method { name: "decrementCurrentIndex" }
Method { name: "selectAll"; revision: 2 }
@@ -651,6 +654,20 @@ Module {
Signal { name: "implicitLabelHeightChanged"; revision: 5 }
}
Component {
+ name: "QQuickHeaderViewBase"
+ defaultProperty: "flickableData"
+ prototype: "QQuickTableView"
+ Property { name: "textRole"; type: "string" }
+ }
+ Component {
+ name: "QQuickHorizontalHeaderView"
+ defaultProperty: "flickableData"
+ prototype: "QQuickHeaderViewBase"
+ exports: ["QtQuick.Templates/HorizontalHeaderView 2.15"]
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickTableViewAttached"
+ }
+ Component {
name: "QQuickIcon"
Property { name: "name"; type: "string" }
Property { name: "source"; type: "QUrl" }
@@ -1265,7 +1282,6 @@ Module {
prototype: "QObject"
Property { name: "centerIn"; type: "QQuickItem"; isPointer: true }
}
- Component { name: "QQuickPopupItem"; defaultProperty: "contentData"; prototype: "QQuickPage" }
Component {
name: "QQuickProgressBar"
defaultProperty: "data"
@@ -1355,19 +1371,6 @@ Module {
Method { name: "decrease" }
}
Component {
- name: "QQuickRootItem"
- defaultProperty: "data"
- prototype: "QQuickItem"
- Method {
- name: "setWidth"
- Parameter { name: "w"; type: "int" }
- }
- Method {
- name: "setHeight"
- Parameter { name: "h"; type: "int" }
- }
- }
- Component {
name: "QQuickRoundButton"
defaultProperty: "data"
prototype: "QQuickButton"
@@ -1852,6 +1855,37 @@ Module {
exportMetaObjectRevisions: [0]
}
Component {
+ name: "QQuickTableView"
+ defaultProperty: "flickableData"
+ prototype: "QQuickFlickable"
+ exports: ["QtQuick.Templates/__TableView__ 2.15"]
+ exportMetaObjectRevisions: [15]
+ attachedType: "QQuickTableViewAttached"
+ Property { name: "rows"; type: "int"; isReadonly: true }
+ Property { name: "columns"; type: "int"; isReadonly: true }
+ Property { name: "rowSpacing"; type: "double" }
+ Property { name: "columnSpacing"; type: "double" }
+ Property { name: "rowHeightProvider"; type: "QJSValue" }
+ Property { name: "columnWidthProvider"; type: "QJSValue" }
+ Property { name: "model"; type: "QVariant" }
+ Property { name: "delegate"; type: "QQmlComponent"; isPointer: true }
+ Property { name: "reuseItems"; type: "bool" }
+ Property { name: "contentWidth"; type: "double" }
+ Property { name: "contentHeight"; type: "double" }
+ Property { name: "syncView"; revision: 14; type: "QQuickTableView"; isPointer: true }
+ Property { name: "syncDirection"; revision: 14; type: "Qt::Orientations" }
+ Signal { name: "syncViewChanged"; revision: 14 }
+ Signal { name: "syncDirectionChanged"; revision: 14 }
+ Method { name: "forceLayout" }
+ }
+ Component {
+ name: "QQuickTableViewAttached"
+ prototype: "QObject"
+ Property { name: "view"; type: "QQuickTableView"; isReadonly: true; isPointer: true }
+ Signal { name: "pooled" }
+ Signal { name: "reused" }
+ }
+ Component {
name: "QQuickText"
defaultProperty: "data"
prototype: "QQuickImplicitSizeItem"
@@ -2794,6 +2828,14 @@ Module {
Property { name: "displacement"; type: "double"; isReadonly: true }
}
Component {
+ name: "QQuickVerticalHeaderView"
+ defaultProperty: "flickableData"
+ prototype: "QQuickHeaderViewBase"
+ exports: ["QtQuick.Templates/VerticalHeaderView 2.15"]
+ exportMetaObjectRevisions: [0]
+ attachedType: "QQuickTableViewAttached"
+ }
+ Component {
name: "QQuickWindow"
defaultProperty: "data"
prototype: "QWindow"
@@ -3018,6 +3060,12 @@ Module {
Method { name: "raise" }
Method { name: "lower" }
Method {
+ name: "startSystemResize"
+ type: "bool"
+ Parameter { name: "edges"; type: "Qt::Edges" }
+ }
+ Method { name: "startSystemMove"; type: "bool" }
+ Method {
name: "setTitle"
Parameter { type: "string" }
}
diff --git a/src/quickcontrols2/configure.cmake b/src/quickcontrols2/configure.cmake
index 768a7c8c..456b3e37 100644
--- a/src/quickcontrols2/configure.cmake
+++ b/src/quickcontrols2/configure.cmake
@@ -14,30 +14,37 @@
#### Features
-qt_feature("quickcontrols2_default" PRIVATE
+qt_feature("quickcontrols2-default" PRIVATE
LABEL "Default"
)
-qt_feature("quickcontrols2_fusion" PRIVATE
+qt_feature("quickcontrols2-fusion" PRIVATE
SECTION "Quick Controls 2"
LABEL "Fusion"
PURPOSE "Provides the platform agnostic desktop-oriented Fusion style."
CONDITION QT_FEATURE_quickcontrols2_default
)
-qt_feature("quickcontrols2_imagine" PRIVATE
+qt_feature("quickcontrols2-imagine" PRIVATE
SECTION "Quick Controls 2"
LABEL "Imagine"
PURPOSE "Provides a style based on configurable image assets."
CONDITION QT_FEATURE_quickcontrols2_default
)
-qt_feature("quickcontrols2_material" PRIVATE
+qt_feature("quickcontrols2-material" PRIVATE
SECTION "Quick Controls 2"
LABEL "Material"
PURPOSE "Provides a style based on the Material Design guidelines."
CONDITION QT_FEATURE_quickcontrols2_default
)
-qt_feature("quickcontrols2_universal" PRIVATE
+qt_feature("quickcontrols2-universal" PRIVATE
SECTION "Quick Controls 2"
LABEL "Universal"
PURPOSE "Provides a style based on the Universal Design guidelines."
CONDITION QT_FEATURE_quickcontrols2_default
)
+qt_configure_add_summary_section(NAME "Qt Quick Controls 2")
+qt_configure_add_summary_entry(
+ TYPE "featureList"
+ ARGS "quickcontrols2-default quickcontrols2-fusion quickcontrols2-imagine quickcontrols2-material quickcontrols2-universal"
+ MESSAGE "Styles"
+)
+qt_configure_end_summary_section() # end of "Qt Quick Controls 2" section
diff --git a/src/quickcontrols2/qquickmnemoniclabel.cpp b/src/quickcontrols2/qquickmnemoniclabel.cpp
index 193365b5..309d076a 100644
--- a/src/quickcontrols2/qquickmnemoniclabel.cpp
+++ b/src/quickcontrols2/qquickmnemoniclabel.cpp
@@ -92,7 +92,7 @@ void QQuickMnemonicLabel::updateMnemonic()
int idx = 0;
int pos = 0;
int len = m_fullText.length();
- QVector<QTextLayout::FormatRange> formats;
+ QList<QTextLayout::FormatRange> formats;
while (len) {
if (m_fullText.at(pos) == QLatin1Char('&') && (len == 1 || m_fullText.at(pos + 1) != QLatin1Char('&'))) {
if (m_mnemonicVisible && (pos == 0 || m_fullText.at(pos - 1) != QLatin1Char('&')))
diff --git a/src/quickcontrols2/qquickstyle.cpp b/src/quickcontrols2/qquickstyle.cpp
index e1cf4bfe..6e1f17b1 100644
--- a/src/quickcontrols2/qquickstyle.cpp
+++ b/src/quickcontrols2/qquickstyle.cpp
@@ -578,7 +578,8 @@ void QQuickStyle::setStyle(const QString &style)
{
qCDebug(lcQtQuickControlsStyle) << "setStyle called with" << style;
- if (QQmlMetaType::isModule(QStringLiteral("QtQuick.Controls"), QTypeRevision::fromVersion(2, 0))) {
+ if (QQmlMetaType::matchingModuleVersion(
+ QStringLiteral("QtQuick.Controls"), QTypeRevision::fromVersion(2, 0)).isValid()) {
qWarning() << "ERROR: QQuickStyle::setStyle() must be called before loading QML that imports Qt Quick Controls 2.";
return;
}
@@ -602,7 +603,8 @@ void QQuickStyle::setStyle(const QString &style)
*/
void QQuickStyle::setFallbackStyle(const QString &style)
{
- if (QQmlMetaType::isModule(QStringLiteral("QtQuick.Controls"), QTypeRevision::fromVersion(2, 0))) {
+ if (QQmlMetaType::matchingModuleVersion(
+ QStringLiteral("QtQuick.Controls"), QTypeRevision::fromVersion(2, 0)).isValid()) {
qWarning() << "ERROR: QQuickStyle::setFallbackStyle() must be called before loading QML that imports Qt Quick Controls 2.";
return;
}
diff --git a/src/quickcontrols2/qquickstyleplugin.cpp b/src/quickcontrols2/qquickstyleplugin.cpp
index c35c8735..9bbaad11 100644
--- a/src/quickcontrols2/qquickstyleplugin.cpp
+++ b/src/quickcontrols2/qquickstyleplugin.cpp
@@ -63,7 +63,7 @@ QString QQuickStylePlugin::name() const
void QQuickStylePlugin::initializeTheme(QQuickTheme *theme)
{
- Q_UNUSED(theme)
+ Q_UNUSED(theme);
}
void QQuickStylePlugin::unregisterTypes()
diff --git a/src/quicktemplates2/configure.cmake b/src/quicktemplates2/configure.cmake
index 6ccd920c..4e097569 100644
--- a/src/quicktemplates2/configure.cmake
+++ b/src/quicktemplates2/configure.cmake
@@ -14,13 +14,17 @@
#### Features
-qt_feature("quicktemplates2_hover" PRIVATE
+qt_feature("quicktemplates2-hover" PRIVATE
SECTION "Quick Templates 2"
LABEL "Hover support"
PURPOSE "Provides support for hover effects."
)
-qt_feature("quicktemplates2_multitouch" PRIVATE
+qt_feature("quicktemplates2-multitouch" PRIVATE
SECTION "Quick Templates 2"
LABEL "Multi-touch support"
PURPOSE "Provides support for multi-touch."
)
+qt_configure_add_summary_section(NAME "Qt Quick Templates 2")
+qt_configure_add_summary_entry(ARGS "quicktemplates2-hover")
+qt_configure_add_summary_entry(ARGS "quicktemplates2-multitouch")
+qt_configure_end_summary_section() # end of "Qt Quick Templates 2" section
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp
index 8a61e570..0c481d01 100644
--- a/src/quicktemplates2/qquickabstractbutton.cpp
+++ b/src/quicktemplates2/qquickabstractbutton.cpp
@@ -748,6 +748,7 @@ void QQuickAbstractButton::setIndicator(QQuickItem *indicator)
\qmlproperty int QtQuick.Controls::AbstractButton::icon.width
\qmlproperty int QtQuick.Controls::AbstractButton::icon.height
\qmlproperty color QtQuick.Controls::AbstractButton::icon.color
+ \qmlproperty bool QtQuick.Controls::AbstractButton::icon.cache
This property group was added in QtQuick.Controls 2.3.
diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp
index 0b083339..0dab3b97 100644
--- a/src/quicktemplates2/qquickaction.cpp
+++ b/src/quicktemplates2/qquickaction.cpp
@@ -387,6 +387,7 @@ void QQuickAction::setText(const QString &text)
\qmlproperty int QtQuick.Controls::Action::icon.width
\qmlproperty int QtQuick.Controls::Action::icon.height
\qmlproperty color QtQuick.Controls::Action::icon.color
+ \qmlproperty bool QtQuick.Controls::Action::icon.cache
\include qquickicon.qdocinc grouped-properties
*/
diff --git a/src/quicktemplates2/qquickaction_p_p.h b/src/quicktemplates2/qquickaction_p_p.h
index 252b0075..d9b83548 100644
--- a/src/quicktemplates2/qquickaction_p_p.h
+++ b/src/quicktemplates2/qquickaction_p_p.h
@@ -125,7 +125,7 @@ public:
QKeySequence keySequence;
QVariant vshortcut;
ShortcutEntry *defaultShortcutEntry = nullptr;
- QVector<ShortcutEntry *> shortcutEntries;
+ QList<ShortcutEntry *> shortcutEntries;
#endif
QQuickActionGroup *group = nullptr;
};
diff --git a/src/quicktemplates2/qquickactiongroup.cpp b/src/quicktemplates2/qquickactiongroup.cpp
index a78489e2..301957b6 100644
--- a/src/quicktemplates2/qquickactiongroup.cpp
+++ b/src/quicktemplates2/qquickactiongroup.cpp
@@ -156,7 +156,7 @@ public:
bool enabled = true;
bool exclusive = true;
QPointer<QQuickAction> checkedAction;
- QVector<QQuickAction*> actions;
+ QList<QQuickAction*> actions;
};
void QQuickActionGroupPrivate::clear()
diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp
index d7ff9a26..3d39a04e 100644
--- a/src/quicktemplates2/qquickapplicationwindow.cpp
+++ b/src/quicktemplates2/qquickapplicationwindow.cpp
@@ -36,7 +36,6 @@
#include "qquickapplicationwindow_p.h"
#include "qquickcontentitem_p.h"
-#include "qquickoverlay_p.h"
#include "qquickpopup_p_p.h"
#include "qquickcontrol_p_p.h"
#include "qquicktextarea_p.h"
@@ -178,7 +177,6 @@ public:
QQuickItem *menuBar = nullptr;
QQuickItem *header = nullptr;
QQuickItem *footer = nullptr;
- QQuickOverlay *overlay = nullptr;
QFont font;
QLocale locale;
QQuickItem *activeFocusControl = nullptr;
@@ -231,9 +229,9 @@ void QQuickApplicationWindowPrivate::relayout()
void QQuickApplicationWindowPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff)
{
- Q_UNUSED(item)
- Q_UNUSED(change)
- Q_UNUSED(diff)
+ Q_UNUSED(item);
+ Q_UNUSED(change);
+ Q_UNUSED(diff);
relayout();
}
@@ -589,57 +587,6 @@ QQuickItem *QQuickApplicationWindow::activeFocusControl() const
}
/*!
- \deprecated
- \qmlpropertygroup QtQuick.Controls::ApplicationWindow::overlay
- \qmlproperty Item QtQuick.Controls::ApplicationWindow::overlay
- \qmlproperty Component QtQuick.Controls::ApplicationWindow::overlay.modal
- \qmlproperty Component QtQuick.Controls::ApplicationWindow::overlay.modeless
-
- Use the \l Overlay attached properties and signals instead.
-
- This property holds the window overlay item. Popups are automatically
- reparented to the overlay.
-
- \table
- \header
- \li Property
- \li Description
- \row
- \li overlay.modal
- \li This property holds a component to use as a visual item that implements
- background dimming for modal popups. It is created for and stacked below
- visible modal popups.
- \row
- \li overlay.modeless
- \li This property holds a component to use as a visual item that implements
- background dimming for modeless popups. It is created for and stacked below
- visible dimming popups.
- \row
- \li overlay.pressed()
- \li This signal is emitted when the overlay is pressed by the user while
- a popup is visible.
- \row
- \li overlay.released()
- \li This signal is emitted when the overlay is released by the user while
- a modal popup is visible.
- \endtable
-
- \sa Popup::modal, Popup::dim
-*/
-QQuickOverlay *QQuickApplicationWindow::overlay() const
-{
- QQuickApplicationWindowPrivate *d = const_cast<QQuickApplicationWindowPrivate *>(d_func());
- if (!d) // being deleted
- return nullptr;
-
- if (!d->overlay) {
- d->overlay = new QQuickOverlay(QQuickWindow::contentItem());
- d->overlay->stackAfter(QQuickApplicationWindow::contentItem());
- }
- return d->overlay;
-}
-
-/*!
\qmlproperty font QtQuick.Controls::ApplicationWindow::font
This property holds the font currently set for the window.
@@ -852,7 +799,6 @@ void QQuickApplicationWindowAttachedPrivate::windowChange(QQuickWindow *wnd)
window = wnd;
emit q->windowChanged();
emit q->contentItemChanged();
- emit q->overlayChanged();
activeFocusChange();
if ((oldWindow && oldWindow->menuBar()) || (newWindow && newWindow->menuBar()))
@@ -986,24 +932,6 @@ QQuickItem *QQuickApplicationWindowAttached::footer() const
}
/*!
- \deprecated
- \qmlattachedproperty Item QtQuick.Controls::ApplicationWindow::overlay
- \readonly
-
- Use the \l Overlay::overlay attached property instead.
-
- This attached property holds the window overlay item. The property can be attached
- to any item. The value is \c null if the item is not in an ApplicationWindow.
-
- \sa {Attached ApplicationWindow Properties}
-*/
-QQuickOverlay *QQuickApplicationWindowAttached::overlay() const
-{
- Q_D(const QQuickApplicationWindowAttached);
- return QQuickOverlay::overlay(d->window);
-}
-
-/*!
\since QtQuick.Controls 2.3 (Qt 5.10)
\qmlattachedproperty Item QtQuick.Controls::ApplicationWindow::menuBar
\readonly
diff --git a/src/quicktemplates2/qquickapplicationwindow_p.h b/src/quicktemplates2/qquickapplicationwindow_p.h
index 14ef6c67..9c0292ed 100644
--- a/src/quicktemplates2/qquickapplicationwindow_p.h
+++ b/src/quicktemplates2/qquickapplicationwindow_p.h
@@ -56,7 +56,6 @@
QT_BEGIN_NAMESPACE
-class QQuickOverlay;
class QQuickApplicationWindowPrivate;
class QQuickApplicationWindowAttached;
class QQuickApplicationWindowAttachedPrivate;
@@ -70,7 +69,6 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickApplicationWindow : public QQuickWi
Q_PROPERTY(QQuickItem *activeFocusControl READ activeFocusControl NOTIFY activeFocusControlChanged 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(QQuickOverlay *overlay READ overlay CONSTANT FINAL)
Q_PROPERTY(QFont font READ font WRITE setFont RESET resetFont NOTIFY fontChanged FINAL)
Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET resetLocale NOTIFY localeChanged FINAL)
// 2.3 (Qt 5.10)
@@ -99,8 +97,6 @@ public:
QQuickItem *footer() const;
void setFooter(QQuickItem *footer);
- QQuickOverlay *overlay() const;
-
QFont font() const;
void setFont(const QFont &font);
void resetFont();
@@ -141,7 +137,6 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickApplicationWindowAttached : public
Q_PROPERTY(QQuickItem *activeFocusControl READ activeFocusControl NOTIFY activeFocusControlChanged FINAL)
Q_PROPERTY(QQuickItem *header READ header NOTIFY headerChanged FINAL)
Q_PROPERTY(QQuickItem *footer READ footer NOTIFY footerChanged FINAL)
- Q_PROPERTY(QQuickOverlay *overlay READ overlay NOTIFY overlayChanged FINAL)
Q_PROPERTY(QQuickItem *menuBar READ menuBar NOTIFY menuBarChanged FINAL) // REVISION 3
public:
@@ -152,7 +147,6 @@ public:
QQuickItem *activeFocusControl() const;
QQuickItem *header() const;
QQuickItem *footer() const;
- QQuickOverlay *overlay() const;
QQuickItem *menuBar() const;
Q_SIGNALS:
@@ -161,7 +155,6 @@ Q_SIGNALS:
void activeFocusControlChanged();
void headerChanged();
void footerChanged();
- void overlayChanged();
// 2.3 (Qt 5.10)
/*Q_REVISION(3)*/ void menuBarChanged();
diff --git a/src/quicktemplates2/qquickbuttongroup.cpp b/src/quicktemplates2/qquickbuttongroup.cpp
index 3886dce9..974cd029 100644
--- a/src/quicktemplates2/qquickbuttongroup.cpp
+++ b/src/quicktemplates2/qquickbuttongroup.cpp
@@ -170,7 +170,7 @@ public:
bool settingCheckState = false;
Qt::CheckState checkState = Qt::Unchecked;
QPointer<QQuickAbstractButton> checkedButton;
- QVector<QQuickAbstractButton*> buttons;
+ QList<QQuickAbstractButton*> buttons;
};
void QQuickButtonGroupPrivate::clear()
diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp
index 85f135c7..426adbd3 100644
--- a/src/quicktemplates2/qquickcombobox.cpp
+++ b/src/quicktemplates2/qquickcombobox.cpp
@@ -54,10 +54,13 @@
#include <QtQuick/private/qquickaccessibleattached_p.h>
#include <QtQuick/private/qquickevents_p_p.h>
#include <QtQuick/private/qquicktextinput_p.h>
+#include <QtQuick/private/qquicktextinput_p_p.h>
#include <QtQuick/private/qquickitemview_p.h>
QT_BEGIN_NAMESPACE
+Q_LOGGING_CATEGORY(lcCalculateWidestTextWidth, "qt.quick.controls.combobox.calculatewidesttextwidth")
+
/*!
\qmltype ComboBox
\inherits Control
@@ -230,6 +233,7 @@ public:
void modelUpdated();
void countChanged();
+ QString effectiveTextRole() const;
void updateEditText();
void updateCurrentText();
void updateCurrentValue();
@@ -265,6 +269,10 @@ public:
void itemImplicitWidthChanged(QQuickItem *item) override;
void itemImplicitHeightChanged(QQuickItem *item) override;
+ virtual qreal getContentWidth() const override;
+ qreal calculateWidestTextWidth() const;
+ void maybeUpdateImplicitContentWidth();
+
static void hideOldPopup(QQuickPopup *popup);
QPalette defaultPalette() const override { return QQuickTheme::palette(QQuickTheme::ComboBox); }
@@ -277,8 +285,10 @@ public:
bool keyNavigating = false;
bool hasDisplayText = false;
bool hasCurrentIndex = false;
+ bool hasCalculatedWidestText = false;
int highlightedIndex = -1;
int currentIndex = -1;
+ QQuickComboBox::ImplicitContentWidthPolicy implicitContentWidthPolicy = QQuickComboBox::ContentItemImplicitWidth;
QVariant model;
QString textRole;
QString currentText;
@@ -411,8 +421,12 @@ void QQuickComboBoxPrivate::createdItem(int index, QObject *object)
void QQuickComboBoxPrivate::modelUpdated()
{
- if (!extra.isAllocated() || !extra->accepting)
+ if (componentComplete && (!extra.isAllocated() || !extra->accepting)) {
updateCurrentTextAndValue();
+
+ if (implicitContentWidthPolicy == QQuickComboBox::WidestText)
+ updateImplicitContentSize();
+ }
}
void QQuickComboBoxPrivate::countChanged()
@@ -423,6 +437,11 @@ void QQuickComboBoxPrivate::countChanged()
emit q->countChanged();
}
+QString QQuickComboBoxPrivate::effectiveTextRole() const
+{
+ return textRole.isEmpty() ? QStringLiteral("modelData") : textRole;
+}
+
void QQuickComboBoxPrivate::updateEditText()
{
Q_Q(QQuickComboBox);
@@ -780,6 +799,72 @@ void QQuickComboBoxPrivate::itemImplicitHeightChanged(QQuickItem *item)
emit q->implicitIndicatorHeightChanged();
}
+qreal QQuickComboBoxPrivate::getContentWidth() const
+{
+ if (componentComplete) {
+ switch (implicitContentWidthPolicy) {
+ case QQuickComboBox::WidestText:
+ return calculateWidestTextWidth();
+ case QQuickComboBox::WidestTextWhenCompleted:
+ if (!hasCalculatedWidestText)
+ return calculateWidestTextWidth();
+ break;
+ default:
+ break;
+ }
+ }
+
+ return QQuickControlPrivate::getContentWidth();
+}
+
+qreal QQuickComboBoxPrivate::calculateWidestTextWidth() const
+{
+ Q_Q(const QQuickComboBox);
+ if (!componentComplete)
+ return 0;
+
+ const int count = q->count();
+ if (count == 0)
+ return 0;
+
+ auto textInput = qobject_cast<QQuickTextInput*>(contentItem);
+ if (!textInput)
+ return 0;
+
+ qCDebug(lcCalculateWidestTextWidth) << "calculating widest text from" << count << "items...";
+
+ // Avoid the index check and repeated calls to effectiveTextRole()
+ // that would result from calling textAt() in a loop.
+ const QString textRole = effectiveTextRole();
+ auto textInputPrivate = QQuickTextInputPrivate::get(textInput);
+ qreal widest = 0;
+ for (int i = 0; i < count; ++i) {
+ const QString text = delegateModel->stringValue(i, textRole);
+ const qreal textImplicitWidth = textInputPrivate->calculateImplicitWidthForText(text);
+ widest = qMax(widest, textImplicitWidth);
+ }
+
+ qCDebug(lcCalculateWidestTextWidth) << "... widest text is" << widest;
+ return widest;
+}
+
+/*!
+ If the user requested it (and we haven't already done it, depending on the policy),
+ update the implicit content width to the largest text in the model.
+*/
+void QQuickComboBoxPrivate::maybeUpdateImplicitContentWidth()
+{
+ if (!componentComplete)
+ return;
+
+ if (implicitContentWidthPolicy == QQuickComboBox::ContentItemImplicitWidth
+ || (implicitContentWidthPolicy == QQuickComboBox::WidestTextWhenCompleted && hasCalculatedWidestText))
+ return;
+
+ updateImplicitContentWidth();
+ hasCalculatedWidestText = true;
+}
+
void QQuickComboBoxPrivate::hideOldPopup(QQuickPopup *popup)
{
if (!popup)
@@ -885,6 +970,8 @@ void QQuickComboBox::setModel(const QVariant& m)
d->updateCurrentTextAndValue();
}
emit modelChanged();
+
+ d->maybeUpdateImplicitContentWidth();
}
/*!
@@ -1597,6 +1684,80 @@ void QQuickComboBox::setSelectTextByMouse(bool canSelect)
d->extra.value().selectTextByMouse = canSelect;
emit selectTextByMouseChanged();
}
+
+/*!
+ \since QtQuick.Controls 6.0 (Qt 6.0)
+ \qmlproperty enumeration QtQuick.Controls::ComboBox::implicitContentWidthPolicy
+
+ This property controls how the \l implicitContentWidth of the ComboBox is
+ calculated.
+
+ When the width of a ComboBox is not large enough to display text, that text
+ is elided. Depending on which parts of the text are elided, this can make
+ selecting an item difficult for the end user. An efficient way of ensuring
+ that a ComboBox is wide enough to avoid text being elided is to set a width
+ that is known to be large enough:
+
+ \code
+ width: 300
+ implicitContentWidthPolicy: ComboBox.ContentItemImplicitWidth
+ \endcode
+
+ However, it is often not possible to know whether or not a hard-coded value
+ will be large enough, as the size of text depends on many factors, such as
+ font family, font size, translations, and so on.
+
+ implicitContentWidthPolicy provides an easy way to control how the
+ implicitContentWidth is calculated, which in turn affects the
+ \l implicitWidth of the ComboBox and ensures that text will not be elided.
+
+ The available values are:
+
+ \value ContentItemImplicitWidth
+ The implicitContentWidth will default to that of the \l contentItem.
+
+ This is the most efficient option, as no extra text layout is done.
+ \value WidestText
+ The implicitContentWidth will be set to the implicit width of the
+ the largest text for the given \l textRole every time the model
+ changes.
+
+ This option should be used with smaller models, as it can be expensive.
+ \value WidestTextWhenCompleted
+ The implicitContentWidth will be set to the implicit width of the
+ the largest text for the given \l textRole once after
+ \l {QQmlParserStatus::componentComplete()}{component completion}.
+
+ This option should be used with smaller models, as it can be expensive.
+
+ The default value is \c ContentItemImplicitWidth.
+
+ As this property only affects the \l implicitWidth of the ComboBox, setting
+ an explicit \l width can still result in eliding.
+
+ \note This feature requires the contentItem to be a type derived from
+ \l TextInput.
+
+ \note This feature requires text to be laid out, and can therefore be
+ expensive for large models or models whose contents are updated
+ frequently.
+*/
+QQuickComboBox::ImplicitContentWidthPolicy QQuickComboBox::implicitContentWidthPolicy() const
+{
+ Q_D(const QQuickComboBox);
+ return d->implicitContentWidthPolicy;
+}
+
+void QQuickComboBox::setImplicitContentWidthPolicy(QQuickComboBox::ImplicitContentWidthPolicy policy)
+{
+ Q_D(QQuickComboBox);
+ if (policy == d->implicitContentWidthPolicy)
+ return;
+
+ d->implicitContentWidthPolicy = policy;
+ d->maybeUpdateImplicitContentWidth();
+ emit implicitContentWidthPolicyChanged();
+}
/*!
\qmlmethod string QtQuick.Controls::ComboBox::textAt(int index)
@@ -1611,8 +1772,7 @@ QString QQuickComboBox::textAt(int index) const
if (!d->isValidIndex(index))
return QString();
- const QString effectiveTextRole = d->textRole.isEmpty() ? QStringLiteral("modelData") : d->textRole;
- return d->delegateModel->stringValue(index, effectiveTextRole);
+ return d->delegateModel->stringValue(index, d->effectiveTextRole());
}
/*!
@@ -1894,6 +2054,11 @@ void QQuickComboBox::componentComplete()
setCurrentIndex(0);
else
d->updateCurrentTextAndValue();
+
+ // If the widest text was already calculated in the call to
+ // QQmlDelegateModel::componentComplete() above, then we shouldn't do it here too.
+ if (!d->hasCalculatedWidestText)
+ d->maybeUpdateImplicitContentWidth();
}
}
@@ -1907,6 +2072,13 @@ void QQuickComboBox::itemChange(QQuickItem::ItemChange change, const QQuickItem:
}
}
+void QQuickComboBox::fontChange(const QFont &newFont, const QFont &oldFont)
+{
+ Q_D(QQuickComboBox);
+ QQuickControl::fontChange(newFont, oldFont);
+ d->maybeUpdateImplicitContentWidth();
+}
+
void QQuickComboBox::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
{
Q_D(QQuickComboBox);
diff --git a/src/quicktemplates2/qquickcombobox_p.h b/src/quicktemplates2/qquickcombobox_p.h
index 4874eb5d..18c1275c 100644
--- a/src/quicktemplates2/qquickcombobox_p.h
+++ b/src/quicktemplates2/qquickcombobox_p.h
@@ -94,6 +94,9 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickComboBox : public QQuickControl
Q_PROPERTY(QString valueRole READ valueRole WRITE setValueRole NOTIFY valueRoleChanged FINAL REVISION 14)
// 2.15 (Qt 5.15)
Q_PROPERTY(bool selectTextByMouse READ selectTextByMouse WRITE setSelectTextByMouse NOTIFY selectTextByMouseChanged FINAL REVISION 15)
+ // TODO: 6.0 (Qt 6.0) - QTBUG-84190
+ Q_PROPERTY(ImplicitContentWidthPolicy implicitContentWidthPolicy READ implicitContentWidthPolicy
+ WRITE setImplicitContentWidthPolicy NOTIFY implicitContentWidthPolicyChanged FINAL REVISION 15)
public:
explicit QQuickComboBox(QQuickItem *parent = nullptr);
@@ -175,6 +178,17 @@ public:
bool selectTextByMouse() const;
void setSelectTextByMouse(bool canSelect);
+ // 6.0 (Qt 6.0)
+ enum ImplicitContentWidthPolicy {
+ ContentItemImplicitWidth,
+ WidestText,
+ WidestTextWhenCompleted
+ };
+ Q_ENUM(ImplicitContentWidthPolicy)
+
+ ImplicitContentWidthPolicy implicitContentWidthPolicy() const;
+ void setImplicitContentWidthPolicy(ImplicitContentWidthPolicy policy);
+
public Q_SLOTS:
void incrementCurrentIndex();
void decrementCurrentIndex();
@@ -214,6 +228,8 @@ Q_SIGNALS:
Q_REVISION(14) void currentValueChanged();
// 2.15 (Qt 5.15)
Q_REVISION(15) void selectTextByMouseChanged();
+ // 6.0 (Qt 6.0)
+ Q_REVISION(6, 0) void implicitContentWidthPolicyChanged();
protected:
bool eventFilter(QObject *object, QEvent *event) override;
@@ -231,6 +247,7 @@ protected:
void componentComplete() override;
void itemChange(ItemChange change, const ItemChangeData &value) override;
+ void fontChange(const QFont &newFont, const QFont &oldFont) override;
void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
void localeChange(const QLocale &newLocale, const QLocale &oldLocale) override;
diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp
index c5a5fd7a..8463c60d 100644
--- a/src/quicktemplates2/qquickcontrol.cpp
+++ b/src/quicktemplates2/qquickcontrol.cpp
@@ -1442,7 +1442,7 @@ void QQuickControl::setHoverEnabled(bool enabled)
d->updateHoverEnabled(enabled, true); // explicit=true
#else
- Q_UNUSED(enabled)
+ Q_UNUSED(enabled);
#endif
}
@@ -2154,7 +2154,7 @@ void QQuickControl::maybeSetAccessibleName(const QString &name)
accessibleAttached->setNameImplicitly(name);
}
#else
- Q_UNUSED(name)
+ Q_UNUSED(name);
#endif
}
@@ -2164,7 +2164,7 @@ QVariant QQuickControl::accessibleProperty(const char *propertyName)
if (QAccessible::isActive())
return QQuickAccessibleAttached::property(this, propertyName);
#endif
- Q_UNUSED(propertyName)
+ Q_UNUSED(propertyName);
return QVariant();
}
@@ -2174,8 +2174,8 @@ bool QQuickControl::setAccessibleProperty(const char *propertyName, const QVaria
if (QAccessible::isActive())
return QQuickAccessibleAttached::setProperty(this, propertyName, value);
#endif
- Q_UNUSED(propertyName)
- Q_UNUSED(value)
+ Q_UNUSED(propertyName);
+ Q_UNUSED(value);
return false;
}
diff --git a/src/quicktemplates2/qquickdialogbuttonbox.cpp b/src/quicktemplates2/qquickdialogbuttonbox.cpp
index b9e9674b..d6ed366f 100644
--- a/src/quicktemplates2/qquickdialogbuttonbox.cpp
+++ b/src/quicktemplates2/qquickdialogbuttonbox.cpp
@@ -258,7 +258,7 @@ void QQuickDialogButtonBoxPrivate::updateLayout()
const int halign = alignment & Qt::AlignHorizontal_Mask;
const int valign = alignment & Qt::AlignVertical_Mask;
- QVector<QQuickAbstractButton *> buttons;
+ QList<QQuickAbstractButton *> buttons;
const qreal cw = (alignment & Qt::AlignHorizontal_Mask) == 0 ? q->availableWidth() : contentWidth;
const qreal itemWidth = (cw - qMax(0, count - 1) * spacing) / count;
diff --git a/src/quicktemplates2/qquickdrawer.cpp b/src/quicktemplates2/qquickdrawer.cpp
index b6d70dd7..433346ba 100644
--- a/src/quicktemplates2/qquickdrawer.cpp
+++ b/src/quicktemplates2/qquickdrawer.cpp
@@ -416,7 +416,7 @@ bool QQuickDrawerPrivate::grabTouch(QQuickItem *item, QTouchEvent *event)
}
if (overThreshold) {
- popupItem->grabTouchPoints(QVector<int>() << touchId);
+ popupItem->grabTouchPoints(QList<int>() << touchId);
popupItem->setKeepTouchGrab(true);
offset = offsetAt(movePoint);
}
diff --git a/src/quicktemplates2/qquickheaderview.cpp b/src/quicktemplates2/qquickheaderview.cpp
index 85291bcb..8593fa0f 100644
--- a/src/quicktemplates2/qquickheaderview.cpp
+++ b/src/quicktemplates2/qquickheaderview.cpp
@@ -360,7 +360,7 @@ QModelIndex QHeaderDataProxyModel::index(int row, int column, const QModelIndex
QModelIndex QHeaderDataProxyModel::parent(const QModelIndex &child) const
{
- Q_UNUSED(child)
+ Q_UNUSED(child);
return QModelIndex();
}
@@ -401,7 +401,7 @@ bool QHeaderDataProxyModel::setData(const QModelIndex &index, const QVariant &va
bool QHeaderDataProxyModel::hasChildren(const QModelIndex &parent) const
{
- Q_UNUSED(parent)
+ Q_UNUSED(parent);
return false;
}
diff --git a/src/quicktemplates2/qquicklabel.cpp b/src/quicktemplates2/qquicklabel.cpp
index f8c1c489..144d2fe7 100644
--- a/src/quicktemplates2/qquicklabel.cpp
+++ b/src/quicktemplates2/qquicklabel.cpp
@@ -213,7 +213,7 @@ void QQuickLabelPrivate::textChanged(const QString &text)
#if QT_CONFIG(accessibility)
maybeSetAccessibleName(text);
#else
- Q_UNUSED(text)
+ Q_UNUSED(text);
#endif
}
diff --git a/src/quicktemplates2/qquickmenu_p_p.h b/src/quicktemplates2/qquickmenu_p_p.h
index 41837a15..f1a5b3f9 100644
--- a/src/quicktemplates2/qquickmenu_p_p.h
+++ b/src/quicktemplates2/qquickmenu_p_p.h
@@ -48,7 +48,7 @@
// We mean it.
//
-#include <QtCore/qvector.h>
+#include <QtCore/qlist.h>
#include <QtCore/qpointer.h>
#include <QtQuickTemplates2/private/qquickmenu_p.h>
@@ -131,7 +131,7 @@ public:
QPointer<QQuickMenu> parentMenu;
QPointer<QQuickMenuItem> currentItem;
QQuickItem *contentItem = nullptr; // TODO: cleanup
- QVector<QObject *> contentData;
+ QList<QObject *> contentData;
QQmlObjectModel *contentModel;
QQmlComponent *delegate = nullptr;
QString title;
diff --git a/src/quicktemplates2/qquickoverlay.cpp b/src/quicktemplates2/qquickoverlay.cpp
index 6eb0d0e8..5cb1ab0b 100644
--- a/src/quicktemplates2/qquickoverlay.cpp
+++ b/src/quicktemplates2/qquickoverlay.cpp
@@ -69,11 +69,11 @@ QT_BEGIN_NAMESPACE
\sa ApplicationWindow
*/
-QVector<QQuickPopup *> QQuickOverlayPrivate::stackingOrderPopups() const
+QList<QQuickPopup *> QQuickOverlayPrivate::stackingOrderPopups() const
{
const QList<QQuickItem *> children = paintOrderChildItems();
- QVector<QQuickPopup *> popups;
+ QList<QQuickPopup *> popups;
popups.reserve(children.count());
for (auto it = children.crbegin(), end = children.crend(); it != end; ++it) {
@@ -85,9 +85,9 @@ QVector<QQuickPopup *> QQuickOverlayPrivate::stackingOrderPopups() const
return popups;
}
-QVector<QQuickDrawer *> QQuickOverlayPrivate::stackingOrderDrawers() const
+QList<QQuickDrawer *> QQuickOverlayPrivate::stackingOrderDrawers() const
{
- QVector<QQuickDrawer *> sorted(allDrawers);
+ QList<QQuickDrawer *> sorted(allDrawers);
std::sort(sorted.begin(), sorted.end(), [](const QQuickDrawer *one, const QQuickDrawer *another) {
return one->z() > another->z();
});
@@ -116,7 +116,7 @@ bool QQuickOverlayPrivate::startDrag(QEvent *event, const QPointF &pos)
}
}
- const QVector<QQuickDrawer *> drawers = stackingOrderDrawers();
+ const QList<QQuickDrawer *> drawers = stackingOrderDrawers();
for (QQuickDrawer *drawer : drawers) {
QQuickDrawerPrivate *p = QQuickDrawerPrivate::get(drawer);
if (p->startDrag(event)) {
@@ -194,7 +194,7 @@ bool QQuickOverlayPrivate::handleMouseEvent(QQuickItem *source, QMouseEvent *eve
{
switch (event->type()) {
case QEvent::MouseButtonPress:
- if (!target && startDrag(event, event->windowPos()))
+ if (!target && startDrag(event, event->scenePosition()))
return true;
return handlePress(source, event, target);
case QEvent::MouseMove:
@@ -218,7 +218,7 @@ bool QQuickOverlayPrivate::handleTouchEvent(QQuickItem *source, QTouchEvent *eve
for (const QTouchEvent::TouchPoint &point : event->touchPoints()) {
switch (point.state()) {
case Qt::TouchPointPressed:
- if (!target && startDrag(event, point.scenePos()))
+ if (!target && startDrag(event, point.scenePosition()))
handled = true;
else
handled |= handlePress(source, event, target);
@@ -368,10 +368,6 @@ QQuickOverlay *QQuickOverlay::overlay(QQuickWindow *window)
if (!window)
return nullptr;
- QQuickApplicationWindow *applicationWindow = qobject_cast<QQuickApplicationWindow *>(window);
- if (applicationWindow)
- return applicationWindow->overlay();
-
const char *name = "_q_QQuickOverlay";
QQuickOverlay *overlay = window->property(name).value<QQuickOverlay *>();
if (!overlay) {
diff --git a/src/quicktemplates2/qquickoverlay_p_p.h b/src/quicktemplates2/qquickoverlay_p_p.h
index b445f87a..ef3d9ee2 100644
--- a/src/quicktemplates2/qquickoverlay_p_p.h
+++ b/src/quicktemplates2/qquickoverlay_p_p.h
@@ -82,8 +82,8 @@ public:
void removePopup(QQuickPopup *popup);
void setMouseGrabberPopup(QQuickPopup *popup);
- QVector<QQuickPopup *> stackingOrderPopups() const;
- QVector<QQuickDrawer *> stackingOrderDrawers() const;
+ QList<QQuickPopup *> stackingOrderPopups() const;
+ QList<QQuickDrawer *> stackingOrderDrawers() const;
void itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &diff) override;
@@ -91,8 +91,8 @@ public:
QQmlComponent *modal = nullptr;
QQmlComponent *modeless = nullptr;
- QVector<QQuickPopup *> allPopups;
- QVector<QQuickDrawer *> allDrawers;
+ QList<QQuickPopup *> allPopups;
+ QList<QQuickDrawer *> allDrawers;
QPointer<QQuickPopup> mouseGrabberPopup;
};
diff --git a/src/quicktemplates2/qquickpane.cpp b/src/quicktemplates2/qquickpane.cpp
index bf902b6b..ecdc27db 100644
--- a/src/quicktemplates2/qquickpane.cpp
+++ b/src/quicktemplates2/qquickpane.cpp
@@ -410,8 +410,8 @@ void QQuickPane::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem)
void QQuickPane::contentSizeChange(const QSizeF &newSize, const QSizeF &oldSize)
{
- Q_UNUSED(newSize)
- Q_UNUSED(oldSize)
+ Q_UNUSED(newSize);
+ Q_UNUSED(oldSize);
}
#if QT_CONFIG(accessibility)
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp
index bafa3110..1d6f125e 100644
--- a/src/quicktemplates2/qquickpopup.cpp
+++ b/src/quicktemplates2/qquickpopup.cpp
@@ -372,11 +372,11 @@ bool QQuickPopupPrivate::handleMouseEvent(QQuickItem *item, QMouseEvent *event)
{
switch (event->type()) {
case QEvent::MouseButtonPress:
- return handlePress(item, event->windowPos(), event->timestamp());
+ return handlePress(item, event->scenePosition(), event->timestamp());
case QEvent::MouseMove:
- return handleMove(item, event->windowPos(), event->timestamp());
+ return handleMove(item, event->scenePosition(), event->timestamp());
case QEvent::MouseButtonRelease:
- return handleRelease(item, event->windowPos(), event->timestamp());
+ return handleRelease(item, event->scenePosition(), event->timestamp());
default:
Q_UNREACHABLE();
return false;
@@ -392,15 +392,15 @@ bool QQuickPopupPrivate::handleTouchEvent(QQuickItem *item, QTouchEvent *event)
case QEvent::TouchEnd:
for (const QTouchEvent::TouchPoint &point : event->touchPoints()) {
if (!acceptTouch(point))
- return blockInput(item, point.pos());
+ return blockInput(item, point.position());
switch (point.state()) {
case Qt::TouchPointPressed:
- return handlePress(item, item->mapToScene(point.pos()), event->timestamp());
+ return handlePress(item, item->mapToScene(point.position()), event->timestamp());
case Qt::TouchPointMoved:
- return handleMove(item, item->mapToScene(point.pos()), event->timestamp());
+ return handleMove(item, item->mapToScene(point.position()), event->timestamp());
case Qt::TouchPointReleased:
- return handleRelease(item, item->mapToScene(point.pos()), event->timestamp());
+ return handleRelease(item, item->mapToScene(point.position()), event->timestamp());
default:
break;
}
diff --git a/src/quicktemplates2/qquickpopupanchors.cpp b/src/quicktemplates2/qquickpopupanchors.cpp
index c48ca5ff..0d286cc0 100644
--- a/src/quicktemplates2/qquickpopupanchors.cpp
+++ b/src/quicktemplates2/qquickpopupanchors.cpp
@@ -47,6 +47,15 @@ QQuickPopupAnchors::QQuickPopupAnchors(QQuickPopup *popup)
d->popup = popup;
}
+QQuickPopupAnchors::~QQuickPopupAnchors()
+{
+ Q_D(const QQuickPopupAnchors);
+ if (d->centerIn) {
+ auto centerInPrivate = QQuickItemPrivate::get(d->centerIn);
+ centerInPrivate->removeItemChangeListener(this, QQuickItemPrivate::Destroyed);
+ }
+}
+
QQuickItem *QQuickPopupAnchors::centerIn() const
{
Q_D(const QQuickPopupAnchors);
@@ -59,8 +68,20 @@ void QQuickPopupAnchors::setCenterIn(QQuickItem *item)
if (item == d->centerIn)
return;
+ if (d->centerIn) {
+ auto centerInPrivate = QQuickItemPrivate::get(d->centerIn);
+ centerInPrivate->removeItemChangeListener(this, QQuickItemPrivate::Destroyed);
+ }
+
d->centerIn = item;
+
+ if (d->centerIn) {
+ auto centerInPrivate = QQuickItemPrivate::get(d->centerIn);
+ centerInPrivate->addItemChangeListener(this, QQuickItemPrivate::Destroyed);
+ }
+
QQuickPopupPrivate::get(d->popup)->reposition();
+
emit centerInChanged();
}
@@ -69,6 +90,11 @@ void QQuickPopupAnchors::resetCenterIn()
setCenterIn(nullptr);
}
+void QQuickPopupAnchors::itemDestroyed(QQuickItem *)
+{
+ resetCenterIn();
+}
+
QT_END_NAMESPACE
#include "moc_qquickpopupanchors_p.cpp"
diff --git a/src/quicktemplates2/qquickpopupanchors_p.h b/src/quicktemplates2/qquickpopupanchors_p.h
index 531c494e..eff4e23d 100644
--- a/src/quicktemplates2/qquickpopupanchors_p.h
+++ b/src/quicktemplates2/qquickpopupanchors_p.h
@@ -50,6 +50,7 @@
#include <QtCore/qobject.h>
#include <QtQml/qqml.h>
+#include <QtQuick/private/qquickitem_p.h>
#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
QT_BEGIN_NAMESPACE
@@ -58,13 +59,14 @@ class QQuickItem;
class QQuickPopupAnchorsPrivate;
class QQuickPopup;
-class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopupAnchors : public QObject
+class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickPopupAnchors : public QObject, public QQuickItemChangeListener
{
Q_OBJECT
Q_PROPERTY(QQuickItem *centerIn READ centerIn WRITE setCenterIn RESET resetCenterIn NOTIFY centerInChanged)
public:
explicit QQuickPopupAnchors(QQuickPopup *popup);
+ ~QQuickPopupAnchors();
QQuickItem *centerIn() const;
void setCenterIn(QQuickItem *item);
@@ -74,6 +76,8 @@ Q_SIGNALS:
void centerInChanged();
private:
+ void itemDestroyed(QQuickItem *item) override;
+
Q_DISABLE_COPY(QQuickPopupAnchors)
Q_DECLARE_PRIVATE(QQuickPopupAnchors)
};
diff --git a/src/quicktemplates2/qquickpresshandler.cpp b/src/quicktemplates2/qquickpresshandler.cpp
index b9018573..d9ed484b 100644
--- a/src/quicktemplates2/qquickpresshandler.cpp
+++ b/src/quicktemplates2/qquickpresshandler.cpp
@@ -49,10 +49,10 @@ QT_BEGIN_NAMESPACE
void QQuickPressHandler::mousePressEvent(QMouseEvent *event)
{
longPress = false;
- pressPos = event->localPos();
+ pressPos = event->position();
if (Qt::LeftButton == (event->buttons() & Qt::LeftButton)) {
timer.start(QGuiApplication::styleHints()->mousePressAndHoldInterval(), control);
- delayedMousePressEvent = new QMouseEvent(event->type(), event->pos(), event->button(), event->buttons(), event->modifiers());
+ delayedMousePressEvent = new QMouseEvent(event->type(), event->position().toPoint(), event->button(), event->buttons(), event->modifiers());
} else {
timer.stop();
}
@@ -60,7 +60,7 @@ void QQuickPressHandler::mousePressEvent(QMouseEvent *event)
if (isSignalConnected(control, "pressed(QQuickMouseEvent*)", pressedSignalIndex)) {
QQuickMouseEvent mev;
mev.reset(pressPos.x(), pressPos.y(), event->button(), event->buttons(),
- QGuiApplication::keyboardModifiers(), false/*isClick*/, false/*wasHeld*/);
+ event->modifiers(), false/*isClick*/, false/*wasHeld*/);
mev.setAccepted(true);
QQuickMouseEvent *mevPtr = &mev;
void *args[] = { nullptr, &mevPtr };
@@ -71,7 +71,7 @@ void QQuickPressHandler::mousePressEvent(QMouseEvent *event)
void QQuickPressHandler::mouseMoveEvent(QMouseEvent *event)
{
- if (qAbs(int(event->localPos().x() - pressPos.x())) > QGuiApplication::styleHints()->startDragDistance())
+ if (qAbs(int(event->position().x() - pressPos.x())) > QGuiApplication::styleHints()->startDragDistance())
timer.stop();
}
@@ -83,7 +83,7 @@ void QQuickPressHandler::mouseReleaseEvent(QMouseEvent *event)
if (isSignalConnected(control, "released(QQuickMouseEvent*)", releasedSignalIndex)) {
QQuickMouseEvent mev;
mev.reset(pressPos.x(), pressPos.y(), event->button(), event->buttons(),
- QGuiApplication::keyboardModifiers(), false/*isClick*/, false/*wasHeld*/);
+ event->modifiers(), false/*isClick*/, false/*wasHeld*/);
mev.setAccepted(true);
QQuickMouseEvent *mevPtr = &mev;
void *args[] = { nullptr, &mevPtr };
@@ -101,8 +101,11 @@ void QQuickPressHandler::timerEvent(QTimerEvent *)
longPress = isSignalConnected(control, "pressAndHold(QQuickMouseEvent*)", pressAndHoldSignalIndex);
if (longPress) {
QQuickMouseEvent mev;
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
mev.reset(pressPos.x(), pressPos.y(), Qt::LeftButton, Qt::LeftButton,
QGuiApplication::keyboardModifiers(), false/*isClick*/, true/*wasHeld*/);
+QT_WARNING_POP
mev.setAccepted(true);
// Use fast signal invocation since we already got its index
QQuickMouseEvent *mevPtr = &mev;
diff --git a/src/quicktemplates2/qquickrangeslider.cpp b/src/quicktemplates2/qquickrangeslider.cpp
index 9ad12102..2b0f2961 100644
--- a/src/quicktemplates2/qquickrangeslider.cpp
+++ b/src/quicktemplates2/qquickrangeslider.cpp
@@ -1151,14 +1151,14 @@ void QQuickRangeSlider::hoverEnterEvent(QHoverEvent *event)
{
Q_D(QQuickRangeSlider);
QQuickControl::hoverEnterEvent(event);
- d->updateHover(event->posF());
+ d->updateHover(event->position());
}
void QQuickRangeSlider::hoverMoveEvent(QHoverEvent *event)
{
Q_D(QQuickRangeSlider);
QQuickControl::hoverMoveEvent(event);
- d->updateHover(event->posF());
+ d->updateHover(event->position());
}
void QQuickRangeSlider::hoverLeaveEvent(QHoverEvent *event)
@@ -1181,7 +1181,7 @@ void QQuickRangeSlider::mousePressEvent(QMouseEvent *event)
{
Q_D(QQuickRangeSlider);
QQuickControl::mousePressEvent(event);
- d->handleMove(event->localPos());
+ d->handleMove(event->position());
setKeepMouseGrab(true);
}
@@ -1197,20 +1197,20 @@ void QQuickRangeSlider::touchEvent(QTouchEvent *event)
switch (point.state()) {
case Qt::TouchPointPressed:
- d->handlePress(point.pos());
+ d->handlePress(point.position());
break;
case Qt::TouchPointMoved:
if (!keepTouchGrab()) {
if (d->orientation == Qt::Horizontal)
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - point.startPos().x(), Qt::XAxis, &point, qRound(d->touchDragThreshold)));
+ setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - point.pressPosition().x(), Qt::XAxis, &point, qRound(d->touchDragThreshold)));
else
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().y() - point.startPos().y(), Qt::YAxis, &point, qRound(d->touchDragThreshold)));
+ setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().y() - point.pressPosition().y(), Qt::YAxis, &point, qRound(d->touchDragThreshold)));
}
if (keepTouchGrab())
- d->handleMove(point.pos());
+ d->handleMove(point.position());
break;
case Qt::TouchPointReleased:
- d->handleRelease(point.pos());
+ d->handleRelease(point.position());
break;
default:
break;
diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp
index 678b7942..b352224c 100644
--- a/src/quicktemplates2/qquickscrollbar.cpp
+++ b/src/quicktemplates2/qquickscrollbar.cpp
@@ -710,7 +710,7 @@ void QQuickScrollBar::mousePressEvent(QMouseEvent *event)
{
Q_D(QQuickScrollBar);
QQuickControl::mousePressEvent(event);
- d->handleMove(event->localPos());
+ d->handleMove(event->position());
}
#if QT_CONFIG(quicktemplates2_hover)
diff --git a/src/quicktemplates2/qquickslider.cpp b/src/quicktemplates2/qquickslider.cpp
index f4a459fa..9d223f25 100644
--- a/src/quicktemplates2/qquickslider.cpp
+++ b/src/quicktemplates2/qquickslider.cpp
@@ -790,7 +790,7 @@ void QQuickSlider::mousePressEvent(QMouseEvent *event)
{
Q_D(QQuickSlider);
QQuickControl::mousePressEvent(event);
- d->handleMove(event->localPos());
+ d->handleMove(event->position());
setKeepMouseGrab(true);
}
@@ -806,20 +806,20 @@ void QQuickSlider::touchEvent(QTouchEvent *event)
switch (point.state()) {
case Qt::TouchPointPressed:
- d->handlePress(point.pos());
+ d->handlePress(point.position());
break;
case Qt::TouchPointMoved:
if (!keepTouchGrab()) {
if (d->orientation == Qt::Horizontal)
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - d->pressPoint.x(), Qt::XAxis, &point, qRound(d->touchDragThreshold)));
+ setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - d->pressPoint.x(), Qt::XAxis, &point, qRound(d->touchDragThreshold)));
else
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().y() - d->pressPoint.y(), Qt::YAxis, &point, qRound(d->touchDragThreshold)));
+ setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().y() - d->pressPoint.y(), Qt::YAxis, &point, qRound(d->touchDragThreshold)));
}
if (keepTouchGrab())
- d->handleMove(point.pos());
+ d->handleMove(point.position());
break;
case Qt::TouchPointReleased:
- d->handleRelease(point.pos());
+ d->handleRelease(point.position());
break;
default:
break;
diff --git a/src/quicktemplates2/qquickspinbox.cpp b/src/quicktemplates2/qquickspinbox.cpp
index 687ccafd..c1541a99 100644
--- a/src/quicktemplates2/qquickspinbox.cpp
+++ b/src/quicktemplates2/qquickspinbox.cpp
@@ -891,14 +891,14 @@ void QQuickSpinBox::hoverEnterEvent(QHoverEvent *event)
{
Q_D(QQuickSpinBox);
QQuickControl::hoverEnterEvent(event);
- d->updateHover(event->posF());
+ d->updateHover(event->position());
}
void QQuickSpinBox::hoverMoveEvent(QHoverEvent *event)
{
Q_D(QQuickSpinBox);
QQuickControl::hoverMoveEvent(event);
- d->updateHover(event->posF());
+ d->updateHover(event->position());
}
void QQuickSpinBox::hoverLeaveEvent(QHoverEvent *event)
diff --git a/src/quicktemplates2/qquicksplitview.cpp b/src/quicktemplates2/qquicksplitview.cpp
index a1016792..df00f522 100644
--- a/src/quicktemplates2/qquicksplitview.cpp
+++ b/src/quicktemplates2/qquicksplitview.cpp
@@ -1389,7 +1389,7 @@ void QQuickSplitView::hoverMoveEvent(QHoverEvent *event)
Q_D(QQuickSplitView);
QQuickContainer::hoverMoveEvent(event);
- QQuickItem *hoveredItem = childAt(event->pos().x(), event->pos().y());
+ QQuickItem *hoveredItem = childAt(event->position().toPoint().x(), event->position().toPoint().y());
d->updateHoveredHandle(hoveredItem);
}
@@ -2029,7 +2029,7 @@ const QQuickSplitHandleAttachedPrivate *QQuickSplitHandleAttachedPrivate::get(co
}
QQuickSplitHandleAttached::QQuickSplitHandleAttached(QObject *parent)
- : QObject(*(new QQuickSplitViewAttachedPrivate), parent)
+ : QObject(*(new QQuickSplitHandleAttachedPrivate), parent)
{
}
diff --git a/src/quicktemplates2/qquicksplitview_p_p.h b/src/quicktemplates2/qquicksplitview_p_p.h
index 2430eac1..6123f83d 100644
--- a/src/quicktemplates2/qquicksplitview_p_p.h
+++ b/src/quicktemplates2/qquicksplitview_p_p.h
@@ -109,7 +109,7 @@ public:
Qt::Orientation m_orientation = Qt::Horizontal;
QQmlComponent *m_handle = nullptr;
- QVector<QQuickItem*> m_handleItems;
+ QList<QQuickItem*> m_handleItems;
int m_hoveredHandleIndex = -1;
int m_pressedHandleIndex = -1;
int m_nextVisibleIndexAfterPressedHandle = -1;
diff --git a/src/quicktemplates2/qquickstackview.cpp b/src/quicktemplates2/qquickstackview.cpp
index e5e2c39b..83f99843 100644
--- a/src/quicktemplates2/qquickstackview.cpp
+++ b/src/quicktemplates2/qquickstackview.cpp
@@ -498,7 +498,7 @@ QQuickItem *QQuickStackView::find(const QJSValue &callback, LoadBehavior behavio
/*!
\qmlmethod Item QtQuick.Controls::StackView::push(item, properties, operation)
- Pushes an \a item onto the stack using the specified \a operation, and
+ Pushes an \a item onto the stack using an optional \a operation, and
optionally applies a set of \a properties on the item. The item can be
an \l Item, \l Component, or a \l [QML] url. Returns the item that became
current.
@@ -545,12 +545,13 @@ QQuickItem *QQuickStackView::find(const QJSValue &callback, LoadBehavior behavio
An \a operation can be optionally specified as the last argument. Supported
operations:
- \value StackView.Transition An operation with default transitions (default).
\value StackView.Immediate An immediate operation without transitions.
\value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
\value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
\value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
+ If no operation is provided, \c PushTransition will be used.
+
\note Items that already exist in the stack are not pushed.
\sa initialItem, {Pushing Items}
@@ -639,12 +640,13 @@ void QQuickStackView::push(QQmlV4Function *args)
An \a operation can be optionally specified as the last argument. Supported
operations:
- \value StackView.Transition An operation with default transitions (default).
\value StackView.Immediate An immediate operation without transitions.
\value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
\value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
\value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
+ If no operation is provided, \c PopTransition will be used.
+
Examples:
\code
stackView.pop()
@@ -733,7 +735,7 @@ void QQuickStackView::pop(QQmlV4Function *args)
\qmlmethod Item QtQuick.Controls::StackView::replace(target, item, properties, operation)
Replaces one or more items on the stack with the specified \a item and
- \a operation, and optionally applies a set of \a properties on the
+ optional \a operation, and optionally applies a set of \a properties on the
item. The item can be an \l Item, \l Component, or a \l [QML] url.
Returns the item that became current.
@@ -782,12 +784,13 @@ void QQuickStackView::pop(QQmlV4Function *args)
An \a operation can be optionally specified as the last argument. Supported
operations:
- \value StackView.Transition An operation with default transitions (default).
\value StackView.Immediate An immediate operation without transitions.
\value StackView.PushTransition An operation with push transitions (since QtQuick.Controls 2.1).
\value StackView.ReplaceTransition An operation with replace transitions (since QtQuick.Controls 2.1).
\value StackView.PopTransition An operation with pop transitions (since QtQuick.Controls 2.1).
+ If no operation is provided, \c ReplaceTransition will be used.
+
The following example illustrates the use of push and pop transitions with replace().
\code
diff --git a/src/quicktemplates2/qquickstackview_p.h b/src/quicktemplates2/qquickstackview_p.h
index 9bb9c8f4..f551f027 100644
--- a/src/quicktemplates2/qquickstackview_p.h
+++ b/src/quicktemplates2/qquickstackview_p.h
@@ -124,7 +124,7 @@ public:
Q_INVOKABLE QQuickItem *find(const QJSValue &callback, LoadBehavior behavior = DontLoad);
enum Operation {
- Transition = -1, // deprecated
+ Transition = -1, // ### Deprecated in Qt 6; remove in Qt 7.
Immediate = 0,
PushTransition = 1,
ReplaceTransition = 2,
diff --git a/src/quicktemplates2/qquickswipedelegate.cpp b/src/quicktemplates2/qquickswipedelegate.cpp
index 8c8d8c6e..a28d8ecf 100644
--- a/src/quicktemplates2/qquickswipedelegate.cpp
+++ b/src/quicktemplates2/qquickswipedelegate.cpp
@@ -720,7 +720,7 @@ bool QQuickSwipeDelegatePrivate::handleMousePressEvent(QQuickItem *item, QMouseE
// The press point could be incorrect if the press happened over a child item,
// so we correct it after calling the base class' mousePressEvent(), rather
// than having to duplicate its code just so we can set the pressPoint.
- setPressPoint(item->mapToItem(q, event->pos()));
+ setPressPoint(item->mapToItem(q, event->position().toPoint()));
return true;
}
@@ -728,8 +728,8 @@ bool QQuickSwipeDelegatePrivate::handleMousePressEvent(QQuickItem *item, QMouseE
// (the control can be clicked to e.g. close the swipe). Either way, we must begin measuring
// mouse movement in case it turns into a swipe, in which case we grab the mouse.
swipePrivate->positionBeforePress = swipePrivate->position;
- swipePrivate->velocityCalculator.startMeasuring(event->pos(), event->timestamp());
- setPressPoint(item->mapToItem(q, event->pos()));
+ swipePrivate->velocityCalculator.startMeasuring(event->position().toPoint(), event->timestamp());
+ setPressPoint(item->mapToItem(q, event->position().toPoint()));
// When a delegate uses the attached properties and signals, it declares that it wants mouse events.
Attached *attached = attachedObject(item);
@@ -748,7 +748,7 @@ bool QQuickSwipeDelegatePrivate::handleMouseMoveEvent(QQuickItem *item, QMouseEv
Q_Q(QQuickSwipeDelegate);
if (holdTimer > 0) {
- if (QLineF(pressPoint, event->localPos()).length() > QGuiApplication::styleHints()->startDragDistance())
+ if (QLineF(pressPoint, event->position()).length() > QGuiApplication::styleHints()->startDragDistance())
stopPressAndHold();
}
@@ -770,7 +770,7 @@ bool QQuickSwipeDelegatePrivate::handleMouseMoveEvent(QQuickItem *item, QMouseEv
if (item == q && !pressed)
return false;
- const QPointF mappedEventPos = item->mapToItem(q, event->pos());
+ const QPointF mappedEventPos = item->mapToItem(q, event->position().toPoint());
const qreal distance = (mappedEventPos - pressPoint).x();
if (!q->keepMouseGrab()) {
// Taken from QQuickDrawerPrivate::grabMouse; see comments there.
@@ -840,7 +840,7 @@ bool QQuickSwipeDelegatePrivate::handleMouseMoveEvent(QQuickItem *item, QMouseEv
}
} else {
// The swipe wasn't initiated.
- if (event->pos().y() < 0 || event->pos().y() > height) {
+ if (event->position().toPoint().y() < 0 || event->position().toPoint().y() > height) {
// The mouse went outside the vertical bounds of the control, so
// we should no longer consider it pressed.
q->setPressed(false);
@@ -858,7 +858,7 @@ bool QQuickSwipeDelegatePrivate::handleMouseReleaseEvent(QQuickItem *item, QMous
{
Q_Q(QQuickSwipeDelegate);
QQuickSwipePrivate *swipePrivate = QQuickSwipePrivate::get(&swipe);
- swipePrivate->velocityCalculator.stopMeasuring(event->pos(), event->timestamp());
+ swipePrivate->velocityCalculator.stopMeasuring(event->position().toPoint(), event->timestamp());
const bool hadGrabbedMouse = q->keepMouseGrab();
q->setKeepMouseGrab(false);
@@ -1180,7 +1180,7 @@ void QQuickSwipeDelegate::mousePressEvent(QMouseEvent *event)
return;
swipePrivate->positionBeforePress = swipePrivate->position;
- swipePrivate->velocityCalculator.startMeasuring(event->pos(), event->timestamp());
+ swipePrivate->velocityCalculator.startMeasuring(event->position().toPoint(), event->timestamp());
}
void QQuickSwipeDelegate::mouseMoveEvent(QMouseEvent *event)
diff --git a/src/quicktemplates2/qquickswitch.cpp b/src/quicktemplates2/qquickswitch.cpp
index 08ea44da..2bba350d 100644
--- a/src/quicktemplates2/qquickswitch.cpp
+++ b/src/quicktemplates2/qquickswitch.cpp
@@ -180,7 +180,7 @@ void QQuickSwitch::mouseMoveEvent(QMouseEvent *event)
{
Q_D(QQuickSwitch);
if (!keepMouseGrab()) {
- const QPointF movePoint = event->localPos();
+ const QPointF movePoint = event->position();
if (d->canDrag(movePoint))
setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(movePoint.x() - d->pressPoint.x(), Qt::XAxis, event));
}
@@ -195,8 +195,8 @@ void QQuickSwitch::touchEvent(QTouchEvent *event)
for (const QTouchEvent::TouchPoint &point : event->touchPoints()) {
if (point.id() != d->touchId || point.state() != Qt::TouchPointMoved)
continue;
- if (d->canDrag(point.pos()))
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - d->pressPoint.x(), Qt::XAxis, &point));
+ if (d->canDrag(point.position()))
+ setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - d->pressPoint.x(), Qt::XAxis, &point));
}
}
QQuickAbstractButton::touchEvent(event);
diff --git a/src/quicktemplates2/qquickswitchdelegate.cpp b/src/quicktemplates2/qquickswitchdelegate.cpp
index d0e3afc8..3300e252 100644
--- a/src/quicktemplates2/qquickswitchdelegate.cpp
+++ b/src/quicktemplates2/qquickswitchdelegate.cpp
@@ -177,7 +177,7 @@ void QQuickSwitchDelegate::mouseMoveEvent(QMouseEvent *event)
{
Q_D(QQuickSwitchDelegate);
if (!keepMouseGrab()) {
- const QPointF movePoint = event->localPos();
+ const QPointF movePoint = event->position();
if (d->canDrag(movePoint))
setKeepMouseGrab(QQuickWindowPrivate::dragOverThreshold(movePoint.x() - d->pressPoint.x(), Qt::XAxis, event));
}
@@ -192,8 +192,8 @@ void QQuickSwitchDelegate::touchEvent(QTouchEvent *event)
for (const QTouchEvent::TouchPoint &point : event->touchPoints()) {
if (point.id() != d->touchId || point.state() != Qt::TouchPointMoved)
continue;
- if (d->canDrag(point.pos()))
- setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.pos().x() - d->pressPoint.x(), Qt::XAxis, &point));
+ if (d->canDrag(point.position()))
+ setKeepTouchGrab(QQuickWindowPrivate::dragOverThreshold(point.position().x() - d->pressPoint.x(), Qt::XAxis, &point));
}
}
QQuickItemDelegate::touchEvent(event);
diff --git a/src/quicktemplates2/qquicktabbar.cpp b/src/quicktemplates2/qquicktabbar.cpp
index c90ff674..b38699df 100644
--- a/src/quicktemplates2/qquicktabbar.cpp
+++ b/src/quicktemplates2/qquicktabbar.cpp
@@ -158,7 +158,7 @@ void QQuickTabBarPrivate::updateLayout()
qreal reservedWidth = 0;
int resizableCount = 0;
- QVector<QQuickItem *> allItems;
+ QList<QQuickItem *> allItems;
allItems.reserve(count);
for (int i = 0; i < count; ++i) {
diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp
index 0dcebb40..c8e61094 100644
--- a/src/quicktemplates2/qquicktextfield.cpp
+++ b/src/quicktemplates2/qquicktextfield.cpp
@@ -309,7 +309,7 @@ void QQuickTextFieldPrivate::echoModeChanged(QQuickTextField::EchoMode echoMode)
if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func()))
accessibleAttached->set_passwordEdit((echoMode == QQuickTextField::Password || echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false);
#else
- Q_UNUSED(echoMode)
+ Q_UNUSED(echoMode);
#endif
}