From f501c53e866547ee7796dfa3b8eb6ea91b93288a Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Tue, 13 Jun 2023 17:28:00 +0200 Subject: 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 --- src/imports/compat/Extras/CMakeLists.txt | 5 +++ src/imports/compat/Layers/+DesignMode/Screen.qml | 8 ++--- src/imports/compat/Layers/CMakeLists.txt | 1 + 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] -- cgit v1.2.3