Wallpapers + Selector: Fixed the refresh button and removed duplicate logic that was already present in the wallpaper service

This commit is contained in:
quadbyte 2025-08-14 23:38:07 -04:00
parent 1763fdcd97
commit 3108b5b1a4
3 changed files with 15 additions and 28 deletions

View file

@ -106,22 +106,14 @@ Item {
Item {
Layout.fillWidth: true
Layout.preferredHeight: {
return Math.ceil(folderModel.count / wallpaperGridView.columns) * wallpaperGridView.cellHeight
}
FolderListModel {
id: folderModel
folder: "file://" + (Settings.data.wallpaper.directory !== undefined ? Settings.data.wallpaper.directory : "")
nameFilters: ["*.jpg", "*.jpeg", "*.png", "*.gif", "*.pnm", "*.bmp"]
showDirs: false
sortField: FolderListModel.Name
return Math.ceil(Wallpapers.wallpaperList.length / wallpaperGridView.columns) * wallpaperGridView.cellHeight
}
GridView {
id: wallpaperGridView
anchors.fill: parent
clip: true
model: folderModel
model: Wallpapers.wallpaperList
boundsBehavior: Flickable.StopAtBounds
flickableDirection: Flickable.AutoFlickDirection
@ -141,7 +133,7 @@ Item {
delegate: Rectangle {
id: wallpaperItem
property string wallpaperPath: Settings.data.wallpaper.directory + "/" + fileName
property string wallpaperPath: modelData
property bool isSelected: wallpaperPath === Wallpapers.currentWallpaper
width: wallpaperGridView.itemSize
@ -217,7 +209,7 @@ Item {
radius: Style.radiusMedium * scaling
border.color: Colors.mOutline
border.width: Math.max(1, Style.borderThin * scaling)
visible: folderModel.count === 0 && !Wallpapers.scanning
visible: Wallpapers.wallpaperList.length === 0 && !Wallpapers.scanning
ColumnLayout {
anchors.centerIn: parent

View file

@ -37,11 +37,6 @@ Singleton {
}
FileView {
// TBC ? needed for SWWW only ?
// Qt.callLater(function () {
// WallpaperManager.setCurrentWallpaper(settings.currentWallpaper, true);
// })
path: settingsFile
watchChanges: true
onFileChanged: reload()
@ -50,6 +45,7 @@ Singleton {
reload()
}
onLoaded: function () {
console.log("[Settings] loaded")
Qt.callLater(function () {
if (adapter.wallpaper.current !== "") {
console.log("[Settings] Set current wallpaper")

View file

@ -8,17 +8,12 @@ import Quickshell.Io
Singleton {
id: root
Item {
Component.onCompleted: {
console.log("[WP] Service initialized")
loadWallpapers()
// Only set initial wallpaper if it's not empty
if (currentWallpaper !== "") {
console.log("[WP] initializing with:", currentWallpaper)
setCurrentWallpaper(currentWallpaper, true)
}
// Wallpaper is set when the settings are loaded.
// Don't start random wallpaper during initialization
// toggleRandomWallpaper()
}
}
property var wallpaperList: []
@ -28,8 +23,11 @@ Singleton {
property var randomChoices: ["simple", "fade", "left", "right", "top", "bottom", "wipe", "wave", "grow", "center", "any", "outer"]
function loadWallpapers() {
console.log("[WP] Load Wallpapers")
scanning = true
wallpaperList = []
// Unsetting, then setting the folder will re-trigger the parsing!
folderModel.folder = "";
folderModel.folder = "file://" + (Settings.data.wallpaper.directory !== undefined ? Settings.data.wallpaper.directory : "")
}
@ -128,6 +126,7 @@ Singleton {
}
wallpaperList = files
scanning = false
console.log("[WP] List refreshed, count:", wallpaperList.length)
}
}
}