diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-08-31 15:09:04 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-08-31 14:23:48 +0000 |
commit | 6dbc3715b9a496b91743d6ca3727178897d2af7e (patch) | |
tree | 751c39c31841bfd24585d328283f9955d1e8e87c /src/quicktemplates2/qquicktextarea.cpp | |
parent | f40583bb6400d4ed67f83bc6e22e88049a314e06 (diff) |
Make use of QQuickItem::ItemEnabledHasChanged
It was added in qtdeclarative commit 286f14f1. Getting rid of the slow
QObject::connect() gives a little boost of 1~2 frames in qmlbench.
Change-Id: If027fe2bee9eedad572afe8828b302c2f44cffac
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquicktextarea.cpp')
-rw-r--r-- | src/quicktemplates2/qquicktextarea.cpp | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp index 5f6037db..3c3ed419 100644 --- a/src/quicktemplates2/qquicktextarea.cpp +++ b/src/quicktemplates2/qquicktextarea.cpp @@ -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) @@ -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; } } |