Properly hide ScreenRecorderIndicator when inactive (no spacing)

This commit is contained in:
LemmyCook
2025-09-18 22:05:55 -04:00
parent a734235cd0
commit 891c8660e3
+38 -6
View File
@@ -54,6 +54,38 @@ Variants {
right: Settings.data.bar.floating ? Settings.data.bar.marginHorizontal * Style.marginXL * scaling : 0
}
// Filter out potentially invisible widgets so they we don't have extra spacing around an invisble widget.
// TODO: add activewindow
property var visibleLeftWidgets: {
if (!Settings.data.bar.widgets.left) return []
return Settings.data.bar.widgets.left.filter(widget => {
if (widget.id === "ScreenRecorderIndicator") {
return ScreenRecorderService.isRecording
}
return true
})
}
property var visibleCenterWidgets: {
if (!Settings.data.bar.widgets.center) return []
return Settings.data.bar.widgets.center.filter(widget => {
if (widget.id === "ScreenRecorderIndicator") {
return ScreenRecorderService.isRecording
}
return true
})
}
property var visibleRightWidgets: {
if (!Settings.data.bar.widgets.right) return []
return Settings.data.bar.widgets.right.filter(widget => {
if (widget.id === "ScreenRecorderIndicator") {
return ScreenRecorderService.isRecording
}
return true
})
}
Item {
anchors.fill: parent
clip: true
@@ -88,7 +120,7 @@ Variants {
spacing: Style.marginS * root.scaling
Repeater {
model: Settings.data.bar.widgets.left
model: visibleLeftWidgets
delegate: BarWidgetLoader {
widgetId: (modelData.id !== undefined ? modelData.id : "")
widgetProps: {
@@ -111,7 +143,7 @@ Variants {
spacing: Style.marginS * root.scaling
Repeater {
model: Settings.data.bar.widgets.center
model: visibleCenterWidgets
delegate: BarWidgetLoader {
widgetId: (modelData.id !== undefined ? modelData.id : "")
widgetProps: {
@@ -135,7 +167,7 @@ Variants {
spacing: Style.marginS * root.scaling
Repeater {
model: Settings.data.bar.widgets.right
model: visibleRightWidgets
delegate: BarWidgetLoader {
widgetId: (modelData.id !== undefined ? modelData.id : "")
widgetProps: {
@@ -169,7 +201,7 @@ Variants {
spacing: Style.marginS * root.scaling
Repeater {
model: Settings.data.bar.widgets.left
model: visibleLeftWidgets
delegate: BarWidgetLoader {
widgetId: (modelData.id !== undefined ? modelData.id : "")
widgetProps: {
@@ -194,7 +226,7 @@ Variants {
spacing: Style.marginS * root.scaling
Repeater {
model: Settings.data.bar.widgets.center
model: visibleCenterWidgets
delegate: BarWidgetLoader {
widgetId: (modelData.id !== undefined ? modelData.id : "")
widgetProps: {
@@ -220,7 +252,7 @@ Variants {
spacing: Style.marginS * root.scaling
Repeater {
model: Settings.data.bar.widgets.right
model: visibleRightWidgets
delegate: BarWidgetLoader {
widgetId: (modelData.id !== undefined ? modelData.id : "")
widgetProps: {