aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/controls/RangeSlider.qml9
-rw-r--r--src/imports/controls/designer/BusyIndicatorSpecifics.qml4
-rw-r--r--src/imports/controls/designer/ButtonSpecifics.qml4
-rw-r--r--src/imports/controls/designer/CheckBoxSpecifics.qml4
-rw-r--r--src/imports/controls/designer/CheckDelegateSpecifics.qml4
-rw-r--r--src/imports/controls/designer/ComboBoxSpecifics.qml4
-rw-r--r--src/imports/controls/designer/ControlSpecifics.qml4
-rw-r--r--src/imports/controls/designer/DialSpecifics.qml4
-rw-r--r--src/imports/controls/designer/FrameSpecifics.qml4
-rw-r--r--src/imports/controls/designer/GroupBoxSpecifics.qml4
-rw-r--r--src/imports/controls/designer/ItemDelegateSpecifics.qml4
-rw-r--r--src/imports/controls/designer/PageIndicatorSpecifics.qml4
-rw-r--r--src/imports/controls/designer/PaneSpecifics.qml4
-rw-r--r--src/imports/controls/designer/ProgressBarSpecifics.qml4
-rw-r--r--src/imports/controls/designer/RadioButtonSpecifics.qml4
-rw-r--r--src/imports/controls/designer/RadioDelegateSpecifics.qml4
-rw-r--r--src/imports/controls/designer/SliderSpecifics.qml4
-rw-r--r--src/imports/controls/designer/SpinBoxSpecifics.qml4
-rw-r--r--src/imports/controls/designer/SwipeDelegateSpecifics.qml4
-rw-r--r--src/imports/controls/designer/SwitchSpecifics.qml4
-rw-r--r--src/imports/controls/designer/ToolBarSpecifics.qml4
-rw-r--r--src/imports/controls/designer/ToolButtonSpecifics.qml4
-rw-r--r--src/imports/controls/designer/TumblerSpecifics.qml4
-rw-r--r--src/imports/controls/designer/images/scrollview-icon.pngbin0 -> 157 bytes
-rw-r--r--src/imports/controls/designer/images/scrollview-icon16.pngbin0 -> 147 bytes
-rw-r--r--src/imports/controls/designer/qtquickcontrols2.metainfo20
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-button.gifbin1863 -> 4140 bytes
-rw-r--r--src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gifbin17402 -> 24125 bytes
-rw-r--r--src/imports/controls/doc/snippets/screenshots/qtquickcontrols2-tooltip-slider.qml53
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-buttons.qdoc13
-rw-r--r--src/imports/controls/doc/src/qtquickcontrols2-popups.qdoc2
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp1
-rw-r--r--src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp2
-rw-r--r--src/imports/platform/platform.pri14
-rw-r--r--src/imports/platform/qquickplatformmenu.cpp9
-rw-r--r--src/imports/platform/qquickplatformsystemtrayicon_p.h2
-rw-r--r--src/imports/platform/qtlabsplatformplugin.cpp7
-rw-r--r--src/imports/platform/widgets/qwidgetplatformmenu.cpp25
-rw-r--r--src/imports/platform/widgets/qwidgetplatformmenu_p.h3
-rw-r--r--src/imports/platform/widgets/qwidgetplatformmenuitem.cpp12
-rw-r--r--src/imports/platform/widgets/qwidgetplatformmenuitem_p.h3
-rw-r--r--src/imports/platform/widgets/qwidgetplatformmessagedialog.cpp2
-rw-r--r--src/imports/platform/widgets/qwidgetplatformsystemtrayicon.cpp2
-rw-r--r--src/imports/platform/widgets/qwidgetplatformsystemtrayicon_p.h2
-rw-r--r--src/imports/platform/widgets/widgets.pri11
-rw-r--r--src/imports/templates/qtquicktemplates2plugin.cpp2
46 files changed, 247 insertions, 35 deletions
diff --git a/src/imports/controls/RangeSlider.qml b/src/imports/controls/RangeSlider.qml
index f71aa462..1d8a561d 100644
--- a/src/imports/controls/RangeSlider.qml
+++ b/src/imports/controls/RangeSlider.qml
@@ -91,5 +91,14 @@ T.RangeSlider {
radius: 3
color: Default.buttonColor
scale: control.horizontal && control.mirrored ? -1 : 1
+
+ Rectangle {
+ x: parent.horizontal ? control.first.position * parent.width + 3 : 0
+ y: parent.horizontal ? 0 : control.second.visualPosition * parent.height + 3
+ width: parent.horizontal ? control.second.position * parent.width - control.first.position * parent.width - 6 : 6
+ height: parent.horizontal ? 6 : control.second.position * parent.height - control.first.position * parent.height - 6
+
+ color: Default.textColor
+ }
}
}
diff --git a/src/imports/controls/designer/BusyIndicatorSpecifics.qml b/src/imports/controls/designer/BusyIndicatorSpecifics.qml
index a694f191..78a00e8e 100644
--- a/src/imports/controls/designer/BusyIndicatorSpecifics.qml
+++ b/src/imports/controls/designer/BusyIndicatorSpecifics.qml
@@ -64,6 +64,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/ButtonSpecifics.qml b/src/imports/controls/designer/ButtonSpecifics.qml
index 71a53b37..4a9e58c2 100644
--- a/src/imports/controls/designer/ButtonSpecifics.qml
+++ b/src/imports/controls/designer/ButtonSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/CheckBoxSpecifics.qml b/src/imports/controls/designer/CheckBoxSpecifics.qml
index 22184e69..bae0a03c 100644
--- a/src/imports/controls/designer/CheckBoxSpecifics.qml
+++ b/src/imports/controls/designer/CheckBoxSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/CheckDelegateSpecifics.qml b/src/imports/controls/designer/CheckDelegateSpecifics.qml
index 2503d4ec..bd885430 100644
--- a/src/imports/controls/designer/CheckDelegateSpecifics.qml
+++ b/src/imports/controls/designer/CheckDelegateSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/ComboBoxSpecifics.qml b/src/imports/controls/designer/ComboBoxSpecifics.qml
index d4a6fbbc..410ae51e 100644
--- a/src/imports/controls/designer/ComboBoxSpecifics.qml
+++ b/src/imports/controls/designer/ComboBoxSpecifics.qml
@@ -77,6 +77,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/ControlSpecifics.qml b/src/imports/controls/designer/ControlSpecifics.qml
index f2d8fa94..1eef1c68 100644
--- a/src/imports/controls/designer/ControlSpecifics.qml
+++ b/src/imports/controls/designer/ControlSpecifics.qml
@@ -45,6 +45,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/DialSpecifics.qml b/src/imports/controls/designer/DialSpecifics.qml
index 123a0c92..52bba078 100644
--- a/src/imports/controls/designer/DialSpecifics.qml
+++ b/src/imports/controls/designer/DialSpecifics.qml
@@ -108,6 +108,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/FrameSpecifics.qml b/src/imports/controls/designer/FrameSpecifics.qml
index f2d8fa94..1eef1c68 100644
--- a/src/imports/controls/designer/FrameSpecifics.qml
+++ b/src/imports/controls/designer/FrameSpecifics.qml
@@ -45,6 +45,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/GroupBoxSpecifics.qml b/src/imports/controls/designer/GroupBoxSpecifics.qml
index b21cee03..8629b991 100644
--- a/src/imports/controls/designer/GroupBoxSpecifics.qml
+++ b/src/imports/controls/designer/GroupBoxSpecifics.qml
@@ -63,6 +63,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/ItemDelegateSpecifics.qml b/src/imports/controls/designer/ItemDelegateSpecifics.qml
index 36126e39..0e0a482e 100644
--- a/src/imports/controls/designer/ItemDelegateSpecifics.qml
+++ b/src/imports/controls/designer/ItemDelegateSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/PageIndicatorSpecifics.qml b/src/imports/controls/designer/PageIndicatorSpecifics.qml
index e6c4c696..02258c92 100644
--- a/src/imports/controls/designer/PageIndicatorSpecifics.qml
+++ b/src/imports/controls/designer/PageIndicatorSpecifics.qml
@@ -80,6 +80,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/PaneSpecifics.qml b/src/imports/controls/designer/PaneSpecifics.qml
index f2d8fa94..1eef1c68 100644
--- a/src/imports/controls/designer/PaneSpecifics.qml
+++ b/src/imports/controls/designer/PaneSpecifics.qml
@@ -45,6 +45,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/ProgressBarSpecifics.qml b/src/imports/controls/designer/ProgressBarSpecifics.qml
index 5d3e888f..7abb895d 100644
--- a/src/imports/controls/designer/ProgressBarSpecifics.qml
+++ b/src/imports/controls/designer/ProgressBarSpecifics.qml
@@ -106,6 +106,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/RadioButtonSpecifics.qml b/src/imports/controls/designer/RadioButtonSpecifics.qml
index 6ab1de7f..a7a5a3f7 100644
--- a/src/imports/controls/designer/RadioButtonSpecifics.qml
+++ b/src/imports/controls/designer/RadioButtonSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/RadioDelegateSpecifics.qml b/src/imports/controls/designer/RadioDelegateSpecifics.qml
index 789e2bb2..09ee6590 100644
--- a/src/imports/controls/designer/RadioDelegateSpecifics.qml
+++ b/src/imports/controls/designer/RadioDelegateSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/SliderSpecifics.qml b/src/imports/controls/designer/SliderSpecifics.qml
index fa242128..fb215001 100644
--- a/src/imports/controls/designer/SliderSpecifics.qml
+++ b/src/imports/controls/designer/SliderSpecifics.qml
@@ -121,6 +121,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/SpinBoxSpecifics.qml b/src/imports/controls/designer/SpinBoxSpecifics.qml
index f85676c1..4290801a 100644
--- a/src/imports/controls/designer/SpinBoxSpecifics.qml
+++ b/src/imports/controls/designer/SpinBoxSpecifics.qml
@@ -108,6 +108,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/SwipeDelegateSpecifics.qml b/src/imports/controls/designer/SwipeDelegateSpecifics.qml
index 36126e39..0e0a482e 100644
--- a/src/imports/controls/designer/SwipeDelegateSpecifics.qml
+++ b/src/imports/controls/designer/SwipeDelegateSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/SwitchSpecifics.qml b/src/imports/controls/designer/SwitchSpecifics.qml
index 8034bc5a..53172765 100644
--- a/src/imports/controls/designer/SwitchSpecifics.qml
+++ b/src/imports/controls/designer/SwitchSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/ToolBarSpecifics.qml b/src/imports/controls/designer/ToolBarSpecifics.qml
index f2d8fa94..1eef1c68 100644
--- a/src/imports/controls/designer/ToolBarSpecifics.qml
+++ b/src/imports/controls/designer/ToolBarSpecifics.qml
@@ -45,6 +45,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/ToolButtonSpecifics.qml b/src/imports/controls/designer/ToolButtonSpecifics.qml
index 278ed165..3dc80b2c 100644
--- a/src/imports/controls/designer/ToolButtonSpecifics.qml
+++ b/src/imports/controls/designer/ToolButtonSpecifics.qml
@@ -50,6 +50,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/TumblerSpecifics.qml b/src/imports/controls/designer/TumblerSpecifics.qml
index 39f26089..2018f796 100644
--- a/src/imports/controls/designer/TumblerSpecifics.qml
+++ b/src/imports/controls/designer/TumblerSpecifics.qml
@@ -80,6 +80,10 @@ Column {
width: parent.width
}
+ FontSection {
+ width: parent.width
+ }
+
PaddingSection {
width: parent.width
}
diff --git a/src/imports/controls/designer/images/scrollview-icon.png b/src/imports/controls/designer/images/scrollview-icon.png
new file mode 100644
index 00000000..bbd6783c
--- /dev/null
+++ b/src/imports/controls/designer/images/scrollview-icon.png
Binary files differ
diff --git a/src/imports/controls/designer/images/scrollview-icon16.png b/src/imports/controls/designer/images/scrollview-icon16.png
new file mode 100644
index 00000000..3f7ab00c
--- /dev/null
+++ b/src/imports/controls/designer/images/scrollview-icon16.png
Binary files differ
diff --git a/src/imports/controls/designer/qtquickcontrols2.metainfo b/src/imports/controls/designer/qtquickcontrols2.metainfo
index 35cfa0f2..1f861d41 100644
--- a/src/imports/controls/designer/qtquickcontrols2.metainfo
+++ b/src/imports/controls/designer/qtquickcontrols2.metainfo
@@ -410,6 +410,8 @@ MetaInfo {
libraryIcon: "images/tumbler-icon.png"
version: "2.0"
requiredImport: "QtQuick.Controls"
+
+ Property { name: "model"; type: "int"; value: "10" }
}
}
@@ -460,7 +462,7 @@ MetaInfo {
icon: "images/stackview-icon16.png"
ItemLibraryEntry {
- name: "stack View"
+ name: "Stack View"
category: "Qt Quick - Views"
libraryIcon: "images/stackview-icon.png"
version: "2.1"
@@ -486,4 +488,20 @@ MetaInfo {
Property { name: "height"; type: "int"; value: 200 }
}
}
+
+ Type {
+ name: "QtQuick.Controls.ScrollView"
+ icon: "images/scrollview-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Scroll View"
+ category: "Qt Quick - Views"
+ libraryIcon: "images/scrollview-icon.png"
+ version: "2.2"
+ requiredImport: "QtQuick.Controls"
+
+ Property { name: "width"; type: "int"; value: 200 }
+ Property { name: "height"; type: "int"; value: 200 }
+ }
+ }
}
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-button.gif b/src/imports/controls/doc/images/qtquickcontrols2-button.gif
index 7f2de718..10d626a3 100644
--- a/src/imports/controls/doc/images/qtquickcontrols2-button.gif
+++ b/src/imports/controls/doc/images/qtquickcontrols2-button.gif
Binary files differ
diff --git a/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif b/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif
index d35b1502..db565b0a 100644
--- a/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif
+++ b/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif
Binary files differ
diff --git a/src/imports/controls/doc/snippets/screenshots/qtquickcontrols2-tooltip-slider.qml b/src/imports/controls/doc/snippets/screenshots/qtquickcontrols2-tooltip-slider.qml
new file mode 100644
index 00000000..de872300
--- /dev/null
+++ b/src/imports/controls/doc/snippets/screenshots/qtquickcontrols2-tooltip-slider.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+import QtQuick.Window 2.2
+import QtQuick.Controls 2.1
+
+Item {
+ id: root
+ width: slider.width
+ height: slider.height * 2.0
+
+ Binding { target: slider.anchors; property: "centerIn"; value: root }
+ Binding { target: slider.anchors; property: "verticalCenterOffset"; value: slider.height / 2 }
+ Binding { target: slider; property: "pressed"; value: root.Window.active }
+
+ //! [1]
+ Slider {
+ id: slider
+ value: 0.5
+
+ ToolTip {
+ parent: slider.handle
+ visible: slider.pressed
+ text: slider.value.toFixed(1)
+ }
+ }
+ //! [1]
+}
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-buttons.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-buttons.qdoc
index a3ab35b2..a1f2dd57 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-buttons.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-buttons.qdoc
@@ -79,12 +79,12 @@
be taken, a switch is recommended.
When options can be grouped, you can use a partially checked CheckBox to
- represent the whole group. Use the checkbox's indeterminate state when
- a user selects some, but not all, sub-items in the group.
+ represent the whole group. Use the checkbox's
+ \l {CheckBox::checkState}{partially checked state} when a user selects
+ some, but not all, sub-items in the group.
- The three availables statuses are: checked, unchecked and disabled.
- "Disabled" is useful when the user should not be able to check or uncheck
- a checkbox.
+ The three availables check states are: checked, partially checked and
+ unchecked.
The checkable options are often listed vertically.
@@ -121,9 +121,6 @@
\l RadioButton is used to select only one option from a set of options.
Selecting one option automatically deselects the one selected before.
- The set of options should not be too large, otherwise it starts taking too much
- space on the screen. In that case it would be more practical to use a \l ComboBox.
-
If there are only two mutually exclusive options, combine them into a
single checkbox or a switch.
diff --git a/src/imports/controls/doc/src/qtquickcontrols2-popups.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-popups.qdoc
index 3f8871de..bdcee545 100644
--- a/src/imports/controls/doc/src/qtquickcontrols2-popups.qdoc
+++ b/src/imports/controls/doc/src/qtquickcontrols2-popups.qdoc
@@ -70,7 +70,7 @@
A popup can be used for:
\list
- \li communicating a message to the user that he must read and acknowledge.
+ \li communicating a message to the user that they must read and acknowledge.
\li displaying an error message.
\li prompting the user to make a choice and/or enter a value.
\endlist
diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
index 0deb429c..3f3a66b0 100644
--- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
+++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
@@ -99,6 +99,7 @@ void QtQuickControls2MaterialStylePlugin::initializeEngine(QQmlEngine *engine, c
qmlRegisterType(typeUrl(QStringLiteral("CheckIndicator.qml")), import, 2, 0, "CheckIndicator");
qmlRegisterType(typeUrl(QStringLiteral("CursorDelegate.qml")), import, 2, 0, "CursorDelegate");
qmlRegisterType(typeUrl(QStringLiteral("ElevationEffect.qml")), import, 2, 0, "ElevationEffect");
+ qmlRegisterType(typeUrl(QStringLiteral("RadioIndicator.qml")), import, 2, 0, "RadioIndicator");
qmlRegisterType(typeUrl(QStringLiteral("RectangularGlow.qml")), import, 2, 0, "RectangularGlow");
qmlRegisterType(typeUrl(QStringLiteral("SliderHandle.qml")), import, 2, 0, "SliderHandle");
qmlRegisterType(typeUrl(QStringLiteral("SwitchIndicator.qml")), import, 2, 0, "SwitchIndicator");
diff --git a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
index 29f2b7cc..017a1aad 100644
--- a/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
+++ b/src/imports/controls/universal/qtquickcontrols2universalstyleplugin.cpp
@@ -92,6 +92,8 @@ void QtQuickControls2UniversalStylePlugin::initializeEngine(QQmlEngine *engine,
qmlRegisterType<QQuickUniversalFocusRectangle>(import, 2, 0, "FocusRectangle");
qmlRegisterType<QQuickUniversalBusyIndicator>(import, 2, 0, "BusyIndicatorImpl");
qmlRegisterType<QQuickUniversalProgressBar>(import, 2, 0, "ProgressBarImpl");
+
+ qmlRegisterType(typeUrl(QStringLiteral("CheckIndicator.qml")), import, 2, 0, "CheckIndicator");
qmlRegisterType(typeUrl(QStringLiteral("RadioIndicator.qml")), import, 2, 0, "RadioIndicator");
qmlRegisterType(typeUrl(QStringLiteral("SwitchIndicator.qml")), import, 2, 0, "SwitchIndicator");
}
diff --git a/src/imports/platform/platform.pri b/src/imports/platform/platform.pri
index 1e300251..2227d89c 100644
--- a/src/imports/platform/platform.pri
+++ b/src/imports/platform/platform.pri
@@ -11,8 +11,7 @@ HEADERS += \
$$PWD/qquickplatformmenuitemgroup_p.h \
$$PWD/qquickplatformmenuseparator_p.h \
$$PWD/qquickplatformmessagedialog_p.h \
- $$PWD/qquickplatformstandardpaths_p.h \
- $$PWD/qquickplatformsystemtrayicon_p.h
+ $$PWD/qquickplatformstandardpaths_p.h
SOURCES += \
$$PWD/qquickplatformcolordialog.cpp \
@@ -27,5 +26,12 @@ SOURCES += \
$$PWD/qquickplatformmenuitemgroup.cpp \
$$PWD/qquickplatformmenuseparator.cpp \
$$PWD/qquickplatformmessagedialog.cpp \
- $$PWD/qquickplatformstandardpaths.cpp \
- $$PWD/qquickplatformsystemtrayicon.cpp
+ $$PWD/qquickplatformstandardpaths.cpp
+
+
+qtConfig(systemtrayicon) {
+ HEADERS += \
+ $$PWD/qquickplatformsystemtrayicon_p.h
+ SOURCES += \
+ $$PWD/qquickplatformsystemtrayicon.cpp
+}
diff --git a/src/imports/platform/qquickplatformmenu.cpp b/src/imports/platform/qquickplatformmenu.cpp
index 34a114f5..fbef8b8d 100644
--- a/src/imports/platform/qquickplatformmenu.cpp
+++ b/src/imports/platform/qquickplatformmenu.cpp
@@ -38,7 +38,6 @@
#include "qquickplatformmenubar_p.h"
#include "qquickplatformmenuitem_p.h"
#include "qquickplatformiconloader_p.h"
-#include "qquickplatformsystemtrayicon_p.h"
#include <QtCore/qloggingcategory.h>
#include <QtGui/qicon.h>
@@ -54,6 +53,10 @@
#include "widgets/qwidgetplatform_p.h"
+#if QT_CONFIG(systemtrayicon)
+#include "qquickplatformsystemtrayicon_p.h"
+#endif
+
QT_BEGIN_NAMESPACE
/*!
@@ -173,8 +176,10 @@ QPlatformMenu * QQuickPlatformMenu::create()
m_handle = m_menuBar->handle()->createMenu();
else if (m_parentMenu && m_parentMenu->handle())
m_handle = m_parentMenu->handle()->createSubMenu();
+#if QT_CONFIG(systemtrayicon)
else if (m_systemTrayIcon && m_systemTrayIcon->handle())
m_handle = m_systemTrayIcon->handle()->createMenu();
+#endif
// TODO: implement ^
// - QCocoaMenuBar::createMenu()
@@ -227,8 +232,10 @@ void QQuickPlatformMenu::sync()
if (m_menuBar && m_menuBar->handle())
m_menuBar->handle()->syncMenu(m_handle);
+#if QT_CONFIG(systemtrayicon)
else if (m_systemTrayIcon && m_systemTrayIcon->handle())
m_systemTrayIcon->handle()->updateMenu(m_handle);
+#endif
for (QQuickPlatformMenuItem *item : m_items)
item->sync();
diff --git a/src/imports/platform/qquickplatformsystemtrayicon_p.h b/src/imports/platform/qquickplatformsystemtrayicon_p.h
index c1eddcda..7aa07512 100644
--- a/src/imports/platform/qquickplatformsystemtrayicon_p.h
+++ b/src/imports/platform/qquickplatformsystemtrayicon_p.h
@@ -53,6 +53,8 @@
#include <QtQml/qqmlparserstatus.h>
#include <QtQml/qqml.h>
+QT_REQUIRE_CONFIG(systemtrayicon);
+
QT_BEGIN_NAMESPACE
class QQuickPlatformMenu;
diff --git a/src/imports/platform/qtlabsplatformplugin.cpp b/src/imports/platform/qtlabsplatformplugin.cpp
index 6a1d5210..bcb9ac98 100644
--- a/src/imports/platform/qtlabsplatformplugin.cpp
+++ b/src/imports/platform/qtlabsplatformplugin.cpp
@@ -52,8 +52,9 @@
#include "qquickplatformmenuseparator_p.h"
#include "qquickplatformstandardpaths_p.h"
-
-#include "qquickplatformsystemtrayicon_p.h"
+#if QT_CONFIG(systemtrayicon)
+# include "qquickplatformsystemtrayicon_p.h"
+#endif
Q_DECLARE_METATYPE(QStandardPaths::StandardLocation)
Q_DECLARE_METATYPE(QStandardPaths::LocateOptions)
@@ -107,7 +108,9 @@ void QtLabsPlatformPlugin::registerTypes(const char *uri)
qRegisterMetaType<QStandardPaths::StandardLocation>();
qRegisterMetaType<QStandardPaths::LocateOptions>();
+#if QT_CONFIG(systemtrayicon)
qmlRegisterType<QQuickPlatformSystemTrayIcon>(uri, 1, 0, "SystemTrayIcon");
+#endif
}
QT_END_NAMESPACE
diff --git a/src/imports/platform/widgets/qwidgetplatformmenu.cpp b/src/imports/platform/widgets/qwidgetplatformmenu.cpp
index eddc7ccc..1aacb0ff 100644
--- a/src/imports/platform/widgets/qwidgetplatformmenu.cpp
+++ b/src/imports/platform/widgets/qwidgetplatformmenu.cpp
@@ -44,7 +44,7 @@
QT_BEGIN_NAMESPACE
QWidgetPlatformMenu::QWidgetPlatformMenu(QObject *parent)
- : m_menu(new QMenu)
+ : m_tag(reinterpret_cast<quintptr>(this)), m_menu(new QMenu)
{
setParent(parent);
@@ -69,6 +69,10 @@ void QWidgetPlatformMenu::insertMenuItem(QPlatformMenuItem *item, QPlatformMenuI
QWidgetPlatformMenuItem *widgetBefore = qobject_cast<QWidgetPlatformMenuItem *>(before);
m_menu->insertAction(widgetBefore ? widgetBefore->action() : nullptr, widgetItem->action());
+ int index = m_items.indexOf(widgetBefore);
+ if (index < 0)
+ index = m_items.count();
+ m_items.insert(index, widgetItem);
}
void QWidgetPlatformMenu::removeMenuItem(QPlatformMenuItem *item)
@@ -77,6 +81,7 @@ void QWidgetPlatformMenu::removeMenuItem(QPlatformMenuItem *item)
if (!widgetItem)
return;
+ m_items.removeOne(widgetItem);
m_menu->removeAction(widgetItem->action());
}
@@ -87,17 +92,17 @@ void QWidgetPlatformMenu::syncMenuItem(QPlatformMenuItem *item)
void QWidgetPlatformMenu::syncSeparatorsCollapsible(bool enable)
{
- Q_UNUSED(enable);
+ m_menu->setSeparatorsCollapsible(enable);
}
quintptr QWidgetPlatformMenu::tag() const
{
- return 0;
+ return m_tag;
}
void QWidgetPlatformMenu::setTag(quintptr tag)
{
- Q_UNUSED(tag);
+ m_tag = tag;
}
void QWidgetPlatformMenu::setText(const QString &text)
@@ -163,24 +168,26 @@ void QWidgetPlatformMenu::dismiss()
QPlatformMenuItem *QWidgetPlatformMenu::menuItemAt(int position) const
{
- Q_UNUSED(position);
- return nullptr;
+ return m_items.value(position);
}
QPlatformMenuItem *QWidgetPlatformMenu::menuItemForTag(quintptr tag) const
{
- Q_UNUSED(tag);
+ for (QWidgetPlatformMenuItem *item : m_items) {
+ if (item->tag() == tag)
+ return item;
+ }
return nullptr;
}
QPlatformMenuItem *QWidgetPlatformMenu::createMenuItem() const
{
- return nullptr;
+ return new QWidgetPlatformMenuItem;
}
QPlatformMenu *QWidgetPlatformMenu::createSubMenu() const
{
- return nullptr;
+ return new QWidgetPlatformMenu;
}
QT_END_NAMESPACE
diff --git a/src/imports/platform/widgets/qwidgetplatformmenu_p.h b/src/imports/platform/widgets/qwidgetplatformmenu_p.h
index 2eea6470..1df9ef78 100644
--- a/src/imports/platform/widgets/qwidgetplatformmenu_p.h
+++ b/src/imports/platform/widgets/qwidgetplatformmenu_p.h
@@ -53,6 +53,7 @@
QT_BEGIN_NAMESPACE
class QMenu;
+class QWidgetPlatformMenuItem;
class QWidgetPlatformMenu : public QPlatformMenu
{
@@ -91,7 +92,9 @@ public:
QPlatformMenu *createSubMenu() const override;
private:
+ quintptr m_tag;
QScopedPointer<QMenu> m_menu;
+ QVector<QWidgetPlatformMenuItem *> m_items;
};
QT_END_NAMESPACE
diff --git a/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp b/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp
index c7576296..8519c899 100644
--- a/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp
+++ b/src/imports/platform/widgets/qwidgetplatformmenuitem.cpp
@@ -35,6 +35,7 @@
****************************************************************************/
#include "qwidgetplatformmenuitem_p.h"
+#include "qwidgetplatformmenu_p.h"
#include <QtWidgets/qmenu.h>
#include <QtWidgets/qaction.h>
@@ -42,7 +43,7 @@
QT_BEGIN_NAMESPACE
QWidgetPlatformMenuItem::QWidgetPlatformMenuItem(QObject *parent)
- : m_action(new QAction)
+ : m_tag(reinterpret_cast<quintptr>(this)), m_action(new QAction)
{
setParent(parent);
connect(m_action.data(), &QAction::hovered, this, &QPlatformMenuItem::hovered);
@@ -60,12 +61,12 @@ QAction *QWidgetPlatformMenuItem::action() const
quintptr QWidgetPlatformMenuItem::tag() const
{
- return 0;
+ return m_tag;
}
void QWidgetPlatformMenuItem::setTag(quintptr tag)
{
- Q_UNUSED(tag);
+ m_tag = tag;
}
void QWidgetPlatformMenuItem::setText(const QString &text)
@@ -80,7 +81,8 @@ void QWidgetPlatformMenuItem::setIcon(const QIcon &icon)
void QWidgetPlatformMenuItem::setMenu(QPlatformMenu *menu)
{
- m_action->setMenu(qobject_cast<QMenu *>(menu));
+ QWidgetPlatformMenu *widgetMenu = qobject_cast<QWidgetPlatformMenu *>(menu);
+ m_action->setMenu(widgetMenu ? widgetMenu->menu() : nullptr);
}
void QWidgetPlatformMenuItem::setVisible(bool visible)
@@ -113,10 +115,12 @@ void QWidgetPlatformMenuItem::setChecked(bool checked)
m_action->setChecked(checked);
}
+#if QT_CONFIG(shortcut)
void QWidgetPlatformMenuItem::setShortcut(const QKeySequence &shortcut)
{
m_action->setShortcut(shortcut);
}
+#endif
void QWidgetPlatformMenuItem::setEnabled(bool enabled)
{
diff --git a/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h b/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h
index 82398bb8..752f8a03 100644
--- a/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h
+++ b/src/imports/platform/widgets/qwidgetplatformmenuitem_p.h
@@ -76,11 +76,14 @@ public:
void setRole(MenuRole role) override;
void setCheckable(bool checkable) override;
void setChecked(bool checked) override;
+#if QT_CONFIG(shortcut)
void setShortcut(const QKeySequence& shortcut) override;
+#endif
void setEnabled(bool enabled) override;
void setIconSize(int size) override;
private:
+ quintptr m_tag;
QScopedPointer<QAction> m_action;
};
diff --git a/src/imports/platform/widgets/qwidgetplatformmessagedialog.cpp b/src/imports/platform/widgets/qwidgetplatformmessagedialog.cpp
index 1f851ba1..365692dc 100644
--- a/src/imports/platform/widgets/qwidgetplatformmessagedialog.cpp
+++ b/src/imports/platform/widgets/qwidgetplatformmessagedialog.cpp
@@ -71,7 +71,9 @@ bool QWidgetPlatformMessageDialog::show(Qt::WindowFlags flags, Qt::WindowModalit
m_dialog->setIcon(static_cast<QMessageBox::Icon>(options->icon()));
m_dialog->setText(options->text());
m_dialog->setInformativeText(options->informativeText());
+#if QT_CONFIG(textedit)
m_dialog->setDetailedText(options->detailedText());
+#endif
m_dialog->setStandardButtons(static_cast<QMessageBox::StandardButtons>(int(options->standardButtons())));
return QWidgetPlatformDialog::show(m_dialog.data(), flags, modality, parent);
diff --git a/src/imports/platform/widgets/qwidgetplatformsystemtrayicon.cpp b/src/imports/platform/widgets/qwidgetplatformsystemtrayicon.cpp
index 4ef1e423..1cdfcfde 100644
--- a/src/imports/platform/widgets/qwidgetplatformsystemtrayicon.cpp
+++ b/src/imports/platform/widgets/qwidgetplatformsystemtrayicon.cpp
@@ -78,11 +78,13 @@ void QWidgetPlatformSystemTrayIcon::updateToolTip(const QString &tooltip)
void QWidgetPlatformSystemTrayIcon::updateMenu(QPlatformMenu *menu)
{
+#if QT_CONFIG(menu)
QWidgetPlatformMenu *widgetMenu = qobject_cast<QWidgetPlatformMenu *>(menu);
if (!widgetMenu)
return;
m_systray->setContextMenu(widgetMenu->menu());
+#endif
}
QRect QWidgetPlatformSystemTrayIcon::geometry() const
diff --git a/src/imports/platform/widgets/qwidgetplatformsystemtrayicon_p.h b/src/imports/platform/widgets/qwidgetplatformsystemtrayicon_p.h
index 90abf97e..11ea5377 100644
--- a/src/imports/platform/widgets/qwidgetplatformsystemtrayicon_p.h
+++ b/src/imports/platform/widgets/qwidgetplatformsystemtrayicon_p.h
@@ -50,6 +50,8 @@
#include <QtGui/qpa/qplatformsystemtrayicon.h>
+QT_REQUIRE_CONFIG(systemtrayicon);
+
QT_BEGIN_NAMESPACE
class QSystemTrayIcon;
diff --git a/src/imports/platform/widgets/widgets.pri b/src/imports/platform/widgets/widgets.pri
index 84efd930..54ad7187 100644
--- a/src/imports/platform/widgets/widgets.pri
+++ b/src/imports/platform/widgets/widgets.pri
@@ -2,11 +2,14 @@ QT += widgets
DEPENDPATH += $$PWD
HEADERS += \
- $$PWD/qwidgetplatform_p.h \
- $$PWD/qwidgetplatformsystemtrayicon_p.h
+ $$PWD/qwidgetplatform_p.h
-SOURCES += \
- $$PWD/qwidgetplatformsystemtrayicon.cpp
+qtConfig(systemtrayicon) {
+ HEADERS += \
+ $$PWD/qwidgetplatformsystemtrayicon_p.h
+ SOURCES += \
+ $$PWD/qwidgetplatformsystemtrayicon.cpp
+}
qtConfig(colordialog) | qtConfig(filedialog) | qtConfig(fontdialog) | qtConfig(messagebox) {
HEADERS += \
diff --git a/src/imports/templates/qtquicktemplates2plugin.cpp b/src/imports/templates/qtquicktemplates2plugin.cpp
index f4c0f348..a43d5baf 100644
--- a/src/imports/templates/qtquicktemplates2plugin.cpp
+++ b/src/imports/templates/qtquicktemplates2plugin.cpp
@@ -232,7 +232,7 @@ void QtQuickTemplates2Plugin::registerTypes(const char *uri)
#endif
// QtQuick.Templates 2.2 (new types and revisions in Qt 5.9)
- qmlRegisterRevision<QQuickAbstractButton, 2>(uri, 2, 2);
+ qmlRegisterType<QQuickAbstractButton, 2>(uri, 2, 2, "AbstractButton");
qmlRegisterType<QQuickComboBox, 2>(uri, 2, 2, "ComboBox");
qmlRegisterType<QQuickDelayButton>(uri, 2, 2, "DelayButton");
qmlRegisterType<QQuickDial, 2>(uri, 2, 2, "Dial");