(In reply to Alexey Chernov from comment #23)

> Comments like this clearly don't help
Seriously, you asked for breaking clients because that's what you'd "like" to 
do - what did you expect to hear? That's simply not an acceptable stance.

> Never mentioned minor update or particular version. Please don't distort.
So you meant to schedule this for Qt6?

> Users were already hit when the significant part of functionality important
> for someone's every day use case is broken.
Let's be honest: session restorage is apparently relevant for only a minority 
of users.
Loosing your data is however relevant for everyone. And the latter is the by 
far more severe issue. Restarting applications is merely an annoyance, loosing 
your work is truely expensive.

Also there's absolutely NO reason why we should not care about both -
except that you'd "like" to break client code and risk data loss for
some reason that completely escapes me.

> Still better than a couple of API methods like
"enableSpecifiedBehaviour()"

I fully agree on that proposal to be of little help - it will be mostly
ignored or used w/o accounting the implications.

> Once again: we all could already apply the fix of Andreas and be busy fixing
> the necessary applications rather than keep discussing here.

It does NOT only affect KDE applications, there're hundreds of Qt applications 
which might have adopted this pattern - or simply don't care about session 
management itfp.
Also the proper order is to fix and roll out clients, *then* remove the 
deprecated upstream code. That's why "=> Qt6" for this approach.

> On the Qt6 release you would say that everyone already rely on the
> workaround there was in Qt5 etc. etc.

No. Because you would tell people during Qt5 don't do this and don't rely on it 
because it's not gonna work with Qt6, so that when things are ported to Qt6, 
client code has to be fixed.
Breaking it now and depending client behavior on whether it's linked against Qt 
5.6 or Qt 5.7 is plain wrong and begging for trouble.

> I just kindly remind your description of current Plasma 5 and it's
> application state: https://bugs.kde.org/show_bug.cgi?id=341930#c30.
Off topic? This was a global statement. Session management in particular is a 
different thing:
few people seem to really care about restoring sessions.

> In a couple of years
We'll have seen Qt6 and this removed, but even if not - it doesn't matter.
The QGuiApplication code will have a "// TODO Qt6" comment and the client code 
does not care about why there's a close event (which might be rejected, thus 
not causing eg. deletion anyway)


> The only arguable point is whether it's safe to have it fixed now or should
> another (possible API-changing) workaround should be added instead.

No.
Actually I propose to fix the "workaround" already present in QGuiApplication 
by turning "close()" into just sendind a close event (for that's actually the 
desired action) and by this fix session storage and maintain data protection 
with the present approaches.

Breaking that behavior may happen for Qt6, anything else will be
perceived as regression.

On a sidenote:
QGuiApplication::commitDataRequest() may be the "preferred" hook, but there's 
actually nothing that explicitly forbids "fake a close in addition", notably 
since it will trigger similar, if not equal client code.
Given the status quo, I'd probably even just remove the commitDataRequest 
signal in Qt6 and rely only on faking close events - why should client code 
have to care about two different "aboutToClose" signals? Sounds stupid to me.

-- 
You received this bug notification because you are a member of Kubuntu
Bugs, which is subscribed to plasma-workspace in Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

To manage notifications about this bug go to:
https://bugs.launchpad.net/kdebase-workspace/+bug/1446865/+subscriptions

-- 
kubuntu-bugs mailing list
kubuntu-b...@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kubuntu-bugs

Reply via email to