feat: add browse and random buttons to wall select

This commit is contained in:
2 * r + 2 * t 2026-06-05 22:03:19 +10:00
parent 0bbb1c04b7
commit da3b58118f
2 changed files with 45 additions and 0 deletions

View file

@ -2,9 +2,12 @@ pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Layouts
import Caelestia.Components
import Caelestia.Config
import Caelestia.Models
import qs.components
import qs.components.controls
import qs.components.filedialog
import qs.services
import qs.utils
import qs.modules.nexus.common
@ -21,6 +24,44 @@ PageBase {
width: root.cappedWidth
spacing: Tokens.spacing.small
ButtonRow {
Layout.bottomMargin: Tokens.spacing.medium
Layout.alignment: Qt.AlignHCenter
spacing: Tokens.spacing.small
IconTextButton {
icon: "photo_library"
text: qsTr("Browse")
font: Tokens.font.body.large
isRound: true
shapeMorph: true
horizontalPadding: Tokens.padding.extraLarge
verticalPadding: Tokens.padding.medium
onClicked: browseDialog.open()
FileDialog {
id: browseDialog
title: qsTr("Select an image")
filterLabel: qsTr("Image files")
filters: Images.validImageExtensions
onAccepted: path => Wallpapers.setWallpaper(path)
}
}
IconTextButton {
icon: "shuffle"
text: qsTr("Random")
font: Tokens.font.body.large
isRound: true
shapeMorph: true
horizontalPadding: Tokens.padding.extraLarge
verticalPadding: Tokens.padding.medium
type: IconTextButton.Tonal
onClicked: Wallpapers.setRandom()
}
}
WallItem {
imgHeight: Math.round(width * 0.3)
radius: Tokens.rounding.extraLarge

View file

@ -27,6 +27,10 @@ Searcher {
return category;
}
function setRandom(): void {
Quickshell.execDetached(["caelestia", "wallpaper", "-r", ...smartArg]);
}
function setWallpaper(path: string): void {
actualCurrent = path;
Quickshell.execDetached(["caelestia", "wallpaper", "-f", path, ...smartArg]);