Commit Graph

3 Commits

Author SHA1 Message Date
Tor Arne Vestbø 365cb95a75 Remove the Window.parent and Window.z properties
Parenting a Window directly into another Window or an Item had some
subtle failure cases due to the way we hook into the Window and let
the window container item control its positioning.

The child item order of individual window containers were also
wrong, causing problems for focus handling.

Until we've solved these issues we remove (build out) the APIs
on Window. The explicit WindowContainer item is still available,
which doesn't have any of these issues.

The machinery has been left in, so we can easily test and
continue working on this, without exposing it to QML by
default.

[ChangeLog][QtQuick] The Window.parent and Window.z properties
added as tech preview in Qt 6.7 have been removed due to known
failure scenarios that are still being investigated. To embed
a Window, use the explicit WindowContainer item, which does
not have any of the known issues.

Task-number: QTBUG-124756
Task-number: QTBUG-122415
Change-Id: I18667f254e398577d11d136a0a0b117cc5a9145b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2024-06-11 12:52:33 +02:00
Lucie Gérard 9c5fc88388 Correct license for test files
According to QUIP-18 [1], all test files should be
LicenseRef-Qt-Commercial OR GPL-3.0-only

[1]: https://contribute.qt-project.org/quips/18

Pick-to: 6.7
Task-number: QTBUG-121787
Change-Id: I26d72e8de04d4c7c57b3b7838af5d033265de5ba
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2024-02-27 10:32:21 +01:00
Tor Arne Vestbø 27071a0a32 Add preliminary support for embedding QWindows into Qt Quick
The new WindowContainer item allows embedding arbitrary windows
into the Qt Quick scene, including foreign windows such as native
map or web views.

A new parent property is also added to Window, allowing these
to be embedded inside other Items without the need for an
explicit window container, along with a new z property, allowing
modifications to the child Window's stacking order.

Splitting the Quick document up into child windows allows
interesting use-cases, such as setting a different surface
format on the child window, for example for enabling HDR
without affecting the rest of the UI.

The embedded windows are managed as a child windows of the root
QQuickWindow, with positioning, sizing, and stacking order
reflecting the implicit or explicit window container item.
Clipping is also supported, by setting a mask on the
embedded window.

The advantage of managing all embedded windows as as children
of the root window is that we always have a QQuickWindow to
handle the stacking order, we're not limited by the platform
surface clip, and don't risk being interleaved behind native
parts of the window we embed into that we don’t control.

[ChangeLog[Quick] Preliminary support for embedding QWindows
into the Qt Quick scene has been added, along with a parent
property on Window, to allow setting a visual parent of the
Window.

Task-number: QTBUG-102835
Change-Id: I78b973e2685fb0ebbc850a110712f3e747bfe09a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2023-12-08 13:22:34 +01:00