diff options
Diffstat (limited to 'src/imports')
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 Binary files differnew file mode 100644 index 00000000..bbd6783c --- /dev/null +++ b/src/imports/controls/designer/images/scrollview-icon.png diff --git a/src/imports/controls/designer/images/scrollview-icon16.png b/src/imports/controls/designer/images/scrollview-icon16.png Binary files differnew file mode 100644 index 00000000..3f7ab00c --- /dev/null +++ b/src/imports/controls/designer/images/scrollview-icon16.png 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 Binary files differindex 7f2de718..10d626a3 100644 --- a/src/imports/controls/doc/images/qtquickcontrols2-button.gif +++ b/src/imports/controls/doc/images/qtquickcontrols2-button.gif diff --git a/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif b/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif Binary files differindex d35b1502..db565b0a 100644 --- a/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif +++ b/src/imports/controls/doc/images/qtquickcontrols2-rangeslider.gif 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"); |