aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquicksplitview.cpp
diff options
context:
space:
mode:
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();