Bug 489580 - Cannot scroll into the settings window of certain wallpaper plugins
Summary: Cannot scroll into the settings window of certain wallpaper plugins
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_wallpaper (show other bugs)
Version: 6.1.1
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-07-02 03:56 UTC by Archisman Panigrahi
Modified: 2025-03-29 05:52 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.4.0
Sentry Crash Report:


Attachments
screenshot-of-issue (211.04 KB, image/png)
2024-07-02 03:56 UTC, Archisman Panigrahi
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Archisman Panigrahi 2024-07-02 03:56:31 UTC
Created attachment 171262 [details]
screenshot-of-issue

***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

SUMMARY
I installed this plugin https://github.com/luisbocanegra/plasma-smart-video-wallpaper-reborn/, but I cannot scroll in the system settings window.

STEPS TO REPRODUCE
1. Install plasma-smart-video-wallpaper-reborn
2. Try to change the wallpaper settings in System Settings > Wallpaper and enable this plugin

OBSERVED RESULT
There is no scrollbar and some settings are buried down below, and cannot be accessed (due to no scrollbar).

EXPECTED RESULT
There should be a scrollbar

SOFTWARE/OS VERSIONS

Operating System: EndeavourOS 
KDE Plasma Version: 6.1.1
KDE Frameworks Version: 6.3.0
Qt Version: 6.7.2



ADDITIONAL INFORMATION

Note that kcm_screenlocker is also affected.

Also reported the bug (https://github.com/luisbocanegra/plasma-smart-video-wallpaper-reborn/issues/28) to the plugin developer, who suggested reporting it here.
Comment 1 Nate Graham 2024-07-03 23:07:07 UTC
Can reproduce. I guess we need to make this page scrollable.

Affects the KScreenLocker KCM as well.
Comment 2 Nate Graham 2024-07-04 01:59:53 UTC
This is a tricky problem.

We need the page itself to be scrollable, just in case the wallpaper plugin assumes it's been placed on a scrollable page and doesn't provide its own internal scrollview.

But if the wallpaper plugin does have an internal scrollview, we want its implicit height on the parent page to be exactly the available height so the page *doesn't* become scrollable — or else there would be two adjacent scrollbars.

I think we would have to introspect the plugin object, but I can't see a feasible way to do it here.

Any ideas here, Ivan?
Comment 3 ratijas 2024-07-04 23:13:09 UTC
> Any ideas here, Ivan?

Not much, other than "just use more pages", but I see how some people might see that as a waste of space.

QtQuick/ListView aren't really designed to cooperate with each other in a compostable way, and you can't easily/safely use implicingHeight/contentHeight.
Comment 4 Nate Graham 2024-07-22 20:18:23 UTC
Then I guess the question is how it's working in the Plasma desktop configuration window. Seems like we need to replicate that in the wallpaper and screen locking KCMs.
Comment 5 Méven Car 2024-09-06 14:36:59 UTC
(In reply to Nate Graham from comment #4)
> Then I guess the question is how it's working in the Plasma desktop
> configuration window. Seems like we need to replicate that in the wallpaper
> and screen locking KCMs.

The other way to set dialog option (right on the desktop > wallpaper probably still work.
Comment 6 Bug Janitor Service 2025-03-26 08:08:39 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5341
Comment 7 Bug Janitor Service 2025-03-26 10:05:51 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kscreenlocker/-/merge_requests/276
Comment 8 cwo 2025-03-27 07:27:00 UTC
Git commit d424c156acf6c0f8e2156aa02a0c89c9d841c9a4 by Christoph Wolk.
Committed on 27/03/2025 at 05:51.
Pushed by cwo into branch 'master'.

kcms/wallpaper: make long wallpaper plugins scrollable

Wallpaper plugins can (and usually do) have their own settings, which
are dynamically loaded. There is a problem though because some wallpaper
plugins are based around a resizable view (such as a gridview of images)
that provides its own scollview and expect to fill the available area,
while others just provide items and rely on the loading container to
provide scrollability.

Instead, we set the implicitSize of the loader to its content and adjust
the main layout height accordingly if necessary (so (implicitly) large
items will cause scrollability, but keep the loader filling the layout
(so  resizable views take up the whole space). Along the way, we fix a
warning during the loading of the kcm.

M  +5    -3    kcms/wallpaper/ui/main.qml

https://invent.kde.org/plasma/plasma-workspace/-/commit/d424c156acf6c0f8e2156aa02a0c89c9d841c9a4
Comment 9 cwo 2025-03-29 05:52:46 UTC
Git commit 7ad3016f6e419f4e5e13561856af1d360e5d6b63 by Christoph Wolk.
Committed on 27/03/2025 at 07:40.
Pushed by cwo into branch 'master'.

kcm: make long wallpaper plugins scrollable

Wallpaper plugins can (and usually do) have their own settings, which
are dynamically loaded. There is a problem though because some wallpaper
plugins are based around a resizable view (such as a gridview of images)
that provides its own scollview and expect to fill the available area,
while others just provide items and rely on the loading container to
provide scrollability.

Instead, we set the implicitSize of the loader to its content and adjust
the main layout height accordingly if necessary (so (implicitly) large
items will cause scrollability, but keep the loader filling the layout
(so  resizable views take up the whole space). Along the way, we fix a
warning during the loading of the kcm.

M  +3    -2    kcm/ui/Appearance.qml
M  +1    -1    kcm/ui/WallpaperConfig.qml

https://invent.kde.org/plasma/kscreenlocker/-/commit/7ad3016f6e419f4e5e13561856af1d360e5d6b63