From 2e4770f4be12fb273aeec6a2c01a7fb408bdd964 Mon Sep 17 00:00:00 2001 From: purian23 Date: Sun, 21 Sep 2025 00:49:23 -0400 Subject: [PATCH 1/2] feat: Add Transparency override option to Notepad --- Common/SettingsData.qml | 14 ++++++++ Common/Theme.qml | 2 ++ Modules/Notepad/NotepadSettings.qml | 49 ++++++++++++++++++++++++++- Modules/Notepad/NotepadTextEditor.qml | 5 +-- Widgets/DankSlideout.qml | 7 ++-- shell.qml | 1 + 6 files changed, 73 insertions(+), 5 deletions(-) diff --git a/Common/SettingsData.qml b/Common/SettingsData.qml index 729d7458..dc5c48cf 100644 --- a/Common/SettingsData.qml +++ b/Common/SettingsData.qml @@ -88,10 +88,20 @@ Singleton { property string notepadFontFamily: "" property real notepadFontSize: 14 property bool notepadShowLineNumbers: false + property real notepadTransparencyOverride: -1 + property real notepadLastCustomTransparency: 0.7 + onNotepadUseMonospaceChanged: saveSettings() onNotepadFontFamilyChanged: saveSettings() onNotepadFontSizeChanged: saveSettings() onNotepadShowLineNumbersChanged: saveSettings() + onNotepadTransparencyOverrideChanged: { + if (notepadTransparencyOverride > 0) { + notepadLastCustomTransparency = notepadTransparencyOverride + } + saveSettings() + } + onNotepadLastCustomTransparencyChanged: saveSettings() property bool gtkThemingEnabled: false property bool qtThemingEnabled: false property bool showDock: false @@ -267,6 +277,8 @@ Singleton { notepadFontFamily = settings.notepadFontFamily !== undefined ? settings.notepadFontFamily : "" notepadFontSize = settings.notepadFontSize !== undefined ? settings.notepadFontSize : 14 notepadShowLineNumbers = settings.notepadShowLineNumbers !== undefined ? settings.notepadShowLineNumbers : false + notepadTransparencyOverride = settings.notepadTransparencyOverride !== undefined ? settings.notepadTransparencyOverride : -1 + notepadLastCustomTransparency = settings.notepadLastCustomTransparency !== undefined ? settings.notepadLastCustomTransparency : 0.7 gtkThemingEnabled = settings.gtkThemingEnabled !== undefined ? settings.gtkThemingEnabled : false qtThemingEnabled = settings.qtThemingEnabled !== undefined ? settings.qtThemingEnabled : false showDock = settings.showDock !== undefined ? settings.showDock : false @@ -374,6 +386,8 @@ Singleton { "notepadFontFamily": notepadFontFamily, "notepadFontSize": notepadFontSize, "notepadShowLineNumbers": notepadShowLineNumbers, + "notepadTransparencyOverride": notepadTransparencyOverride, + "notepadLastCustomTransparency": notepadLastCustomTransparency, "gtkThemingEnabled": gtkThemingEnabled, "qtThemingEnabled": qtThemingEnabled, "showDock": showDock, diff --git a/Common/Theme.qml b/Common/Theme.qml index dd6c93a5..45723f0f 100644 --- a/Common/Theme.qml +++ b/Common/Theme.qml @@ -335,6 +335,8 @@ Singleton { return Qt.rgba(surfaceContainer.r, surfaceContainer.g, surfaceContainer.b, panelTransparency) } + property real notepadTransparency: SettingsData.notepadTransparencyOverride >= 0 ? SettingsData.notepadTransparencyOverride : popupTransparency + function widgetBackground() { return Qt.rgba(surfaceContainer.r, surfaceContainer.g, surfaceContainer.b, widgetTransparency) } diff --git a/Modules/Notepad/NotepadSettings.qml b/Modules/Notepad/NotepadSettings.qml index 3fcc893e..08261846 100644 --- a/Modules/Notepad/NotepadSettings.qml +++ b/Modules/Notepad/NotepadSettings.qml @@ -85,7 +85,7 @@ Item { width: 360 height: settingsColumn.implicitHeight + Theme.spacingXL * 2 radius: Theme.cornerRadius - color: Theme.popupBackground() + color: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, Theme.notepadTransparency) border.color: Qt.rgba(Theme.outline.r, Theme.outline.g, Theme.outline.b, 0.08) border.width: 1 z: 100 @@ -265,6 +265,53 @@ Item { } } + Rectangle { + width: parent.width + height: transparencySliderColumn.height + Theme.spacingS + color: "transparent" + + Column { + id: transparencySliderColumn + width: parent.width + spacing: Theme.spacingS + + DankToggle { + anchors.left: parent.left + anchors.leftMargin: -Theme.spacingM + width: parent.width + Theme.spacingM + text: "Custom Transparency" + description: "Override global transparency for Notepad" + checked: SettingsData.notepadTransparencyOverride >= 0 + onToggled: checked => { + if (checked) { + SettingsData.notepadTransparencyOverride = SettingsData.notepadLastCustomTransparency + } else { + SettingsData.notepadTransparencyOverride = -1 + } + } + } + + DankSlider { + anchors.left: parent.left + anchors.leftMargin: -Theme.spacingM + width: parent.width + Theme.spacingM + height: 24 + visible: SettingsData.notepadTransparencyOverride >= 0 + value: Math.round((SettingsData.notepadTransparencyOverride >= 0 ? SettingsData.notepadTransparencyOverride : SettingsData.popupTransparency) * 100) + minimum: 0 + maximum: 100 + unit: "" + showValue: true + wheelEnabled: false + onSliderValueChanged: newValue => { + if (SettingsData.notepadTransparencyOverride >= 0) { + SettingsData.notepadTransparencyOverride = newValue / 100 + } + } + } + } + } + StyledText { width: parent.width text: SettingsData.notepadUseMonospace ? diff --git a/Modules/Notepad/NotepadTextEditor.qml b/Modules/Notepad/NotepadTextEditor.qml index 9f157f26..3b9d4c6d 100644 --- a/Modules/Notepad/NotepadTextEditor.qml +++ b/Modules/Notepad/NotepadTextEditor.qml @@ -88,7 +88,7 @@ Column { StyledRect { width: parent.width height: parent.height - bottomControls.height - Theme.spacingM - color: Theme.surface + color: Qt.rgba(Theme.surface.r, Theme.surface.g, Theme.surface.b, Theme.notepadTransparency) border.color: Theme.outlineMedium border.width: 1 radius: Theme.cornerRadius @@ -329,6 +329,7 @@ Column { font.pixelSize: Theme.fontSizeSmall color: Theme.surfaceTextMedium visible: textArea.text.length > 0 + opacity: 1.0 } StyledText { @@ -359,7 +360,7 @@ Column { return Theme.success } } - opacity: textArea.text.length > 0 ? 1 : 0 + opacity: textArea.text.length > 0 ? 1.0 : 0.0 } } } diff --git a/Widgets/DankSlideout.qml b/Widgets/DankSlideout.qml index 191a3920..00dd656c 100644 --- a/Widgets/DankSlideout.qml +++ b/Widgets/DankSlideout.qml @@ -20,6 +20,7 @@ PanelWindow { property Component content: null property string title: "" property alias container: contentContainer + property real customTransparency: -1 function show() { visible = true @@ -61,10 +62,12 @@ PanelWindow { anchors.bottom: parent.bottom anchors.right: parent.right width: expandable && expandedWidth ? expandedWidthValue : slideoutWidth - color: Theme.surfaceContainer + color: Qt.rgba(Theme.surfaceContainer.r, Theme.surfaceContainer.g, Theme.surfaceContainer.b, + customTransparency >= 0 ? customTransparency : SettingsData.popupTransparency) border.color: Theme.outlineMedium border.width: 1 - opacity: isVisible ? SettingsData.popupTransparency : 0 + visible: isVisible + opacity: isVisible ? (customTransparency >= 0 ? customTransparency : SettingsData.popupTransparency) : 0 Behavior on opacity { NumberAnimation { diff --git a/shell.qml b/shell.qml index a5837381..a8d48818 100644 --- a/shell.qml +++ b/shell.qml @@ -296,6 +296,7 @@ ShellRoot { slideoutWidth: 480 expandable: true expandedWidthValue: 960 + customTransparency: SettingsData.notepadTransparencyOverride content: Component { Notepad { From 7c1c64fefcb191b3e85f27aa6ad17a6992f3d901 Mon Sep 17 00:00:00 2001 From: purian23 Date: Sun, 21 Sep 2025 01:44:47 -0400 Subject: [PATCH 2/2] fix: Notepad text opacity --- Common/SettingsData.qml | 2 +- Widgets/DankSlideout.qml | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/Common/SettingsData.qml b/Common/SettingsData.qml index dc5c48cf..1427cf00 100644 --- a/Common/SettingsData.qml +++ b/Common/SettingsData.qml @@ -278,7 +278,7 @@ Singleton { notepadFontSize = settings.notepadFontSize !== undefined ? settings.notepadFontSize : 14 notepadShowLineNumbers = settings.notepadShowLineNumbers !== undefined ? settings.notepadShowLineNumbers : false notepadTransparencyOverride = settings.notepadTransparencyOverride !== undefined ? settings.notepadTransparencyOverride : -1 - notepadLastCustomTransparency = settings.notepadLastCustomTransparency !== undefined ? settings.notepadLastCustomTransparency : 0.7 + notepadLastCustomTransparency = settings.notepadLastCustomTransparency !== undefined ? settings.notepadLastCustomTransparency : 0.95 gtkThemingEnabled = settings.gtkThemingEnabled !== undefined ? settings.gtkThemingEnabled : false qtThemingEnabled = settings.qtThemingEnabled !== undefined ? settings.qtThemingEnabled : false showDock = settings.showDock !== undefined ? settings.showDock : false diff --git a/Widgets/DankSlideout.qml b/Widgets/DankSlideout.qml index 00dd656c..b67b8407 100644 --- a/Widgets/DankSlideout.qml +++ b/Widgets/DankSlideout.qml @@ -67,14 +67,6 @@ PanelWindow { border.color: Theme.outlineMedium border.width: 1 visible: isVisible - opacity: isVisible ? (customTransparency >= 0 ? customTransparency : SettingsData.popupTransparency) : 0 - - Behavior on opacity { - NumberAnimation { - duration: 700 - easing.type: Easing.OutCubic - } - } transform: Translate { id: slideTransform