[Touch-packages] [Bug 1446865]

2016-03-30 Thread Thomas-luebking
(In reply to Storm Engineer from comment #58)

> The following do NOT get restored:
>  - Firefox

https://forum.kde.org/viewtopic.php?f=111=131515

> Isn't Chrome using Qt tho?
No. And as mentioned, Qt (vlc) still *is* broken itr.
It by this patch just got the *option* to not act brokenly.
Every client needs to opt into that. (But that's not been different with Qt4, 
just no additional Qt API was required then and kdelibs fixed it for most KDE 
applications implicitly)

> I have another issue which may be related, but the two are spanning across
> different time frames so it doesn't seem likely. This issue is shutdown
> being halt with "A stop job is running for session c2 of user" with a 1:30

Seems a systemd bug, see
https://bugs.freedesktop.org/show_bug.cgi?id=70593 or
https://bugs.freedesktop.org/show_bug.cgi?id=70593

It might be related to firefox session management, you could try whether
you also get this problems when quitting all applications (ensure
there're no stale processes left!) before exitting the session and then
(if it's now gone) see whether adding some process back at the session
end (ie. leave dolphin running, try shutdown; then leave firefox for the
next shutdown) causes this. The process may not quit on sigterm.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Fix Released
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-03-30 Thread Thomas-luebking
Firefox or cairo-dock were certainly not targetted or affected by the
related patches.

This only affects Qt applications directly, so if that indeed triggered
something, either the session crashes on logout or the mentioned
applications used some timer based self-quitting (and are thus no more
alive when the session ends)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Fix Released
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-02-03 Thread Thomas-luebking
Please file a review request (attaching the frameworks group), the bug is 
assigned to Seli and I'm not sure anybody but us reads it.
I can already say that it lacks a QT_VERSION test.

About the Qt side, one might want to consider using a Qt::ApplicationAttribute 
instead?
"Qt::AA_DoNotKludgeSessionSaving"?

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-02-03 Thread Thomas-luebking
So, looking into the Qt sources a bit more it seems that

a) Session management is FUBAR in Qt5 and actually was likewise FU in Qt4 - 
adding the proposed flag will only restore the completely FU condition of Qt4, 
ie. allow clients (KDE) to workaround the brokeness ...
b) this actually *only* seems to affect the xcb platform 
("GuiApplicationPrivate::commitData()" is only called by 
"QPlatformSessionManager::appCommitData()" which is only called by 
"sm_performSaveYourself(QXcbSessionManager *sm)" in QXcbSessionManager)

Restoring the Qt4 state however won't cut it: KApplication is deprecated
and there's no Guarantee for a KMainWindow around. Also every "plain"
Qt5 client that can be found on KDE users desktops (qupzilla, trojita,
... whatever) won't be covered.

If you "seem to be the expert on session management" we need to define a
roadmap out of this mess, or it's never gonna happen.

What do you think about this process:

1. emit commitDataRequest()
2. at this point either the logout should be canceled (requires API addition on 
QSessionManager to wire up sm_cancel; internal requirement only though. Maybe 
kept in d_ptr contexts) or there thould be no windows with 
QWidget::isWindowModified() or modal transients around since that indicates 
some user interaction should have taken place but didn't
3. If we detect missing interaction, spam a QMessageBox and inform/ask the user:
   "It looks like the application should have intercepted the logout request, 
but didn't. Do you wish to cancel the logout and explicitly save data? Since 
this is an application bug and this failsafe check will be removed with Qt6, 
please file a bug against the application."
4. If this still didn't cancel the logout, start closing windows depending on 
an application attribute (see below) and a trumping environment variable 
QT_CLOSE_WINDOWS_ON_LOGOUT_REQUEST (to pass the user ultimate control over the 
behavior)
5. Remove attribute, failsafe check and (actually even documented, we can NO 
WAY just remove this in Qt5) window closing in Qt6


I'd go for the application attribute since indeed there's little point in 
adding functions to implement a short-term workaround.
Actually, I might even be in favor of a dynamic property 
(QObject::setProperty()) since it will spare the clients compile time checks - 
we an add this to KFooBar now, even though Qt 5.6 (or whatever) is not on the 
horizon.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-02-03 Thread Thomas-luebking
Well, "shrug, I don't care then" - Qt seems to be dropping desktop
support anyway, so it probably doesn't really matter.

For principal reasins I'd however object " proven to be not broken by being 
around for over 10 years":
It wasn't "broken" because one major client class (KDE) simply replaced that 
"unbroken" code.

Nor did I mean to support directly "changing behavior" - I simply
suggested to raise awareness of the problem by intercepting "this looks
unimplemented" conditions to allow getting rid of the "unbroken" code in
Qt6 w/o pain.

Closing windows certainly is wrong (and apparently wasn't done before
Qt4, seems more like a closeEvent was faked previously) because it
alters the session even on a canceled session exit, regardless on
whether it breaks restoring them (which one would kludge away in the
session manager)


Ok, bottom line is SM is FUBAR on Qt5 and there's no intention to ever fix 
that, merely re-allow client code to bypass the broken Qt behavior. I'll tag 
future bugs respectively.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
Fun fact (though you likely already know) - KApplication::commitData(.)
*did* send a fake close event to everything but KMainWindow ...

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
(In reply to Alexey Chernov from comment #30)
> The same way commercial customers or applications would be affected with API
> changes.

How an ABI styable API extension could affect anyone is frankly beyond
me - I doubt it will help to resolve the problem but there's really no
problem with it.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
(In reply to Andreas Hartmetz from comment #27)

> We can, however, implement a workaround in KDE (and then fix our stuff when
> something breaks):
>  [...]
> Now which repository should that go in? It would be ugly to copy and paste
> the necessary code around - it should be roughly ten lines.

That's some sort of problem.
KXmlGui/KMainWindow would cover mostâ„¢ cases, but certainly not all.

The idea of KF5 is to merely optionally extend Qt and the QPA plugin would 
affect every Qt application.
Since this will however also require to fix the application wrt listening to 
the datacommit request itfp, this could only apply to the fixed cases - which 
would for a general fix then be KMainWindow, calling queryClose() on this 
occasion.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
How exactly did you try the kwrite crashing workaround? Just by sending a 
zombie closeEvent?
Do you still have a backtrace?

(Let's say it's legit for a leaf widget to assume that the close event
it doesn't ignore() will cause a close with all implications on future
user interaction, data deletion and stuff, but it's not necessarily good
style.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
(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 Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
(In reply to Alexey Chernov from comment #25)

> According to what?
According to "This is not fixed in years and each and every session management 
code was ported as "#if 0""
If there was some relevant interest, it would be fixed long time, since it's 
really not that hard.

> > 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.

> Hey, how could session management be "apparently relevant for only a
> minority of users", but fixes in its behaviour be crucial for a lot of them?
[...]
> Fully agree here, but we should confirm that nobody said in the beggining
> that upstream changes were about to break session management for KF5
> applications. It was just broken.

Errr... what?
Session management (in terms of "please restore the desktop as I left it") 
doesn't seem very important, but if you click "logout" and *booom*, gone is 
your work of the last two hours because the application had no chance (or, 
well, listened to the wrong events) to ask you to save it, that's pretty 
important...

We're apparently talking past each other.
There're two steps:
a) logout, clients ask to save your stuff. That works (because of the close 
event)
b) login, clients should restart. That's broken (because the close event is not 
just an event, but the window "illegally" being withdrawn during logout)

You propse to fix (b) by breaking (a) and I'm trying to convince you
that this is a really bad idea.

> bugs which should be fixed either in library and its clients. It's better to
> fix them when no one really relies on the stability too much. It looks like
> this time is now for KF5-based application and environment.
Yes, we should fix KMainWindow now (if faking close events is finally not 
considered a permanent behavior despite the majority of clients will probably 
do that in return to the data commit request - with a fair share actually just 
calling close() ...) but that has absolutely no implications on whether it's ok 
to easily break away from established (even though maybe wrong) behavior.
 
> No, that's just postponing and messing up the whole problem. If, as you
> stated, almost no one implemented easy and pretty simple interaction
> appeared in Qt5, even less would care of possible bugs and corner cases of
> the workaround, more complex protocol with close event you propose. There
> would be just another argument that it's just too messy, not to mention
> already existing argument that no one uses session management.

Sorry, but I really cannot read any sense into this paragraph.
Please try to rephrase it. The above isn't English grammar at all.
 
> It won't be fixed until it's broken
So you demand to jeopardize userdata because otherwise code won't be fixed.
Sorry, but there's no way you're ever gonna convince me in this.
Any solution that builds upon "jeopardize userdata" is not a solution at all. 
It's malicious.

> I'm pretty sure there would be packages that would require just
> most recent Qt version, and it would be acceptable.
And jeopardize userdata. What exactly should this help in this case?

> What's wrong in relying on changes in recent Qt release
That you are not. "Recent Qt releases" start to jeopardize userdata because (no 
way) all Qt client code has been fixed, ie. distros must not use Qt 5.7 until 
all client code releases picked up the change.

> In this way all the bugfixes should be postponed till Qt6
If a bugfix is *very* likely gonna break more things more badly than it fixes 
and there is absolutely no need to take this risk? Yes, avoid that fix and come 
up with a more robust interim solution.

> By the way, are you completely sure your changes won't break any clients?
> What if someone relies exactly on the current code?
Err, on the close event? Well, that's exactly what I suggest to preserve.
You're not gonna see more from a ::close() call in client code (it's no virtual 
and not invoked as slot)

> In the opposite, close event or aboutToClose do mean closing
> and quitting,  but don't imply any data interactions (as it's too late)
Errr, no. Please read the Qt API docs.
You simply ::ignore() the close event and nothing is gonna be closed or changed.

That's why it's massively intercepted to ask users to save stuff - what's also 
explicitly suggested in the API docs.
And that's why somebody considered it a good idea to explicitly close windows 
on session end, what it's just not. That "somebody" actually wanted to trigger 
and check the result of the event, but not really close windows. And that's 
what I'm proposing to deal with the situation.

The justification for QGuiApplication::commitDataRequest() though is,
that a QGuiApplication doesn't necessarily have any windows at all and
still wants to save stuff on logout (and of course before the SIGTERM)

=
Completely untested patch (not even a build attempt) for Qt 5.6:

[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
For a KMainWindow solution, one should not require a nasty global
eventfilter on the application - handling KMainWindow::closeEvent()
should be sufficient, but there might be an additional pitfall on modal
windows (ie. if there's already a save dialog, we might have to
forcefully activate that to cause user interaction)

However, as long as QGuiApplication cancels the session lougout as long
as any close event is ignored, this cannot be applied either (ie. still
requires your new patch to Qt) and, of course, this doesn't provide a
solution for Qt5 either - session management on Qt5 will remain broken
forever and just some KDE applications work around that. That's a pretty
crappy situation :-(

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2016-01-27 Thread Thomas-luebking
> 5. I completely don't like the proposed way to preserve the compatibility 
> with (4) and make 
> the use case of broken session management client implementation legal and 
> default, but 
> also try to allow proper-written apps to still survive somehow, adding some 
> strange 
> workarounds to Qt as closing all the windows, but not too much, or API 
> properties to enable 
> proper processing of SM messages.

No ofense, but what you "like" is completely irrelevant.
You propose to intentionally break clients by library changes in some minor 
update, to teach developers to do right, but while you might aim their face, 
you're gonna hit the users (and probably yours)

We had that (I kindly remind of the qDeleteAll fix ...) and it cooked up
hell.

commitDataRequest hardly shows up in lxr.kde.org, what means it's
probably not used at all and aboutToQuit (which isn't used but could
come to rescue) isn't used too much either.

The BY FAR! omnipresent pattern is to listen to queryClose() which is 
called/emitted on -guess what- close events from KMainWindow.
And that's for pretty much sure why the (wrong) behavior in QSessionManager 
exists.

Is this behavior correct? No.
Does this matter? NO!

It's ok to spam a #warning that this behavior is shit and deprecate and
kill it for Qt6 and we might even bail out (aka "fix") KMainWindow
applications NOW by invoking queryClose() on
QGuiApplicationPrivate::commitData() but regardless, we MUST assume this
to be a global default pattern that applications (also beyond KDE) rely
on (also because it's absolutely natural to intercept closing to save
data and not think of closing on session end could be something entirely
different - actually the illegal behavior happens to be the most sane
one...)

Now, *actually* closing windows to test interaction on session end is of
course just as wrong - if the user cancels the logout by such incident,
we should not have closed random other windows before (letting alone
that it causes this but) - therefore I frankly do not understand what's
so complicated about just faking a close event to serve the present
"save your stuff" pattern in a majority in clients without causing the
destructive close itself which may not only be a bit premature, but also
triggers this bug.

It's the least invasive solution that does not require everyone to
signal "yes, i can sessionmanagement" (what's not gonna happen) and we
don't risk loosing the users data (or breaking the ability to cancel the
logout)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  Confirmed

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2015-12-21 Thread Thomas-luebking
(In reply to Andreas Hartmetz from comment #18)
> How should that be done, sending close events and expecting applications to
> save their state in response, but not close windows or the application?

QCloseEvent ce;
QApplication::sendEvent(window, );

You only want to emit the event, the widget doesn't close in response -
the event is (usually) emitted when it wants to close.

> It would mean that applications are session management aware
No, it means they give a shit about "session management", but they do care 
about what happens when the user (or anything) tries to close a window.
The present code in Qt's SM tells me that this is considered the predominant 
way to handle data-safety - also because it's the regular incident.

Notice again that this data protection mechanism has *nothing* to do
with session management in particular, eg. whenever you try to close a
kwrite window w/ modified text, it will ask you "err, really? maybe safe
the file before?" - and at this point the user can also say "whooops, no
- I didn't want to close at all"

The present code triggers this mechanism and it might be required to
preserve that.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Confirmed
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  New

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2015-12-16 Thread Thomas-luebking
The typical fail will be the "there are 5 tabs open, close/cancel"
dialogs.

Afaiu this was added because of some MS Windows behavior and even if
not, one has to assume that clients simply rely on window "save your
work first!" protection to be in place and not somewhen been killed by
the SM (what will happen when the SM got an "ok" and then tries to close
windows or sigterm the process, would it not?)

Large behavioral changes could be denied itr, sending out close events
should bail you out ;-)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Won't Fix
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  New

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2015-12-16 Thread Thomas-luebking
Yes, my concern is that status quo for several/many applications is that
they do no connect to saveStateRequest() or commitDataRequest() and
*only* perform interaction on window close events (since this is the
regular case *during* the session)

Stripping this mechanism will cause a behavioral change that is prone to cause 
data loss on session exit - thus such change may be denied upstream. If so, the 
status quo can be restored by sending close events w/o causing
a) the actual loss of windows in the running session
b) the application to "accidentally" quit early

I don't discuss "what should be", but "what mess have we caused and how
do we get around that" ;-)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Won't Fix
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  New

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2015-12-16 Thread Thomas-luebking
Andreas, the Qt patch kills the ability to cancel the logout process
(when the process or user prevents closing a window), I'm not sure it
will be accepted and if, you probably will have caused a feature
breakage. See comment #8. Instead of actually closing, the system likely
wants to ask whether anyone is ok with closing this window (ie. cause
close events w/o actually closing the window)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Won't Fix
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  New

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 1446865]

2015-12-04 Thread Thomas-luebking
KWin is not responsible for restarting applications.
This bug was *only* about not restoring window manager attributes (position, 
virtual desktop, etc.) on session restorage.

There're fundamental bugs in Qt5 that prevent (both, correct and entire)
restoring of Qt5 applications, see

* https://codereview.qt-project.org/#/c/113806/
* https://codereview.qt-project.org/#/c/113901/
* http://marc.info/?l=kde-core-devel=144832700109449=1

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to qtbase-opensource-src in
Ubuntu.
https://bugs.launchpad.net/bugs/1446865

Title:
  KDE5/Qt5 does not support session restoration

Status in KDE Base Workspace:
  Fix Released
Status in Qt:
  New
Status in plasma-workspace package in Ubuntu:
  Confirmed
Status in qtbase-opensource-src package in Ubuntu:
  New

Bug description:
  KDE5/Qt5 does not support proper session restoration.

  ProblemType: Bug
  DistroRelease: Ubuntu 15.10

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp