mirror of
https://github.com/kossLAN/dots.git
synced 2025-11-05 06:59:50 -05:00
progress save
This commit is contained in:
parent
e359e006c7
commit
41ccd5c460
9 changed files with 164 additions and 287 deletions
135
shell/settings/WallpaperPicker.qml
Normal file
135
shell/settings/WallpaperPicker.qml
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
pragma ComponentBehavior: Bound
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell.Widgets
|
||||
import Qt5Compat.GraphicalEffects
|
||||
import Qt.labs.folderlistmodel
|
||||
import ".."
|
||||
|
||||
ColumnLayout {
|
||||
id: container
|
||||
spacing: 5
|
||||
|
||||
|
||||
|
||||
// anchors {
|
||||
// fill: parent
|
||||
// margins: 10
|
||||
// }
|
||||
|
||||
ClippingRectangle {
|
||||
radius: 20
|
||||
Layout.preferredWidth: 464
|
||||
Layout.preferredHeight: 261
|
||||
Layout.alignment: Qt.AlignCenter
|
||||
Layout.margins: 20
|
||||
|
||||
Image {
|
||||
id: wallpaperImage
|
||||
source: ShellSettings.settings.wallpaperUrl
|
||||
fillMode: Image.PreserveAspectFit
|
||||
|
||||
anchors {
|
||||
fill: parent
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: ShellSettings.colors["surface_container"]
|
||||
radius: 20
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
color: ShellSettings.colors["surface_container_high"]
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 1
|
||||
}
|
||||
|
||||
GridView {
|
||||
id: wallpaperGrid
|
||||
cellWidth: 200
|
||||
cellHeight: 200
|
||||
clip: true
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.margins: 10
|
||||
|
||||
model: FolderListModel {
|
||||
id: folderModel
|
||||
folder: Qt.resolvedUrl("root:resources/wallpapers")
|
||||
nameFilters: ["*.jpg", "*.png"]
|
||||
}
|
||||
|
||||
delegate: Rectangle {
|
||||
id: cell
|
||||
required property var modelData
|
||||
width: 200
|
||||
height: 200
|
||||
color: "transparent"
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
|
||||
Rectangle {
|
||||
id: border
|
||||
visible: mouseArea.containsMouse
|
||||
color: "transparent"
|
||||
radius: 20
|
||||
|
||||
border {
|
||||
color: ShellSettings.colors["primary"]
|
||||
width: 2
|
||||
}
|
||||
|
||||
anchors {
|
||||
fill: parent
|
||||
margins: 1
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: image
|
||||
source: cell.modelData.fileUrl
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
asynchronous: true
|
||||
|
||||
sourceSize {
|
||||
height: image.height
|
||||
width: image.width
|
||||
}
|
||||
|
||||
anchors {
|
||||
fill: parent
|
||||
margins: 5
|
||||
}
|
||||
|
||||
layer.enabled: true
|
||||
layer.effect: OpacityMask {
|
||||
maskSource: Rectangle {
|
||||
width: cell.width
|
||||
height: cell.height
|
||||
radius: 20
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: {
|
||||
ShellSettings.settings.wallpaperUrl = cell.modelData.fileUrl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue