wallpaper selection

This commit is contained in:
Benjamin Palko 2025-09-22 21:29:36 -04:00
parent 3d1816c0f1
commit 2bfa0c189a
5 changed files with 157 additions and 7 deletions

View file

@ -0,0 +1,14 @@
import QtQuick
Image {
asynchronous: true
fillMode: Image.PreserveAspectCrop
sourceSize.width: parent.width
sourceSize.height: parent.height
Behavior on scale {
NumberAnimation {
duration: 200
}
}
}

View file

@ -0,0 +1,65 @@
pragma ComponentBehavior: Bound
import qs.config
import qs.services
import QtQuick
import Qt.labs.folderlistmodel 2.9
import Quickshell.Widgets
ListView {
id: list
orientation: ListView.Horizontal
clip: true
spacing: 8
snapMode: ListView.SnapToItem
implicitWidth: 160 * 3
implicitHeight: 90
model: FolderListModel {
nameFilters: ["*.jpg"]
folder: `${Paths.home}/Wallpapers`
showDirs: false
}
delegate: Item {
id: delegate
required property url fileUrl
required property int index
property bool hovered: ListView.isCurrentItem
implicitWidth: 160
implicitHeight: 90
Rectangle {
color: Styling.theme.base200
anchors.fill: parent
radius: 12
scale: delegate.hovered ? 1.0 : 0.9
Behavior on scale {
NumberAnimation {
duration: Styling.animations.veryFast
}
}
Image {
id: image
asynchronous: true
anchors.fill: parent
fillMode: Image.PreserveAspectCrop
source: delegate.fileUrl
}
MouseArea {
anchors.fill: image
cursorShape: Qt.PointingHandCursor
hoverEnabled: true
onEntered: list.currentIndex = delegate.index
onClicked: WallpaperService.currentWallpaper = delegate.fileUrl
}
}
}
}