diff options
author | Aleksei German <aleksei.german@qt.io> | 2023-06-13 17:28:00 +0200 |
---|---|---|
committer | Aleksei German <aleksei.german@qt.io> | 2023-06-13 18:28:07 +0200 |
commit | f501c53e866547ee7796dfa3b8eb6ea91b93288a (patch) | |
tree | dc3977fa0e53d7904942a1b2dce05b86dd8fe41e | |
parent | 89b9b0945fbb597205c8c8c9ffabb1b0f4368fbc (diff) |
Fix for QUL.Layers.Screen
Patch includes fix for Screen itself, DesignMode item, its config for
qt6 kit and also tiny singleton fix for Extras QulPerf.
Task-number: QDS-10086
Change-Id: Idc999b0077bbebeaefcc5a622d63e3f90d3096a2
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r-- | src/imports/compat/Extras/CMakeLists.txt | 5 | ||||
-rw-r--r-- | src/imports/compat/Layers/+DesignMode/Screen.qml | 8 | ||||
-rw-r--r-- | src/imports/compat/Layers/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/imports/compat/Layers/Screen.qml | 40 |
4 files changed, 47 insertions, 7 deletions
diff --git a/src/imports/compat/Extras/CMakeLists.txt b/src/imports/compat/Extras/CMakeLists.txt index 2e45bf0..295dd15 100644 --- a/src/imports/compat/Extras/CMakeLists.txt +++ b/src/imports/compat/Extras/CMakeLists.txt @@ -1,3 +1,8 @@ +set_source_files_properties(QulPerf.qml + PROPERTIES + QT_QML_SINGLETON_TYPE true +) + qt_internal_add_qml_module(QuickUltraLiteStudioExtras URI "QtQuickUltralite.Extras" VERSION "${PROJECT_VERSION}" diff --git a/src/imports/compat/Layers/+DesignMode/Screen.qml b/src/imports/compat/Layers/+DesignMode/Screen.qml index f86c272..d926072 100644 --- a/src/imports/compat/Layers/+DesignMode/Screen.qml +++ b/src/imports/compat/Layers/+DesignMode/Screen.qml @@ -32,11 +32,11 @@ import QtQuick 2.15 //! [Screen compatibility] Rectangle { id: wnd - property var outputDevice: "device" - property alias backgroundColor: color + property string outputDevice: "device" + property alias backgroundColor: wnd.color - property int defaultApplicationWidth: width - property int defaultApplicationHeight: height + property real defaultApplicationWidth: 0 + property real defaultApplicationHeight: 0 visible: true } diff --git a/src/imports/compat/Layers/CMakeLists.txt b/src/imports/compat/Layers/CMakeLists.txt index 183636d..11ac13e 100644 --- a/src/imports/compat/Layers/CMakeLists.txt +++ b/src/imports/compat/Layers/CMakeLists.txt @@ -12,6 +12,7 @@ qt_internal_add_qml_module(QuickUltraLiteStudioLayers ItemLayer.qml Screen.qml SpriteLayer.qml + +DesignMode/Screen.qml ) if(QT_FEATURE_quick_designer AND QT_BUILD_SHARED_LIBS) diff --git a/src/imports/compat/Layers/Screen.qml b/src/imports/compat/Layers/Screen.qml index ad50a8d..3cbc021 100644 --- a/src/imports/compat/Layers/Screen.qml +++ b/src/imports/compat/Layers/Screen.qml @@ -34,15 +34,49 @@ import QtQuick.Window 2.2 Item { id: root - property var outputDevice: "device" + property string outputDevice: "device" property alias backgroundColor: wnd.color - property alias defaultApplicationWidth: wnd.width - property alias defaultApplicationHeight: wnd.height + property real defaultApplicationWidth: 0 + property real defaultApplicationHeight: 0 + + onChildrenChanged: { + if (wnd.isAvailable) + wnd.reparenting() + } Window { id: wnd visible: true + + width: root.width + height: root.height + + property bool reparentingBlock: false + property bool isAvailable: false + + Component.onCompleted: { + reparenting() + isAvailable = true + } + + function reparenting() { + if (reparentingBlock) + return; + + reparentingBlock = true; + + var result = []; + var rootChildren = root.children; + for (var i = 0; i < rootChildren.length; i++) { + if (rootChildren[i] !== wnd) { + result.push(rootChildren[i]); + } + } + wnd.data = result; + + reparentingBlock = false; + } } } //! [Screen compatibility] |