diff --git a/Assets/Translations/de.json b/Assets/Translations/de.json index 1770b7c47..c6a76f850 100644 --- a/Assets/Translations/de.json +++ b/Assets/Translations/de.json @@ -425,6 +425,10 @@ "description": "Zeigt Arbeitsbereiche vom aktuell fokussierten Bildschirm an, statt vom Bildschirm, auf dem sich die Leiste befindet.", "label": "Fokussiertem Bildschirm folgen" }, + "grouped-border-opacity": { + "description": "Lege die Deckkraft für Workspace-Container-Rahmen fest.", + "label": "Rahmen-Deckkraft" + }, "hide-unoccupied": { "description": "Arbeitsbereiche ohne Fenster nicht anzeigen.", "label": "Unbesetzte ausblenden" diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 4464c6562..64cec9bd0 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -425,6 +425,10 @@ "description": "Display workspaces from the currently focused screen, rather than the screen where the bar is located.", "label": "Follow focused screen" }, + "grouped-border-opacity": { + "description": "Set the opacity level for workspace container borders", + "label": "Border opacity" + }, "hide-unoccupied": { "description": "Don't display workspaces without windows.", "label": "Hide unoccupied" diff --git a/Assets/Translations/es.json b/Assets/Translations/es.json index 17735056f..cdba32d73 100644 --- a/Assets/Translations/es.json +++ b/Assets/Translations/es.json @@ -425,6 +425,10 @@ "description": "Mostrar espacios de trabajo de la pantalla actualmente enfocada, en lugar de la pantalla donde se encuentra la barra.", "label": "Seguir Pantalla Enfocada" }, + "grouped-border-opacity": { + "description": "Establecer el nivel de opacidad para los bordes del contenedor del espacio de trabajo.", + "label": "Opacidad del borde" + }, "hide-unoccupied": { "description": "No mostrar espacios de trabajo sin ventanas.", "label": "Ocultar desocupados" diff --git a/Assets/Translations/fr.json b/Assets/Translations/fr.json index 1231ff949..4d0bb9571 100644 --- a/Assets/Translations/fr.json +++ b/Assets/Translations/fr.json @@ -425,6 +425,10 @@ "description": "Afficher les espaces de travail de l'écran actuellement ciblé, plutôt que de l'écran où se trouve la barre.", "label": "Suivre l'Écran Ciblé" }, + "grouped-border-opacity": { + "description": "Définir le niveau d'opacité des bordures des conteneurs d'espace de travail.", + "label": "Opacité de la bordure" + }, "hide-unoccupied": { "description": "Ne pas afficher les espaces de travail sans fenêtres.", "label": "Masquer les inoccupés" diff --git a/Assets/Translations/hu.json b/Assets/Translations/hu.json index 3ff2966f8..ef99f6504 100644 --- a/Assets/Translations/hu.json +++ b/Assets/Translations/hu.json @@ -425,6 +425,10 @@ "description": "Munkaterületek megjelenítése az aktuálisan fókuszált képernyőről, nem arról a képernyőről, ahol a sáv található.", "label": "Fókuszált képernyő követése" }, + "grouped-border-opacity": { + "description": "A munkaterület-konténerek szegélyeinek átlátszósági szintjének beállítása", + "label": "Szegély átlátszósága" + }, "hide-unoccupied": { "description": "Ne jelenítse meg az ablak nélküli munkaterületeket.", "label": "Foglalatlan elrejtése" diff --git a/Assets/Translations/ja.json b/Assets/Translations/ja.json index aa39b25a8..3be5bd883 100644 --- a/Assets/Translations/ja.json +++ b/Assets/Translations/ja.json @@ -425,6 +425,10 @@ "description": "バーが配置されている画面ではなく、現在フォーカスされている画面のワークスペースを表示します。", "label": "フォーカス中の画面に追従" }, + "grouped-border-opacity": { + "description": "ワークスペースコンテナのボーダーの不透明度を設定します。", + "label": "境界線の不透明度" + }, "hide-unoccupied": { "description": "ウィンドウがないワークスペースを表示しません。", "label": "空のワークスペースを隠す" diff --git a/Assets/Translations/nl.json b/Assets/Translations/nl.json index 1345545bb..5e2c4fc34 100644 --- a/Assets/Translations/nl.json +++ b/Assets/Translations/nl.json @@ -425,6 +425,10 @@ "description": "Werkruimten weergeven van het momenteel gefocuste scherm, in plaats van het scherm waar de balk zich bevindt.", "label": "Gefocust Scherm Volgen" }, + "grouped-border-opacity": { + "description": "Stel het dekkingsniveau in voor de randen van de werkruimtecontainer.", + "label": "Randdekking" + }, "hide-unoccupied": { "description": "Werkruimten zonder vensters niet weergeven.", "label": "Ongebruikte verbergen" diff --git a/Assets/Translations/pl.json b/Assets/Translations/pl.json index 858d5bd17..dcaccb8d1 100644 --- a/Assets/Translations/pl.json +++ b/Assets/Translations/pl.json @@ -425,6 +425,10 @@ "description": "Wyświetl obszary robocze z aktualnie aktywnego ekranu, zamiast ekranu, na którym znajduje się pasek.", "label": "Podążaj za skupionym ekranem" }, + "grouped-border-opacity": { + "description": "Ustaw poziom krycia dla obramowań kontenerów obszaru roboczego.", + "label": "Krycie obramowania" + }, "hide-unoccupied": { "description": "Nie wyświetlaj obszarów roboczych bez okien.", "label": "Ukryj nieobsadzone" diff --git a/Assets/Translations/pt.json b/Assets/Translations/pt.json index b04376562..e883e4c43 100644 --- a/Assets/Translations/pt.json +++ b/Assets/Translations/pt.json @@ -425,6 +425,10 @@ "description": "Exibir áreas de trabalho da tela atualmente em foco, em vez da tela onde a barra está localizada.", "label": "Seguir Tela em Foco" }, + "grouped-border-opacity": { + "description": "Definir o nível de opacidade para as bordas do contêiner do espaço de trabalho.", + "label": "Opacidade da borda" + }, "hide-unoccupied": { "description": "Não exibir áreas de trabalho sem janelas.", "label": "Ocultar desocupados" diff --git a/Assets/Translations/ru.json b/Assets/Translations/ru.json index 99f88b57e..4c800c14d 100644 --- a/Assets/Translations/ru.json +++ b/Assets/Translations/ru.json @@ -425,6 +425,10 @@ "description": "Отображать рабочие пространства с текущего активного экрана, а не с экрана, на котором расположена панель.", "label": "Следовать за Активным Экраном" }, + "grouped-border-opacity": { + "description": "Установить уровень прозрачности для границ контейнера рабочей области.", + "label": "Прозрачность границы" + }, "hide-unoccupied": { "description": "Не отображать рабочие пространства без окон.", "label": "Скрыть незанятые" diff --git a/Assets/Translations/tr.json b/Assets/Translations/tr.json index e24441973..a2024db87 100644 --- a/Assets/Translations/tr.json +++ b/Assets/Translations/tr.json @@ -425,6 +425,10 @@ "description": "Çubuğun bulunduğu ekran yerine, şu anda odaklanmış ekrandaki çalışma alanlarını göster.", "label": "Odaklanmış Ekranı Takip Et" }, + "grouped-border-opacity": { + "description": "Çalışma alanı kapsayıcı kenarlıklarının opaklık düzeyini ayarlayın", + "label": "Kenarlık opaklığı" + }, "hide-unoccupied": { "description": "Penceresi olmayan çalışma alanlarını gösterme.", "label": "Dolu olmayanları gizle" diff --git a/Assets/Translations/uk-UA.json b/Assets/Translations/uk-UA.json index baee2caf1..3006dd723 100644 --- a/Assets/Translations/uk-UA.json +++ b/Assets/Translations/uk-UA.json @@ -425,6 +425,10 @@ "description": "Відображати робочі простори з поточного активного екрана, а не з екрана, на якому розташована панель.", "label": "Слідувати за активним eкраном" }, + "grouped-border-opacity": { + "description": "Встановити рівень непрозорості для меж контейнерів робочої області.", + "label": "Прозорість межі" + }, "hide-unoccupied": { "description": "Не відображати робочі простори без вікон.", "label": "Приховати незайняті" diff --git a/Assets/Translations/zh-CN.json b/Assets/Translations/zh-CN.json index 82e4a33fb..9a3069c38 100644 --- a/Assets/Translations/zh-CN.json +++ b/Assets/Translations/zh-CN.json @@ -425,6 +425,10 @@ "description": "显示当前焦点屏幕的工作区,而不是任务栏所在屏幕的工作区。", "label": "跟随焦点屏幕" }, + "grouped-border-opacity": { + "description": "设置工作区容器边框的不透明度级别", + "label": "边框不透明度" + }, "hide-unoccupied": { "description": "不显示没有窗口的工作区。", "label": "隐藏未占用" diff --git a/Modules/Bar/Widgets/Workspace.qml b/Modules/Bar/Widgets/Workspace.qml index 3e5180dde..21b9b483b 100644 --- a/Modules/Bar/Widgets/Workspace.qml +++ b/Modules/Bar/Widgets/Workspace.qml @@ -55,6 +55,7 @@ Item { readonly property bool showLabelsOnlyWhenOccupied: (widgetSettings.showLabelsOnlyWhenOccupied !== undefined) ? widgetSettings.showLabelsOnlyWhenOccupied : widgetMetadata.showLabelsOnlyWhenOccupied readonly property bool colorizeIcons: (widgetSettings.colorizeIcons !== undefined) ? widgetSettings.colorizeIcons : widgetMetadata.colorizeIcons readonly property real unfocusedIconsOpacity: (widgetSettings.unfocusedIconsOpacity !== undefined) ? widgetSettings.unfocusedIconsOpacity : widgetMetadata.unfocusedIconsOpacity + readonly property real groupedBorderOpacity: (widgetSettings.groupedBorderOpacity !== undefined) ? widgetSettings.groupedBorderOpacity : widgetMetadata.groupedBorderOpacity readonly property bool enableScrollWheel: (widgetSettings.enableScrollWheel !== undefined) ? widgetSettings.enableScrollWheel : widgetMetadata.enableScrollWheel readonly property int itemSize: Math.round(Style.capsuleHeight * 0.8) @@ -782,7 +783,7 @@ Item { height: (hasWindows ? groupedIconsFlow.implicitHeight : root.itemSize) + (root.isVertical ? Style.marginL : Style.marginXS) color: Style.capsuleColor radius: Style.radiusS - border.color: Settings.data.bar.showOutline ? Style.capsuleBorderColor : (workspaceModel.isFocused ? Color.mPrimary : Color.mOutline) + border.color: Settings.data.bar.showOutline ? Style.capsuleBorderColor : Qt.alpha((workspaceModel.isFocused ? Color.mPrimary : Color.mOutline), root.groupedBorderOpacity) border.width: Style.borderS MouseArea { diff --git a/Modules/Panels/Settings/Bar/WidgetSettings/WorkspaceSettings.qml b/Modules/Panels/Settings/Bar/WidgetSettings/WorkspaceSettings.qml index 6453eb522..934939453 100644 --- a/Modules/Panels/Settings/Bar/WidgetSettings/WorkspaceSettings.qml +++ b/Modules/Panels/Settings/Bar/WidgetSettings/WorkspaceSettings.qml @@ -22,6 +22,7 @@ ColumnLayout { property bool valueShowLabelsOnlyWhenOccupied: widgetData.showLabelsOnlyWhenOccupied !== undefined ? widgetData.showLabelsOnlyWhenOccupied : widgetMetadata.showLabelsOnlyWhenOccupied property bool valueColorizeIcons: widgetData.colorizeIcons !== undefined ? widgetData.colorizeIcons : widgetMetadata.colorizeIcons property real valueUnfocusedIconsOpacity: widgetData.unfocusedIconsOpacity !== undefined ? widgetData.unfocusedIconsOpacity : widgetMetadata.unfocusedIconsOpacity + property real valueGroupedBorderOpacity: widgetData.groupedBorderOpacity !== undefined ? widgetData.groupedBorderOpacity : widgetMetadata.groupedBorderOpacity property bool valueEnableScrollWheel: widgetData.enableScrollWheel !== undefined ? widgetData.enableScrollWheel : widgetMetadata.enableScrollWheel function saveSettings() { @@ -34,6 +35,7 @@ ColumnLayout { settings.showLabelsOnlyWhenOccupied = valueShowLabelsOnlyWhenOccupied; settings.colorizeIcons = valueColorizeIcons; settings.unfocusedIconsOpacity = valueUnfocusedIconsOpacity; + settings.groupedBorderOpacity = valueGroupedBorderOpacity; settings.enableScrollWheel = valueEnableScrollWheel; return settings; } @@ -103,6 +105,10 @@ ColumnLayout { onToggled: checked => valueEnableScrollWheel = checked } + NDivider { + Layout.fillWidth: true + } + NToggle { label: I18n.tr("bar.widget-settings.workspace.show-applications.label") description: I18n.tr("bar.widget-settings.workspace.show-applications.description") @@ -117,22 +123,28 @@ ColumnLayout { onToggled: checked => valueColorizeIcons = checked visible: valueShowApplications } - RowLayout { - spacing: Style.marginL - Layout.fillWidth: true - NLabel { - label: I18n.tr("bar.widget-settings.workspace.unfocused-icons-opacity.label") - description: I18n.tr("bar.widget-settings.workspace.unfocused-icons-opacity.description") - } - NValueSlider { - Layout.fillWidth: true - from: 0 - to: 1 - stepSize: 0.01 - value: valueUnfocusedIconsOpacity - visible: valueShowApplications - onMoved: value => valueUnfocusedIconsOpacity = value - text: Math.floor(valueUnfocusedIconsOpacity * 100) + "%" - } + + NValueSlider { + label: I18n.tr("bar.widget-settings.workspace.unfocused-icons-opacity.label") + description: I18n.tr("bar.widget-settings.workspace.unfocused-icons-opacity.description") + from: 0 + to: 1 + stepSize: 0.01 + value: valueUnfocusedIconsOpacity + onMoved: value => valueUnfocusedIconsOpacity = value + text: Math.floor(valueUnfocusedIconsOpacity * 100) + "%" + visible: valueShowApplications + } + + NValueSlider { + label: I18n.tr("bar.widget-settings.workspace.grouped-border-opacity.label") + description: I18n.tr("bar.widget-settings.workspace.grouped-border-opacity.description") + from: 0 + to: 1 + stepSize: 0.01 + value: valueGroupedBorderOpacity + onMoved: value => valueGroupedBorderOpacity = value + text: Math.floor(valueGroupedBorderOpacity * 100) + "%" + visible: valueShowApplications } } diff --git a/Services/UI/BarWidgetRegistry.qml b/Services/UI/BarWidgetRegistry.qml index 2f5f7eb61..69831af82 100644 --- a/Services/UI/BarWidgetRegistry.qml +++ b/Services/UI/BarWidgetRegistry.qml @@ -223,6 +223,7 @@ Singleton { "showLabelsOnlyWhenOccupied": true, "colorizeIcons": false, "unfocusedIconsOpacity": 1.0, + "groupedBorderOpacity": 1.0, "enableScrollWheel": true }, "Volume": {