summaryrefslogtreecommitdiff
path: root/modules/background
diff options
context:
space:
mode:
Diffstat (limited to 'modules/background')
-rw-r--r--modules/background/Background.qml8
-rw-r--r--modules/background/Wallpaper.qml112
2 files changed, 7 insertions, 113 deletions
diff --git a/modules/background/Background.qml b/modules/background/Background.qml
index 1bb7d17..f7c0a3f 100644
--- a/modules/background/Background.qml
+++ b/modules/background/Background.qml
@@ -4,6 +4,7 @@ import qs.components
import qs.components.containers
import qs.services
import qs.config
+import qs.utils
import Quickshell
import Quickshell.Wayland
import QtQuick
@@ -31,8 +32,13 @@ Loader {
anchors.left: true
anchors.right: true
- Wallpaper {
+ Image {
id: wallpaper
+
+ anchors.fill: parent
+ asynchronous: true
+
+ source: Paths.wallpaper ?? ""
}
}
}
diff --git a/modules/background/Wallpaper.qml b/modules/background/Wallpaper.qml
deleted file mode 100644
index 46f7a52..0000000
--- a/modules/background/Wallpaper.qml
+++ /dev/null
@@ -1,112 +0,0 @@
-pragma ComponentBehavior: Bound
-
-import qs.components
-import qs.components.images
-import qs.components.filedialog
-import qs.services
-import qs.config
-import qs.utils
-import QtQuick
-
-Item {
- id: root
-
- property string source: Paths.wallpaper
- property Image current: one
-
- anchors.fill: parent
-
- onSourceChanged: {
- if (!source)
- current = null;
- else if (current === one)
- two.update();
- else
- one.update();
- }
-
- Component.onCompleted: {
- if (source)
- Qt.callLater(() => 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
- }
-
- 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
- }
- }
- }
- }
- }
-
- Img {
- id: one
- }
-
- Img {
- id: two
- }
-
- component Img: CachingImage {
- id: img
-
- function update(): void {
- if (path === root.source)
- root.current = this;
- else
- path = root.source;
- }
-
- anchors.fill: parent
-
- opacity: 0
- scale: 0.8
-
- onStatusChanged: {
- if (status === Image.Ready)
- root.current = this;
- }
-
- states: State {
- name: "visible"
- when: root.current === img
-
- PropertyChanges {
- img.opacity: 1
- img.scale: 1
- }
- }
-
- transitions: Transition {
- Anim {
- target: img
- properties: "opacity,scale"
- }
- }
- }
-}