wallpaper selector: thumbnail generation, fix xdg dir folder icons

This commit is contained in:
end-4
2025-08-24 18:59:41 +07:00
parent f3ab3573c3
commit b2d14ca101
4 changed files with 73 additions and 25 deletions
@@ -65,34 +65,15 @@ MouseArea {
id: thumbnailImageLoader
anchors.fill: parent
active: root.useThumbnail
sourceComponent: Image {
sourceComponent: ThumbnailImage {
id: thumbnailImage
source: {
if (fileModelData.filePath.length == 0)
return;
const resolvedUrl = Qt.resolvedUrl(fileModelData.filePath);
const md5Hash = Qt.md5(resolvedUrl);
const cacheSize = "normal";
const thumbnailPath = `${Directories.genericCache}/thumbnails/${cacheSize}/${md5Hash}.png`;
return thumbnailPath;
}
asynchronous: true
cache: false
smooth: true
mipmap: false
sourcePath: fileModelData.filePath
fillMode: Image.PreserveAspectCrop
clip: true
sourceSize.width: wallpaperItemColumnLayout.width
sourceSize.height: wallpaperItemColumnLayout.height - wallpaperItemColumnLayout.spacing - wallpaperItemName.height
opacity: status === Image.Ready ? 1 : 0
Behavior on opacity {
animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this)
}
onStatusChanged: if (status === Image.Error)
root.useThumbnail = false
layer.enabled: true
layer.effect: OpacityMask {
maskSource: Rectangle {
@@ -226,8 +226,8 @@ Item {
fileModelData: modelData
width: grid.cellWidth
height: grid.cellHeight
colBackground: (index === grid?.currentIndex || containsMouse) ? Appearance.colors.colPrimaryContainer : ColorUtils.transparentize(Appearance.colors.colPrimaryContainer)
colText: (index === grid.currentIndex || containsMouse) ? Appearance.colors.colPrimary : Appearance.colors.colOnLayer0
colBackground: (fileModelData.filePath === Config.options.background.wallpaperPath) ? Appearance.colors.colPrimary : (index === grid?.currentIndex || containsMouse) ? Appearance.colors.colPrimaryContainer : ColorUtils.transparentize(Appearance.colors.colPrimaryContainer)
colText: (fileModelData.filePath === Config.options.background.wallpaperPath) ? Appearance.colors.colOnPrimary : (index === grid.currentIndex || containsMouse) ? Appearance.colors.colPrimary : Appearance.colors.colOnLayer0
onEntered: {
grid.currentIndex = index;