diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-09-11 14:03:47 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-09-11 14:03:47 +0200 |
commit | c32c776bf4bd0bc601cb78f9814036cb40b33b52 (patch) | |
tree | a390a1b5909c0396271be5f29b818ba114328e70 /src/quicktemplates2/qquicktextarea.cpp | |
parent | 4997773a6ed0ea9908cd67ab0335d2ae177a6320 (diff) | |
parent | d3aef722da533c3b100ba653498c79986a44c9f9 (diff) |
Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts:
src/quicktemplates2/qquicklabel.cpp
src/quicktemplates2/qquicktextarea.cpp
src/quicktemplates2/qquicktextfield.cpp
Change-Id: Ibbf6bc48972f58fbc6779a87ac9e2434c56c4db8
Diffstat (limited to 'src/quicktemplates2/qquicktextarea.cpp')
-rw-r--r-- | src/quicktemplates2/qquicktextarea.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/quicktemplates2/qquicktextarea.cpp b/src/quicktemplates2/qquicktextarea.cpp index 3c3ed419..19ede665 100644 --- a/src/quicktemplates2/qquicktextarea.cpp +++ b/src/quicktemplates2/qquicktextarea.cpp @@ -305,7 +305,7 @@ void QQuickTextAreaPrivate::detachFlickable() QObject::disconnect(flickable, &QQuickFlickable::contentXChanged, q, &QQuickItem::update); QObject::disconnect(flickable, &QQuickFlickable::contentYChanged, q, &QQuickItem::update); - QQuickItemPrivate::get(flickable)->updateOrRemoveGeometryChangeListener(this, QQuickGeometryChange::Size); + QQuickItemPrivate::get(flickable)->updateOrRemoveGeometryChangeListener(this, QQuickGeometryChange::Nothing); QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentWidthChanged, this, &QQuickTextAreaPrivate::resizeFlickableControl); QObjectPrivate::disconnect(flickable, &QQuickFlickable::contentHeightChanged, this, &QQuickTextAreaPrivate::resizeFlickableControl); @@ -452,6 +452,13 @@ QQuickTextArea::QQuickTextArea(QQuickItem *parent) d, &QQuickTextAreaPrivate::readOnlyChanged); } +QQuickTextArea::~QQuickTextArea() +{ + Q_D(QQuickTextArea); + if (d->flickable) + d->detachFlickable(); +} + QQuickTextAreaAttached *QQuickTextArea::qmlAttachedProperties(QObject *object) { return new QQuickTextAreaAttached(object); @@ -698,19 +705,22 @@ void QQuickTextArea::itemChange(QQuickItem::ItemChange change, const QQuickItem: case ItemEnabledHasChanged: emit paletteChanged(); break; + case ItemSceneChange: case ItemParentHasChanged: - if (value.item) { + if ((change == ItemParentHasChanged && value.item) || (change == ItemSceneChange && value.window)) { d->resolveFont(); d->resolvePalette(); #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()); - if (scrollView) - d->attachFlickable(flickable); + if (change == ItemParentHasChanged) { + QQuickFlickable *flickable = qobject_cast<QQuickFlickable *>(value.item->parentItem()); + if (flickable) { + QQuickScrollView *scrollView = qobject_cast<QQuickScrollView *>(flickable->parentItem()); + if (scrollView) + d->attachFlickable(flickable); + } } } break; |