summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-03-31 09:04:18 +0200
committerLiang Qi <liang.qi@qt.io>2017-03-31 09:04:18 +0200
commit9f085b889524a80d4064d6ac01dbdc817bb31060 (patch)
treea65a8871f44a0572e1459dd14759b2339f93de5e
parent9a56985c91d16d7c42ba86f4b0a70f85973e0618 (diff)
parent8c37d58fa21fd3cf6897e2d7d4fe1f73c983d2f4 (diff)
downloadqtquickcontrols-9f085b889524a80d4064d6ac01dbdc817bb31060.tar.gz
Merge remote-tracking branch 'origin/5.9' into dev
Change-Id: Ia574913a1c2af6349db33966c172e96f6eb5f127
-rw-r--r--dist/changes-5.8.033
-rw-r--r--src/controls/Private/BasicButton.qml7
-rw-r--r--src/controls/Private/qquickcontrolsettings.cpp7
-rw-r--r--src/controls/Private/qquickspinboxvalidator.cpp4
-rw-r--r--src/controls/Private/qquickspinboxvalidator_p.h3
-rw-r--r--src/controls/Private/qquickstyleitem.cpp40
-rw-r--r--src/controls/Private/qquicktooltip.cpp6
-rw-r--r--src/controls/Slider.qml2
-rw-r--r--src/controls/Styles/Base/MenuBarStyle.qml4
-rw-r--r--src/controls/doc/includes/icons.qdocinc3
-rw-r--r--src/controls/plugin.cpp2
-rw-r--r--src/controls/qquickaction.cpp22
-rw-r--r--src/controls/qquickmenu.cpp6
-rw-r--r--src/controls/qquickmenuitem.cpp10
-rw-r--r--src/dialogs/qquickabstractfiledialog.cpp2
-rw-r--r--src/extras/plugin.cpp2
-rw-r--r--src/extras/qquickpicture.cpp3
-rw-r--r--src/extras/qquickpicture_p.h4
-rw-r--r--src/widgets/qmessageboxhelper_p.h2
-rw-r--r--src/widgets/qquickqfiledialog_p.h4
-rw-r--r--src/widgets/widgets.pro60
-rw-r--r--src/widgets/widgetsplugin.cpp9
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
}
};