wallpaper: add fallback and selector
Add fallback for when no wallpaper and button to set
This commit is contained in:
parent
605c6f95f1
commit
c94b761459
1 changed files with 76 additions and 1 deletions
|
|
@ -4,6 +4,7 @@ import "root:/widgets"
|
|||
import "root:/services"
|
||||
import "root:/config"
|
||||
import QtQuick
|
||||
import QtQuick.Dialogs
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
|
@ -14,12 +15,86 @@ Item {
|
|||
anchors.fill: parent
|
||||
|
||||
onSourceChanged: {
|
||||
if (current === one)
|
||||
if (!source)
|
||||
current = null;
|
||||
else if (current === one)
|
||||
two.update();
|
||||
else
|
||||
one.update();
|
||||
}
|
||||
|
||||
Loader {
|
||||
anchors.fill: parent
|
||||
|
||||
active: !root.source
|
||||
asynchronous: true
|
||||
|
||||
sourceComponent: StyledRect {
|
||||
color: Colours.palette.m3surfaceContainer
|
||||
|
||||
Row {
|
||||
anchors.centerIn: parent
|
||||
spacing: Appearance.spacing.large
|
||||
|
||||
MaterialIcon {
|
||||
text: "sentiment_stressed"
|
||||
color: Colours.palette.m3onSurfaceVariant
|
||||
font.pointSize: Appearance.font.size.extraLarge * 5
|
||||
font.variableAxes: ({
|
||||
opsz: Appearance.font.size.extraLarge * 5
|
||||
})
|
||||
}
|
||||
|
||||
Column {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
spacing: Appearance.spacing.small
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Wallpaper missing?")
|
||||
color: Colours.palette.m3onSurfaceVariant
|
||||
font.pointSize: Appearance.font.size.extraLarge * 2
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
StyledRect {
|
||||
implicitWidth: selectWallText.implicitWidth + Appearance.padding.large * 2
|
||||
implicitHeight: selectWallText.implicitHeight + Appearance.padding.small * 2
|
||||
|
||||
radius: Appearance.rounding.full
|
||||
color: Colours.palette.m3primary
|
||||
|
||||
FileDialog {
|
||||
id: dialog
|
||||
|
||||
nameFilters: [`Image files (${Wallpapers.extensions.map(e => `*.${e}`).join(" ")})`]
|
||||
|
||||
onAccepted: Wallpapers.setWallpaper(selectedFile.toString().replace("file://", ""))
|
||||
}
|
||||
|
||||
StateLayer {
|
||||
radius: parent.radius
|
||||
color: Colours.palette.m3onPrimary
|
||||
|
||||
function onClicked(): void {
|
||||
dialog.open();
|
||||
}
|
||||
}
|
||||
|
||||
StyledText {
|
||||
id: selectWallText
|
||||
|
||||
anchors.centerIn: parent
|
||||
|
||||
text: qsTr("Set it now!")
|
||||
color: Colours.palette.m3onPrimary
|
||||
font.pointSize: Appearance.font.size.large
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Img {
|
||||
id: one
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue