diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/controls/CheckIndicator.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/ComboBox.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/Dial.qml | 2 | ||||
-rw-r--r-- | src/imports/controls/MenuItem.qml | 4 | ||||
-rw-r--r-- | src/quickcontrols2/qquickcolorimage.cpp | 5 | ||||
-rw-r--r-- | src/quickcontrols2/qquickcolorimage_p.h | 3 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontrol.cpp | 24 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontrol_p_p.h | 3 | ||||
-rw-r--r-- | src/quicktemplates2/qquicklabel.cpp | 20 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktabbar.cpp | 19 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktextarea.cpp | 36 | ||||
-rw-r--r-- | src/quicktemplates2/qquicktextfield.cpp | 28 |
12 files changed, 94 insertions, 54 deletions
diff --git a/src/imports/controls/CheckIndicator.qml b/src/imports/controls/CheckIndicator.qml index 2bc87fe6..a3137ff1 100644 --- a/src/imports/controls/CheckIndicator.qml +++ b/src/imports/controls/CheckIndicator.qml @@ -58,7 +58,7 @@ Rectangle { ColorImage { x: (parent.width - width) / 2 y: (parent.height - height) / 2 - color: control.visualFocus ? Default.focusColor : Default.textColor + color: control.visualFocus ? Default.focusColor : undefined source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" visible: control.checkState === Qt.Checked } diff --git a/src/imports/controls/ComboBox.qml b/src/imports/controls/ComboBox.qml index a3735880..2c834d8d 100644 --- a/src/imports/controls/ComboBox.qml +++ b/src/imports/controls/ComboBox.qml @@ -64,7 +64,7 @@ T.ComboBox { indicator: ColorImage { x: control.mirrored ? control.padding : control.width - width - control.padding y: control.topPadding + (control.availableHeight - height) / 2 - color: !control.editable && control.visualFocus ? Default.focusColor : Default.textColor + color: !control.editable && control.visualFocus ? Default.focusColor : undefined source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/double-arrow.png" opacity: enabled ? 1 : 0.3 } diff --git a/src/imports/controls/Dial.qml b/src/imports/controls/Dial.qml index f33ebf72..ae5e490a 100644 --- a/src/imports/controls/Dial.qml +++ b/src/imports/controls/Dial.qml @@ -59,7 +59,7 @@ T.Dial { y: background.y + background.height / 2 - handle.height / 2 width: 14 height: 10 - color: control.visualFocus ? Default.focusColor : Default.textColor + color: control.visualFocus ? Default.focusColor : undefined source: "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/dial-indicator.png" antialiasing: true opacity: control.enabled ? 1 : 0.3 diff --git a/src/imports/controls/MenuItem.qml b/src/imports/controls/MenuItem.qml index 225f9310..c3be68f6 100644 --- a/src/imports/controls/MenuItem.qml +++ b/src/imports/controls/MenuItem.qml @@ -79,7 +79,7 @@ T.MenuItem { visible: control.checked source: control.checkable ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png" : "" - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor + color: control.enabled ? undefined : Default.textDisabledColor } arrow: ColorImage { @@ -89,7 +89,7 @@ T.MenuItem { visible: control.subMenu mirror: control.mirrored source: control.subMenu ? "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/arrow-indicator.png" : "" - color: control.enabled ? Default.textDarkColor : Default.textDisabledColor + color: control.enabled ? undefined : Default.textDisabledColor } background: Item { diff --git a/src/quickcontrols2/qquickcolorimage.cpp b/src/quickcontrols2/qquickcolorimage.cpp index 430ba6ea..9358c3ca 100644 --- a/src/quickcontrols2/qquickcolorimage.cpp +++ b/src/quickcontrols2/qquickcolorimage.cpp @@ -61,6 +61,11 @@ void QQuickColorImage::setColor(const QColor &color) emit colorChanged(); } +void QQuickColorImage::resetColor() +{ + setColor(Qt::transparent); +} + void QQuickColorImage::pixmapChange() { QQuickImage::pixmapChange(); diff --git a/src/quickcontrols2/qquickcolorimage_p.h b/src/quickcontrols2/qquickcolorimage_p.h index 8b0f769d..6de2e21b 100644 --- a/src/quickcontrols2/qquickcolorimage_p.h +++ b/src/quickcontrols2/qquickcolorimage_p.h @@ -57,13 +57,14 @@ QT_BEGIN_NAMESPACE class Q_QUICKCONTROLS2_PRIVATE_EXPORT QQuickColorImage : public QQuickImage { Q_OBJECT - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged FINAL) + Q_PROPERTY(QColor color READ color WRITE setColor RESET resetColor NOTIFY colorChanged FINAL) public: explicit QQuickColorImage(QQuickItem *parent = nullptr); QColor color() const; void setColor(const QColor &color); + void resetColor(); Q_SIGNALS: void colorChanged(); diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp index 4b85e444..6a41aebd 100644 --- a/src/quicktemplates2/qquickcontrol.cpp +++ b/src/quicktemplates2/qquickcontrol.cpp @@ -315,6 +315,13 @@ QAccessible::Role QQuickControlPrivate::accessibleRole() const Q_Q(const QQuickControl); return q->accessibleRole(); } + +QQuickAccessibleAttached *QQuickControlPrivate::accessibleAttached(const QObject *object) +{ + if (!QAccessible::isActive()) + return nullptr; + return QQuickAccessibleAttached::attachedProperties(object); +} #endif /*! @@ -662,15 +669,11 @@ void QQuickControlPrivate::destroyDelegate(QObject *delegate, QObject *parent) QQuickControl::QQuickControl(QQuickItem *parent) : QQuickItem(*(new QQuickControlPrivate), parent) { - // ### TODO: ItemEnabledChanged? - connect(this, &QQuickItem::enabledChanged, this, &QQuickControl::paletteChanged); } QQuickControl::QQuickControl(QQuickControlPrivate &dd, QQuickItem *parent) : QQuickItem(dd, parent) { - // ### TODO: ItemEnabledChanged? - connect(this, &QQuickItem::enabledChanged, this, &QQuickControl::paletteChanged); } void QQuickControl::itemChange(QQuickItem::ItemChange change, const QQuickItem::ItemChangeData &value) @@ -678,6 +681,9 @@ void QQuickControl::itemChange(QQuickItem::ItemChange change, const QQuickItem:: Q_D(QQuickControl); QQuickItem::itemChange(change, value); switch (change) { + case ItemEnabledHasChanged: + emit paletteChanged(); + break; case ItemVisibleHasChanged: #if QT_CONFIG(quicktemplates2_hover) if (!value.boolValue) @@ -1613,7 +1619,7 @@ void QQuickControl::accessibilityActiveChanged(bool active) QString QQuickControl::accessibleName() const { #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(this)) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) return accessibleAttached->name(); #endif return QString(); @@ -1622,7 +1628,7 @@ QString QQuickControl::accessibleName() const void QQuickControl::setAccessibleName(const QString &name) { #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(this)) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) accessibleAttached->setName(name); #else Q_UNUSED(name) @@ -1632,7 +1638,8 @@ void QQuickControl::setAccessibleName(const QString &name) QVariant QQuickControl::accessibleProperty(const char *propertyName) { #if QT_CONFIG(accessibility) - return QQuickAccessibleAttached::property(this, propertyName); + if (QAccessible::isActive()) + return QQuickAccessibleAttached::property(this, propertyName); #endif Q_UNUSED(propertyName) return QVariant(); @@ -1641,7 +1648,8 @@ QVariant QQuickControl::accessibleProperty(const char *propertyName) bool QQuickControl::setAccessibleProperty(const char *propertyName, const QVariant &value) { #if QT_CONFIG(accessibility) - return QQuickAccessibleAttached::setProperty(this, propertyName, value); + if (QAccessible::isActive()) + return QQuickAccessibleAttached::setProperty(this, propertyName, value); #endif Q_UNUSED(propertyName) Q_UNUSED(value) diff --git a/src/quicktemplates2/qquickcontrol_p_p.h b/src/quicktemplates2/qquickcontrol_p_p.h index e990e44f..e7e9d46f 100644 --- a/src/quicktemplates2/qquickcontrol_p_p.h +++ b/src/quicktemplates2/qquickcontrol_p_p.h @@ -60,6 +60,8 @@ QT_BEGIN_NAMESPACE +class QQuickAccessibleAttached; + class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickControlPrivate : public QQuickItemPrivate #if QT_CONFIG(accessibility) , public QAccessible::ActivationObserver @@ -100,6 +102,7 @@ public: #if QT_CONFIG(accessibility) void accessibilityActiveChanged(bool active) override; QAccessible::Role accessibleRole() const override; + static QQuickAccessibleAttached *accessibleAttached(const QObject *object); #endif virtual void resolveFont(); diff --git a/src/quicktemplates2/qquicklabel.cpp b/src/quicktemplates2/qquicklabel.cpp index 8d964745..f1a5d15e 100644 --- a/src/quicktemplates2/qquicklabel.cpp +++ b/src/quicktemplates2/qquicklabel.cpp @@ -176,7 +176,7 @@ void QQuickLabelPrivate::textChanged(const QString &text) { #if QT_CONFIG(accessibility) Q_Q(QQuickLabel); - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(q)) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q)) accessibleAttached->setName(text); #else Q_UNUSED(text) @@ -207,9 +207,6 @@ QQuickLabel::QQuickLabel(QQuickItem *parent) { Q_D(QQuickLabel); QObjectPrivate::connect(this, &QQuickText::textChanged, d, &QQuickLabelPrivate::textChanged); - - // ### TODO: ItemEnabledChanged? - connect(this, &QQuickItem::enabledChanged, this, &QQuickLabel::paletteChanged); } QFont QQuickLabel::font() const @@ -314,9 +311,18 @@ void QQuickLabel::itemChange(QQuickItem::ItemChange change, const QQuickItem::It { Q_D(QQuickLabel); QQuickText::itemChange(change, value); - if (change == ItemParentHasChanged && value.item) { - d->resolveFont(); - d->resolvePalette(); + switch (change) { + case ItemEnabledHasChanged: + emit paletteChanged(); + break; + case ItemParentHasChanged: + if (value.item) { + d->resolveFont(); + d->resolvePalette(); + } + break; + default: + break; } } diff --git a/src/quicktemplates2/qquicktabbar.cpp b/src/quicktemplates2/qquicktabbar.cpp index 814d14ea..52522262 100644 --- a/src/quicktemplates2/qquicktabbar.cpp +++ b/src/quicktemplates2/qquicktabbar.cpp @@ -228,27 +228,29 @@ void QQuickTabBarPrivate::updateLayout() contentHeightChange = true; } + updatingLayout = true; if (contentWidthChange) emit q->contentWidthChanged(); if (contentHeightChange) emit q->contentHeightChanged(); + updatingLayout = false; } -void QQuickTabBarPrivate::itemGeometryChanged(QQuickItem *, QQuickGeometryChange, const QRectF &) +void QQuickTabBarPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change, const QRectF &) { - if (!updatingLayout) + if (!updatingLayout && change.sizeChange() && QQuickItemPrivate::get(item)->componentComplete) updateLayout(); } -void QQuickTabBarPrivate::itemImplicitWidthChanged(QQuickItem *) +void QQuickTabBarPrivate::itemImplicitWidthChanged(QQuickItem *item) { - if (!updatingLayout && !hasContentWidth) + if (!updatingLayout && !hasContentWidth && QQuickItemPrivate::get(item)->componentComplete) updateLayout(); } -void QQuickTabBarPrivate::itemImplicitHeightChanged(QQuickItem *) +void QQuickTabBarPrivate::itemImplicitHeightChanged(QQuickItem *item) { - if (!updatingLayout && !hasContentHeight) + if (!updatingLayout && !hasContentHeight && QQuickItemPrivate::get(item)->componentComplete) updateLayout(); } @@ -397,7 +399,10 @@ void QQuickTabBar::geometryChanged(const QRectF &newGeometry, const QRectF &oldG { Q_D(QQuickTabBar); QQuickContainer::geometryChanged(newGeometry, oldGeometry); - d->updateLayout(); + if (!d->updatingLayout) + d->updateLayout(); + else + polish(); } bool QQuickTabBar::isContent(QQuickItem *item) const diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp index eec25848..3c3ed419 100644 --- a/src/quicktemplates2/qquicktextarea.cpp +++ b/src/quicktemplates2/qquicktextarea.cpp @@ -409,7 +409,7 @@ void QQuickTextAreaPrivate::readOnlyChanged(bool isReadOnly) { Q_UNUSED(isReadOnly); #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(q_func())) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func())) accessibleAttached->set_readOnly(isReadOnly); #endif #if QT_CONFIG(cursor) @@ -450,9 +450,6 @@ QQuickTextArea::QQuickTextArea(QQuickItem *parent) #endif QObjectPrivate::connect(this, &QQuickTextEdit::readOnlyChanged, d, &QQuickTextAreaPrivate::readOnlyChanged); - - // ### TODO: ItemEnabledChanged? - connect(this, &QQuickItem::enabledChanged, this, &QQuickTextArea::paletteChanged); } QQuickTextAreaAttached *QQuickTextArea::qmlAttachedProperties(QObject *object) @@ -528,7 +525,7 @@ void QQuickTextArea::setPlaceholderText(const QString &text) d->placeholder = text; #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(this)) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) accessibleAttached->setDescription(text); #endif emit placeholderTextChanged(); @@ -697,19 +694,28 @@ void QQuickTextArea::itemChange(QQuickItem::ItemChange change, const QQuickItem: { Q_D(QQuickTextArea); QQuickTextEdit::itemChange(change, value); - if (change == ItemParentHasChanged && value.item) { - d->resolveFont(); - d->resolvePalette(); + switch (change) { + case ItemEnabledHasChanged: + emit paletteChanged(); + break; + case ItemParentHasChanged: + if (value.item) { + d->resolveFont(); + d->resolvePalette(); #if QT_CONFIG(quicktemplates2_hover) - if (!d->explicitHoverEnabled) - d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false + 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()); - if (scrollView) - d->attachFlickable(flickable); + QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(value.item->parentItem()); + if (flickable) { + QQuickScrollView *scrollView = qobject_cast<QQuickScrollView *>(flickable->parentItem()); + if (scrollView) + d->attachFlickable(flickable); + } } + break; + default: + break; } } diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp index 1c350165..5033a3cc 100644 --- a/src/quicktemplates2/qquicktextfield.cpp +++ b/src/quicktemplates2/qquicktextfield.cpp @@ -272,7 +272,7 @@ void QQuickTextFieldPrivate::readOnlyChanged(bool isReadOnly) { Q_UNUSED(isReadOnly); #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(q_func())) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func())) accessibleAttached->set_readOnly(isReadOnly); #endif #if QT_CONFIG(cursor) @@ -283,7 +283,7 @@ void QQuickTextFieldPrivate::readOnlyChanged(bool isReadOnly) void QQuickTextFieldPrivate::echoModeChanged(QQuickTextField::EchoMode echoMode) { #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(q_func())) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(q_func())) accessibleAttached->set_passwordEdit((echoMode == QQuickTextField::Password || echoMode == QQuickTextField::PasswordEchoOnEdit) ? true : false); #else Q_UNUSED(echoMode) @@ -324,9 +324,6 @@ QQuickTextField::QQuickTextField(QQuickItem *parent) #endif QObjectPrivate::connect(this, &QQuickTextInput::readOnlyChanged, d, &QQuickTextFieldPrivate::readOnlyChanged); QObjectPrivate::connect(this, &QQuickTextInput::echoModeChanged, d, &QQuickTextFieldPrivate::echoModeChanged); - - // ### TODO: ItemEnabledChanged? - connect(this, &QQuickItem::enabledChanged, this, &QQuickTextField::paletteChanged); } QFont QQuickTextField::font() const @@ -397,7 +394,7 @@ void QQuickTextField::setPlaceholderText(const QString &text) d->placeholder = text; #if QT_CONFIG(accessibility) - if (QQuickAccessibleAttached *accessibleAttached = QQuickAccessibleAttached::attachedProperties(this)) + if (QQuickAccessibleAttached *accessibleAttached = QQuickControlPrivate::accessibleAttached(this)) accessibleAttached->setDescription(text); #endif emit placeholderTextChanged(); @@ -558,13 +555,22 @@ void QQuickTextField::itemChange(QQuickItem::ItemChange change, const QQuickItem { Q_D(QQuickTextField); QQuickTextInput::itemChange(change, value); - if (change == ItemParentHasChanged && value.item) { - d->resolveFont(); - d->resolvePalette(); + switch (change) { + case ItemEnabledHasChanged: + emit paletteChanged(); + break; + case ItemParentHasChanged: + if (value.item) { + d->resolveFont(); + d->resolvePalette(); #if QT_CONFIG(quicktemplates2_hover) - if (!d->explicitHoverEnabled) - d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false + if (!d->explicitHoverEnabled) + d->updateHoverEnabled(QQuickControlPrivate::calcHoverEnabled(d->parentItem), false); // explicit=false #endif + } + break; + default: + break; } } |