[Differential] [Request, 263 lines] D2252: [ksmserver] Create a dedicated binary from KSMShutdownDlg

graesslin (Martin Gräßlin) noreply at phabricator.kde.org
Fri Jul 22 08:10:52 UTC 2016


graesslin created this revision.
graesslin added a reviewer: Plasma.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY
  The idea behind this change is to have a dedicated binary for the
  logout dialog. As a follow up ksmserver needs to be adjusted to invoke
  the helper binary instead of interacting with KSMShutdownDlg directly.
  
  This will bring quite some improvements to the logout architecture:
  
  - ksmserver doesn't need to run a QEventLoop to wait for the dialog to finish
  - it becomes easier to test changes for the logout dialog, one doesn't need to restart the session any more
  - ksmserver becomes better guarded against problems in the UI layer (e.g. OpenGL errors)
  - the binary can be changed to support Wayland
  - ksmserver becomes better guarded against problems with updating Qt while the session is running
  
  This change only introduces the creation of the binary. A new sub-dir
  "logout-greeter" is added which creates a ksmserver-logout-greeter.
  The greeter defines various command line arguments for the options which
  are being passed to the KSMShutdownDlg.
  
  If the dialog returns an exit value of 0 it is interpreted as accepted.
  A return value != 0 indicates that the user rejected the logout.
  
  The dialog also passes additional values back. In particular the logout
  method might be changed and returned back to ksmserver. To support this
  operation a pipe filedescriptor can be passed to the greeter. If present
  the greeter will write the numerical value of KWorkspace::ShutdownType
  into the pipe on success.
  
  To indicate how the interaction - especially the reading from pipe -
  works, the change comes with an additional test binary. It forwards
  the command line arguments and creates the pipe to pass to the greeter
  and reads it back in a helper thread to be non-blocking. This approach is
  inspired from kwin_wayland's starting of Xwayland.

TEST PLAN
  See the new test binary

REPOSITORY
  rPLASMAWORKSPACE Plasma Workspace

BRANCH
  ksmserver-logout-greeter

REVISION DETAIL
  https://phabricator.kde.org/D2252

AFFECTED FILES
  ksmserver/CMakeLists.txt
  ksmserver/config-ksmserver.h.cmake
  ksmserver/logout-greeter/CMakeLists.txt
  ksmserver/logout-greeter/main.cpp
  ksmserver/logout-greeter/tests/CMakeLists.txt
  ksmserver/logout-greeter/tests/main.cpp
  ksmserver/shutdowndlg.cpp
  ksmserver/shutdowndlg.h

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: graesslin, #plasma
Cc: plasma-devel, jensreuterberg, abetts, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20160722/ae8fa1f7/attachment-0001.html>


More information about the Plasma-devel mailing list