summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Schmertmann <[email protected]>2025-07-17 14:01:58 +0200
committerVolker Hilsheimer <[email protected]>2025-07-29 14:45:52 +0000
commite1125c4965743611960681ada345005c83cfc070 (patch)
treee7490fafe93443db4f7053d8a928715fb179e460
parent3ad667b5490b143d76edc4486ab98a4e22362600 (diff)
Add missing changed signal to QML Window.flags
[ChangeLog][QtGui] Added signal flagsChanged to QWindow. Task-number: QTBUG-137933 Pick-to: 6.10 Change-Id: Idd0f272e2f44cbd773a7110fa1c90abea09e8665 Reviewed-by: Volker Hilsheimer <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Lars Schmertmann <[email protected]>
-rw-r--r--src/gui/kernel/qwindow.cpp2
-rw-r--r--src/gui/kernel/qwindow.h3
-rw-r--r--tests/auto/gui/kernel/qwindow/tst_qwindow.cpp13
3 files changed, 17 insertions, 1 deletions
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index d9baad2f4d6..c3dde662f88 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -1004,6 +1004,8 @@ void QWindow::setFlags(Qt::WindowFlags flags)
if (d->platformWindow)
d->platformWindow->setWindowFlags(flags);
d->windowFlags = flags;
+
+ emit flagsChanged(this->flags());
}
Qt::WindowFlags QWindow::flags() const
diff --git a/src/gui/kernel/qwindow.h b/src/gui/kernel/qwindow.h
index 9882c9fff3b..697d5896ab1 100644
--- a/src/gui/kernel/qwindow.h
+++ b/src/gui/kernel/qwindow.h
@@ -76,7 +76,7 @@ class Q_GUI_EXPORT QWindow : public QObject, public QSurface
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY windowTitleChanged)
Q_PROPERTY(Qt::WindowModality modality READ modality WRITE setModality NOTIFY modalityChanged)
- Q_PROPERTY(Qt::WindowFlags flags READ flags WRITE setFlags)
+ Q_PROPERTY(Qt::WindowFlags flags READ flags WRITE setFlags NOTIFY flagsChanged)
Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged)
Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged)
Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged)
@@ -297,6 +297,7 @@ public Q_SLOTS:
Q_SIGNALS:
void screenChanged(QScreen *screen);
void modalityChanged(Qt::WindowModality modality);
+ Q_REVISION(6, 10) void flagsChanged(Qt::WindowFlags flags);
void windowStateChanged(Qt::WindowState windowState);
Q_REVISION(2, 2) void windowTitleChanged(const QString &title);
diff --git a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
index 66bb0fa84d8..6223bc9ae79 100644
--- a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
+++ b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp
@@ -2865,13 +2865,26 @@ void tst_QWindow::requestUpdate()
void tst_QWindow::flags()
{
Window window;
+ QSignalSpy spy(&window, SIGNAL(flagsChanged(Qt::WindowFlags)));
+
const auto baseFlags = window.flags();
window.setFlags(window.flags() | Qt::FramelessWindowHint);
QCOMPARE(window.flags(), baseFlags | Qt::FramelessWindowHint);
+ QCOMPARE(spy.size(), 1);
+ window.setFlags(window.flags());
+ QCOMPARE(spy.size(), 1);
+
window.setFlag(Qt::WindowStaysOnTopHint, true);
QCOMPARE(window.flags(), baseFlags | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
+ QCOMPARE(spy.size(), 2);
+ window.setFlags(window.flags());
+ QCOMPARE(spy.size(), 2);
+
window.setFlag(Qt::FramelessWindowHint, false);
QCOMPARE(window.flags(), baseFlags | Qt::WindowStaysOnTopHint);
+ QCOMPARE(spy.size(), 3);
+ window.setFlags(window.flags());
+ QCOMPARE(spy.size(), 3);
}
class EventWindow : public QWindow