From c517b7102437d203d5782f7f714898f5f6d6a525 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Mon, 13 Apr 2026 23:03:36 +1000 Subject: [PATCH] fix: utilities recording modal bg --- modules/drawers/ContentWindow.qml | 1 + modules/utilities/Content.qml | 2 + modules/utilities/RecordingDeleteModal.qml | 52 +++++++++++++--------- modules/utilities/Wrapper.qml | 2 + 4 files changed, 35 insertions(+), 22 deletions(-) diff --git a/modules/drawers/ContentWindow.qml b/modules/drawers/ContentWindow.qml index b69408dc..b89907f7 100644 --- a/modules/drawers/ContentWindow.qml +++ b/modules/drawers/ContentWindow.qml @@ -250,6 +250,7 @@ StyledWindow { borderThickness: root.borderThickness utilities.horizontalStretch: (sidebarBg.rawDeformMatrix.m11 - 1) / 2 + 1 + utilities.deformMatrix: utilsBg.rawDeformMatrix dashboard.transform: Matrix4x4 { matrix: dashBg.deformMatrix diff --git a/modules/utilities/Content.qml b/modules/utilities/Content.qml index 5ec2d33a..e03c546f 100644 --- a/modules/utilities/Content.qml +++ b/modules/utilities/Content.qml @@ -11,6 +11,7 @@ Item { required property var props required property DrawerVisibilities visibilities required property BarPopouts.Wrapper popouts + required property matrix4x4 deformMatrix implicitWidth: layout.implicitWidth implicitHeight: layout.implicitHeight @@ -37,5 +38,6 @@ Item { RecordingDeleteModal { props: root.props + deformMatrix: root.deformMatrix } } diff --git a/modules/utilities/RecordingDeleteModal.qml b/modules/utilities/RecordingDeleteModal.qml index 2b7e1496..8eda4607 100644 --- a/modules/utilities/RecordingDeleteModal.qml +++ b/modules/utilities/RecordingDeleteModal.qml @@ -14,6 +14,7 @@ Loader { id: root required property var props + required property matrix4x4 deformMatrix asynchronous: true anchors.fill: parent @@ -40,7 +41,9 @@ Loader { StyledRect { anchors.fill: parent - topLeftRadius: Config.border.rounding + anchors.rightMargin: -parent.width * (1 - root.deformMatrix.m11) / 2 // Additional bit to account for deform + anchors.bottomMargin: -parent.height * 0.1 // Additional bit to account for overshoot + topLeftRadius: Tokens.rounding.large color: Colours.palette.m3scrim } @@ -51,13 +54,14 @@ Loader { preferredRendererType: Shape.CurveRenderer asynchronous: true + // Bottom left ShapePath { - startX: -Config.border.rounding * 2 - startY: shape.height - Config.border.thickness + startX: -root.Config.border.smoothing * 2 + startY: shape.height - root.Config.border.thickness strokeWidth: 0 fillGradient: LinearGradient { orientation: LinearGradient.Horizontal - x1: -Config.border.rounding * 2 + x1: -root.Config.border.smoothing * 2 GradientStop { position: 0 @@ -70,31 +74,34 @@ Loader { } PathLine { - relativeX: Config.border.rounding + relativeX: root.Config.border.smoothing relativeY: 0 } - PathArc { - relativeY: -Config.border.rounding - radiusX: Config.border.rounding - radiusY: Config.border.rounding - direction: PathArc.Counterclockwise + PathCubic { + relativeX: root.Config.border.smoothing + relativeY: -root.Config.border.smoothing + relativeControl1X: root.Config.border.smoothing * 0.93 + relativeControl1Y: -root.Config.border.smoothing * 0.07 + relativeControl2X: root.Config.border.smoothing * 0.93 + relativeControl2Y: -root.Config.border.smoothing * 0.07 } PathLine { relativeX: 0 - relativeY: Config.border.rounding + Config.border.thickness + relativeY: root.Config.border.smoothing + root.Config.border.thickness } PathLine { - relativeX: -Config.border.rounding * 2 + relativeX: -root.Config.border.smoothing * 2 relativeY: 0 } } + // Top right curve ShapePath { - startX: shape.width - Config.border.rounding - Config.border.thickness + startX: shape.width - root.Config.border.smoothing - root.Config.border.thickness + (1 - root.deformMatrix.m11) * shape.width / 2 strokeWidth: 0 fillGradient: LinearGradient { orientation: LinearGradient.Vertical - y1: -Config.border.rounding * 2 + y1: -root.Config.border.smoothing * 2 GradientStop { position: 0 @@ -106,19 +113,20 @@ Loader { } } - PathArc { - relativeX: Config.border.rounding - relativeY: -Config.border.rounding - radiusX: Config.border.rounding - radiusY: Config.border.rounding - direction: PathArc.Counterclockwise + PathCubic { + relativeX: root.Config.border.smoothing + relativeY: -root.Config.border.smoothing + relativeControl1X: root.Config.border.smoothing * 0.93 + relativeControl1Y: -root.Config.border.smoothing * 0.07 + relativeControl2X: root.Config.border.smoothing * 0.93 + relativeControl2Y: -root.Config.border.smoothing * 0.07 } PathLine { relativeX: 0 - relativeY: -Config.border.rounding + relativeY: -root.Config.border.smoothing } PathLine { - relativeX: Config.border.thickness + relativeX: root.Config.border.thickness relativeY: 0 } PathLine { diff --git a/modules/utilities/Wrapper.qml b/modules/utilities/Wrapper.qml index a87f8a59..137e817b 100644 --- a/modules/utilities/Wrapper.qml +++ b/modules/utilities/Wrapper.qml @@ -14,6 +14,7 @@ Item { required property Sidebar.Wrapper sidebar required property BarPopouts.Wrapper popouts property real horizontalStretch + property matrix4x4 deformMatrix readonly property PersistentProperties props: PersistentProperties { property bool recordingListExpanded: false @@ -84,6 +85,7 @@ Item { props: root.props visibilities: root.visibilities popouts: root.popouts + deformMatrix: root.deformMatrix } } }