aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquicksplitview.cpp
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2018-12-04 13:44:11 +0100
committerMitch Curtis <mitch.curtis@qt.io>2018-12-05 10:58:58 +0000
commitc98f8abe34c526bbf66000567b8e1084a788b26b (patch)
treebfe628b0d943d325f62db81b8b4cadc5b5d26e77 /src/quicktemplates2/qquicksplitview.cpp
parent64c44f392b3912849e5eb81a98eae60d11c6dddb (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.cpp19
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();