diff options
author | Jochen Seemann <seemann.jochen@gmail.com> | 2016-02-02 22:23:38 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-02-17 08:14:25 +0000 |
commit | 67169ffa7dbf9e83e0fea35930457dc7792ef05d (patch) | |
tree | 5e2df3e0ded1bdb72fa36f8e004e2de99056f49a /src/templates | |
parent | f56ec245eab24d56800a24f5bc06de1de4f87293 (diff) |
clear parentItem of old header and footer items
This patch completes the support in QQuickApplicationWindow
and QQuickPage to dynamically change the header and footer
item.
Change-Id: Id230db135ca2957d94aa126e9d58ac486c88557c
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/templates')
-rw-r--r-- | src/templates/qquickapplicationwindow.cpp | 8 | ||||
-rw-r--r-- | src/templates/qquickpage.cpp | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/templates/qquickapplicationwindow.cpp b/src/templates/qquickapplicationwindow.cpp index b7a71a9f..92d080f3 100644 --- a/src/templates/qquickapplicationwindow.cpp +++ b/src/templates/qquickapplicationwindow.cpp @@ -242,8 +242,10 @@ void QQuickApplicationWindow::setHeader(QQuickItem *header) { Q_D(QQuickApplicationWindow); if (d->header != header) { - if (d->header) + if (d->header) { QQuickItemPrivate::get(d->header)->removeItemChangeListener(d, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight); + d->header->setParentItem(Q_NULLPTR); + } d->header = header; if (header) { header->setParentItem(contentItem()); @@ -276,8 +278,10 @@ void QQuickApplicationWindow::setFooter(QQuickItem *footer) { Q_D(QQuickApplicationWindow); if (d->footer != footer) { - if (d->footer) + if (d->footer) { QQuickItemPrivate::get(d->footer)->removeItemChangeListener(d, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight); + d->footer->setParentItem(Q_NULLPTR); + } d->footer = footer; if (footer) { footer->setParentItem(contentItem()); diff --git a/src/templates/qquickpage.cpp b/src/templates/qquickpage.cpp index 8302dca0..6a65e7c4 100644 --- a/src/templates/qquickpage.cpp +++ b/src/templates/qquickpage.cpp @@ -160,8 +160,10 @@ void QQuickPage::setHeader(QQuickItem *header) { Q_D(QQuickPage); if (d->header != header) { - if (d->header) + if (d->header) { QQuickItemPrivate::get(d->header)->removeItemChangeListener(d, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight); + d->header->setParentItem(Q_NULLPTR); + } d->header = header; if (header) { header->setParentItem(this); @@ -194,8 +196,10 @@ void QQuickPage::setFooter(QQuickItem *footer) { Q_D(QQuickPage); if (d->footer != footer) { - if (d->footer) + if (d->footer) { QQuickItemPrivate::get(d->footer)->removeItemChangeListener(d, QQuickItemPrivate::ImplicitWidth | QQuickItemPrivate::ImplicitHeight); + d->footer->setParentItem(Q_NULLPTR); + } d->footer = footer; if (footer) { footer->setParentItem(this); |