Bug 403384

Summary: Previewing multiple wallpapers is slow
Product: [Plasma] plasmashell Reporter: Gastón Haro <harogaston>
Component: Image WallpaperAssignee: Marco Martin <notmart>
Severity: wishlist CC: bugseforuns, kde, mglb, nate, neilpadgett452, plasma-bugs, qydwhotmail
Priority: NOR Keywords: usability
Version: masterFlags: kde: Usability+
Target Milestone: 1.0   
Platform: unspecified   
OS: All   
See Also: https://bugs.kde.org/show_bug.cgi?id=398303
Latest Commit: Version Fixed In: 5.26

Description Gastón Haro 2019-01-19 02:12:30 UTC
As a user I would like to be able to easily try/preview the different wallpapers from the Desktop Settings configuration dialog.

1. Right-click on the desktop area.
2. Select "Configure desktop"
3. Select "Wallpaper" section
4. Select or hover over any wallpaper that is different from the current one.

Nothing happens in the desktop.

Desktop wallpaper should change accordingly to the currently hovered or last selected wallpaper image.

KDE Plasma Version: 5.14.5
KDE Frameworks Version: 5.53.0
Qt Version: 5.12.0

Other popular Linux desktop environments offer this feature and it is really convenient to be able to preview various wallpapers like this, without the need to apply each one of them first.
Comment 1 Nate Graham 2019-01-20 02:30:49 UTC
This is basically a side effect of not using the instant-apply model. We're the only ones left with OK/Cancel/Apply buttons.

One possible improvement might be if we implement Bug 398303.
Comment 2 Gastón Haro 2019-01-20 02:40:14 UTC
I can do with OK/Cancel/Apply buttons. What I would like is that selecting a wallpaper would "soft apply it" but if you close or cancel the dialog then the selection is reverted and only if you click Apply/OK the selection persists.
Comment 3 David Edmundson 2019-01-20 16:22:33 UTC
>I can do with OK/Cancel/Apply buttons.

Glad to hear it, I would be against instant apply, but this we can find some sort of compromise.

The challenge with soft-apply is the communication aspect of what hitting cancel will do. 

Maybe that could be solved with a dialog on cancel:
"you have unsaved changes [apply | cancel]"
Comment 4 Nate Graham 2019-01-20 16:55:37 UTC
Maybe we should temporarily apply the wallpaper when simply hovering over its delegate? Then you could move the mouse to quickly preview a bunch of wallpapers.
Comment 5 David Edmundson 2019-01-20 17:37:36 UTC
How would we include the "Positioning" combo box?
Comment 6 Nate Graham 2019-01-20 17:42:45 UTC
Yeah, feels like we're fighting the system with that idea. Since moving to instant-apply is not likely to happen any time soon, I think implementing Bug 398303 might be our best bet. I actually had this exact use case in mind when I opened that feature request.
Comment 7 David Edmundson 2019-01-20 18:14:14 UTC
That idea also wouldn't help with the positioning combo.
Comment 8 Nate Graham 2019-01-20 18:37:31 UTC
I think it might, actually:

1. Change item in positioning combobox
2. Double-click on a new image

Result: new image is applied to the desktop with the positioning specified in the positioning combobox.
Comment 9 David Edmundson 2019-01-20 22:16:18 UTC
I think it's more likely a user would change the positioning / background colour to match the image you've just chosen than before.
Comment 10 Nate Graham 2019-01-20 22:26:23 UTC
Could be. This is just a hard problem to solve without implementing Instant Apply for the whole KCM or making the combobox and wallpaper chooser *visibly* apply their settings, but not *actually* apply them (which seems kinda weird).
Comment 11 Mariusz Glebocki 2019-06-26 06:33:52 UTC
For example implementation see Konsole - it uses live preview & manual apply in Edit profile → Appearance dialog.
Comment 12 Fushan Wen 2022-05-30 16:37:00 UTC
Double click to apply wallpaper: https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1774
Comment 13 Bug Janitor Service 2022-05-30 17:06:32 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/1785
Comment 14 Bug Janitor Service 2022-06-02 15:28:40 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/969
Comment 15 Nate Graham 2022-06-02 18:52:24 UTC
Git commit 15110e1d2dde2fd48f57875a0fd198d7bb5ad6e0 by Nate Graham, on behalf of Fushan Wen.
Committed on 02/06/2022 at 18:51.
Pushed by ngraham into branch 'master'.

desktoppackage: warn on cancel if there are unsaved settings

When single click to preview wallpaper is enabled, it has the potential
of confusing users. When they click on the image they might think the
image is already applied and just close the window without hitting "apply".
This could be solved if a window popped up asking users to apply if
they try to close the window before applying, just like System Settings does.

M  +15   -3    desktoppackage/contents/configuration/AppletConfiguration.qml

Comment 16 Nate Graham 2022-06-02 19:10:51 UTC
Git commit 18069a0f4a002830b7f66224ffdb17077346c2ee by Nate Graham, on behalf of Fushan Wen.
Committed on 02/06/2022 at 18:52.
Pushed by ngraham into branch 'master'.

wallpapers/image: click image to preview
FIXED-IN: 5.26

M  +4    -0    wallpapers/image/imagepackage/contents/config/main.xml
M  +1    -0    wallpapers/image/imagepackage/contents/ui/WallpaperDelegate.qml
M  +4    -0    wallpapers/image/imagepackage/contents/ui/config.qml
M  +11   -1    wallpapers/image/imagepackage/contents/ui/main.qml

Comment 17 Patrick Silva 2022-06-17 17:14:48 UTC
*** Bug 455493 has been marked as a duplicate of this bug. ***
Comment 18 Bug Janitor Service 2022-06-27 10:15:08 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1006
Comment 19 Nate Graham 2022-06-29 03:10:27 UTC
Git commit 6bfef995d37e61b0e891f6eb4c8406b93c912e1b by Nate Graham, on behalf of Fushan Wen.
Committed on 29/06/2022 at 03:09.
Pushed by ngraham into branch 'master'.

desktoppackage: warn on close if there are unsaved settings

M  +19   -6    desktoppackage/contents/configuration/AppletConfiguration.qml