From 45ebf3c70ef32167fba6439d249d18820a49b569 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sat, 28 Jun 2025 22:08:17 +1000 Subject: dashboard: loader panes --- modules/dashboard/Content.qml | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) (limited to 'modules/dashboard/Content.qml') diff --git a/modules/dashboard/Content.qml b/modules/dashboard/Content.qml index 33171e0..4f4e242 100644 --- a/modules/dashboard/Content.qml +++ b/modules/dashboard/Content.qml @@ -1,3 +1,5 @@ +pragma ComponentBehavior: Bound + import "root:/widgets" import "root:/services" import "root:/config" @@ -82,20 +84,20 @@ Item { RowLayout { id: row - Dash { - Layout.alignment: Qt.AlignTop - shouldUpdate: visible && this === view.currentItem - visibilities: root.visibilities + Pane { + sourceComponent: Dash { + visibilities: root.visibilities + } } - Media { - Layout.alignment: Qt.AlignTop - shouldUpdate: visible && this === view.currentItem - visibilities: root.visibilities + Pane { + sourceComponent: Media { + visibilities: root.visibilities + } } - Performance { - Layout.alignment: Qt.AlignTop + Pane { + sourceComponent: Performance {} } } @@ -124,4 +126,14 @@ Item { easing.bezierCurve: Appearance.anim.curves.emphasized } } + + component Pane: Loader { + Layout.alignment: Qt.AlignTop + + Component.onCompleted: active = Qt.binding(() => { + const vx = Math.floor(view.visibleArea.xPosition * view.contentWidth); + const vex = Math.floor(vx + view.visibleArea.widthRatio * view.contentWidth); + return (vx >= x && vx <= x + implicitWidth) || (vex >= x && vex <= x + implicitWidth); + }) + } } -- cgit v1.2.3-freya