From caffbe45e0d599fb6ef5e3b133873efbf21c7539 Mon Sep 17 00:00:00 2001 From: quadbyte Date: Wed, 20 Aug 2025 20:14:49 -0400 Subject: [PATCH] Removed NLoader in favor of Loader, as it was not doing anything anymore --- Modules/Background/Background.qml | 72 +++++++++++++++------------- Modules/Background/Overview.qml | 2 +- Modules/Background/ScreenCorners.qml | 6 +-- Modules/Bar/Brightness.qml | 2 +- Modules/Bar/SidePanelToggle.qml | 23 +-------- Modules/Dock/Dock.qml | 6 +-- Modules/IPC/IPCManager.qml | 4 +- Modules/LockScreen/LockScreen.qml | 22 +++++---- Modules/PowerPanel/PowerPanel.qml | 4 +- Widgets/NLoader.qml | 39 --------------- 10 files changed, 65 insertions(+), 115 deletions(-) delete mode 100644 Widgets/NLoader.qml diff --git a/Modules/Background/Background.qml b/Modules/Background/Background.qml index ea8c721..54a7878 100644 --- a/Modules/Background/Background.qml +++ b/Modules/Background/Background.qml @@ -4,49 +4,53 @@ import Quickshell.Wayland import qs.Commons import qs.Services -Variants { - model: Quickshell.screens +Loader { + active: !Settings.data.wallpaper.swww.enabled - delegate: PanelWindow { - required property ShellScreen modelData - property string wallpaperSource: WallpaperService.currentWallpaper !== "" - && !Settings.data.wallpaper.swww.enabled ? WallpaperService.currentWallpaper : "" + sourceComponent: Variants { + model: Quickshell.screens - visible: wallpaperSource !== "" && !Settings.data.wallpaper.swww.enabled + delegate: PanelWindow { + required property ShellScreen modelData + property string wallpaperSource: WallpaperService.currentWallpaper !== "" + && !Settings.data.wallpaper.swww.enabled ? WallpaperService.currentWallpaper : "" - // Force update when SWWW setting changes - onVisibleChanged: { - if (visible) { + visible: wallpaperSource !== "" && !Settings.data.wallpaper.swww.enabled - } else { + // Force update when SWWW setting changes + onVisibleChanged: { + if (visible) { + } else { + + } } - } - color: Color.transparent - screen: modelData - WlrLayershell.layer: WlrLayer.Background - WlrLayershell.exclusionMode: ExclusionMode.Ignore - WlrLayershell.namespace: "quickshell-wallpaper" + color: Color.transparent + screen: modelData + WlrLayershell.layer: WlrLayer.Background + WlrLayershell.exclusionMode: ExclusionMode.Ignore + WlrLayershell.namespace: "quickshell-wallpaper" - anchors { - bottom: true - top: true - right: true - left: true - } + anchors { + bottom: true + top: true + right: true + left: true + } - margins { - top: 0 - } + margins { + top: 0 + } - Image { - anchors.fill: parent - fillMode: Image.PreserveAspectCrop - source: wallpaperSource - visible: wallpaperSource !== "" - cache: true - smooth: true - mipmap: false + Image { + anchors.fill: parent + fillMode: Image.PreserveAspectCrop + source: wallpaperSource + visible: wallpaperSource !== "" + cache: true + smooth: true + mipmap: false + } } } } diff --git a/Modules/Background/Overview.qml b/Modules/Background/Overview.qml index 75a3a95..d45e95b 100644 --- a/Modules/Background/Overview.qml +++ b/Modules/Background/Overview.qml @@ -6,7 +6,7 @@ import qs.Commons import qs.Services import qs.Widgets -NLoader { +Loader { active: CompositorService.isNiri Component.onCompleted: { diff --git a/Modules/Background/ScreenCorners.qml b/Modules/Background/ScreenCorners.qml index f8c612f..ce984a7 100644 --- a/Modules/Background/ScreenCorners.qml +++ b/Modules/Background/ScreenCorners.qml @@ -6,10 +6,10 @@ import qs.Commons import qs.Services import qs.Widgets -NLoader { - isLoaded: Settings.data.general.showScreenCorners +Loader { + active: Settings.data.general.showScreenCorners - content: Variants { + sourceComponent: Variants { model: Quickshell.screens PanelWindow { diff --git a/Modules/Bar/Brightness.qml b/Modules/Bar/Brightness.qml index 0d26dfc..2388f42 100644 --- a/Modules/Bar/Brightness.qml +++ b/Modules/Bar/Brightness.qml @@ -70,7 +70,7 @@ Item { onClicked: { settingsPanel.requestedTab = SettingsPanel.Tab.Brightness - settingsPanel.isLoaded = true + settingsPanel.open(screen) } } } diff --git a/Modules/Bar/SidePanelToggle.qml b/Modules/Bar/SidePanelToggle.qml index 542c5b2..42c634c 100644 --- a/Modules/Bar/SidePanelToggle.qml +++ b/Modules/Bar/SidePanelToggle.qml @@ -14,26 +14,5 @@ NIconButton { colorBorderHover: Color.transparent anchors.verticalCenter: parent.verticalCenter - onClicked: { - sidePanel.toggle(screen) - // sidePanel.isLoaded = !sidePanel.isLoaded - // Logger.log("SidePanelToggle", sidePanel.isLoaded) - // // Map this button's center to the screen and open the side panel below it - // const localCenterX = width / 2 - // const localCenterY = height / 2 - // const globalPoint = mapToItem(null, localCenterX, localCenterY) - // if (sidePanel.isLoaded) { - // // Call hide() instead of directly setting isLoaded to false - // if (sidePanel.item && sidePanel.item.hide) { - // sidePanel.item.hide() - // } else { - // sidePanel.isLoaded = false - // } - // } else if (sidePanel.openAt) { - // sidePanel.openAt(globalPoint.x, screen) - // } else { - // // Fallback: toggle if API unavailable - // sidePanel.isLoaded = true - // } - } + onClicked: sidePanel.toggle(screen) } diff --git a/Modules/Dock/Dock.qml b/Modules/Dock/Dock.qml index 3b9503e..641834e 100644 --- a/Modules/Dock/Dock.qml +++ b/Modules/Dock/Dock.qml @@ -9,9 +9,9 @@ import qs.Commons import qs.Services import qs.Widgets -NLoader { - isLoaded: (Settings.data.dock.monitors.length > 0) - content: Component { +Loader { + active: (Settings.data.dock.monitors.length > 0) + sourceComponent: Component { Variants { model: Quickshell.screens diff --git a/Modules/IPC/IPCManager.qml b/Modules/IPC/IPCManager.qml index 83e350a..07a6351 100644 --- a/Modules/IPC/IPCManager.qml +++ b/Modules/IPC/IPCManager.qml @@ -47,8 +47,8 @@ Item { function toggle() { // Only lock if not already locked (prevents the red screen issue) // Note: No unlock via IPC for security reasons - if (!lockScreen.isLoaded) { - lockScreen.isLoaded = true + if (!lockScreen.active) { + lockScreen.active = true } } } diff --git a/Modules/LockScreen/LockScreen.qml b/Modules/LockScreen/LockScreen.qml index 57fd876..93413fb 100644 --- a/Modules/LockScreen/LockScreen.qml +++ b/Modules/LockScreen/LockScreen.qml @@ -12,12 +12,13 @@ import qs.Commons import qs.Services import qs.Widgets -NLoader { +Loader { id: lockScreen + active: false // Log state changes to help debug lock screen issues - onIsLoadedChanged: { - Logger.log("LockScreen", "State changed - isLoaded:", isLoaded) + onActiveChanged: { + Logger.log("LockScreen", "State changed:", active) } // Allow a small grace period after unlocking so the compositor releases the lock surfaces @@ -26,23 +27,28 @@ NLoader { interval: 250 repeat: false onTriggered: { - Logger.log("LockScreen", "Unload timer triggered - setting isLoaded to false") - lockScreen.isLoaded = false + Logger.log("LockScreen", "Unload timer triggered - deactivating") + lockScreen.active = false } } function scheduleUnloadAfterUnlock() { Logger.log("LockScreen", "Scheduling unload after unlock") unloadAfterUnlockTimer.start() } - content: Component { + sourceComponent: Component { WlSessionLock { id: lock + // Tie session lock to loader visibility - locked: lockScreen.isLoaded + locked: lockScreen.active // Lockscreen is a different beast, needs a capital 'S' in 'Screen' to access the current screen // Also we use a different scaling algorithm based on the resolution, as the design is full screen - readonly property real scaling: ScalingService.dynamicScale(Screen) + readonly property real scaling: { + var tt = ScalingService.dynamicScale(Screen) + console.log(tt) + return tt + } property string errorMessage: "" property bool authenticating: false diff --git a/Modules/PowerPanel/PowerPanel.qml b/Modules/PowerPanel/PowerPanel.qml index d733186..a32211e 100644 --- a/Modules/PowerPanel/PowerPanel.qml +++ b/Modules/PowerPanel/PowerPanel.qml @@ -55,8 +55,8 @@ NPanel { switch (action) { case "lock": // Access lockScreen directly like IPCManager does - if (!lockScreen.isLoaded) { - lockScreen.isLoaded = true + if (!lockScreen.active) { + lockScreen.active = true } break case "suspend": diff --git a/Widgets/NLoader.qml b/Widgets/NLoader.qml deleted file mode 100644 index a22ac03..0000000 --- a/Widgets/NLoader.qml +++ /dev/null @@ -1,39 +0,0 @@ -import QtQuick - -// Example usage: -// NLoader { -// content: Component { -// YourComponent { -Loader { - id: loader - - // Boolean control to load/unload the item - property bool isLoaded: false - - // Provide the component to be loaded. - property Component content - - active: isLoaded - asynchronous: true - sourceComponent: content - - onActiveChanged: { - if (active && item && item.show) { - item.show() - } - } - - onItemChanged: { - if (active && item && item.show) { - item.show() - } - } - - Connections { - target: loader.item - ignoreUnknownSignals: true - function onDismissed() { - loader.isLoaded = false - } - } -}