1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-04 04:42:05 -04:00

refactor(icons): centralize icon resolution into Paths.resolveIconPath/resolveIconUrl (#1880)

Supersedes #1878. Rather than duplicating the moddedAppId + file path
substitution pattern inline across 8 files, this introduces two
centralized functions in Paths.qml:

- resolveIconPath(iconName): for Quickshell.iconPath() callsites,
  with DesktopService.resolveIconPath() fallback
- resolveIconUrl(iconName): for image://icon/ URL callsites

All consumer files now use one-line calls. When no substitutions are
configured, moddedAppId() returns the original name unchanged (zero
cost), so this has no impact on users who don't use the feature.

Affected components:
- AppIconRenderer (8 lines → 1)
- NotificationCard, NotificationPopup, HistoryNotificationCard
- DockContextMenu, AppsDockContextMenu
- LauncherContent, LauncherTab (×3)

Co-authored-by: odtgit <odtgit@taliops.com>
This commit is contained in:
odt
2026-03-01 23:31:51 +01:00
committed by bbedward
parent f9b737f543
commit 21750156dc
9 changed files with 39 additions and 22 deletions

View File

@@ -127,7 +127,7 @@ Rectangle {
return appIcon;
if (appIcon.startsWith("material:") || appIcon.startsWith("svg:") || appIcon.startsWith("unicode:") || appIcon.startsWith("image:"))
return "";
return Quickshell.iconPath(appIcon, true);
return Paths.resolveIconPath(appIcon);
}
hasImage: hasNotificationImage

View File

@@ -174,7 +174,7 @@ Rectangle {
return appIcon;
if (appIcon.startsWith("material:") || appIcon.startsWith("svg:") || appIcon.startsWith("unicode:") || appIcon.startsWith("image:"))
return "";
return Quickshell.iconPath(appIcon, true);
return Paths.resolveIconPath(appIcon);
}
hasImage: hasNotificationImage
@@ -508,7 +508,7 @@ Rectangle {
return appIcon;
if (appIcon.startsWith("material:") || appIcon.startsWith("svg:") || appIcon.startsWith("unicode:") || appIcon.startsWith("image:"))
return "";
return Quickshell.iconPath(appIcon, true);
return Paths.resolveIconPath(appIcon);
}
fallbackIcon: {