diff options
| author | Lars Schmertmann <[email protected]> | 2025-07-17 14:01:58 +0200 |
|---|---|---|
| committer | Volker Hilsheimer <[email protected]> | 2025-07-29 14:45:52 +0000 |
| commit | e1125c4965743611960681ada345005c83cfc070 (patch) | |
| tree | e7490fafe93443db4f7053d8a928715fb179e460 | |
| parent | 3ad667b5490b143d76edc4486ab98a4e22362600 (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.cpp | 2 | ||||
| -rw-r--r-- | src/gui/kernel/qwindow.h | 3 | ||||
| -rw-r--r-- | tests/auto/gui/kernel/qwindow/tst_qwindow.cpp | 13 |
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 |
