mirror of
https://github.com/noctalia-dev/noctalia-shell.git
synced 2026-05-11 17:08:27 +08:00
UserInterfaceTab: remove dimDesktop toggle, only use dimming slider
Settings: add migration for dimDesktop -> dimmerOpacity Autoformat
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"settingsVersion": 22,
|
||||
"settingsVersion": 23,
|
||||
"setupCompleted": false,
|
||||
"bar": {
|
||||
"position": "top",
|
||||
@@ -59,7 +59,6 @@
|
||||
},
|
||||
"general": {
|
||||
"avatarImage": "",
|
||||
"dimDesktop": true,
|
||||
"dimmerOpacity": 0.8,
|
||||
"showScreenCorners": false,
|
||||
"forceBlackScreenCorners": false,
|
||||
|
||||
+24
-2
@@ -14,7 +14,7 @@ Singleton {
|
||||
readonly property alias data: adapter
|
||||
property bool isLoaded: false
|
||||
property bool directoriesCreated: false
|
||||
property int settingsVersion: 22
|
||||
property int settingsVersion: 23
|
||||
property bool isDebug: Quickshell.env("NOCTALIA_DEBUG") === "1"
|
||||
|
||||
// Define our app directories
|
||||
@@ -189,7 +189,6 @@ Singleton {
|
||||
// general
|
||||
property JsonObject general: JsonObject {
|
||||
property string avatarImage: ""
|
||||
property bool dimDesktop: true
|
||||
property real dimmerOpacity: 0.8
|
||||
property bool showScreenCorners: false
|
||||
property bool forceBlackScreenCorners: false
|
||||
@@ -715,6 +714,29 @@ Singleton {
|
||||
Logger.w("Settings", "Failed to read raw JSON for migration:", error)
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------
|
||||
// 7th. Migrate dim desktop settings (version 22 → 23)
|
||||
// If dimDesktop is enabled, set dimmerOpacity to 0.8 if it's not already set or is 0
|
||||
// Then remove dimDesktop property as it's no longer needed
|
||||
if (adapter.settingsVersion < 23) {
|
||||
// Read raw JSON file to access dimDesktop property
|
||||
try {
|
||||
var rawJson = settingsFileView.text()
|
||||
|
||||
if (rawJson) {
|
||||
var parsed = JSON.parse(rawJson)
|
||||
if (parsed.general && parsed.general.dimDesktop === true) {
|
||||
if (adapter.general.dimmerOpacity === undefined || adapter.general.dimmerOpacity === 0) {
|
||||
adapter.general.dimmerOpacity = 0.8
|
||||
Logger.i("Settings", "Migrated dimDesktop: set dimmerOpacity to 0.8")
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
Logger.w("Settings", "Failed to read raw JSON for dimDesktop migration:", error)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------
|
||||
|
||||
@@ -79,13 +79,12 @@ PanelWindow {
|
||||
}
|
||||
|
||||
// Desktop dimming when panels are open
|
||||
property bool dimDesktop: Settings.data.general.dimDesktop
|
||||
property real dimmerOpacity: Settings.data.general.dimmerOpacity ?? 0.8
|
||||
property bool isPanelOpen: (PanelService.openedPanel !== null) && (PanelService.openedPanel.screen === screen)
|
||||
property bool isPanelClosing: (PanelService.openedPanel !== null) && PanelService.openedPanel.isClosing
|
||||
|
||||
color: {
|
||||
if (dimDesktop && isPanelOpen) {
|
||||
if (dimmerOpacity > 0 && isPanelOpen) {
|
||||
return Qt.alpha(Color.mShadow, dimmerOpacity)
|
||||
}
|
||||
return Color.transparent
|
||||
|
||||
@@ -25,16 +25,8 @@ ColumnLayout {
|
||||
onToggled: checked => Settings.data.ui.tooltipsEnabled = checked
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: I18n.tr("settings.user-interface.dim-desktop.label")
|
||||
description: I18n.tr("settings.user-interface.dim-desktop.description")
|
||||
checked: Settings.data.general.dimDesktop
|
||||
onToggled: checked => Settings.data.general.dimDesktop = checked
|
||||
}
|
||||
|
||||
// when dimDesktop is enabled: dimmer opacity
|
||||
// Dim desktop opacity
|
||||
ColumnLayout {
|
||||
visible: Settings.data.general.dimDesktop
|
||||
spacing: Style.marginXXS
|
||||
Layout.fillWidth: true
|
||||
|
||||
|
||||
@@ -451,7 +451,7 @@ ColumnLayout {
|
||||
Layout.bottomMargin: Style.marginS
|
||||
}
|
||||
|
||||
// Dim Desktop toggle
|
||||
// Dim Desktop opacity
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: Style.marginM
|
||||
@@ -471,23 +471,27 @@ ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: 2
|
||||
NText {
|
||||
text: I18n.tr("settings.user-interface.dim-desktop.label")
|
||||
text: I18n.tr("settings.user-interface.dimmer-opacity.label")
|
||||
pointSize: Style.fontSizeL
|
||||
font.weight: Style.fontWeightBold
|
||||
color: Color.mOnSurface
|
||||
}
|
||||
NText {
|
||||
text: I18n.tr("settings.user-interface.dim-desktop.description")
|
||||
text: I18n.tr("settings.user-interface.dimmer-opacity.description")
|
||||
pointSize: Style.fontSizeS
|
||||
color: Color.mOnSurfaceVariant
|
||||
wrapMode: Text.WordWrap
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
NToggle {
|
||||
checked: Settings.data.general.dimDesktop
|
||||
onToggled: function (checked) {
|
||||
Settings.data.general.dimDesktop = checked
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: Style.marginXS
|
||||
from: 0
|
||||
to: 1
|
||||
stepSize: 0.01
|
||||
value: Settings.data.general.dimmerOpacity
|
||||
onMoved: value => Settings.data.general.dimmerOpacity = value
|
||||
text: Math.floor(Settings.data.general.dimmerOpacity * 100) + "%"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user