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/qquicktextfield.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/qquicktextfield.cpp')
-rw-r--r-- | src/quicktemplates2/qquicktextfield.cpp | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/quicktemplates2/qquicktextfield.cpp b/src/quicktemplates2/qquicktextfield.cpp index 9e3eea50..5033a3cc 100644 --- a/src/quicktemplates2/qquicktextfield.cpp +++ b/src/quicktemplates2/qquicktextfield.cpp @@ -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 @@ -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; } } |