Improve images resizing quality accross the board

- Using mipmap: true and smooth: true for images that are downscaled
(avatar, icons, ...)
- Using mipmap: false and smooth: true for images that are potentially
upscaled (background, overview, ...)
This commit is contained in:
Sébastien Atoch 2025-08-02 21:04:26 -04:00
parent 02e6367d73
commit 260c74b3e0
12 changed files with 19 additions and 7 deletions

View file

@ -347,6 +347,7 @@ PanelWithOverlay {
anchors.fill: parent anchors.fill: parent
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
smooth: true smooth: true
mipmap: true
cache: false cache: false
asynchronous: true asynchronous: true
source: modelData.isCalculator ? "qrc:/icons/calculate.svg" : Quickshell.iconPath(modelData.icon, "application-x-executable") source: modelData.isCalculator ? "qrc:/icons/calculate.svg" : Quickshell.iconPath(modelData.icon, "application-x-executable")

View file

@ -115,6 +115,8 @@ PopupWindow {
Image { Image {
Layout.preferredWidth: 16 Layout.preferredWidth: 16
Layout.preferredHeight: 16 Layout.preferredHeight: 16
smooth: true
mipmap: true
source: modelData?.icon ?? "" source: modelData?.icon ?? ""
visible: (modelData?.icon ?? "") !== "" visible: (modelData?.icon ?? "") !== ""
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit

View file

@ -54,6 +54,7 @@ Item {
anchors.margins: 1 anchors.margins: 1
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
smooth: true smooth: true
mipmap: true
cache: false cache: false
asynchronous: true asynchronous: true
sourceSize.width: 24 sourceSize.width: 24

View file

@ -75,6 +75,7 @@ Item {
anchors.centerIn: parent anchors.centerIn: parent
source: getAppIcon(modelData) source: getAppIcon(modelData)
smooth: true smooth: true
mipmap: true
visible: source.toString() !== "" visible: source.toString() !== ""
} }

View file

@ -155,6 +155,7 @@ PanelWindow {
anchors.centerIn: parent anchors.centerIn: parent
source: taskbar.getAppIcon(modelData) source: taskbar.getAppIcon(modelData)
smooth: true smooth: true
mipmap: true
visible: source.toString() !== "" visible: source.toString() !== ""
} }

View file

@ -135,7 +135,8 @@ WlSessionLock {
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
source: WallpaperManager.currentWallpaper !== "" ? WallpaperManager.currentWallpaper : "" source: WallpaperManager.currentWallpaper !== "" ? WallpaperManager.currentWallpaper : ""
cache: true cache: true
smooth: false smooth: true
mipmap: false
visible: true // source for MultiEffect visible: true // source for MultiEffect
} }
@ -168,6 +169,8 @@ WlSessionLock {
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
visible: false visible: false
asynchronous: true asynchronous: true
mipmap: true
smooth: true
} }
OpacityMask { OpacityMask {
anchors.fill: avatarImage anchors.fill: avatarImage

View file

@ -130,6 +130,7 @@ PanelWindow {
anchors.margins: 4 anchors.margins: 4
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
smooth: true smooth: true
mipmap: true
cache: false cache: false
asynchronous: true asynchronous: true
sourceSize.width: 36 sourceSize.width: 36

View file

@ -34,6 +34,7 @@ ShellRoot {
source: wallpaperSource source: wallpaperSource
cache: true cache: true
smooth: true smooth: true
mipmap: false
visible: wallpaperSource !== "" // Show the original for FastBlur input visible: wallpaperSource !== "" // Show the original for FastBlur input
} }
MultiEffect { MultiEffect {

View file

@ -70,8 +70,8 @@ Rectangle {
visible: false visible: false
asynchronous: true asynchronous: true
cache: false cache: false
sourceSize.width: 64 smooth: true
sourceSize.height: 64 mipmap: true
} }
OpacityMask { OpacityMask {

View file

@ -93,6 +93,7 @@ Rectangle {
anchors.margins: 2 anchors.margins: 2
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
smooth: true smooth: true
mipmap: true
cache: false cache: false
asynchronous: true asynchronous: true
sourceSize.width: 60 sourceSize.width: 60

View file

@ -60,8 +60,8 @@ Rectangle {
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
asynchronous: true asynchronous: true
cache: false cache: false
sourceSize.width: 44 smooth: true
sourceSize.height: 44 mipmap: true
} }
maskSource: Rectangle { maskSource: Rectangle {
width: 44 width: 44

View file

@ -137,8 +137,8 @@ PanelWindow {
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
asynchronous: true asynchronous: true
cache: true cache: true
sourceSize.width: Math.min(width, 150) smooth: true
sourceSize.height: Math.min(height, 90) mipmap: true
} }
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent