diff options
Diffstat (limited to 'src/quicktemplates2')
91 files changed, 346 insertions, 254 deletions
diff --git a/src/quicktemplates2/configure.json b/src/quicktemplates2/configure.json new file mode 100644 index 00000000..9bd5e311 --- /dev/null +++ b/src/quicktemplates2/configure.json @@ -0,0 +1,20 @@ +{ + "module": "quicktemplates2", + + "features": { + "quicktemplates2-hover": { + "label": "Hover support", + "purpose": "Provides support for hover effects in Qt Quick Templates 2", + "output": [ "privateFeature" ] + } + }, + + "summary": [ + { + "section": "Qt Quick Templates 2", + "entries": [ + "quicktemplates2-hover" + ] + } + ] +} diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index 17e0abea..225ab9ab 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -548,7 +548,7 @@ void QQuickAbstractButton::setIndicator(QQuickItem *indicator) if (d->indicator == indicator) return; - d->deleteDelegate(d->indicator); + QQuickControlPrivate::destroyDelegate(d->indicator, this); d->indicator = indicator; if (indicator) { if (!indicator->parentItem()) @@ -742,7 +742,7 @@ void QQuickAbstractButton::nextCheckState() d->toggle(!d->checked); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickAbstractButton::accessibilityActiveChanged(bool active) { QQuickControl::accessibilityActiveChanged(active); diff --git a/src/quicktemplates2/qquickabstractbutton_p.h b/src/quicktemplates2/qquickabstractbutton_p.h index 82da94bd..28a59c00 100644 --- a/src/quicktemplates2/qquickabstractbutton_p.h +++ b/src/quicktemplates2/qquickabstractbutton_p.h @@ -139,7 +139,7 @@ protected: virtual void nextCheckState(); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp index a66861da..c094d454 100644 --- a/src/quicktemplates2/qquickapplicationwindow.cpp +++ b/src/quicktemplates2/qquickapplicationwindow.cpp @@ -333,7 +333,7 @@ void QQuickApplicationWindow::setBackground(QQuickItem *background) if (d->background == background) return; - delete d->background; + QQuickControlPrivate::destroyDelegate(d->background, this); d->background = background; if (background) { background->setParentItem(QQuickWindow::contentItem()); diff --git a/src/quicktemplates2/qquickapplicationwindow_p.h b/src/quicktemplates2/qquickapplicationwindow_p.h index 2c5e604c..07ddc67e 100644 --- a/src/quicktemplates2/qquickapplicationwindow_p.h +++ b/src/quicktemplates2/qquickapplicationwindow_p.h @@ -65,14 +65,14 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickApplicationWindow : public QQuickWi Q_OBJECT Q_PROPERTY(QQuickItem *background READ background WRITE setBackground NOTIFY backgroundChanged FINAL) Q_PROPERTY(QQuickItem *contentItem READ contentItem CONSTANT FINAL) - Q_PROPERTY(QQmlListProperty<QObject> data READ contentData FINAL) + Q_PROPERTY(QQmlListProperty<QObject> contentData READ contentData FINAL) Q_PROPERTY(QQuickItem *activeFocusControl READ activeFocusControl NOTIFY activeFocusControlChanged FINAL) Q_PROPERTY(QQuickItem *header READ header WRITE setHeader NOTIFY headerChanged FINAL) Q_PROPERTY(QQuickItem *footer READ footer WRITE setFooter NOTIFY footerChanged FINAL) Q_PROPERTY(QQuickOverlay *overlay READ overlay CONSTANT FINAL) Q_PROPERTY(QFont font READ font WRITE setFont RESET resetFont NOTIFY fontChanged FINAL) Q_PROPERTY(QLocale locale READ locale WRITE setLocale RESET resetLocale NOTIFY localeChanged FINAL) - Q_CLASSINFO("DefaultProperty", "data") + Q_CLASSINFO("DefaultProperty", "contentData") public: explicit QQuickApplicationWindow(QWindow *parent = nullptr); diff --git a/src/quicktemplates2/qquickbusyindicator.cpp b/src/quicktemplates2/qquickbusyindicator.cpp index 9ab02e73..883066d7 100644 --- a/src/quicktemplates2/qquickbusyindicator.cpp +++ b/src/quicktemplates2/qquickbusyindicator.cpp @@ -115,7 +115,7 @@ void QQuickBusyIndicator::setRunning(bool running) emit runningChanged(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickBusyIndicator::accessibleRole() const { return QAccessible::Indicator; diff --git a/src/quicktemplates2/qquickbusyindicator_p.h b/src/quicktemplates2/qquickbusyindicator_p.h index 5beb2dbe..3607cc1f 100644 --- a/src/quicktemplates2/qquickbusyindicator_p.h +++ b/src/quicktemplates2/qquickbusyindicator_p.h @@ -69,7 +69,7 @@ Q_SIGNALS: void runningChanged(); protected: -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickcheckbox.cpp b/src/quicktemplates2/qquickcheckbox.cpp index 26e266e7..e0c7faf1 100644 --- a/src/quicktemplates2/qquickcheckbox.cpp +++ b/src/quicktemplates2/qquickcheckbox.cpp @@ -191,7 +191,7 @@ void QQuickCheckBox::nextCheckState() QQuickAbstractButton::nextCheckState(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickCheckBox::accessibleRole() const { return QAccessible::CheckBox; diff --git a/src/quicktemplates2/qquickcheckbox_p.h b/src/quicktemplates2/qquickcheckbox_p.h index d4d66561..dfd935d3 100644 --- a/src/quicktemplates2/qquickcheckbox_p.h +++ b/src/quicktemplates2/qquickcheckbox_p.h @@ -79,7 +79,7 @@ protected: void buttonChange(ButtonChange change) override; void nextCheckState() override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickcheckdelegate.cpp b/src/quicktemplates2/qquickcheckdelegate.cpp index 7efda239..78d55e1d 100644 --- a/src/quicktemplates2/qquickcheckdelegate.cpp +++ b/src/quicktemplates2/qquickcheckdelegate.cpp @@ -188,7 +188,7 @@ void QQuickCheckDelegate::nextCheckState() QQuickItemDelegate::nextCheckState(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickCheckDelegate::accessibleRole() const { return QAccessible::CheckBox; diff --git a/src/quicktemplates2/qquickcheckdelegate_p.h b/src/quicktemplates2/qquickcheckdelegate_p.h index d50ddcc4..ae2b4f52 100644 --- a/src/quicktemplates2/qquickcheckdelegate_p.h +++ b/src/quicktemplates2/qquickcheckdelegate_p.h @@ -79,7 +79,7 @@ protected: void buttonChange(ButtonChange change) override; void nextCheckState() override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp index 59d66d99..3aabd238 100644 --- a/src/quicktemplates2/qquickcombobox.cpp +++ b/src/quicktemplates2/qquickcombobox.cpp @@ -1069,7 +1069,7 @@ void QQuickComboBox::setIndicator(QQuickItem *indicator) if (d->indicator == indicator) return; - d->deleteDelegate(d->indicator); + QQuickControlPrivate::destroyDelegate(d->indicator, this); d->indicator = indicator; if (indicator) { if (!indicator->parentItem()) @@ -1103,9 +1103,10 @@ void QQuickComboBox::setPopup(QQuickPopup *popup) if (d->popup == popup) return; - if (d->popup) + if (d->popup) { QObjectPrivate::disconnect(d->popup, &QQuickPopup::visibleChanged, d, &QQuickComboBoxPrivate::popupVisibleChanged); - d->deleteDelegate(d->popup); + QQuickControlPrivate::destroyDelegate(d->popup, this); + } if (popup) { QQuickPopupPrivate::get(popup)->allowVerticalFlip = true; popup->setClosePolicy(QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutsideParent); @@ -1552,7 +1553,7 @@ QFont QQuickComboBox::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::ComboMenuItemFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickComboBox::accessibleRole() const { return QAccessible::ComboBox; @@ -1566,6 +1567,6 @@ void QQuickComboBox::accessibilityActiveChanged(bool active) if (active) setAccessibleName(d->hasDisplayText ? d->displayText : d->currentText); } -#endif // QT_NO_ACCESSIBILITY +#endif // QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickcombobox_p.h b/src/quicktemplates2/qquickcombobox_p.h index 083ea166..b6ed4906 100644 --- a/src/quicktemplates2/qquickcombobox_p.h +++ b/src/quicktemplates2/qquickcombobox_p.h @@ -195,7 +195,7 @@ protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; void accessibilityActiveChanged(bool active) override; #endif diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp index bc549b78..be050c76 100644 --- a/src/quicktemplates2/qquickcontrol.cpp +++ b/src/quicktemplates2/qquickcontrol.cpp @@ -51,8 +51,9 @@ #include <QtGui/private/qguiapplication_p.h> #include <QtGui/qpa/qplatformtheme.h> +#include <QtQml/private/qqmlincubator_p.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtQuick/private/qquickaccessibleattached_p.h> #endif @@ -114,9 +115,11 @@ QQuickControlPrivate::QQuickControlPrivate() hasRightPadding(false), hasBottomPadding(false), hasLocale(false), - hovered(false), wheelEnabled(false), +#if QT_CONFIG(quicktemplates2_hover) + hovered(false), explicitHoverEnabled(false), +#endif padding(0), topPadding(0), leftPadding(0), @@ -129,14 +132,14 @@ QQuickControlPrivate::QQuickControlPrivate() contentItem(nullptr), accessibleAttached(nullptr) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::installActivationObserver(this); #endif } QQuickControlPrivate::~QQuickControlPrivate() { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::removeActivationObserver(this); #endif } @@ -234,7 +237,7 @@ QQuickItem *QQuickControlPrivate::getContentItem() return contentItem; } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickControlPrivate::accessibilityActiveChanged(bool active) { Q_Q(QQuickControl); @@ -376,6 +379,7 @@ void QQuickControlPrivate::updateFontRecur(QQuickItem *item, const QFont &f) } } +#if QT_CONFIG(quicktemplates2_hover) void QQuickControlPrivate::updateHoverEnabled(bool enabled, bool xplicit) { Q_Q(QQuickControl); @@ -431,10 +435,11 @@ bool QQuickControlPrivate::calcHoverEnabled(const QQuickItem *item) return QGuiApplication::styleHints()->useHoverEffects(); } +#endif QString QQuickControl::accessibleName() const { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) Q_D(const QQuickControl); if (d->accessibleAttached) return d->accessibleAttached->name(); @@ -444,7 +449,7 @@ QString QQuickControl::accessibleName() const void QQuickControl::setAccessibleName(const QString &name) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) Q_D(QQuickControl); if (d->accessibleAttached) d->accessibleAttached->setName(name); @@ -455,7 +460,7 @@ void QQuickControl::setAccessibleName(const QString &name) QVariant QQuickControl::accessibleProperty(const char *propertyName) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) Q_D(QQuickControl); if (d->accessibleAttached) return QQuickAccessibleAttached::property(this, propertyName); @@ -466,7 +471,7 @@ QVariant QQuickControl::accessibleProperty(const char *propertyName) bool QQuickControl::setAccessibleProperty(const char *propertyName, const QVariant &value) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) Q_D(QQuickControl); if (d->accessibleAttached) return QQuickAccessibleAttached::setProperty(this, propertyName, value); @@ -492,16 +497,20 @@ void QQuickControl::itemChange(QQuickItem::ItemChange change, const QQuickItem:: QQuickItem::itemChange(change, value); switch (change) { case ItemVisibleHasChanged: +#if QT_CONFIG(quicktemplates2_hover) if (!value.boolValue) setHovered(false); +#endif break; case ItemParentHasChanged: if (value.item) { d->resolveFont(); if (!d->hasLocale) d->updateLocale(QQuickControlPrivate::calcLocale(d->parentItem), false); // explicit=false +#if QT_CONFIG(quicktemplates2_hover) if (!d->explicitHoverEnabled) d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false +#endif } break; case ItemActiveFocusHasChanged: @@ -857,15 +866,13 @@ QLocale QQuickControlPrivate::calcLocale(const QQuickItem *item) } /* - Deletes "delegate" if Component.completed() has been emitted, - otherwise stores it in pendingDeletions. + Cancels incubation to avoid "Object destroyed during incubation" (QTBUG-50992) */ -void QQuickControlPrivate::deleteDelegate(QObject *delegate) +void QQuickControlPrivate::destroyDelegate(QObject *delegate, QObject *parent) { - if (componentComplete) - delete delegate; - else if (delegate) - extra.value().pendingDeletions.append(delegate); + if (delegate && parent) + QQmlIncubatorPrivate::cancel(delegate, qmlContext(parent)); + delete delegate; } void QQuickControlPrivate::updateLocale(const QLocale &l, bool e) @@ -1005,12 +1012,17 @@ bool QQuickControl::hasVisualFocus() const */ bool QQuickControl::isHovered() const { +#if QT_CONFIG(quicktemplates2_hover) Q_D(const QQuickControl); return d->hovered; +#else + return false; +#endif } void QQuickControl::setHovered(bool hovered) { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickControl); if (hovered == d->hovered) return; @@ -1018,6 +1030,9 @@ void QQuickControl::setHovered(bool hovered) d->hovered = hovered; emit hoveredChanged(); hoverChange(); +#else + Q_UNUSED(hovered); +#endif } /*! @@ -1037,27 +1052,37 @@ void QQuickControl::setHovered(bool hovered) */ bool QQuickControl::isHoverEnabled() const { +#if QT_CONFIG(quicktemplates2_hover) Q_D(const QQuickControl); return d->hoverEnabled; +#else + return false; +#endif } void QQuickControl::setHoverEnabled(bool enabled) { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickControl); if (d->explicitHoverEnabled && enabled == d->hoverEnabled) return; d->updateHoverEnabled(enabled, true); // explicit=true +#else + Q_UNUSED(enabled) +#endif } void QQuickControl::resetHoverEnabled() { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickControl); if (!d->explicitHoverEnabled) return; d->explicitHoverEnabled = false; d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false +#endif } /*! @@ -1119,7 +1144,7 @@ void QQuickControl::setBackground(QQuickItem *background) if (d->background == background) return; - d->deleteDelegate(d->background); + QQuickControlPrivate::destroyDelegate(d->background, this); d->background = background; if (background) { background->setParentItem(this); @@ -1136,15 +1161,6 @@ void QQuickControl::setBackground(QQuickItem *background) This property holds the visual content item. - \note The content item is automatically resized to fit within the - \l padding of the control. - - \note Most controls use the implicit size of the content item to calculate - the implicit size of the control itself. If you replace the content item - with a custom one, you should also consider providing a sensible implicit - size for it (unless it is an item like \l Text which has its own implicit - size). - \code Button { id: control @@ -1157,6 +1173,15 @@ void QQuickControl::setBackground(QQuickItem *background) } \endcode + \note The content item is automatically resized to fit within the + \l padding of the control. + + \note Most controls use the implicit size of the content item to calculate + the implicit size of the control itself. If you replace the content item + with a custom one, you should also consider providing a sensible implicit + size for it (unless it is an item like \l Text which has its own implicit + size). + \sa {Control Layout}, padding */ QQuickItem *QQuickControl::contentItem() const @@ -1172,7 +1197,7 @@ void QQuickControl::setContentItem(QQuickItem *item) return; contentItemChange(item, d->contentItem); - d->deleteDelegate(d->contentItem); + QQuickControlPrivate::destroyDelegate(d->contentItem, this); d->contentItem = item; if (item) { if (!item->parentItem()) @@ -1197,17 +1222,14 @@ void QQuickControl::componentComplete() d->resizeContent(); if (!d->hasLocale) d->locale = QQuickControlPrivate::calcLocale(d->parentItem); +#if QT_CONFIG(quicktemplates2_hover) if (!d->explicitHoverEnabled) setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem)); -#ifndef QT_NO_ACCESSIBILITY +#endif +#if QT_CONFIG(accessibility) if (!d->accessibleAttached && QAccessible::isActive()) accessibilityActiveChanged(true); #endif - - if (d->extra.isAllocated()) { - qDeleteAll(d->extra.value().pendingDeletions); - d->extra.value().pendingDeletions.clear(); - } } QFont QQuickControl::defaultFont() const @@ -1227,6 +1249,7 @@ void QQuickControl::focusOutEvent(QFocusEvent *event) setFocusReason(event->reason()); } +#if QT_CONFIG(quicktemplates2_hover) void QQuickControl::hoverEnterEvent(QHoverEvent *event) { Q_D(QQuickControl); @@ -1247,6 +1270,7 @@ void QQuickControl::hoverLeaveEvent(QHoverEvent *event) setHovered(false); event->setAccepted(d->hoverEnabled); } +#endif void QQuickControl::mousePressEvent(QMouseEvent *event) { @@ -1259,8 +1283,10 @@ void QQuickControl::mousePressEvent(QMouseEvent *event) void QQuickControl::mouseMoveEvent(QMouseEvent *event) { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickControl); setHovered(d->hoverEnabled && contains(event->pos())); +#endif event->accept(); } @@ -1302,9 +1328,11 @@ void QQuickControl::fontChange(const QFont &newFont, const QFont &oldFont) Q_UNUSED(oldFont); } +#if QT_CONFIG(quicktemplates2_hover) void QQuickControl::hoverChange() { } +#endif void QQuickControl::mirrorChange() { diff --git a/src/quicktemplates2/qquickcontrol_p.h b/src/quicktemplates2/qquickcontrol_p.h index 525dd303..a94ef01d 100644 --- a/src/quicktemplates2/qquickcontrol_p.h +++ b/src/quicktemplates2/qquickcontrol_p.h @@ -176,9 +176,11 @@ protected: void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; +#if QT_CONFIG(quicktemplates2_hover) void hoverEnterEvent(QHoverEvent *event) override; void hoverMoveEvent(QHoverEvent *event) override; void hoverLeaveEvent(QHoverEvent *event) override; +#endif void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; @@ -189,19 +191,21 @@ protected: void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; virtual void fontChange(const QFont &newFont, const QFont &oldFont); +#if QT_CONFIG(quicktemplates2_hover) virtual void hoverChange(); +#endif virtual void mirrorChange(); virtual void spacingChange(qreal newSpacing, qreal oldSpacing); virtual void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding); virtual void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem); virtual void localeChange(const QLocale &newLocale, const QLocale &oldLocale); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) virtual void accessibilityActiveChanged(bool active); virtual QAccessible::Role accessibleRole() const; #endif - // helper functions which avoid to check QT_NO_ACCESSIBILITY + // helper functions which avoid to check QT_CONFIG(accessibility) QString accessibleName() const; void setAccessibleName(const QString &name); diff --git a/src/quicktemplates2/qquickcontrol_p_p.h b/src/quicktemplates2/qquickcontrol_p_p.h index 5ee9d9b9..113110de 100644 --- a/src/quicktemplates2/qquickcontrol_p_p.h +++ b/src/quicktemplates2/qquickcontrol_p_p.h @@ -54,7 +54,7 @@ #include <QtQml/private/qlazilyallocated_p.h> #include <qpa/qplatformtheme.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtGui/qaccessible.h> #endif @@ -63,7 +63,7 @@ QT_BEGIN_NAMESPACE class QQuickAccessibleAttached; class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickControlPrivate : public QQuickItemPrivate -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) , public QAccessible::ActivationObserver #endif { @@ -90,7 +90,7 @@ public: virtual QQuickItem *getContentItem(); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif @@ -111,19 +111,17 @@ public: static void updateLocaleRecur(QQuickItem *item, const QLocale &l); static QLocale calcLocale(const QQuickItem *item); +#if QT_CONFIG(quicktemplates2_hover) void updateHoverEnabled(bool enabled, bool xplicit); static void updateHoverEnabledRecur(QQuickItem *item, bool enabled); static bool calcHoverEnabled(const QQuickItem *item); +#endif - void deleteDelegate(QObject *object); + static void destroyDelegate(QObject *object, QObject *parent); struct ExtraData { ExtraData(); QFont font; - // This list contains the default delegates which were - // replaced with custom ones via declarative assignments - // before Component.completed() was emitted. See QTBUG-50992. - QVector<QObject*> pendingDeletions; }; QLazilyAllocated<ExtraData> extra; @@ -133,9 +131,11 @@ public: bool hasRightPadding; bool hasBottomPadding; bool hasLocale; - bool hovered; bool wheelEnabled; +#if QT_CONFIG(quicktemplates2_hover) + bool hovered; bool explicitHoverEnabled; +#endif qreal padding; qreal topPadding; qreal leftPadding; diff --git a/src/quicktemplates2/qquickdial.cpp b/src/quicktemplates2/qquickdial.cpp index f05cc63f..198bd631 100644 --- a/src/quicktemplates2/qquickdial.cpp +++ b/src/quicktemplates2/qquickdial.cpp @@ -588,7 +588,7 @@ void QQuickDial::setHandle(QQuickItem *handle) if (handle == d->handle) return; - d->deleteDelegate(d->handle); + QQuickControlPrivate::destroyDelegate(d->handle, this); d->handle = handle; if (d->handle && !d->handle->parentItem()) d->handle->setParentItem(this); @@ -768,7 +768,7 @@ void QQuickDial::componentComplete() d->updatePosition(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickDial::accessibilityActiveChanged(bool active) { QQuickControl::accessibilityActiveChanged(active); diff --git a/src/quicktemplates2/qquickdial_p.h b/src/quicktemplates2/qquickdial_p.h index f774e525..e402922d 100644 --- a/src/quicktemplates2/qquickdial_p.h +++ b/src/quicktemplates2/qquickdial_p.h @@ -147,7 +147,7 @@ protected: void mirrorChange() override; void componentComplete() override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickdialog.cpp b/src/quicktemplates2/qquickdialog.cpp index 9dba001d..fbb612b3 100644 --- a/src/quicktemplates2/qquickdialog.cpp +++ b/src/quicktemplates2/qquickdialog.cpp @@ -345,7 +345,7 @@ void QQuickDialog::spacingChange(qreal newSpacing, qreal oldSpacing) d->layout->update(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickDialog::accessibleRole() const { return QAccessible::Dialog; diff --git a/src/quicktemplates2/qquickdialog_p.h b/src/quicktemplates2/qquickdialog_p.h index 9c763b3e..97c90a59 100644 --- a/src/quicktemplates2/qquickdialog_p.h +++ b/src/quicktemplates2/qquickdialog_p.h @@ -97,7 +97,7 @@ protected: void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override; void spacingChange(qreal newSpacing, qreal oldSpacing) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; void accessibilityActiveChanged(bool active) override; #endif diff --git a/src/quicktemplates2/qquickdialogbuttonbox.cpp b/src/quicktemplates2/qquickdialogbuttonbox.cpp index d125de91..a912ba6a 100644 --- a/src/quicktemplates2/qquickdialogbuttonbox.cpp +++ b/src/quicktemplates2/qquickdialogbuttonbox.cpp @@ -602,7 +602,7 @@ void QQuickDialogButtonBox::itemRemoved(int index, QQuickItem *item) polish(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickDialogButtonBox::accessibleRole() const { return QAccessible::PageTabList; diff --git a/src/quicktemplates2/qquickdialogbuttonbox_p.h b/src/quicktemplates2/qquickdialogbuttonbox_p.h index 4aa7f9d2..9bd92c79 100644 --- a/src/quicktemplates2/qquickdialogbuttonbox_p.h +++ b/src/quicktemplates2/qquickdialogbuttonbox_p.h @@ -114,7 +114,7 @@ protected: void itemAdded(int index, QQuickItem *item) override; void itemRemoved(int index, QQuickItem *item) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickframe.cpp b/src/quicktemplates2/qquickframe.cpp index 364f6a28..f880d917 100644 --- a/src/quicktemplates2/qquickframe.cpp +++ b/src/quicktemplates2/qquickframe.cpp @@ -78,11 +78,11 @@ QQuickFrame::QQuickFrame(QQuickFramePrivate &dd, QQuickItem *parent) { } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickFrame::accessibleRole() const { return QAccessible::Border; } -#endif // QT_NO_ACCESSIBILITY +#endif QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickframe_p.h b/src/quicktemplates2/qquickframe_p.h index 4dc252f4..381088ec 100644 --- a/src/quicktemplates2/qquickframe_p.h +++ b/src/quicktemplates2/qquickframe_p.h @@ -64,7 +64,7 @@ public: protected: QQuickFrame(QQuickFramePrivate &dd, QQuickItem *parent); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickgroupbox.cpp b/src/quicktemplates2/qquickgroupbox.cpp index 7d1a5826..09bd49f6 100644 --- a/src/quicktemplates2/qquickgroupbox.cpp +++ b/src/quicktemplates2/qquickgroupbox.cpp @@ -141,7 +141,7 @@ void QQuickGroupBox::setLabel(QQuickItem *label) if (d->label == label) return; - d->deleteDelegate(d->label); + QQuickControlPrivate::destroyDelegate(d->label, this); d->label = label; if (label && !label->parentItem()) label->setParentItem(this); @@ -153,7 +153,7 @@ QFont QQuickGroupBox::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::GroupBoxTitleFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickGroupBox::accessibleRole() const { return QAccessible::Grouping; @@ -167,6 +167,6 @@ void QQuickGroupBox::accessibilityActiveChanged(bool active) if (active) setAccessibleName(d->title); } -#endif // QT_NO_ACCESSIBILITY +#endif QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickgroupbox_p.h b/src/quicktemplates2/qquickgroupbox_p.h index 3b2c41d9..e35db1fc 100644 --- a/src/quicktemplates2/qquickgroupbox_p.h +++ b/src/quicktemplates2/qquickgroupbox_p.h @@ -76,7 +76,7 @@ Q_SIGNALS: protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; void accessibilityActiveChanged(bool active) override; #endif diff --git a/src/quicktemplates2/qquickitemdelegate.cpp b/src/quicktemplates2/qquickitemdelegate.cpp index 7e8b92db..1b93c145 100644 --- a/src/quicktemplates2/qquickitemdelegate.cpp +++ b/src/quicktemplates2/qquickitemdelegate.cpp @@ -125,7 +125,7 @@ QFont QQuickItemDelegate::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::ItemViewFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickItemDelegate::accessibleRole() const { return QAccessible::ListItem; diff --git a/src/quicktemplates2/qquickitemdelegate_p.h b/src/quicktemplates2/qquickitemdelegate_p.h index c5a9d998..a162ddee 100644 --- a/src/quicktemplates2/qquickitemdelegate_p.h +++ b/src/quicktemplates2/qquickitemdelegate_p.h @@ -71,7 +71,7 @@ Q_SIGNALS: protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquicklabel.cpp b/src/quicktemplates2/qquicklabel.cpp index 108e92e4..45c7e5a4 100644 --- a/src/quicktemplates2/qquicklabel.cpp +++ b/src/quicktemplates2/qquicklabel.cpp @@ -42,7 +42,7 @@ #include <QtQuick/private/qquickitem_p.h> #include <QtQuick/private/qquicktext_p.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtQuick/private/qquickaccessibleattached_p.h> #endif @@ -82,14 +82,14 @@ QQuickLabelPrivate::QQuickLabelPrivate() : background(nullptr), accessibleAttached(nullptr) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::installActivationObserver(this); #endif } QQuickLabelPrivate::~QQuickLabelPrivate() { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::removeActivationObserver(this); #endif } @@ -125,7 +125,7 @@ void QQuickLabelPrivate::inheritFont(const QFont &f) void QQuickLabelPrivate::textChanged(const QString &text) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) if (accessibleAttached) accessibleAttached->setName(text); #else @@ -133,7 +133,7 @@ void QQuickLabelPrivate::textChanged(const QString &text) #endif } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickLabelPrivate::accessibilityActiveChanged(bool active) { if (accessibleAttached || !active) @@ -155,18 +155,6 @@ QAccessible::Role QQuickLabelPrivate::accessibleRole() const } #endif -/* - Deletes "delegate" if Component.completed() has been emitted, - otherwise stores it in pendingDeletions. -*/ -void QQuickLabelPrivate::deleteDelegate(QObject *delegate) -{ - if (componentComplete) - delete delegate; - else if (delegate) - pendingDeletions.append(delegate); -} - QQuickLabel::QQuickLabel(QQuickItem *parent) : QQuickText(*(new QQuickLabelPrivate), parent) { @@ -212,7 +200,7 @@ void QQuickLabel::setBackground(QQuickItem *background) if (d->background == background) return; - d->deleteDelegate(d->background); + QQuickControlPrivate::destroyDelegate(d->background, this); d->background = background; if (background) { background->setParentItem(this); @@ -233,13 +221,10 @@ void QQuickLabel::componentComplete() { Q_D(QQuickLabel); QQuickText::componentComplete(); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) if (!d->accessibleAttached && QAccessible::isActive()) d->accessibilityActiveChanged(true); #endif - - qDeleteAll(d->pendingDeletions); - d->pendingDeletions.clear(); } void QQuickLabel::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value) diff --git a/src/quicktemplates2/qquicklabel_p_p.h b/src/quicktemplates2/qquicklabel_p_p.h index 9bc7c36d..c24c855b 100644 --- a/src/quicktemplates2/qquicklabel_p_p.h +++ b/src/quicktemplates2/qquicklabel_p_p.h @@ -50,7 +50,7 @@ #include <QtQuick/private/qquicktext_p_p.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtGui/qaccessible.h> #endif @@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE class QQuickAccessibleAttached; class QQuickLabelPrivate : public QQuickTextPrivate -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) , public QAccessible::ActivationObserver #endif { @@ -79,20 +79,14 @@ public: void textChanged(const QString &text); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif - void deleteDelegate(QObject *object); - QFont font; QQuickItem *background; QQuickAccessibleAttached *accessibleAttached; - // This list contains the default delegates which were - // replaced with custom ones via declarative assignments - // before Component.completed() was emitted. See QTBUG-50992. - QVector<QObject *> pendingDeletions; }; QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp index 98ddae30..04305cea 100644 --- a/src/quicktemplates2/qquickmenu.cpp +++ b/src/quicktemplates2/qquickmenu.cpp @@ -525,12 +525,12 @@ void QQuickMenu::keyReleaseEvent(QKeyEvent *event) item->forceActiveFocus(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickMenu::accessibleRole() const { return QAccessible::PopupMenu; } -#endif // QT_NO_ACCESSIBILITY +#endif QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickmenu_p.h b/src/quicktemplates2/qquickmenu_p.h index 146cf9b7..a899fe51 100644 --- a/src/quicktemplates2/qquickmenu_p.h +++ b/src/quicktemplates2/qquickmenu_p.h @@ -91,9 +91,9 @@ Q_SIGNALS: void titleChanged(); protected: -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; -#endif // QT_NO_ACCESSIBILITY +#endif private: Q_DISABLE_COPY(QQuickMenu) diff --git a/src/quicktemplates2/qquickmenuitem.cpp b/src/quicktemplates2/qquickmenuitem.cpp index 185686db..e15640fb 100644 --- a/src/quicktemplates2/qquickmenuitem.cpp +++ b/src/quicktemplates2/qquickmenuitem.cpp @@ -141,7 +141,7 @@ void QQuickMenuItem::setHighlighted(bool highlighted) emit highlightedChanged(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickMenuItem::accessibleRole() const { return QAccessible::MenuItem; diff --git a/src/quicktemplates2/qquickmenuitem_p.h b/src/quicktemplates2/qquickmenuitem_p.h index 96aaa28a..76f41f9d 100644 --- a/src/quicktemplates2/qquickmenuitem_p.h +++ b/src/quicktemplates2/qquickmenuitem_p.h @@ -72,7 +72,7 @@ Q_SIGNALS: protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickmenuseparator.cpp b/src/quicktemplates2/qquickmenuseparator.cpp index 0a40b6f2..366f0a27 100644 --- a/src/quicktemplates2/qquickmenuseparator.cpp +++ b/src/quicktemplates2/qquickmenuseparator.cpp @@ -70,7 +70,7 @@ QQuickMenuSeparator::QQuickMenuSeparator(QQuickItem *parent) { } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickMenuSeparator::accessibleRole() const { return QAccessible::Separator; diff --git a/src/quicktemplates2/qquickmenuseparator_p.h b/src/quicktemplates2/qquickmenuseparator_p.h index dde88df3..42147f77 100644 --- a/src/quicktemplates2/qquickmenuseparator_p.h +++ b/src/quicktemplates2/qquickmenuseparator_p.h @@ -60,7 +60,7 @@ public: explicit QQuickMenuSeparator(QQuickItem *parent = nullptr); protected: -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickoverlay.cpp b/src/quicktemplates2/qquickoverlay.cpp index 72506543..e3910509 100644 --- a/src/quicktemplates2/qquickoverlay.cpp +++ b/src/quicktemplates2/qquickoverlay.cpp @@ -97,10 +97,12 @@ static QQuickItem *createDimmer(QQmlComponent *component, QQuickPopup *popup, QQ item->setZ(popup->z()); if (popup->isModal()) { item->setAcceptedMouseButtons(Qt::AllButtons); +#if QT_CONFIG(quicktemplates2_hover) // TODO: switch to QStyleHints::useHoverEffects in Qt 5.8 item->setAcceptHoverEvents(true); // item->setAcceptHoverEvents(QGuiApplication::styleHints()->useHoverEffects()); // connect(QGuiApplication::styleHints(), &QStyleHints::useHoverEffectsChanged, item, &QQuickItem::setAcceptHoverEvents); +#endif } if (component) component->completeCreate(); diff --git a/src/quicktemplates2/qquickpage.cpp b/src/quicktemplates2/qquickpage.cpp index 13698500..701916b6 100644 --- a/src/quicktemplates2/qquickpage.cpp +++ b/src/quicktemplates2/qquickpage.cpp @@ -357,7 +357,7 @@ void QQuickPage::spacingChange(qreal newSpacing, qreal oldSpacing) d->layout->update(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickPage::accessibleRole() const { return QAccessible::PageTab; diff --git a/src/quicktemplates2/qquickpage_p.h b/src/quicktemplates2/qquickpage_p.h index e2d16adc..90d10e4a 100644 --- a/src/quicktemplates2/qquickpage_p.h +++ b/src/quicktemplates2/qquickpage_p.h @@ -102,7 +102,7 @@ protected: void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override; void spacingChange(qreal newSpacing, qreal oldSpacing) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; void accessibilityActiveChanged(bool active) override; #endif diff --git a/src/quicktemplates2/qquickpageindicator.cpp b/src/quicktemplates2/qquickpageindicator.cpp index 2abc321b..92b6c0c0 100644 --- a/src/quicktemplates2/qquickpageindicator.cpp +++ b/src/quicktemplates2/qquickpageindicator.cpp @@ -324,7 +324,7 @@ void QQuickPageIndicator::mouseUngrabEvent() d->updatePressed(false); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickPageIndicator::accessibleRole() const { return QAccessible::Indicator; diff --git a/src/quicktemplates2/qquickpageindicator_p.h b/src/quicktemplates2/qquickpageindicator_p.h index f1d76d5d..921fe7e8 100644 --- a/src/quicktemplates2/qquickpageindicator_p.h +++ b/src/quicktemplates2/qquickpageindicator_p.h @@ -92,7 +92,7 @@ protected: void mouseReleaseEvent(QMouseEvent *event) override; void mouseUngrabEvent() override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickpane.cpp b/src/quicktemplates2/qquickpane.cpp index ffd56b3a..6cb81316 100644 --- a/src/quicktemplates2/qquickpane.cpp +++ b/src/quicktemplates2/qquickpane.cpp @@ -241,7 +241,7 @@ void QQuickPane::contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) emit contentChildrenChanged(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickPane::accessibleRole() const { return QAccessible::Pane; diff --git a/src/quicktemplates2/qquickpane_p.h b/src/quicktemplates2/qquickpane_p.h index c0b04edb..759c59d8 100644 --- a/src/quicktemplates2/qquickpane_p.h +++ b/src/quicktemplates2/qquickpane_p.h @@ -86,7 +86,7 @@ protected: void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 80c530eb..ace82553 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -1938,7 +1938,7 @@ QFont QQuickPopup::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickPopup::accessibleRole() const { return QAccessible::Dialog; @@ -1948,7 +1948,7 @@ void QQuickPopup::accessibilityActiveChanged(bool active) { Q_UNUSED(active); } -#endif // QT_NO_ACCESSIBILITY +#endif QString QQuickPopup::accessibleName() const { diff --git a/src/quicktemplates2/qquickpopup_p.h b/src/quicktemplates2/qquickpopup_p.h index 41b85dab..d1b0dfac 100644 --- a/src/quicktemplates2/qquickpopup_p.h +++ b/src/quicktemplates2/qquickpopup_p.h @@ -59,7 +59,7 @@ #include <QtQml/qqmlparserstatus.h> #include <QtQuick/qquickitem.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtGui/qaccessible.h> #endif @@ -366,7 +366,7 @@ protected: virtual QFont defaultFont() const; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) virtual QAccessible::Role accessibleRole() const; virtual void accessibilityActiveChanged(bool active); #endif diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp index 60a4a6ee..94bd7dec 100644 --- a/src/quicktemplates2/qquickpopupitem.cpp +++ b/src/quicktemplates2/qquickpopupitem.cpp @@ -105,28 +105,33 @@ QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup) setVisible(false); setFlag(ItemIsFocusScope); setAcceptedMouseButtons(Qt::AllButtons); +#if QT_CONFIG(cursor) + setCursor(Qt::ArrowCursor); +#endif +#if QT_CONFIG(quicktemplates2_hover) // TODO: switch to QStyleHints::useHoverEffects in Qt 5.8 setHoverEnabled(true); // setAcceptHoverEvents(QGuiApplication::styleHints()->useHoverEffects()); // connect(QGuiApplication::styleHints(), &QStyleHints::useHoverEffectsChanged, this, &QQuickItem::setAcceptHoverEvents); +#endif } void QQuickPopupItem::grabShortcut() { -#ifndef QT_NO_SHORTCUT +#if QT_CONFIG(shortcut) Q_D(QQuickPopupItem); QGuiApplicationPrivate *pApp = QGuiApplicationPrivate::instance(); if (!d->backId) d->backId = pApp->shortcutMap.addShortcut(this, Qt::Key_Back, Qt::WindowShortcut, QQuickShortcutContext::matcher); if (!d->escapeId) d->escapeId = pApp->shortcutMap.addShortcut(this, Qt::Key_Escape, Qt::WindowShortcut, QQuickShortcutContext::matcher); -#endif // QT_NO_SHORTCUT +#endif } void QQuickPopupItem::ungrabShortcut() { -#ifndef QT_NO_SHORTCUT +#if QT_CONFIG(shortcut) Q_D(QQuickPopupItem); QGuiApplicationPrivate *pApp = QGuiApplicationPrivate::instance(); if (d->backId) { @@ -137,7 +142,7 @@ void QQuickPopupItem::ungrabShortcut() pApp->shortcutMap.removeShortcut(d->escapeId, this); d->escapeId = 0; } -#endif // QT_NO_SHORTCUT +#endif } void QQuickPopupItem::updatePolish() @@ -148,6 +153,7 @@ void QQuickPopupItem::updatePolish() bool QQuickPopupItem::event(QEvent *event) { +#if QT_CONFIG(shortcut) Q_D(QQuickPopupItem); if (event->type() == QEvent::Shortcut) { QShortcutEvent *se = static_cast<QShortcutEvent *>(event); @@ -159,6 +165,7 @@ bool QQuickPopupItem::event(QEvent *event) } } } +#endif return QQuickItem::event(event); } @@ -278,7 +285,7 @@ QFont QQuickPopupItem::defaultFont() const return d->popup->defaultFont(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickPopupItem::accessibleRole() const { Q_D(const QQuickPopupItem); @@ -291,6 +298,6 @@ void QQuickPopupItem::accessibilityActiveChanged(bool active) QQuickControl::accessibilityActiveChanged(active); d->popup->accessibilityActiveChanged(active); } -#endif // QT_NO_ACCESSIBILITY +#endif QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquickpopupitem_p_p.h b/src/quicktemplates2/qquickpopupitem_p_p.h index 2a92bb10..9ceb8389 100644 --- a/src/quicktemplates2/qquickpopupitem_p_p.h +++ b/src/quicktemplates2/qquickpopupitem_p_p.h @@ -92,7 +92,7 @@ protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; void accessibilityActiveChanged(bool active) override; #endif diff --git a/src/quicktemplates2/qquickprogressbar.cpp b/src/quicktemplates2/qquickprogressbar.cpp index 73050cf4..c5a24f6c 100644 --- a/src/quicktemplates2/qquickprogressbar.cpp +++ b/src/quicktemplates2/qquickprogressbar.cpp @@ -269,7 +269,7 @@ void QQuickProgressBar::componentComplete() setValue(d->value); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickProgressBar::accessibleRole() const { return QAccessible::ProgressBar; diff --git a/src/quicktemplates2/qquickprogressbar_p.h b/src/quicktemplates2/qquickprogressbar_p.h index fc2d6c43..f2284c65 100644 --- a/src/quicktemplates2/qquickprogressbar_p.h +++ b/src/quicktemplates2/qquickprogressbar_p.h @@ -94,7 +94,7 @@ protected: void mirrorChange() override; void componentComplete() override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickradiobutton.cpp b/src/quicktemplates2/qquickradiobutton.cpp index db9613f1..c923fbbf 100644 --- a/src/quicktemplates2/qquickradiobutton.cpp +++ b/src/quicktemplates2/qquickradiobutton.cpp @@ -102,7 +102,7 @@ QFont QQuickRadioButton::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::RadioButtonFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickRadioButton::accessibleRole() const { return QAccessible::RadioButton; diff --git a/src/quicktemplates2/qquickradiobutton_p.h b/src/quicktemplates2/qquickradiobutton_p.h index 0e16a36c..0fe4eb70 100644 --- a/src/quicktemplates2/qquickradiobutton_p.h +++ b/src/quicktemplates2/qquickradiobutton_p.h @@ -62,7 +62,7 @@ public: protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif }; diff --git a/src/quicktemplates2/qquickradiodelegate.cpp b/src/quicktemplates2/qquickradiodelegate.cpp index bbc6664c..fe603d36 100644 --- a/src/quicktemplates2/qquickradiodelegate.cpp +++ b/src/quicktemplates2/qquickradiodelegate.cpp @@ -103,7 +103,7 @@ QFont QQuickRadioDelegate::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickRadioDelegate::accessibleRole() const { return QAccessible::RadioButton; diff --git a/src/quicktemplates2/qquickradiodelegate_p.h b/src/quicktemplates2/qquickradiodelegate_p.h index 9e3cde6b..4db9959d 100644 --- a/src/quicktemplates2/qquickradiodelegate_p.h +++ b/src/quicktemplates2/qquickradiodelegate_p.h @@ -64,7 +64,7 @@ public: protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif }; diff --git a/src/quicktemplates2/qquickrangeslider.cpp b/src/quicktemplates2/qquickrangeslider.cpp index 258a2f91..1c74f9ee 100644 --- a/src/quicktemplates2/qquickrangeslider.cpp +++ b/src/quicktemplates2/qquickrangeslider.cpp @@ -230,7 +230,7 @@ void QQuickRangeSliderNode::setHandle(QQuickItem *handle) if (d->handle == handle) return; - QQuickControlPrivate::get(d->slider)->deleteDelegate(d->handle); + QQuickControlPrivate::destroyDelegate(d->handle, d->slider); d->handle = handle; if (handle) { if (!handle->parentItem()) @@ -1116,7 +1116,7 @@ void QQuickRangeSlider::componentComplete() \sa second */ -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickRangeSlider::accessibleRole() const { return QAccessible::Slider; diff --git a/src/quicktemplates2/qquickrangeslider_p.h b/src/quicktemplates2/qquickrangeslider_p.h index 71b803f4..d07cb6f0 100644 --- a/src/quicktemplates2/qquickrangeslider_p.h +++ b/src/quicktemplates2/qquickrangeslider_p.h @@ -124,7 +124,7 @@ protected: void mirrorChange() override; void componentComplete() override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickscrollbar.cpp b/src/quicktemplates2/qquickscrollbar.cpp index 1ad14e9d..3dcb720a 100644 --- a/src/quicktemplates2/qquickscrollbar.cpp +++ b/src/quicktemplates2/qquickscrollbar.cpp @@ -205,7 +205,12 @@ void QQuickScrollBarPrivate::setInteractive(bool enabled) void QQuickScrollBarPrivate::updateActive() { Q_Q(QQuickScrollBar); - q->setActive(moving || (interactive && (pressed || hovered))); +#if QT_CONFIG(quicktemplates2_hover) + bool hover = hovered; +#else + bool hover = false; +#endif + q->setActive(moving || (interactive && (pressed || hover))); } void QQuickScrollBarPrivate::resizeContent() @@ -599,13 +604,15 @@ void QQuickScrollBar::mouseUngrabEvent() d->handleUngrab(); } +#if QT_CONFIG(quicktemplates2_hover) void QQuickScrollBar::hoverChange() { Q_D(QQuickScrollBar); d->updateActive(); } +#endif -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickScrollBar::accessibilityActiveChanged(bool active) { QQuickControl::accessibilityActiveChanged(active); diff --git a/src/quicktemplates2/qquickscrollbar_p.h b/src/quicktemplates2/qquickscrollbar_p.h index 868cb5d8..1b18c4ad 100644 --- a/src/quicktemplates2/qquickscrollbar_p.h +++ b/src/quicktemplates2/qquickscrollbar_p.h @@ -135,9 +135,11 @@ protected: void mouseReleaseEvent(QMouseEvent *event) override; void mouseUngrabEvent() override; +#if QT_CONFIG(quicktemplates2_hover) void hoverChange() override; +#endif -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickscrollindicator.cpp b/src/quicktemplates2/qquickscrollindicator.cpp index a57cfbb6..347c2a68 100644 --- a/src/quicktemplates2/qquickscrollindicator.cpp +++ b/src/quicktemplates2/qquickscrollindicator.cpp @@ -535,7 +535,7 @@ void QQuickScrollIndicatorAttached::setVertical(QQuickScrollIndicator *vertical) emit verticalChanged(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickScrollIndicator::accessibleRole() const { return QAccessible::Indicator; diff --git a/src/quicktemplates2/qquickscrollindicator_p.h b/src/quicktemplates2/qquickscrollindicator_p.h index c4408500..bc6c5418 100644 --- a/src/quicktemplates2/qquickscrollindicator_p.h +++ b/src/quicktemplates2/qquickscrollindicator_p.h @@ -89,7 +89,7 @@ Q_SIGNALS: void orientationChanged(); protected: -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickscrollview.cpp b/src/quicktemplates2/qquickscrollview.cpp index cf1fac48..fc763511 100644 --- a/src/quicktemplates2/qquickscrollview.cpp +++ b/src/quicktemplates2/qquickscrollview.cpp @@ -562,7 +562,7 @@ void QQuickScrollView::contentItemChange(QQuickItem *newItem, QQuickItem *oldIte d->setFlickable(qobject_cast<QQuickFlickable *>(newItem), false); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickScrollView::accessibleRole() const { return QAccessible::Pane; diff --git a/src/quicktemplates2/qquickscrollview_p.h b/src/quicktemplates2/qquickscrollview_p.h index 353f2fc9..136260c2 100644 --- a/src/quicktemplates2/qquickscrollview_p.h +++ b/src/quicktemplates2/qquickscrollview_p.h @@ -89,7 +89,7 @@ protected: void componentComplete() override; void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickslider.cpp b/src/quicktemplates2/qquickslider.cpp index eb21af4a..266f883f 100644 --- a/src/quicktemplates2/qquickslider.cpp +++ b/src/quicktemplates2/qquickslider.cpp @@ -521,7 +521,7 @@ void QQuickSlider::setHandle(QQuickItem *handle) if (d->handle == handle) return; - d->deleteDelegate(d->handle); + QQuickControlPrivate::destroyDelegate(d->handle, this); d->handle = handle; if (handle && !handle->parentItem()) handle->setParentItem(this); @@ -735,7 +735,7 @@ void QQuickSlider::componentComplete() d->updatePosition(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickSlider::accessibilityActiveChanged(bool active) { QQuickControl::accessibilityActiveChanged(active); diff --git a/src/quicktemplates2/qquickslider_p.h b/src/quicktemplates2/qquickslider_p.h index 286047ed..a6cf02fb 100644 --- a/src/quicktemplates2/qquickslider_p.h +++ b/src/quicktemplates2/qquickslider_p.h @@ -145,7 +145,7 @@ protected: void mirrorChange() override; void componentComplete() override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickspinbox.cpp b/src/quicktemplates2/qquickspinbox.cpp index 4368236a..657102c3 100644 --- a/src/quicktemplates2/qquickspinbox.cpp +++ b/src/quicktemplates2/qquickspinbox.cpp @@ -921,7 +921,7 @@ QFont QQuickSpinBox::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::EditorFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickSpinBox::accessibleRole() const { return QAccessible::SpinBox; @@ -992,12 +992,7 @@ void QQuickSpinButton::setIndicator(QQuickItem *indicator) if (d->indicator == indicator) return; - QQuickControl *control = qobject_cast<QQuickControl*>(d->parent); - if (control) - QQuickControlPrivate::get(control)->deleteDelegate(d->indicator); - else - delete d->indicator; - + QQuickControlPrivate::destroyDelegate(d->indicator, d->parent); d->indicator = indicator; if (indicator) { diff --git a/src/quicktemplates2/qquickspinbox_p.h b/src/quicktemplates2/qquickspinbox_p.h index bd909126..3d554870 100644 --- a/src/quicktemplates2/qquickspinbox_p.h +++ b/src/quicktemplates2/qquickspinbox_p.h @@ -149,7 +149,7 @@ protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickstackview.cpp b/src/quicktemplates2/qquickstackview.cpp index 2e4d2528..a9922704 100644 --- a/src/quicktemplates2/qquickstackview.cpp +++ b/src/quicktemplates2/qquickstackview.cpp @@ -310,7 +310,8 @@ QQuickStackView::~QQuickStackView() d->transitioner->setChangeListener(nullptr); delete d->transitioner; } - qDeleteAll(d->removals); + qDeleteAll(d->removing); + qDeleteAll(d->removed); qDeleteAll(d->elements); } @@ -599,6 +600,7 @@ void QQuickStackView::pop(QQmlV4Function *args) if (d->popElements(enter)) { if (exit) { exit->removal = true; + d->removing.insert(exit); previousItem = exit->item; } emit depthChanged(); @@ -742,8 +744,10 @@ void QQuickStackView::replace(QQmlV4Function *args) if (exit != target ? d->replaceElements(target, elements) : d->pushElements(elements)) { if (depth != d->elements.count()) emit depthChanged(); - if (exit) + if (exit) { exit->removal = true; + d->removing.insert(exit); + } QQuickStackElement *enter = d->elements.top(); d->startTransition(QQuickStackTransition::replaceExit(operation, exit, this), QQuickStackTransition::replaceEnter(operation, enter, this), @@ -1001,11 +1005,13 @@ bool QQuickStackView::childMouseEventFilter(QQuickItem *item, QEvent *event) // breaking its state (QTBUG-50305). if (event->type() == QEvent::MouseButtonPress) return true; + if (event->type() == QEvent::UngrabMouse) + return false; QQuickWindow *window = item->window(); return window && !window->mouseGrabberItem(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickStackView::accessibleRole() const { return QAccessible::LayeredPane; diff --git a/src/quicktemplates2/qquickstackview_p.cpp b/src/quicktemplates2/qquickstackview_p.cpp index 34301c2d..89b3c6e3 100644 --- a/src/quicktemplates2/qquickstackview_p.cpp +++ b/src/quicktemplates2/qquickstackview_p.cpp @@ -208,13 +208,13 @@ void QQuickStackViewPrivate::startTransition(const QQuickStackTransition &first, if (first.element) { if (immediate || !first.element->item || !first.element->prepareTransition(transitioner, first.viewBounds)) - completeTransition(first.element, transitioner->removeTransition, first.status); + completeTransition(first.element, first.transition, first.status); else first.element->startTransition(transitioner, first.status); } if (second.element) { if (immediate || !second.element->item || !second.element->prepareTransition(transitioner, second.viewBounds)) - completeTransition(second.element, transitioner->removeDisplacedTransition, second.status); + completeTransition(second.element, second.transition, second.status); else second.element->startTransition(transitioner, second.status); } @@ -249,14 +249,16 @@ void QQuickStackViewPrivate::viewItemTransitionFinished(QQuickItemViewTransition element->setStatus(QQuickStackView::Inactive); element->setVisible(false); if (element->removal || element->isPendingRemoval()) - removals += element; + removed += element; } if (transitioner->runningJobs.isEmpty()) { - qDeleteAll(removals); - removals.clear(); + qDeleteAll(removed); + removed.clear(); setBusy(false); } + + removing.remove(element); } void QQuickStackViewPrivate::setBusy(bool b) diff --git a/src/quicktemplates2/qquickstackview_p.h b/src/quicktemplates2/qquickstackview_p.h index cc2e4ee2..b74a162d 100644 --- a/src/quicktemplates2/qquickstackview_p.h +++ b/src/quicktemplates2/qquickstackview_p.h @@ -153,7 +153,7 @@ protected: void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; bool childMouseEventFilter(QQuickItem *, QEvent *) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickstackview_p_p.h b/src/quicktemplates2/qquickstackview_p_p.h index 39a9ba9b..ca610153 100644 --- a/src/quicktemplates2/qquickstackview_p_p.h +++ b/src/quicktemplates2/qquickstackview_p_p.h @@ -53,6 +53,7 @@ #include <QtQuick/private/qquickitemviewtransition_p.h> #include <QtQuick/private/qquickitemchangelistener_p.h> #include <QtQml/private/qv4value_p.h> +#include <QtCore/qset.h> QT_BEGIN_NAMESPACE @@ -92,7 +93,8 @@ public: bool busy; QVariant initialItem; QQuickItem *currentItem; - QList<QQuickStackElement*> removals; + QSet<QQuickStackElement*> removing; + QList<QQuickStackElement*> removed; QStack<QQuickStackElement *> elements; QQuickItemViewTransitioner *transitioner; }; diff --git a/src/quicktemplates2/qquickswipedelegate.cpp b/src/quicktemplates2/qquickswipedelegate.cpp index 2ca54312..7824708a 100644 --- a/src/quicktemplates2/qquickswipedelegate.cpp +++ b/src/quicktemplates2/qquickswipedelegate.cpp @@ -1226,7 +1226,7 @@ QFont QQuickSwipeDelegate::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::ListViewFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickSwipeDelegate::accessibleRole() const { return QAccessible::ListItem; diff --git a/src/quicktemplates2/qquickswipedelegate_p.h b/src/quicktemplates2/qquickswipedelegate_p.h index 36f82276..34d11c0f 100644 --- a/src/quicktemplates2/qquickswipedelegate_p.h +++ b/src/quicktemplates2/qquickswipedelegate_p.h @@ -82,7 +82,7 @@ protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquickswipeview.cpp b/src/quicktemplates2/qquickswipeview.cpp index dca2fbf4..cc015bd3 100644 --- a/src/quicktemplates2/qquickswipeview.cpp +++ b/src/quicktemplates2/qquickswipeview.cpp @@ -228,7 +228,7 @@ void QQuickSwipeView::itemAdded(int, QQuickItem *item) item->setSize(QSizeF(d->contentItem->width(), d->contentItem->height())); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickSwipeView::accessibleRole() const { return QAccessible::PageTabList; diff --git a/src/quicktemplates2/qquickswipeview_p.h b/src/quicktemplates2/qquickswipeview_p.h index 8a46f0d2..e07ed7f0 100644 --- a/src/quicktemplates2/qquickswipeview_p.h +++ b/src/quicktemplates2/qquickswipeview_p.h @@ -80,7 +80,7 @@ protected: void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override; void itemAdded(int index, QQuickItem *item) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquicktabbar.cpp b/src/quicktemplates2/qquicktabbar.cpp index 7696e51c..7ce8a21e 100644 --- a/src/quicktemplates2/qquicktabbar.cpp +++ b/src/quicktemplates2/qquicktabbar.cpp @@ -390,7 +390,7 @@ void QQuickTabBar::itemRemoved(int index, QQuickItem *item) polish(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickTabBar::accessibleRole() const { return QAccessible::PageTabList; diff --git a/src/quicktemplates2/qquicktabbar_p.h b/src/quicktemplates2/qquicktabbar_p.h index 1d85d414..bc228346 100644 --- a/src/quicktemplates2/qquicktabbar_p.h +++ b/src/quicktemplates2/qquicktabbar_p.h @@ -94,7 +94,7 @@ protected: void itemAdded(int index, QQuickItem *item) override; void itemRemoved(int index, QQuickItem *item) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquicktabbutton.cpp b/src/quicktemplates2/qquicktabbutton.cpp index c7190a6a..9afe5363 100644 --- a/src/quicktemplates2/qquicktabbutton.cpp +++ b/src/quicktemplates2/qquicktabbutton.cpp @@ -75,7 +75,7 @@ QFont QQuickTabButton::defaultFont() const return QQuickControlPrivate::themeFont(QPlatformTheme::TabButtonFont); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickTabButton::accessibleRole() const { return QAccessible::PageTab; diff --git a/src/quicktemplates2/qquicktabbutton_p.h b/src/quicktemplates2/qquicktabbutton_p.h index b9f93bb6..49ecee50 100644 --- a/src/quicktemplates2/qquicktabbutton_p.h +++ b/src/quicktemplates2/qquicktabbutton_p.h @@ -62,7 +62,7 @@ public: protected: QFont defaultFont() const override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif }; diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp index 573521cf..9fbf9764 100644 --- a/src/quicktemplates2/qquicktextarea.cpp +++ b/src/quicktemplates2/qquicktextarea.cpp @@ -45,7 +45,7 @@ #include <QtQuick/private/qquickclipnode_p.h> #include <QtQuick/private/qquickflickable_p.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtQuick/private/qquickaccessibleattached_p.h> #endif @@ -131,21 +131,24 @@ QT_BEGIN_NAMESPACE */ QQuickTextAreaPrivate::QQuickTextAreaPrivate() - : hovered(false), + : QQuickTextEditPrivate(), +#if QT_CONFIG(quicktemplates2_hover) + hovered(false), explicitHoverEnabled(false), +#endif background(nullptr), focusReason(Qt::OtherFocusReason), accessibleAttached(nullptr), flickable(nullptr) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::installActivationObserver(this); #endif } QQuickTextAreaPrivate::~QQuickTextAreaPrivate() { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::removeActivationObserver(this); #endif } @@ -201,6 +204,7 @@ void QQuickTextAreaPrivate::inheritFont(const QFont &f) emit q->fontChanged(); } +#if QT_CONFIG(quicktemplates2_hover) void QQuickTextAreaPrivate::updateHoverEnabled(bool enabled, bool xplicit) { Q_Q(QQuickTextArea); @@ -215,6 +219,7 @@ void QQuickTextAreaPrivate::updateHoverEnabled(bool enabled, bool xplicit) emit q->hoverEnabledChanged(); } } +#endif void QQuickTextAreaPrivate::attachFlickable(QQuickFlickable *item) { @@ -353,7 +358,7 @@ void QQuickTextAreaPrivate::implicitHeightChanged() void QQuickTextAreaPrivate::readOnlyChanged(bool isReadOnly) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) if (accessibleAttached) accessibleAttached->set_readOnly(isReadOnly); #else @@ -361,7 +366,7 @@ void QQuickTextAreaPrivate::readOnlyChanged(bool isReadOnly) #endif } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickTextAreaPrivate::accessibilityActiveChanged(bool active) { if (accessibleAttached || !active) @@ -384,14 +389,6 @@ QAccessible::Role QQuickTextAreaPrivate::accessibleRole() const } #endif -void QQuickTextAreaPrivate::deleteDelegate(QObject *delegate) -{ - if (componentComplete) - delete delegate; - else if (delegate) - pendingDeletions.append(delegate); -} - QQuickTextArea::QQuickTextArea(QQuickItem *parent) : QQuickTextEdit(*(new QQuickTextAreaPrivate), parent) { @@ -400,7 +397,7 @@ QQuickTextArea::QQuickTextArea(QQuickItem *parent) setAcceptedMouseButtons(Qt::AllButtons); d->setImplicitResizeEnabled(false); d->pressHandler.control = this; -#ifndef QT_NO_CURSOR +#if QT_CONFIG(cursor) setCursor(Qt::IBeamCursor); #endif QObjectPrivate::connect(this, &QQuickTextEdit::readOnlyChanged, @@ -448,7 +445,7 @@ void QQuickTextArea::setBackground(QQuickItem *background) if (d->background == background) return; - d->deleteDelegate(d->background); + QQuickControlPrivate::destroyDelegate(d->background, this); d->background = background; if (background) { background->setParentItem(this); @@ -479,7 +476,7 @@ void QQuickTextArea::setPlaceholderText(const QString &text) return; d->placeholder = text; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) if (d->accessibleAttached) d->accessibleAttached->setDescription(text); #endif @@ -518,18 +515,26 @@ void QQuickTextArea::setFocusReason(Qt::FocusReason reason) */ bool QQuickTextArea::isHovered() const { +#if QT_CONFIG(quicktemplates2_hover) Q_D(const QQuickTextArea); return d->hovered; +#else + return false; +#endif } void QQuickTextArea::setHovered(bool hovered) { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickTextArea); if (hovered == d->hovered) return; d->hovered = hovered; emit hoveredChanged(); +#else + Q_UNUSED(hovered); +#endif } /*! @@ -542,27 +547,37 @@ void QQuickTextArea::setHovered(bool hovered) */ bool QQuickTextArea::isHoverEnabled() const { +#if QT_CONFIG(quicktemplates2_hover) Q_D(const QQuickTextArea); return d->hoverEnabled; +#else + return false; +#endif } void QQuickTextArea::setHoverEnabled(bool enabled) { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickTextArea); if (d->explicitHoverEnabled && enabled == d->hoverEnabled) return; d->updateHoverEnabled(enabled, true); // explicit=true +#else + Q_UNUSED(enabled); +#endif } void QQuickTextArea::resetHoverEnabled() { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickTextArea); if (!d->explicitHoverEnabled) return; d->explicitHoverEnabled = false; d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false +#endif } bool QQuickTextArea::contains(const QPointF &point) const @@ -584,15 +599,14 @@ void QQuickTextArea::componentComplete() { Q_D(QQuickTextArea); QQuickTextEdit::componentComplete(); +#if QT_CONFIG(quicktemplates2_hover) if (!d->explicitHoverEnabled) setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem)); -#ifndef QT_NO_ACCESSIBILITY +#endif +#if QT_CONFIG(accessibility) if (!d->accessibleAttached && QAccessible::isActive()) d->accessibilityActiveChanged(true); #endif - - qDeleteAll(d->pendingDeletions); - d->pendingDeletions.clear(); } void QQuickTextArea::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value) @@ -601,9 +615,10 @@ void QQuickTextArea::itemChange(QQuickItem::ItemChange change, const QQuickItem: QQuickTextEdit::itemChange(change, value); if (change == ItemParentHasChanged && value.item) { d->resolveFont(); +#if QT_CONFIG(quicktemplates2_hover) if (!d->explicitHoverEnabled) d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false - +#endif QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(value.item->parentItem()); if (flickable) { QQuickScrollView *scrollView = qobject_cast<QQuickScrollView *>(flickable->parentItem()); @@ -660,6 +675,7 @@ void QQuickTextArea::focusOutEvent(QFocusEvent *event) setFocusReason(event->reason()); } +#if QT_CONFIG(quicktemplates2_hover) void QQuickTextArea::hoverEnterEvent(QHoverEvent *event) { Q_D(QQuickTextArea); @@ -675,6 +691,7 @@ void QQuickTextArea::hoverLeaveEvent(QHoverEvent *event) setHovered(false); event->setAccepted(d->hoverEnabled); } +#endif void QQuickTextArea::mousePressEvent(QMouseEvent *event) { diff --git a/src/quicktemplates2/qquicktextarea_p.h b/src/quicktemplates2/qquicktextarea_p.h index 99440c32..af7c1d13 100644 --- a/src/quicktemplates2/qquicktextarea_p.h +++ b/src/quicktemplates2/qquicktextarea_p.h @@ -119,8 +119,10 @@ protected: void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; +#if QT_CONFIG(quicktemplates2_hover) void hoverEnterEvent(QHoverEvent *event) override; void hoverLeaveEvent(QHoverEvent *event) override; +#endif void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; diff --git a/src/quicktemplates2/qquicktextarea_p_p.h b/src/quicktemplates2/qquicktextarea_p_p.h index 17be6614..1115b3e9 100644 --- a/src/quicktemplates2/qquicktextarea_p_p.h +++ b/src/quicktemplates2/qquicktextarea_p_p.h @@ -54,7 +54,7 @@ #include <QtQuickTemplates2/private/qquicktextarea_p.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtGui/qaccessible.h> #endif @@ -64,7 +64,7 @@ class QQuickFlickable; class QQuickAccessibleAttached; class QQuickTextAreaPrivate : public QQuickTextEditPrivate, public QQuickItemChangeListener -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) , public QAccessible::ActivationObserver #endif { @@ -83,7 +83,9 @@ public: void resolveFont(); void inheritFont(const QFont &f); +#if QT_CONFIG(quicktemplates2_hover) void updateHoverEnabled(bool h, bool e); +#endif void attachFlickable(QQuickFlickable *flickable); void detachFlickable(); @@ -101,15 +103,15 @@ public: void readOnlyChanged(bool isReadOnly); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif - void deleteDelegate(QObject *object); - +#if QT_CONFIG(quicktemplates2_hover) bool hovered; bool explicitHoverEnabled; +#endif QFont font; QQuickItem *background; QString placeholder; @@ -117,10 +119,6 @@ public: QQuickPressHandler pressHandler; QQuickAccessibleAttached *accessibleAttached; QQuickFlickable *flickable; - // This list contains the default delegates which were - // replaced with custom ones via declarative assignments - // before Component.completed() was emitted. See QTBUG-50992. - QVector<QObject *> pendingDeletions; }; QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp index ace17210..a15f923f 100644 --- a/src/quicktemplates2/qquicktextfield.cpp +++ b/src/quicktemplates2/qquicktextfield.cpp @@ -43,7 +43,7 @@ #include <QtQuick/private/qquicktextinput_p.h> #include <QtQuick/private/qquickclipnode_p.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtQuick/private/qquickaccessibleattached_p.h> #endif @@ -112,20 +112,23 @@ QT_BEGIN_NAMESPACE */ QQuickTextFieldPrivate::QQuickTextFieldPrivate() - : hovered(false), + : QQuickTextInputPrivate(), +#if QT_CONFIG(quicktemplates2_hover) + hovered(false), explicitHoverEnabled(false), +#endif background(nullptr), focusReason(Qt::OtherFocusReason), accessibleAttached(nullptr) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::installActivationObserver(this); #endif } QQuickTextFieldPrivate::~QQuickTextFieldPrivate() { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::removeActivationObserver(this); #endif } @@ -175,6 +178,7 @@ void QQuickTextFieldPrivate::inheritFont(const QFont &f) emit q->fontChanged(); } +#if QT_CONFIG(quicktemplates2_hover) void QQuickTextFieldPrivate::updateHoverEnabled(bool enabled, bool xplicit) { Q_Q(QQuickTextField); @@ -189,6 +193,7 @@ void QQuickTextFieldPrivate::updateHoverEnabled(bool enabled, bool xplicit) emit q->hoverEnabledChanged(); } } +#endif qreal QQuickTextFieldPrivate::getImplicitWidth() const { @@ -216,7 +221,7 @@ void QQuickTextFieldPrivate::implicitHeightChanged() void QQuickTextFieldPrivate::readOnlyChanged(bool isReadOnly) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) if (accessibleAttached) accessibleAttached->set_readOnly(isReadOnly); #else @@ -226,7 +231,7 @@ void QQuickTextFieldPrivate::readOnlyChanged(bool isReadOnly) void QQuickTextFieldPrivate::echoModeChanged(QQuickTextField::EchoMode echoMode) { -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) if (accessibleAttached) accessibleAttached->set_passwordEdit((echoMode == QQuickTextField::Password || echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false); #else @@ -234,7 +239,7 @@ void QQuickTextFieldPrivate::echoModeChanged(QQuickTextField::EchoMode echoMode) #endif } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void QQuickTextFieldPrivate::accessibilityActiveChanged(bool active) { if (accessibleAttached || !active) @@ -258,18 +263,6 @@ QAccessible::Role QQuickTextFieldPrivate::accessibleRole() const } #endif -/* - Deletes "delegate" if Component.completed() has been emitted, - otherwise stores it in pendingDeletions. -*/ -void QQuickTextFieldPrivate::deleteDelegate(QObject *delegate) -{ - if (componentComplete) - delete delegate; - else if (delegate) - pendingDeletions.append(delegate); -} - QQuickTextField::QQuickTextField(QQuickItem *parent) : QQuickTextInput(*(new QQuickTextFieldPrivate), parent) { @@ -278,7 +271,7 @@ QQuickTextField::QQuickTextField(QQuickItem *parent) d->setImplicitResizeEnabled(false); setAcceptedMouseButtons(Qt::AllButtons); setActiveFocusOnTab(true); -#ifndef QT_NO_CURSOR +#if QT_CONFIG(cursor) setCursor(Qt::IBeamCursor); #endif QObjectPrivate::connect(this, &QQuickTextInput::readOnlyChanged, d, &QQuickTextFieldPrivate::readOnlyChanged); @@ -321,7 +314,7 @@ void QQuickTextField::setBackground(QQuickItem *background) if (d->background == background) return; - d->deleteDelegate(d->background); + QQuickControlPrivate::destroyDelegate(d->background, this); d->background = background; if (background) { background->setParentItem(this); @@ -352,7 +345,7 @@ void QQuickTextField::setPlaceholderText(const QString &text) return; d->placeholder = text; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) if (d->accessibleAttached) d->accessibleAttached->setDescription(text); #endif @@ -391,18 +384,26 @@ void QQuickTextField::setFocusReason(Qt::FocusReason reason) */ bool QQuickTextField::isHovered() const { +#if QT_CONFIG(quicktemplates2_hover) Q_D(const QQuickTextField); return d->hovered; +#else + return false; +#endif } void QQuickTextField::setHovered(bool hovered) { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickTextField); if (hovered == d->hovered) return; d->hovered = hovered; emit hoveredChanged(); +#else + Q_UNUSED(hovered); +#endif } /*! @@ -415,27 +416,37 @@ void QQuickTextField::setHovered(bool hovered) */ bool QQuickTextField::isHoverEnabled() const { +#if QT_CONFIG(quicktemplates2_hover) Q_D(const QQuickTextField); return d->hoverEnabled; +#else + return false; +#endif } void QQuickTextField::setHoverEnabled(bool enabled) { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickTextField); if (d->explicitHoverEnabled && enabled == d->hoverEnabled) return; d->updateHoverEnabled(enabled, true); // explicit=true +#else + Q_UNUSED(enabled); +#endif } void QQuickTextField::resetHoverEnabled() { +#if QT_CONFIG(quicktemplates2_hover) Q_D(QQuickTextField); if (!d->explicitHoverEnabled) return; d->explicitHoverEnabled = false; d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false +#endif } void QQuickTextField::classBegin() @@ -449,15 +460,14 @@ void QQuickTextField::componentComplete() { Q_D(QQuickTextField); QQuickTextInput::componentComplete(); +#if QT_CONFIG(quicktemplates2_hover) if (!d->explicitHoverEnabled) setAcceptHoverEvents(QQuickControlPrivate::calcHoverEnabled(d->parentItem)); -#ifndef QT_NO_ACCESSIBILITY +#endif +#if QT_CONFIG(accessibility) if (!d->accessibleAttached && QAccessible::isActive()) d->accessibilityActiveChanged(true); #endif - - qDeleteAll(d->pendingDeletions); - d->pendingDeletions.clear(); } void QQuickTextField::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value) @@ -466,8 +476,10 @@ void QQuickTextField::itemChange(QQuickItem::ItemChange change, const QQuickItem QQuickTextInput::itemChange(change, value); if (change == ItemParentHasChanged && value.item) { d->resolveFont(); +#if QT_CONFIG(quicktemplates2_hover) if (!d->explicitHoverEnabled) d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false +#endif } } @@ -506,6 +518,7 @@ void QQuickTextField::focusOutEvent(QFocusEvent *event) setFocusReason(event->reason()); } +#if QT_CONFIG(quicktemplates2_hover) void QQuickTextField::hoverEnterEvent(QHoverEvent *event) { Q_D(QQuickTextField); @@ -521,6 +534,7 @@ void QQuickTextField::hoverLeaveEvent(QHoverEvent *event) setHovered(false); event->setAccepted(d->hoverEnabled); } +#endif void QQuickTextField::mousePressEvent(QMouseEvent *event) { diff --git a/src/quicktemplates2/qquicktextfield_p.h b/src/quicktemplates2/qquicktextfield_p.h index f9637cc9..24e6ce53 100644 --- a/src/quicktemplates2/qquicktextfield_p.h +++ b/src/quicktemplates2/qquicktextfield_p.h @@ -114,8 +114,10 @@ protected: void focusInEvent(QFocusEvent *event) override; void focusOutEvent(QFocusEvent *event) override; +#if QT_CONFIG(quicktemplates2_hover) void hoverEnterEvent(QHoverEvent *event) override; void hoverLeaveEvent(QHoverEvent *event) override; +#endif void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void mouseReleaseEvent(QMouseEvent *event) override; diff --git a/src/quicktemplates2/qquicktextfield_p_p.h b/src/quicktemplates2/qquicktextfield_p_p.h index 97cbe910..e8dc625b 100644 --- a/src/quicktemplates2/qquicktextfield_p_p.h +++ b/src/quicktemplates2/qquicktextfield_p_p.h @@ -53,7 +53,7 @@ #include <QtQuickTemplates2/private/qquicktextfield_p.h> -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) #include <QtGui/qaccessible.h> #endif @@ -62,7 +62,7 @@ QT_BEGIN_NAMESPACE class QQuickAccessibleAttached; class QQuickTextFieldPrivate : public QQuickTextInputPrivate -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) , public QAccessible::ActivationObserver #endif { @@ -79,7 +79,9 @@ public: void resolveFont(); void inheritFont(const QFont &f); +#if QT_CONFIG(quicktemplates2_hover) void updateHoverEnabled(bool h, bool e); +#endif qreal getImplicitWidth() const override; qreal getImplicitHeight() const override; @@ -90,25 +92,21 @@ public: void readOnlyChanged(bool isReadOnly); void echoModeChanged(QQuickTextField::EchoMode echoMode); -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; #endif - void deleteDelegate(QObject *object); - +#if QT_CONFIG(quicktemplates2_hover) bool hovered; bool explicitHoverEnabled; +#endif QFont font; QQuickItem *background; QString placeholder; Qt::FocusReason focusReason; QQuickPressHandler pressHandler; QQuickAccessibleAttached *accessibleAttached; - // This list contains the default delegates which were - // replaced with custom ones via declarative assignments - // before Component.completed() was emitted. See QTBUG-50992. - QVector<QObject *> pendingDeletions; }; QT_END_NAMESPACE diff --git a/src/quicktemplates2/qquicktoolbar.cpp b/src/quicktemplates2/qquicktoolbar.cpp index 1d2893c6..9f5f210e 100644 --- a/src/quicktemplates2/qquicktoolbar.cpp +++ b/src/quicktemplates2/qquicktoolbar.cpp @@ -141,7 +141,7 @@ void QQuickToolBar::setPosition(Position position) emit positionChanged(); } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickToolBar::accessibleRole() const { return QAccessible::ToolBar; diff --git a/src/quicktemplates2/qquicktoolbar_p.h b/src/quicktemplates2/qquicktoolbar_p.h index 27dd37bb..58192ff9 100644 --- a/src/quicktemplates2/qquicktoolbar_p.h +++ b/src/quicktemplates2/qquicktoolbar_p.h @@ -75,7 +75,7 @@ Q_SIGNALS: void positionChanged(); protected: -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquicktoolseparator.cpp b/src/quicktemplates2/qquicktoolseparator.cpp index e3ffea98..4da63907 100644 --- a/src/quicktemplates2/qquicktoolseparator.cpp +++ b/src/quicktemplates2/qquicktoolseparator.cpp @@ -133,7 +133,7 @@ bool QQuickToolSeparator::isVertical() const return d->orientation == Qt::Vertical; } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickToolSeparator::accessibleRole() const { return QAccessible::Separator; diff --git a/src/quicktemplates2/qquicktoolseparator_p.h b/src/quicktemplates2/qquicktoolseparator_p.h index 552c6fa8..055f475c 100644 --- a/src/quicktemplates2/qquicktoolseparator_p.h +++ b/src/quicktemplates2/qquicktoolseparator_p.h @@ -74,7 +74,7 @@ Q_SIGNALS: void orientationChanged(); protected: -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; #endif diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp index 8fbf3353..bf83a725 100644 --- a/src/quicktemplates2/qquicktooltip.cpp +++ b/src/quicktemplates2/qquicktooltip.cpp @@ -307,7 +307,7 @@ void QQuickToolTip::timerEvent(QTimerEvent *event) } } -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role QQuickToolTip::accessibleRole() const { return QAccessible::ToolTip; diff --git a/src/quicktemplates2/qquicktooltip_p.h b/src/quicktemplates2/qquicktooltip_p.h index 6fffa94e..bdfbe362 100644 --- a/src/quicktemplates2/qquicktooltip_p.h +++ b/src/quicktemplates2/qquicktooltip_p.h @@ -90,7 +90,7 @@ protected: void itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &data) override; void timerEvent(QTimerEvent *event) override; -#ifndef QT_NO_ACCESSIBILITY +#if QT_CONFIG(accessibility) QAccessible::Role accessibleRole() const override; void accessibilityActiveChanged(bool active) override; #endif diff --git a/src/quicktemplates2/qtquicktemplates2global_p.h b/src/quicktemplates2/qtquicktemplates2global_p.h index 322a334f..b7f54bb6 100644 --- a/src/quicktemplates2/qtquicktemplates2global_p.h +++ b/src/quicktemplates2/qtquicktemplates2global_p.h @@ -49,6 +49,7 @@ // #include <QtCore/qglobal.h> +#include <QtQuickTemplates2/private/qtquicktemplates2-config_p.h> QT_BEGIN_NAMESPACE diff --git a/src/quicktemplates2/quicktemplates2.pri b/src/quicktemplates2/quicktemplates2.pri index 34fa001f..232d1db0 100644 --- a/src/quicktemplates2/quicktemplates2.pri +++ b/src/quicktemplates2/quicktemplates2.pri @@ -79,8 +79,6 @@ HEADERS += \ $$PWD/qquicktoolbutton_p.h \ $$PWD/qquicktoolseparator_p.h \ $$PWD/qquicktooltip_p.h \ - $$PWD/qquicktumbler_p.h \ - $$PWD/qquicktumbler_p_p.h \ $$PWD/qquickvelocitycalculator_p_p.h SOURCES += \ @@ -143,5 +141,12 @@ SOURCES += \ $$PWD/qquicktoolbutton.cpp \ $$PWD/qquicktoolseparator.cpp \ $$PWD/qquicktooltip.cpp \ - $$PWD/qquicktumbler.cpp \ $$PWD/qquickvelocitycalculator.cpp + +qtConfig(quick-listview):qtConfig(quick-pathview) { + HEADERS += \ + $$PWD/qquicktumbler_p.h \ + $$PWD/qquicktumbler_p_p.h + SOURCES += \ + $$PWD/qquicktumbler.cpp +} |