summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2022-06-17 17:34:55 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2022-06-30 10:29:01 +0200
commit1ffe49dd199a6c502ed8c145e102de747284ba56 (patch)
tree607094a41e068d5ede638c7f24fe9d7a0d7a0eed
parentd0eba2449adcee6f1daa33426f9c9b8ebf7c28f5 (diff)
QWindowPrivate::setMinOrMaxSize: port to function_ref
The "callbacks" passed to setMinOrMaxSize are not stored and outlive the callee. Therefore, don't use std::function to pass them (by value (!)); instead employ the recently-added function_ref. Change-Id: I37eea020920a76c063265e667c99a6040394d645 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
-rw-r--r--src/gui/kernel/qwindow.cpp5
-rw-r--r--src/gui/kernel/qwindow_p.h5
2 files changed, 5 insertions, 5 deletions
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index e06951071f..afbde03619 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -568,12 +568,11 @@ QRectF QWindowPrivate::closestAcceptableGeometry(const QRectF &rect) const
}
void QWindowPrivate::setMinOrMaxSize(QSize *oldSizeMember, const QSize &size,
- std::function<void()> funcWidthChanged,
- std::function<void()> funcHeightChanged)
+ qxp::function_ref<void()> funcWidthChanged,
+ qxp::function_ref<void()> funcHeightChanged)
{
Q_Q(QWindow);
Q_ASSERT(oldSizeMember);
- Q_ASSERT(funcWidthChanged && funcHeightChanged);
const QSize adjustedSize =
size.expandedTo(QSize(0, 0)).boundedTo(QSize(QWINDOWSIZE_MAX, QWINDOWSIZE_MAX));
if (*oldSizeMember == adjustedSize)
diff --git a/src/gui/kernel/qwindow_p.h b/src/gui/kernel/qwindow_p.h
index 3212a1d6fa..cf6a6934eb 100644
--- a/src/gui/kernel/qwindow_p.h
+++ b/src/gui/kernel/qwindow_p.h
@@ -22,6 +22,7 @@
#include <QtCore/private/qobject_p.h>
#include <QtCore/qelapsedtimer.h>
+#include <QtCore/qxpfunctional.h>
#include <QtGui/QIcon>
QT_BEGIN_NAMESPACE
@@ -74,8 +75,8 @@ public:
virtual QRectF closestAcceptableGeometry(const QRectF &rect) const;
void setMinOrMaxSize(QSize *oldSizeMember, const QSize &size,
- std::function<void()> funcWidthChanged,
- std::function<void()> funcHeightChanged);
+ qxp::function_ref<void()> funcWidthChanged,
+ qxp::function_ref<void()> funcHeightChanged);
virtual void processSafeAreaMarginsChanged() {}