aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksei German <aleksei.german@qt.io>2023-06-13 17:28:00 +0200
committerAleksei German <aleksei.german@qt.io>2023-06-13 18:28:07 +0200
commitf501c53e866547ee7796dfa3b8eb6ea91b93288a (patch)
treedc3977fa0e53d7904942a1b2dce05b86dd8fe41e
parent89b9b0945fbb597205c8c8c9ffabb1b0f4368fbc (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.txt5
-rw-r--r--src/imports/compat/Layers/+DesignMode/Screen.qml8
-rw-r--r--src/imports/compat/Layers/CMakeLists.txt1
-rw-r--r--src/imports/compat/Layers/Screen.qml40
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]