diff --git a/wallpapers/image/imagepackage/contents/config/main.xml b/wallpapers/image/imagepackage/contents/config/main.xml
index 9c8251d93..46a44ea9b 100644
--- a/wallpapers/image/imagepackage/contents/config/main.xml
+++ b/wallpapers/image/imagepackage/contents/config/main.xml
@@ -22,6 +22,10 @@
+
+
+ null
+
2
diff --git a/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml b/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
index ad2e3ba73..16749207b 100644
--- a/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
+++ b/wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
@@ -119,6 +119,7 @@ KCM.GridDelegate {
onClicked: {
if (configDialog.currentWallpaper == "org.kde.image") {
cfg_Image = model.packageName || model.path;
+ wallpaper.configuration.PreviewImage = cfg_Image;
}
GridView.currentIndex = index;
}
diff --git a/wallpapers/image/imagepackage/contents/ui/config.qml b/wallpapers/image/imagepackage/contents/ui/config.qml
index 062262575..3bc654d8c 100644
--- a/wallpapers/image/imagepackage/contents/ui/config.qml
+++ b/wallpapers/image/imagepackage/contents/ui/config.qml
@@ -208,4 +208,8 @@ ColumnLayout {
viewMode: NewStuff.Page.ViewMode.Preview
}
}
+
+ Component.onDestruction: {
+ wallpaper.configuration.PreviewImage = "null";
+ }
}
diff --git a/wallpapers/image/imagepackage/contents/ui/main.qml b/wallpapers/image/imagepackage/contents/ui/main.qml
index cd50d97ea..39ec6e120 100644
--- a/wallpapers/image/imagepackage/contents/ui/main.qml
+++ b/wallpapers/image/imagepackage/contents/ui/main.qml
@@ -53,6 +53,8 @@ QQC2.StackView {
//private
Component.onCompleted: {
+ // In case plasmashell crashes when the config dialog is opened
+ wallpaper.configuration.PreviewImage = "null";
wallpaper.loading = true; // delays ksplash until the wallpaper has been loaded
if (wallpaper.pluginName === "org.kde.slideshow") {
@@ -66,7 +68,15 @@ QQC2.StackView {
usedInConfig: false
//the oneliner of difference between image and slideshow wallpapers
renderingMode: (wallpaper.pluginName === "org.kde.image") ? Wallpaper.ImageBackend.SingleImage : Wallpaper.ImageBackend.SlideShow
- image: wallpaper.pluginName === "org.kde.image" ? wallpaper.configuration.Image : ""
+ image: {
+ if (wallpaper.pluginName !== "org.kde.image") {
+ return "";
+ }
+ if (wallpaper.configuration.PreviewImage !== "null") {
+ return wallpaper.configuration.PreviewImage;
+ }
+ return wallpaper.configuration.Image;
+ }
targetSize: root.sourceSize
slidePaths: wallpaper.configuration.SlidePaths
slideTimer: wallpaper.configuration.SlideInterval