diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-08-30 15:58:42 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-08-31 13:20:51 +0000 |
commit | f40583bb6400d4ed67f83bc6e22e88049a314e06 (patch) | |
tree | 78257dcf0854ef4c0b2edc11805afea5fe63221d /src/quicktemplates2/qquicktextarea.cpp | |
parent | f0697c622ab087faa19679725250c0ac7f79372d (diff) |
Fix accessibility-related performance regressions
Before 089dd16f, we had a QQuickControlPrivate::accessibleAttached
member that indicated whether accessibility was active. Since 4be38ab
in qtdeclarative, it was possible to access QQuickAccessibleAttached::
attachedProperties() directly, but we ended up accidentally accessing
it even when accessibility was not active, which added noticeable
overhead.
This improves those qmlbench test cases that call accessibility-aware
setters such as QQuickAbstractButton::setChecked() a lot. For example,
the test cases for CheckBox and RadioButton create large amounts of
controls with a "checked: index % 2" binding.
- CheckBox: 84 => 93 frames
- RadioButton: 98 => 113 frames
QAccessible::setActive(true) only notifies the observers, but does not
really make accessibility active in the sense that the consequent calls
to QAccessible::isActive() still return false. tst_accessible had to be
changed to use QPlatformAccessible::setActive() instead.
Change-Id: I8fd0fe2dddfd5633ce22a080bcda459f2d6e443e
Reviewed-by: Liang Qi <liang.qi@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquicktextarea.cpp')
-rw-r--r-- | src/quicktemplates2/qquicktextarea.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp index eec25848..5f6037db 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) @@ -528,7 +528,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(); |