MediaMini: add setting to hide when idle

i18n: add hide when idle translation
This commit is contained in:
Ly-sec
2025-11-04 08:50:22 +01:00
parent a48e789e2e
commit fb330490f8
11 changed files with 29 additions and 8 deletions
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "Ausblenden, wenn leer",
"idle": "Ausblenden bei Inaktivität",
"transparent": "Transparent, wenn leer",
"visible": "Immer sichtbar"
},
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "Hide When Empty",
"idle": "Hide When Idle",
"transparent": "Transparent When Empty",
"visible": "Always Visible"
},
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "Ocultar cuando esté vacío",
"idle": "Ocultar cuando está inactivo",
"transparent": "Transparente cuando está vacío",
"visible": "Siempre visible"
},
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "Masquer si vide",
"idle": "Masquer à l'arrêt",
"transparent": "Transparent quand vide",
"visible": "Toujours visible"
},
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "Ocultar Quando Vazio",
"idle": "Ocultar quando inativo",
"transparent": "Transparente quando vazio",
"visible": "Sempre Visível"
},
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "Boşken Gizle",
"idle": "Boştayken gizle",
"transparent": "Boşken Şeffaf",
"visible": "Her zaman Görünür"
},
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "Приховати, коли порожньо",
"idle": "Приховувати під час простою",
"transparent": "Прозорий, коли порожньо",
"visible": "Завжди видимий"
},
+1
View File
@@ -428,6 +428,7 @@
},
"hide-modes": {
"hidden": "当为空时隐藏",
"idle": "空闲时隐藏",
"transparent": "空时透明",
"visible": "始终可见"
},
+14 -8
View File
@@ -32,7 +32,9 @@ Item {
readonly property bool isVerticalBar: (Settings.data.bar.position === "left" || Settings.data.bar.position === "right")
readonly property string hideMode: (widgetSettings.hideMode !== undefined) ? widgetSettings.hideMode : "hidden" // "visible", "hidden", "transparent"
readonly property string hideMode: (widgetSettings.hideMode !== undefined) ? widgetSettings.hideMode : "hidden" // "visible", "hidden", "transparent", "idle"
// Backward compatibility: honor legacy hideWhenIdle setting if present
readonly property bool hideWhenIdle: (widgetSettings.hideWhenIdle !== undefined) ? widgetSettings.hideWhenIdle : (widgetMetadata.hideWhenIdle !== undefined ? widgetMetadata.hideWhenIdle : false)
readonly property bool showAlbumArt: (widgetSettings.showAlbumArt !== undefined) ? widgetSettings.showAlbumArt : widgetMetadata.showAlbumArt
readonly property bool showVisualizer: (widgetSettings.showVisualizer !== undefined) ? widgetSettings.showVisualizer : widgetMetadata.showVisualizer
readonly property string visualizerType: (widgetSettings.visualizerType !== undefined && widgetSettings.visualizerType !== "") ? widgetSettings.visualizerType : widgetMetadata.visualizerType
@@ -60,12 +62,16 @@ Item {
return title
}
implicitHeight: visible ? (isVerticalBar ? (((!hasActivePlayer) && (hideMode === "hidden" || hideMode === "transparent")) ? 0 : calculatedVerticalDimension()) : Style.capsuleHeight) : 0
implicitWidth: visible ? (isVerticalBar ? (((!hasActivePlayer) && (hideMode === "hidden" || hideMode === "transparent")) ? 0 : calculatedVerticalDimension()) : (((!hasActivePlayer) && (hideMode === "hidden" || hideMode === "transparent")) ? 0 : dynamicWidth)) : 0
// Hide conditions
readonly property bool shouldHideIdle: ((hideMode === "idle") || hideWhenIdle) && !MediaService.isPlaying
readonly property bool isEmptyForHideMode: (!hasActivePlayer) && (hideMode === "hidden" || hideMode === "transparent")
// "visible": Always Visible, "hidden": Hide When Empty, "transparent": Transparent When Empty
visible: hideMode !== "hidden" || opacity > 0
opacity: ((hideMode !== "hidden" || hasActivePlayer) && (hideMode !== "transparent" || hasActivePlayer)) ? 1.0 : 0.0
implicitHeight: visible ? (isVerticalBar ? ((shouldHideIdle || isEmptyForHideMode) ? 0 : calculatedVerticalDimension()) : Style.capsuleHeight) : 0
implicitWidth: visible ? (isVerticalBar ? ((shouldHideIdle || isEmptyForHideMode) ? 0 : calculatedVerticalDimension()) : ((shouldHideIdle || isEmptyForHideMode) ? 0 : dynamicWidth)) : 0
// "visible": Always Visible, "hidden": Hide When Empty, "transparent": Transparent When Empty, "idle": Hide When Idle (not playing)
visible: shouldHideIdle ? false : (hideMode !== "hidden" || opacity > 0)
opacity: shouldHideIdle ? 0.0 : (((hideMode !== "hidden" || hasActivePlayer) && (hideMode !== "transparent" || hasActivePlayer)) ? 1.0 : 0.0)
Behavior on opacity {
NumberAnimation {
duration: Style.animationNormal
@@ -155,8 +161,8 @@ Item {
visible: root.visible
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
width: isVerticalBar ? (((!hasActivePlayer) && (hideMode === "hidden" || hideMode === "transparent")) ? 0 : calculatedVerticalDimension()) : (((!hasActivePlayer) && (hideMode === "hidden" || hideMode === "transparent")) ? 0 : dynamicWidth)
height: isVerticalBar ? (((!hasActivePlayer) && (hideMode === "hidden" || hideMode === "transparent")) ? 0 : calculatedVerticalDimension()) : Style.capsuleHeight
width: isVerticalBar ? ((shouldHideIdle || isEmptyForHideMode) ? 0 : calculatedVerticalDimension()) : ((shouldHideIdle || isEmptyForHideMode) ? 0 : dynamicWidth)
height: isVerticalBar ? ((shouldHideIdle || isEmptyForHideMode) ? 0 : calculatedVerticalDimension()) : Style.capsuleHeight
radius: isVerticalBar ? width / 2 : Style.radiusM
color: Settings.data.bar.showCapsule ? Color.mSurfaceVariant : Color.transparent
@@ -15,6 +15,8 @@ ColumnLayout {
// Local state
property string valueHideMode: "hidden" // Default to 'Hide When Empty'
// Deprecated: hideWhenIdle now folded into hideMode = "idle"
property bool valueHideWhenIdle: widgetData.hideWhenIdle !== undefined ? widgetData.hideWhenIdle : (widgetMetadata.hideWhenIdle !== undefined ? widgetMetadata.hideWhenIdle : false)
property bool valueShowAlbumArt: widgetData.showAlbumArt !== undefined ? widgetData.showAlbumArt : widgetMetadata.showAlbumArt
property bool valueShowVisualizer: widgetData.showVisualizer !== undefined ? widgetData.showVisualizer : widgetMetadata.showVisualizer
property string valueVisualizerType: widgetData.visualizerType || widgetMetadata.visualizerType
@@ -31,6 +33,7 @@ ColumnLayout {
function saveSettings() {
var settings = Object.assign({}, widgetData || {})
settings.hideMode = valueHideMode
// No longer store hideWhenIdle separately; kept for backward compatibility only
settings.showAlbumArt = valueShowAlbumArt
settings.showVisualizer = valueShowVisualizer
settings.visualizerType = valueVisualizerType
@@ -53,6 +56,9 @@ ColumnLayout {
}, {
"key": "transparent",
"name": I18n.tr("options.hide-modes.transparent")
}, {
"key": "idle",
"name": I18n.tr("options.hide-modes.idle")
}]
currentKey: root.valueHideMode
onSelected: key => root.valueHideMode = key
+1
View File
@@ -114,6 +114,7 @@ Singleton {
"scrollingMode": "hover",
"maxWidth": 145,
"useFixedWidth": false,
"hideWhenIdle": false,
"showAlbumArt": false,
"showVisualizer": false,
"visualizerType": "linear"