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