diff options
| author | Jan Arve Sæther <[email protected]> | 2024-02-13 11:13:20 +0100 |
|---|---|---|
| committer | Jan Arve Sæther <[email protected]> | 2024-04-12 17:12:18 +0000 |
| commit | ddc80cc63d995406f37f9110c58db7d9599eed2c (patch) | |
| tree | a906f5037120fa2cb018f48ee78631a19d334815 /src/widgets/kernel/qwindowcontainer.cpp | |
| parent | 7d44817fc06e2eb4f5ff1fbce8e1905652825c05 (diff) | |
Implement QWindowContainer::minimumSizeHint()
It will return the minimumSize of the underlying QWindow.
The container can then be put inside QLayouts without risking to be
shrunk to a smaller size than the QWindow::minimumSize.
Whenever the QWindow::minimumWidth or QWindow::minimumHeight changes, we call QWindowContainer::updateGeometry(), which will make the layout re-query QWindowContainer::minimumSizeHint() again.
Task-number: QTBUG-121798
Change-Id: Ib7ece7d9d75f2e4964ca9042d8d8b95ce3b17739
Reviewed-by: Doris Verria <[email protected]>
Reviewed-by: Axel Spoerl <[email protected]>
Diffstat (limited to 'src/widgets/kernel/qwindowcontainer.cpp')
| -rw-r--r-- | src/widgets/kernel/qwindowcontainer.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/widgets/kernel/qwindowcontainer.cpp b/src/widgets/kernel/qwindowcontainer.cpp index cfd785a82c2..c15ec54f350 100644 --- a/src/widgets/kernel/qwindowcontainer.cpp +++ b/src/widgets/kernel/qwindowcontainer.cpp @@ -221,6 +221,9 @@ QWindowContainer::QWindowContainer(QWindow *embeddedWindow, QWidget *parent, Qt: connect(qGuiApp, &QGuiApplication::focusWindowChanged, this, &QWindowContainer::focusWindowChanged); + + connect(containedWindow(), &QWindow::minimumHeightChanged, this, &QWindowContainer::updateGeometry); + connect(containedWindow(), &QWindow::minimumWidthChanged, this, &QWindowContainer::updateGeometry); } QWindow *QWindowContainer::containedWindow() const @@ -373,6 +376,11 @@ bool QWindowContainer::event(QEvent *e) return QWidget::event(e); } +QSize QWindowContainer::minimumSizeHint() const +{ + return containedWindow() ? containedWindow()->minimumSize() : QSize(0, 0); +} + typedef void (*qwindowcontainer_traverse_callback)(QWidget *parent); static void qwindowcontainer_traverse(QWidget *parent, qwindowcontainer_traverse_callback callback) { |
