1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-02 03:28:28 -04:00

fix(qml): resolve lint regressions from async shell loading

port 1.5
This commit is contained in:
purian23
2026-07-16 06:10:43 -04:00
parent fe1a783ec2
commit 7c24e85c19
+53 -66
View File
@@ -1,3 +1,5 @@
pragma ComponentBehavior: Bound
import QtQuick import QtQuick
import Quickshell import Quickshell
import qs.Common import qs.Common
@@ -53,6 +55,7 @@ Item {
delegate: Loader { delegate: Loader {
id: fadeWindowLoader id: fadeWindowLoader
required property var modelData required property var modelData
readonly property FadeToLockWindow loadedWindow: item as FadeToLockWindow
active: SettingsData.fadeToLockEnabled active: SettingsData.fadeToLockEnabled
asynchronous: false asynchronous: false
@@ -64,29 +67,29 @@ Item {
} }
onFadeCancelled: { onFadeCancelled: {
log.debug("Fade to lock cancelled by user on screen:", fadeWindowLoader.modelData.name); root.log.debug("Fade to lock cancelled by user on screen:", fadeWindowLoader.modelData.name);
} }
} }
Connections { Connections {
target: IdleService target: IdleService
enabled: fadeWindowLoader.item !== null enabled: fadeWindowLoader.loadedWindow !== null
function onFadeToLockRequested() { function onFadeToLockRequested() {
if (fadeWindowLoader.item) { if (fadeWindowLoader.loadedWindow) {
fadeWindowLoader.item.startFade(); fadeWindowLoader.loadedWindow.startFade();
} }
} }
function onCancelFadeToLock() { function onCancelFadeToLock() {
if (fadeWindowLoader.item) { if (fadeWindowLoader.loadedWindow) {
fadeWindowLoader.item.cancelFade(); fadeWindowLoader.loadedWindow.cancelFade();
} }
} }
function onDismissFadeToLock() { function onDismissFadeToLock() {
if (fadeWindowLoader.item) { if (fadeWindowLoader.loadedWindow) {
fadeWindowLoader.item.dismiss(); fadeWindowLoader.loadedWindow.dismiss();
} }
} }
} }
@@ -99,6 +102,7 @@ Item {
delegate: Loader { delegate: Loader {
id: fadeDpmsWindowLoader id: fadeDpmsWindowLoader
required property var modelData required property var modelData
readonly property FadeToDpmsWindow loadedWindow: item as FadeToDpmsWindow
active: SettingsData.fadeToDpmsEnabled active: SettingsData.fadeToDpmsEnabled
asynchronous: false asynchronous: false
@@ -110,30 +114,30 @@ Item {
} }
onFadeCancelled: { onFadeCancelled: {
log.debug("Fade to DPMS cancelled by user on screen:", fadeDpmsWindowLoader.modelData.name); root.log.debug("Fade to DPMS cancelled by user on screen:", fadeDpmsWindowLoader.modelData.name);
} }
} }
Connections { Connections {
target: IdleService target: IdleService
enabled: fadeDpmsWindowLoader.item !== null enabled: fadeDpmsWindowLoader.loadedWindow !== null
function onFadeToDpmsRequested() { function onFadeToDpmsRequested() {
if (fadeDpmsWindowLoader.item) { if (fadeDpmsWindowLoader.loadedWindow) {
fadeDpmsWindowLoader.item.startFade(); fadeDpmsWindowLoader.loadedWindow.startFade();
} }
} }
function onCancelFadeToDpms() { function onCancelFadeToDpms() {
if (fadeDpmsWindowLoader.item) { if (fadeDpmsWindowLoader.loadedWindow) {
fadeDpmsWindowLoader.item.cancelFade(); fadeDpmsWindowLoader.loadedWindow.cancelFade();
} }
} }
function onRequestMonitorOn() { function onRequestMonitorOn() {
if (!fadeDpmsWindowLoader.item) if (!fadeDpmsWindowLoader.loadedWindow)
return; return;
fadeDpmsWindowLoader.item.cancelFade(); fadeDpmsWindowLoader.loadedWindow.cancelFade();
} }
} }
} }
@@ -351,9 +355,7 @@ Item {
Variants { Variants {
model: SettingsData.notificationFocusedMonitor ? Quickshell.screens : SettingsData.getFilteredScreens("notifications") model: SettingsData.notificationFocusedMonitor ? Quickshell.screens : SettingsData.getFilteredScreens("notifications")
delegate: NotificationPopupManager { delegate: NotificationPopupManager {}
modelData: item
}
} }
LazyLoader { LazyLoader {
@@ -387,6 +389,7 @@ Item {
LazyLoader { LazyLoader {
id: wifiPasswordModalLoader id: wifiPasswordModalLoader
active: false active: false
readonly property WifiPasswordModal loadedModal: item as WifiPasswordModal
Component.onCompleted: { Component.onCompleted: {
PopoutService.wifiPasswordModalLoader = wifiPasswordModalLoader; PopoutService.wifiPasswordModalLoader = wifiPasswordModalLoader;
@@ -421,6 +424,7 @@ Item {
LazyLoader { LazyLoader {
id: polkitAuthModalLoader id: polkitAuthModalLoader
active: false active: false
readonly property PolkitAuthModal loadedModal: item as PolkitAuthModal
PolkitAuthModal { PolkitAuthModal {
id: polkitAuthModal id: polkitAuthModal
@@ -439,8 +443,8 @@ Item {
if (PopoutService.systemUpdatePopout?.shouldBeVisible) if (PopoutService.systemUpdatePopout?.shouldBeVisible)
return; return;
polkitAuthModalLoader.active = true; polkitAuthModalLoader.active = true;
if (polkitAuthModalLoader.item) if (polkitAuthModalLoader.loadedModal)
polkitAuthModalLoader.item.show(); polkitAuthModalLoader.loadedModal.show();
} }
} }
@@ -459,20 +463,20 @@ Item {
target: NetworkService target: NetworkService
function onCredentialsNeeded(token, ssid, setting, fields, hints, reason, connType, connName, vpnService, fieldsInfo) { function onCredentialsNeeded(token, ssid, setting, fields, hints, reason, connType, connName, vpnService, fieldsInfo) {
const alreadyShown = wifiPasswordModalLoader.item && wifiPasswordModalLoader.item.shouldBeVisible; const alreadyShown = wifiPasswordModalLoader.loadedModal && wifiPasswordModalLoader.loadedModal.shouldBeVisible;
if (alreadyShown && token === lastCredentialsToken) if (alreadyShown && token === root.lastCredentialsToken)
return; return;
wifiPasswordModalLoader.active = true; wifiPasswordModalLoader.active = true;
if (!wifiPasswordModalLoader.item) if (!wifiPasswordModalLoader.loadedModal)
return; return;
if (alreadyShown && lastCredentialsToken !== "" && lastCredentialsToken !== token) if (alreadyShown && root.lastCredentialsToken !== "" && root.lastCredentialsToken !== token)
NetworkService.cancelCredentials(lastCredentialsToken); NetworkService.cancelCredentials(root.lastCredentialsToken);
lastCredentialsToken = token; root.lastCredentialsToken = token;
lastCredentialsTime = Date.now(); root.lastCredentialsTime = Date.now();
wifiPasswordModalLoader.item.showFromPrompt(token, ssid, setting, fields, hints, reason, connType, connName, vpnService, fieldsInfo); wifiPasswordModalLoader.loadedModal.showFromPrompt(token, ssid, setting, fields, hints, reason, connType, connName, vpnService, fieldsInfo);
} }
} }
@@ -769,10 +773,10 @@ Item {
} }
function onAppPickerRequested(data) { function onAppPickerRequested(data) {
log.debug("App picker requested with data:", JSON.stringify(data)); root.log.debug("App picker requested with data:", JSON.stringify(data));
if (!data || !data.target) { if (!data || !data.target) {
log.warn("Invalid app picker request data"); root.log.warn("Invalid app picker request data");
return; return;
} }
@@ -889,7 +893,6 @@ Item {
delegate: DankSlideout { delegate: DankSlideout {
id: notepadSlideout id: notepadSlideout
modelData: item
title: I18n.tr("Notepad") title: I18n.tr("Notepad")
slideoutWidth: 480 slideoutWidth: 480
expandable: true expandable: true
@@ -985,8 +988,8 @@ Item {
onSwitchUserRequested: { onSwitchUserRequested: {
switchUserModalLoader.active = true; switchUserModalLoader.active = true;
Qt.callLater(() => { Qt.callLater(() => {
if (switchUserModalLoader.item) if (switchUserModalLoader.loadedModal)
switchUserModalLoader.item.showFromPowerMenu(); switchUserModalLoader.loadedModal.showFromPowerMenu();
}); });
} }
@@ -1000,6 +1003,7 @@ Item {
id: switchUserModalLoader id: switchUserModalLoader
active: false active: false
readonly property SwitchUserModal loadedModal: item as SwitchUserModal
SwitchUserModal { SwitchUserModal {
id: switchUserModal id: switchUserModal
@@ -1055,7 +1059,6 @@ Item {
model: SettingsData.getFilteredScreens("toast") model: SettingsData.getFilteredScreens("toast")
delegate: Toast { delegate: Toast {
modelData: item
visible: ToastService.toastVisible visible: ToastService.toastVisible
} }
} }
@@ -1070,73 +1073,55 @@ Item {
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: VolumeOSD { delegate: VolumeOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: MediaVolumeOSD { delegate: MediaVolumeOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: MediaPlaybackOSD { delegate: MediaPlaybackOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: MicVolumeOSD { delegate: MicVolumeOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: BrightnessOSD { delegate: BrightnessOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: IdleInhibitorOSD { delegate: IdleInhibitorOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.osdPowerProfileEnabled ? SettingsData.getFilteredScreens("osd") : [] model: SettingsData.osdPowerProfileEnabled ? SettingsData.getFilteredScreens("osd") : []
delegate: PowerProfileOSD { delegate: PowerProfileOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: CapsLockOSD { delegate: CapsLockOSD {}
modelData: item
}
} }
Variants { Variants {
model: SettingsData.getFilteredScreens("osd") model: SettingsData.getFilteredScreens("osd")
delegate: AudioOutputOSD { delegate: AudioOutputOSD {}
modelData: item
}
} }
} }
} }
@@ -1153,6 +1138,7 @@ Item {
Loader { Loader {
id: greeterLoader id: greeterLoader
active: false active: false
readonly property GreeterModal loadedModal: item as GreeterModal
sourceComponent: GreeterModal { sourceComponent: GreeterModal {
onGreeterCompleted: greeterLoader.active = false onGreeterCompleted: greeterLoader.active = false
Component.onCompleted: show() Component.onCompleted: show()
@@ -1161,8 +1147,8 @@ Item {
Connections { Connections {
target: FirstLaunchService target: FirstLaunchService
function onGreeterRequested() { function onGreeterRequested() {
if (greeterLoader.active && greeterLoader.item) { if (greeterLoader.active && greeterLoader.loadedModal) {
greeterLoader.item.show(); greeterLoader.loadedModal.show();
return; return;
} }
greeterLoader.active = true; greeterLoader.active = true;
@@ -1173,6 +1159,7 @@ Item {
Loader { Loader {
id: changelogLoader id: changelogLoader
active: false active: false
readonly property ChangelogModal loadedModal: item as ChangelogModal
sourceComponent: ChangelogModal { sourceComponent: ChangelogModal {
onChangelogDismissed: changelogLoader.active = false onChangelogDismissed: changelogLoader.active = false
Component.onCompleted: show() Component.onCompleted: show()
@@ -1181,8 +1168,8 @@ Item {
Connections { Connections {
target: ChangelogService target: ChangelogService
function onChangelogRequested() { function onChangelogRequested() {
if (changelogLoader.active && changelogLoader.item) { if (changelogLoader.active && changelogLoader.loadedModal) {
changelogLoader.item.show(); changelogLoader.loadedModal.show();
return; return;
} }
changelogLoader.active = true; changelogLoader.active = true;