diff options
author | Liang Qi <liang.qi@qt.io> | 2017-03-31 09:04:18 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-03-31 09:04:18 +0200 |
commit | 9f085b889524a80d4064d6ac01dbdc817bb31060 (patch) | |
tree | a65a8871f44a0572e1459dd14759b2339f93de5e | |
parent | 9a56985c91d16d7c42ba86f4b0a70f85973e0618 (diff) | |
parent | 8c37d58fa21fd3cf6897e2d7d4fe1f73c983d2f4 (diff) | |
download | qtquickcontrols-9f085b889524a80d4064d6ac01dbdc817bb31060.tar.gz |
Merge remote-tracking branch 'origin/5.9' into dev
Change-Id: Ia574913a1c2af6349db33966c172e96f6eb5f127
-rw-r--r-- | dist/changes-5.8.0 | 33 | ||||
-rw-r--r-- | src/controls/Private/BasicButton.qml | 7 | ||||
-rw-r--r-- | src/controls/Private/qquickcontrolsettings.cpp | 7 | ||||
-rw-r--r-- | src/controls/Private/qquickspinboxvalidator.cpp | 4 | ||||
-rw-r--r-- | src/controls/Private/qquickspinboxvalidator_p.h | 3 | ||||
-rw-r--r-- | src/controls/Private/qquickstyleitem.cpp | 40 | ||||
-rw-r--r-- | src/controls/Private/qquicktooltip.cpp | 6 | ||||
-rw-r--r-- | src/controls/Slider.qml | 2 | ||||
-rw-r--r-- | src/controls/Styles/Base/MenuBarStyle.qml | 4 | ||||
-rw-r--r-- | src/controls/doc/includes/icons.qdocinc | 3 | ||||
-rw-r--r-- | src/controls/plugin.cpp | 2 | ||||
-rw-r--r-- | src/controls/qquickaction.cpp | 22 | ||||
-rw-r--r-- | src/controls/qquickmenu.cpp | 6 | ||||
-rw-r--r-- | src/controls/qquickmenuitem.cpp | 10 | ||||
-rw-r--r-- | src/dialogs/qquickabstractfiledialog.cpp | 2 | ||||
-rw-r--r-- | src/extras/plugin.cpp | 2 | ||||
-rw-r--r-- | src/extras/qquickpicture.cpp | 3 | ||||
-rw-r--r-- | src/extras/qquickpicture_p.h | 4 | ||||
-rw-r--r-- | src/widgets/qmessageboxhelper_p.h | 2 | ||||
-rw-r--r-- | src/widgets/qquickqfiledialog_p.h | 4 | ||||
-rw-r--r-- | src/widgets/widgets.pro | 60 | ||||
-rw-r--r-- | src/widgets/widgetsplugin.cpp | 9 |
22 files changed, 194 insertions, 41 deletions
diff --git a/dist/changes-5.8.0 b/dist/changes-5.8.0 new file mode 100644 index 00000000..fb70f771 --- /dev/null +++ b/dist/changes-5.8.0 @@ -0,0 +1,33 @@ +Qt 5.8 introduces many new features and improvements as well as bugfixes +over the 5.7.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + + http://doc.qt.io/qt-5/index.html + +The Qt version 5.8 series is binary compatible with the 5.7.x series. +Applications compiled for 5.7 will continue to run with 5.8. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Controls * +**************************************************************************** + + - ComboBox: + * [QTBUG-53921] Fixed the current text to update on model changes. + + - TableView: + * [QTBUG-57283] Fixed a possible crash due to out of memory on ARM. + +**************************************************************************** +* Dialogs * +**************************************************************************** + + - FileDialog: + * [QTBUG-56663] Fixed selection handling when the OK button is clicked. diff --git a/src/controls/Private/BasicButton.qml b/src/controls/Private/BasicButton.qml index 437ab407..0206c72f 100644 --- a/src/controls/Private/BasicButton.qml +++ b/src/controls/Private/BasicButton.qml @@ -122,6 +122,8 @@ Control { /*! The image label source as theme name. When an icon from the platform icon theme is found, this takes precedence over iconSource. + + \include icons.qdocinc iconName */ property string iconName: action ? action.iconName : "" @@ -167,8 +169,10 @@ Control { activeFocusOnTab: true Keys.onPressed: { - if (event.key === Qt.Key_Space && !event.isAutoRepeat && !behavior.pressed) + if (event.key === Qt.Key_Space && !event.isAutoRepeat && !behavior.pressed) { behavior.keyPressed = true; + event.accepted = true; + } } onFocusChanged: if (!focus) behavior.keyPressed = false @@ -178,6 +182,7 @@ Control { behavior.keyPressed = false; __action.trigger(button) behavior.toggle() + event.accepted = true; } } diff --git a/src/controls/Private/qquickcontrolsettings.cpp b/src/controls/Private/qquickcontrolsettings.cpp index a2fb824c..e6345082 100644 --- a/src/controls/Private/qquickcontrolsettings.cpp +++ b/src/controls/Private/qquickcontrolsettings.cpp @@ -43,7 +43,9 @@ #include <qdebug.h> #include <qqmlengine.h> #include <qfileinfo.h> +#if QT_CONFIG(library) #include <qlibrary.h> +#endif #include <qdir.h> #include <QTouchDevice> #include <QGuiApplication> @@ -249,6 +251,7 @@ QQuickControlSettings1::QQuickControlSettings1(QQmlEngine *engine) bool QQuickControlSettings1::resolveCurrentStylePath() { +#if QT_CONFIG(library) if (!m_styleMap.contains(m_name)) { qWarning() << "WARNING: Cannot find style" << m_name; return false; @@ -279,7 +282,7 @@ bool QQuickControlSettings1::resolveCurrentStylePath() m_styleMap[m_name] = styleData; m_path = styleData.m_styleDirPath; } - +#endif // QT_CONFIG(library) return true; } @@ -294,7 +297,7 @@ void QQuickControlSettings1::findStyle(QQmlEngine *engine, const QString &styleN StyleData styleData; -#ifndef QT_STATIC +#if QT_CONFIG(library) && !defined(QT_STATIC) const auto list = dir.entryList(); for (const QString &fileName : list) { // This assumes that there is only one library in the style directory, diff --git a/src/controls/Private/qquickspinboxvalidator.cpp b/src/controls/Private/qquickspinboxvalidator.cpp index 6723defe..0806523a 100644 --- a/src/controls/Private/qquickspinboxvalidator.cpp +++ b/src/controls/Private/qquickspinboxvalidator.cpp @@ -39,6 +39,8 @@ #include "qquickspinboxvalidator_p.h" +#if QT_CONFIG(validator) + QT_BEGIN_NAMESPACE QQuickSpinBoxValidator1::QQuickSpinBoxValidator1(QObject *parent) @@ -242,3 +244,5 @@ QString QQuickSpinBoxValidator1::textFromValue(qreal value) const } QT_END_NAMESPACE + +#endif // QT_CONFIG(validator) diff --git a/src/controls/Private/qquickspinboxvalidator_p.h b/src/controls/Private/qquickspinboxvalidator_p.h index 7ca6901e..baaeb1b3 100644 --- a/src/controls/Private/qquickspinboxvalidator_p.h +++ b/src/controls/Private/qquickspinboxvalidator_p.h @@ -43,6 +43,8 @@ #include <QtGui/qvalidator.h> #include <QtQml/qqml.h> +#if QT_CONFIG(validator) + QT_BEGIN_NAMESPACE class QQuickSpinBoxValidator1 : public QValidator, public QQmlParserStatus @@ -123,4 +125,5 @@ QT_END_NAMESPACE QML_DECLARE_TYPE(QQuickSpinBoxValidator1) +#endif // QT_CONFIG(validator) #endif // QQUICKSPINBOXVALIDATOR_P_H diff --git a/src/controls/Private/qquickstyleitem.cpp b/src/controls/Private/qquickstyleitem.cpp index 1d79d634..1e53fa69 100644 --- a/src/controls/Private/qquickstyleitem.cpp +++ b/src/controls/Private/qquickstyleitem.cpp @@ -163,30 +163,42 @@ QQuickStyleItem1::~QQuickStyleItem1() { if (const QStyleOptionButton *aux = qstyleoption_cast<const QStyleOptionButton*>(m_styleoption)) delete aux; +#if QT_CONFIG(itemviews) else if (const QStyleOptionViewItem *aux = qstyleoption_cast<const QStyleOptionViewItem*>(m_styleoption)) delete aux; +#endif else if (const QStyleOptionHeader *aux = qstyleoption_cast<const QStyleOptionHeader*>(m_styleoption)) delete aux; else if (const QStyleOptionToolButton *aux = qstyleoption_cast<const QStyleOptionToolButton*>(m_styleoption)) delete aux; +#if QT_CONFIG(toolbar) else if (const QStyleOptionToolBar *aux = qstyleoption_cast<const QStyleOptionToolBar*>(m_styleoption)) delete aux; +#endif +#if QT_CONFIG(tabbar) else if (const QStyleOptionTab *aux = qstyleoption_cast<const QStyleOptionTab*>(m_styleoption)) delete aux; +#endif else if (const QStyleOptionFrame *aux = qstyleoption_cast<const QStyleOptionFrame*>(m_styleoption)) delete aux; else if (const QStyleOptionFocusRect *aux = qstyleoption_cast<const QStyleOptionFocusRect*>(m_styleoption)) delete aux; +#if QT_CONFIG(tabwidget) else if (const QStyleOptionTabWidgetFrame *aux = qstyleoption_cast<const QStyleOptionTabWidgetFrame*>(m_styleoption)) delete aux; +#endif else if (const QStyleOptionMenuItem *aux = qstyleoption_cast<const QStyleOptionMenuItem*>(m_styleoption)) delete aux; else if (const QStyleOptionComboBox *aux = qstyleoption_cast<const QStyleOptionComboBox*>(m_styleoption)) delete aux; +#if QT_CONFIG(spinbox) else if (const QStyleOptionSpinBox *aux = qstyleoption_cast<const QStyleOptionSpinBox*>(m_styleoption)) delete aux; +#endif +#if QT_CONFIG(slider) else if (const QStyleOptionSlider *aux = qstyleoption_cast<const QStyleOptionSlider*>(m_styleoption)) delete aux; +#endif else if (const QStyleOptionProgressBar *aux = qstyleoption_cast<const QStyleOptionProgressBar*>(m_styleoption)) delete aux; else if (const QStyleOptionGroupBox *aux = qstyleoption_cast<const QStyleOptionGroupBox*>(m_styleoption)) @@ -249,6 +261,7 @@ void QQuickStyleItem1::initStyleOption() } } break; +#if QT_CONFIG(itemviews) case ItemRow: { if (!m_styleoption) m_styleoption = new QStyleOptionViewItem(); @@ -259,14 +272,14 @@ void QQuickStyleItem1::initStyleOption() opt->features |= QStyleOptionViewItem::Alternate; } break; - +#endif // QT_CONFIG(itemviews) case Splitter: { if (!m_styleoption) { m_styleoption = new QStyleOption; } } break; - +#if QT_CONFIG(itemviews) case Item: { if (!m_styleoption) { m_styleoption = new QStyleOptionViewItem(); @@ -288,6 +301,7 @@ void QQuickStyleItem1::initStyleOption() } } break; +#endif // QT_CONFIG(itemviews) case ItemBranchIndicator: { if (!m_styleoption) m_styleoption = new QStyleOption; @@ -357,11 +371,14 @@ void QQuickStyleItem1::initStyleOption() } break; +#if QT_CONFIG(toolbar) case ToolBar: { if (!m_styleoption) m_styleoption = new QStyleOptionToolBar(); } break; +#endif +#if QT_CONFIG(tabbar) case Tab: { if (!m_styleoption) m_styleoption = new QStyleOptionTab(); @@ -395,7 +412,7 @@ void QQuickStyleItem1::initStyleOption() } break; - +#endif // QT_CONFIG(tabbar) case Frame: { if (!m_styleoption) m_styleoption = new QStyleOptionFrame(); @@ -413,6 +430,7 @@ void QQuickStyleItem1::initStyleOption() m_styleoption->state |= QStyle::State_KeyboardFocusChange; } break; +#if QT_CONFIG(tabwidget) case TabFrame: { if (!m_styleoption) m_styleoption = new QStyleOptionTabWidgetFrame(); @@ -427,6 +445,7 @@ void QQuickStyleItem1::initStyleOption() opt->leftCornerWidgetSize = QSize(value(), 0); } break; +#endif // QT_CONFIG(tabwidget) case MenuBar: if (!m_styleoption) { QStyleOptionMenuItem *menuOpt = new QStyleOptionMenuItem(); @@ -562,6 +581,7 @@ void QQuickStyleItem1::initStyleOption() #endif } break; +#if QT_CONFIG(spinbox) case SpinBox: { if (!m_styleoption) m_styleoption = new QStyleOptionSpinBox(); @@ -581,6 +601,8 @@ void QQuickStyleItem1::initStyleOption() opt->stepEnabled |= QAbstractSpinBox::StepDownEnabled; } break; +#endif // QT_CONFIG(spinbox) +#if QT_CONFIG(slider) case Slider: case Dial: { @@ -617,6 +639,7 @@ void QQuickStyleItem1::initStyleOption() opt->activeSubControls = QStyle::SC_SliderHandle; } break; +#endif // QT_CONFIG(slider) case ProgressBar: { if (!m_styleoption) m_styleoption = new QStyleOptionProgressBar(); @@ -647,6 +670,7 @@ void QQuickStyleItem1::initStyleOption() } break; +#if QT_CONFIG(slider) case ScrollBar: { if (!m_styleoption) m_styleoption = new QStyleOptionSlider(); @@ -672,6 +696,7 @@ void QQuickStyleItem1::initStyleOption() setTransient(qApp->style()->styleHint(QStyle::SH_ScrollBar_Transient, m_styleoption)); break; } +#endif // QT_CONFIG(slider) default: break; } @@ -1050,12 +1075,14 @@ qreal QQuickStyleItem1::baselineOffset() r.adjust(0,0,0,1); } break; +#if QT_CONFIG(spinbox) case SpinBox: if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast<const QStyleOptionSpinBox *>(m_styleoption)) { r = qApp->style()->subControlRect(QStyle::CC_SpinBox, spinbox, QStyle::SC_SpinBoxEditField); ceilResult = false; } break; +#endif default: break; } @@ -1197,8 +1224,10 @@ QVariant QQuickStyleItem1::styleHint(const QString &metric) return qApp->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick); else if (metric == QLatin1String("submenupopupdelay")) return qApp->style()->styleHint(QStyle::SH_Menu_SubMenuPopupDelay, m_styleoption); +#if QT_CONFIG(wheelevent) else if (metric == QLatin1String("wheelScrollLines")) return qApp->wheelScrollLines(); +#endif return 0; // Add SH_Menu_SpaceActivatesItem @@ -1792,7 +1821,7 @@ QPixmap QQuickTableRowImageProvider1::requestPixmap(const QString &id, QSize *si *size = QSize(width, height); QPixmap pixmap(width, height); - +#if QT_CONFIG(itemviews) QStyleOptionViewItem opt; opt.state |= QStyle::State_Enabled; opt.rect = QRect(0, 0, width, height); @@ -1821,6 +1850,9 @@ QPixmap QQuickTableRowImageProvider1::requestPixmap(const QString &id, QSize *si QPainter pixpainter(&pixmap); qApp->style()->drawPrimitive(QStyle::PE_PanelItemViewRow, &opt, &pixpainter); } +#else + Q_UNUSED(id); +#endif return pixmap; } diff --git a/src/controls/Private/qquicktooltip.cpp b/src/controls/Private/qquicktooltip.cpp index aa09ea6b..c8eb81f6 100644 --- a/src/controls/Private/qquicktooltip.cpp +++ b/src/controls/Private/qquicktooltip.cpp @@ -44,7 +44,7 @@ #include <qpa/qplatformintegration.h> #include <QtQuick/QQuickRenderControl> -#ifdef QT_WIDGETS_LIB +#if defined(QT_WIDGETS_LIB) && !defined(QT_NO_TOOLTIP) #include <qtooltip.h> #endif @@ -60,7 +60,7 @@ void QQuickTooltip1::showText(QQuickItem *item, const QPointF &pos, const QStrin { if (!item || !item->window()) return; -#ifdef QT_WIDGETS_LIB +#if defined(QT_WIDGETS_LIB) && !defined(QT_NO_TOOLTIP) if (QGuiApplicationPrivate::platformIntegration()-> hasCapability(QPlatformIntegration::MultipleWindows) && QCoreApplication::instance()->inherits("QApplication")) { @@ -80,7 +80,7 @@ void QQuickTooltip1::showText(QQuickItem *item, const QPointF &pos, const QStrin void QQuickTooltip1::hideText() { -#ifdef QT_WIDGETS_LIB +#if defined(QT_WIDGETS_LIB) && !defined(QT_NO_TOOLTIP) QToolTip::hideText(); #endif } diff --git a/src/controls/Slider.qml b/src/controls/Slider.qml index d55e81a3..3c89a159 100644 --- a/src/controls/Slider.qml +++ b/src/controls/Slider.qml @@ -320,6 +320,8 @@ Control { WheelArea { id: wheelarea anchors.fill: parent + verticalValue: slider.value + horizontalValue: slider.value horizontalMinimumValue: slider.minimumValue horizontalMaximumValue: slider.maximumValue verticalMinimumValue: slider.minimumValue diff --git a/src/controls/Styles/Base/MenuBarStyle.qml b/src/controls/Styles/Base/MenuBarStyle.qml index e5823a14..7add8f09 100644 --- a/src/controls/Styles/Base/MenuBarStyle.qml +++ b/src/controls/Styles/Base/MenuBarStyle.qml @@ -100,7 +100,7 @@ Style { property Component itemDelegate: Rectangle { implicitWidth: text.width + 12 implicitHeight: text.height + 4 - color: styleData.open ? "#49d" : "transparent" + color: styleData.enabled && styleData.open ? "#49d" : "transparent" Text { id: text @@ -108,7 +108,7 @@ Style { text: formatMnemonic(styleData.text, styleData.underlineMnemonic) anchors.centerIn: parent renderType: Settings.isMobile ? Text.QtRendering : Text.NativeRendering - color: styleData.open ? "white" : SystemPaletteSingleton.windowText(control.enabled) + color: styleData.open ? "white" : SystemPaletteSingleton.windowText(control.enabled && styleData.enabled) } } diff --git a/src/controls/doc/includes/icons.qdocinc b/src/controls/doc/includes/icons.qdocinc new file mode 100644 index 00000000..37bc3758 --- /dev/null +++ b/src/controls/doc/includes/icons.qdocinc @@ -0,0 +1,3 @@ +//! [iconName] +\note This property requires \l QApplication. +//! [iconName] diff --git a/src/controls/plugin.cpp b/src/controls/plugin.cpp index 0d60ec56..2abd906e 100644 --- a/src/controls/plugin.cpp +++ b/src/controls/plugin.cpp @@ -164,7 +164,9 @@ void QtQuickControls1Plugin::initializeEngine(QQmlEngine *engine, const char *ur qmlRegisterType<QQuickRangedDate1>(private_uri, 1, 0, "RangedDate"); qmlRegisterType<QQuickRangeModel1>(private_uri, 1, 0, "RangeModel"); qmlRegisterType<QQuickWheelArea1>(private_uri, 1, 0, "WheelArea"); +#if QT_CONFIG(validator) qmlRegisterType<QQuickSpinBoxValidator1>(private_uri, 1, 0, "SpinBoxValidator"); +#endif qmlRegisterSingletonType<QQuickTooltip1>(private_uri, 1, 0, "Tooltip", QQuickControlsPrivate1::registerTooltipModule); qmlRegisterSingletonType<QQuickControlSettings1>(private_uri, 1, 0, "Settings", QQuickControlsPrivate1::registerSettingsModule); diff --git a/src/controls/qquickaction.cpp b/src/controls/qquickaction.cpp index f04b13ab..836c02da 100644 --- a/src/controls/qquickaction.cpp +++ b/src/controls/qquickaction.cpp @@ -86,13 +86,13 @@ QT_BEGIN_NAMESPACE For instance, \c "\&Open" will bind the \c Alt-O shortcut to the \c "Open" menu item. Note that not all platforms support mnemonics. - Defaults to the empty string. + Defaults to an empty string. */ /*! \qmlproperty url Action::iconSource - Sets the icon file or resource url for the action. Defaults to the empty URL. + Sets the icon file or resource url for the action. Defaults to an empty URL. */ /*! @@ -101,7 +101,9 @@ QT_BEGIN_NAMESPACE Sets the icon name for the action. This will pick the icon with the given name from the current theme. - Defaults to the empty string. + Defaults to an empty string. + + \include icons.qdocinc iconName */ /*! @@ -110,7 +112,7 @@ QT_BEGIN_NAMESPACE Tooltip to be shown when hovering the control bound to this action. Not all controls support tooltips on all platforms, especially \l MenuItem. - Defaults to the empty string. + Defaults to an empty string. */ /*! @@ -280,11 +282,16 @@ bool qMnemonicContextMatcher(QObject *o, Qt::ShortcutContext context) QVariant QQuickAction1::shortcut() const { +#if QT_CONFIG(shortcut) return m_shortcut.toString(QKeySequence::NativeText); +#else + return QString(); +#endif } void QQuickAction1::setShortcut(const QVariant &arg) { +#if QT_CONFIG(shortcut) QKeySequence sequence; if (arg.type() == QVariant::Int) sequence = QKeySequence(static_cast<QKeySequence::StandardKey>(arg.toInt())); @@ -304,10 +311,12 @@ void QQuickAction1::setShortcut(const QVariant &arg) QGuiApplicationPrivate::instance()->shortcutMap.addShortcut(this, m_shortcut, context, qShortcutContextMatcher); } emit shortcutChanged(shortcut()); +#endif // QT_CONFIG(shortcut) } void QQuickAction1::setMnemonicFromText(const QString &text) { +#if QT_CONFIG(shortcut) QKeySequence sequence = QKeySequence::mnemonic(text); if (m_mnemonic == sequence) return; @@ -321,6 +330,7 @@ void QQuickAction1::setMnemonicFromText(const QString &text) Qt::ShortcutContext context = Qt::WindowShortcut; QGuiApplicationPrivate::instance()->shortcutMap.addShortcut(this, m_mnemonic, context, qMnemonicContextMatcher); } +#endif // QT_CONFIG(shortcut) } void QQuickAction1::setIconSource(const QUrl &iconSource) @@ -416,6 +426,7 @@ void QQuickAction1::setExclusiveGroup(QQuickExclusiveGroup1 *eg) bool QQuickAction1::event(QEvent *e) { +#if QT_CONFIG(shortcut) if (!m_enabled) return false; @@ -435,6 +446,9 @@ bool QQuickAction1::event(QEvent *e) trigger(); return true; +#else + return false; +#endif // QT_CONFIG(shortcut) } void QQuickAction1::trigger(QObject *source) diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp index 67682ad3..d309b67e 100644 --- a/src/controls/qquickmenu.cpp +++ b/src/controls/qquickmenu.cpp @@ -133,7 +133,7 @@ QT_BEGIN_NAMESPACE For instance, \c "\&File" will bind the \c Alt-F shortcut to the \c "File" menu. Note that not all platforms support mnemonics. - Its value defaults to the empty string. + Its value defaults to an empty string. */ /*! @@ -147,7 +147,7 @@ QT_BEGIN_NAMESPACE \qmlproperty url Menu::iconSource Sets the icon file or resource url for the menu icon as a submenu. - Defaults to the empty URL. + Defaults to an empty URL. \sa iconName */ @@ -158,7 +158,7 @@ QT_BEGIN_NAMESPACE Sets the icon name for the menu icon. This will pick the icon with the given name from the current theme. Only works as a submenu. - Its value defaults to the empty string. + Its value defaults to an empty string. \sa iconSource */ diff --git a/src/controls/qquickmenuitem.cpp b/src/controls/qquickmenuitem.cpp index 33acff9e..60aa0f6f 100644 --- a/src/controls/qquickmenuitem.cpp +++ b/src/controls/qquickmenuitem.cpp @@ -343,7 +343,7 @@ void QQuickMenuText1::updateIcon() For instance, \c "\&Open" will bind the \c Alt-O shortcut to the \c "Open" menu item. Note that not all platforms support mnemonics. - Defaults to the empty string. + Defaults to an empty string. \sa Action::text */ @@ -358,7 +358,7 @@ void QQuickMenuText1::updateIcon() \qmlproperty url MenuItem::iconSource Sets the icon file or resource url for the \l MenuItem icon. - Overrides the item's bound action \c iconSource property. Defaults to the empty URL. + Overrides the item's bound action \c iconSource property. Defaults to an empty URL. \sa iconName, Action::iconSource */ @@ -368,7 +368,9 @@ void QQuickMenuText1::updateIcon() Sets the icon name for the \l MenuItem icon. This will pick the icon with the given name from the current theme. Overrides the item's bound - action \c iconName property. Defaults to the empty string. + action \c iconName property. Defaults to an empty string. + + \include icons.qdocinc iconName \sa iconSource, Action::iconName */ @@ -604,6 +606,7 @@ void QQuickMenuItem1::setShortcut(const QVariant &shortcut) void QQuickMenuItem1::updateShortcut() { +#if QT_CONFIG(shortcut) if (platformItem()) { QKeySequence sequence; QVariant var = shortcut(); @@ -615,6 +618,7 @@ void QQuickMenuItem1::updateShortcut() syncWithPlatformMenu(); } emit shortcutChanged(); +#endif // QT_CONFIG(shortcut) } bool QQuickMenuItem1::checkable() const diff --git a/src/dialogs/qquickabstractfiledialog.cpp b/src/dialogs/qquickabstractfiledialog.cpp index c0b3400c..49d98a1a 100644 --- a/src/dialogs/qquickabstractfiledialog.cpp +++ b/src/dialogs/qquickabstractfiledialog.cpp @@ -186,6 +186,7 @@ QStringList QQuickAbstractFileDialog::selectedNameFilterExtensions() const { QString filterRaw = selectedNameFilter(); QStringList ret; +#if QT_CONFIG(regularexpression) if (filterRaw.isEmpty()) { ret << "*"; return ret; @@ -194,6 +195,7 @@ QStringList QQuickAbstractFileDialog::selectedNameFilterExtensions() const QRegularExpressionMatchIterator i = re.globalMatch(filterRaw); while (i.hasNext()) ret << i.next().captured(1); +#endif // QT_CONFIG(regularexpression) if (ret.isEmpty()) ret << filterRaw; return ret; diff --git a/src/extras/plugin.cpp b/src/extras/plugin.cpp index 960102ab..a9e23321 100644 --- a/src/extras/plugin.cpp +++ b/src/extras/plugin.cpp @@ -98,7 +98,9 @@ void QtQuickExtrasPlugin::registerTypes(const char *uri) // register 1.3 qmlRegisterUncreatableType<QQuickTriggerMode>(uri, 1, 3, "TriggerMode", QLatin1String("Do not create objects of type TriggerMode")); // register 1.4 +#if QT_CONFIG(picture) qmlRegisterType<QQuickPicture>(uri, 1, 4, "Picture"); +#endif } void QtQuickExtrasPlugin::initializeEngine(QQmlEngine *engine, const char *uri) diff --git a/src/extras/qquickpicture.cpp b/src/extras/qquickpicture.cpp index 0a145b53..0a778288 100644 --- a/src/extras/qquickpicture.cpp +++ b/src/extras/qquickpicture.cpp @@ -39,6 +39,8 @@ #include "qquickpicture_p.h" +#if QT_CONFIG(picture) + #include <QQmlFile> #include <QDebug> @@ -157,3 +159,4 @@ void QQuickPicture::resetColor() setColor(QColor()); } +#endif // QT_CONFIG(picture) diff --git a/src/extras/qquickpicture_p.h b/src/extras/qquickpicture_p.h index 986dcc38..9c16a232 100644 --- a/src/extras/qquickpicture_p.h +++ b/src/extras/qquickpicture_p.h @@ -44,6 +44,8 @@ #include <QPainter> #include <QPicture> +#if QT_CONFIG(picture) + class QQuickPicture : public QQuickPaintedItem { Q_OBJECT @@ -72,4 +74,6 @@ private: QPicture mPicture; }; +#endif // QT_CONFIG(picture) + #endif // QQUICKPICTURE_H diff --git a/src/widgets/qmessageboxhelper_p.h b/src/widgets/qmessageboxhelper_p.h index d0a5c40f..cdc4b9e2 100644 --- a/src/widgets/qmessageboxhelper_p.h +++ b/src/widgets/qmessageboxhelper_p.h @@ -103,8 +103,10 @@ public: m_dialog.setText(QPlatformMessageDialogHelper::options()->text()); if (!QPlatformMessageDialogHelper::options()->informativeText().isNull()) m_dialog.setInformativeText(QPlatformMessageDialogHelper::options()->informativeText()); +#if QT_CONFIG(textedit) if (!QPlatformMessageDialogHelper::options()->detailedText().isNull()) m_dialog.setDetailedText(QPlatformMessageDialogHelper::options()->detailedText()); +#endif m_dialog.setStandardButtons(static_cast<QMessageBox::StandardButtons>(static_cast<int>( QPlatformMessageDialogHelper::options()->standardButtons()))); m_dialog.show(); diff --git a/src/widgets/qquickqfiledialog_p.h b/src/widgets/qquickqfiledialog_p.h index fef39584..9e20ae88 100644 --- a/src/widgets/qquickqfiledialog_p.h +++ b/src/widgets/qquickqfiledialog_p.h @@ -54,6 +54,8 @@ #include <QFileDialog> #include "../dialogs/qquickabstractfiledialog_p.h" +#if QT_CONFIG(filedialog) + QT_BEGIN_NAMESPACE class QQuickQFileDialog : public QQuickAbstractFileDialog @@ -104,4 +106,6 @@ QT_END_NAMESPACE QML_DECLARE_TYPE(QQuickQFileDialog *) +#endif // QT_CONFIG(filedialog) + #endif // QQUICKQFILEDIALOG_P_H diff --git a/src/widgets/widgets.pro b/src/widgets/widgets.pro index 2e3c8164..04bfd21b 100644 --- a/src/widgets/widgets.pro +++ b/src/widgets/widgets.pro @@ -5,30 +5,54 @@ TARGET = widgetsplugin TARGETPATH = QtQuick/PrivateWidgets IMPORT_VERSION = 1.1 +QT += quick-private gui-private core-private qml-private widgets + SOURCES += \ - qquickqmessagebox.cpp \ - ../dialogs/qquickabstractmessagedialog.cpp \ - qquickqfiledialog.cpp \ - ../dialogs/qquickabstractfiledialog.cpp \ - qquickqcolordialog.cpp \ - ../dialogs/qquickabstractcolordialog.cpp \ - qquickqfontdialog.cpp \ - ../dialogs/qquickabstractfontdialog.cpp \ ../dialogs/qquickabstractdialog.cpp \ widgetsplugin.cpp HEADERS += \ - qquickqmessagebox_p.h \ - qmessageboxhelper_p.h \ - ../dialogs/qquickabstractmessagedialog_p.h \ - qquickqfiledialog_p.h \ - ../dialogs/qquickabstractfiledialog_p.h \ - qquickqcolordialog_p.h \ - ../dialogs/qquickabstractcolordialog_p.h \ - qquickqfontdialog_p.h \ - ../dialogs/qquickabstractfontdialog_p.h \ ../dialogs/qquickabstractdialog_p.h -QT += quick-private gui-private core-private qml-private widgets +qtConfig(messagebox) { + HEADERS += \ + qquickqmessagebox_p.h \ + qmessageboxhelper_p.h \ + ../dialogs/qquickabstractmessagedialog_p.h + + SOURCES += \ + qquickqmessagebox.cpp \ + ../dialogs/qquickabstractmessagedialog.cpp +} + +qtConfig(filedialog) { + SOURCES += \ + qquickqfiledialog.cpp \ + ../dialogs/qquickabstractfiledialog.cpp + + HEADERS += \ + qquickqfiledialog_p.h \ + ../dialogs/qquickabstractfiledialog_p.h +} + +qtConfig(colordialog) { + SOURCES += \ + qquickqcolordialog.cpp \ + ../dialogs/qquickabstractcolordialog.cpp + + HEADERS += \ + qquickqcolordialog_p.h \ + ../dialogs/qquickabstractcolordialog_p.h +} + +qtConfig(fontdialog) { + SOURCES += \ + qquickqfontdialog.cpp \ + ../dialogs/qquickabstractfontdialog.cpp + + HEADERS += \ + qquickqfontdialog_p.h \ + ../dialogs/qquickabstractfontdialog_p.h +} load(qml_plugin) diff --git a/src/widgets/widgetsplugin.cpp b/src/widgets/widgetsplugin.cpp index 9ed0e6bc..65233756 100644 --- a/src/widgets/widgetsplugin.cpp +++ b/src/widgets/widgetsplugin.cpp @@ -82,11 +82,18 @@ public: virtual void registerTypes(const char *uri) { Q_ASSERT(QLatin1String(uri) == QLatin1String("QtQuick.PrivateWidgets")); - +#if QT_CONFIG(messagebox) qmlRegisterType<QQuickQMessageBox>(uri, 1, 1, "QtMessageDialog"); +#endif +#if QT_CONFIG(filedialog) qmlRegisterType<QQuickQFileDialog>(uri, 1, 0, "QtFileDialog"); +#endif +#if QT_CONFIG(colordialog) qmlRegisterType<QQuickQColorDialog>(uri, 1, 0, "QtColorDialog"); +#endif +#if QT_CONFIG(fontdialog) qmlRegisterType<QQuickQFontDialog>(uri, 1, 1, "QtFontDialog"); +#endif } }; |