This ensures the logout dialog is kept in memory and continues to work even after a Qt or other library update.
BUG: 364897
This ensures the logout dialog is kept in memory and continues to work even after a Qt or other library update.
BUG: 364897
Mostly works. I logged in and then screwed up my logout dialog QML file and still got a shutdown dialog.
We need to adjust the logout dialog QML though so it stops the timer when not visible (my root.visible approach didn't work) and resets the timeout. Also it doesn't seem to properly update the selected shutdown type, ie. if I select Logout and then select Shutdown it doesn't notice. Ideally, we'll just do that when we're re-designing the logout dialog anyway.
Lint Skipped |
Unit Tests Skipped |
I'm not sure whether that's the correct approach to the problem. It's a workaround and we have probably a bazillion other places where it breaks as well. IMHO the updates should be installed offline and AFAIU packagekit supports that.
we may have to use this in the meantime?
(even tough the "kde is bloated oh so much memory" people wouldn't be happy about it)
Yes.
The thing is, we can't really force distributions to adopt offline updates as currently the only implementation I have seen is in packagekit and there's plenty of distros that don't use packagekit so they'd have to first write a whole bunch of code, and even then they might have reasons for why they wouldn't want to do offline updates. Also offline updates only really make sense when btrfs or zfs is used as otherwise doing it reliably gets tediously slow. Namely since package rollbacks and so forth are unreliable you basically want a full-system backup before you conduct an update, which unless the FS supports snapshots technically means cloning the entire disk or implementing higher level software snapshots. Both of which is substantially slower. On top of that IIRC you always have a reboot in-between, so overall the upgrade also takes longer and requires a reboot. Offline updates are installed on bootup I think, so they can also get in the way of the user using the system. On the plus side systemd has the necessary workflow tech to support offline updates, so once a distro has the "client" side to that it should be mostly workflow improvements.
I think it is worth pointing out that the proposed change here shouldn't be taken as a reason or excuse for patching other bits of software to hold stuff in memory for fear of things not working after updates. If a distribution chooses to do online updates and things then break in a running session that is kind of expected. The problem is that the logout screen is special in that it is the user's only (non-CLI) way of ending the session so the breakage goes away. If the logout dialog is broken you can't even get out of the hell hole that is your broken session :)
I just upgraded my Qt version and could gracefully restart my machine with this patch.