diff options
author | Mitch Curtis <mitch.curtis@qt.io> | 2018-12-04 13:44:11 +0100 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2018-12-05 10:58:58 +0000 |
commit | c98f8abe34c526bbf66000567b8e1084a788b26b (patch) | |
tree | bfe628b0d943d325f62db81b8b4cadc5b5d26e77 /src/quicktemplates2/qquicksplitview.cpp | |
parent | 64c44f392b3912849e5eb81a98eae60d11c6dddb (diff) |
SplitView: react to changes in implicit size of split items
Change-Id: Id81aac71f26ec9cbf643fdc480d76841d1e3be47
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/quicktemplates2/qquicksplitview.cpp')
-rw-r--r-- | src/quicktemplates2/qquicksplitview.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquicksplitview.cpp b/src/quicktemplates2/qquicksplitview.cpp index 287ec45e..ed86daed 100644 --- a/src/quicktemplates2/qquicksplitview.cpp +++ b/src/quicktemplates2/qquicksplitview.cpp @@ -1003,6 +1003,16 @@ void QQuickSplitViewPrivate::itemVisibilityChanged(QQuickItem *item) layout(); } +void QQuickSplitViewPrivate::itemImplicitWidthChanged(QQuickItem *) +{ + layout(); +} + +void QQuickSplitViewPrivate::itemImplicitHeightChanged(QQuickItem *) +{ + layout(); +} + QQuickSplitViewPrivate *QQuickSplitViewPrivate::get(QQuickSplitView *splitView) { return splitView->d_func(); @@ -1028,6 +1038,11 @@ QQuickSplitView::QQuickSplitView(QQuickSplitViewPrivate &dd, QQuickItem *parent) QQuickSplitView::~QQuickSplitView() { + Q_D(QQuickSplitView); + for (int i = 0; i < d->contentModel->count(); ++i) { + QQuickItem *item = qobject_cast<QQuickItem*>(d->contentModel->object(i)); + d->removeImplicitSizeListener(item); + } } /*! @@ -1358,6 +1373,8 @@ void QQuickSplitView::itemAdded(int index, QQuickItem *item) d->createHandleItem(index < count - 1 ? index : index - 1); } + d->addImplicitSizeListener(item); + d->updateHandleVisibilities(); d->updateFillIndex(); d->layout(); @@ -1408,6 +1425,8 @@ void QQuickSplitView::itemRemoved(int index, QQuickItem *item) if (attached) QQuickSplitViewAttachedPrivate::get(attached)->setView(this); + d->removeImplicitSizeListener(item); + d->removeExcessHandles(); d->updateHandleVisibilities(); d->updateFillIndex(); |