Review Request 115225: Add runtime platform support to KWindowInfo

Martin Gräßlin mgraesslin at kde.org
Wed Jan 22 13:09:01 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/115225/
-----------------------------------------------------------

Review request for KDE Frameworks and kdewin.


Repository: kwindowsystem


Description
-------

Add runtime platform support to KWindowInfo

Main idea of this change is to only pick the X11 implementation in case
that the application is running on the X11 platform. So far it was a
compile time switch which meant that if compiled with X11 support but
not running on the X11 platform it would have caused runtime errors.

To make this possible a KWindowInfoPrivate class with a dummy
implementation is provided. This is used as d-ptr for KWindowInfo.
Thus there is one generic implementation and the implementation of
KWindowInfo is no longer ifdefed for the supported platforms.

The platform specific code can inherit from KWindowInfoPrivate and
overwrite the dummy method implementation. KWindowInfoPrivate provides
a factory method where the platform specific implementation can be
hooked into. There we can have both compile time and runtime checking.
If there is no platfom specific implementation available the dummy
implementation is used.

NOTE: THIS CHANGE BREAKS THE WINDOWS AND MAC BACKEND!

Windows and Mac is excluded from build. At the moment they get the
dummy implementation. Unfortunately I don't have the possibility to
compile the changes and thus don't dare to touch the code. Fixes from
the teams are highly appreciated.


Diffs
-----

  src/CMakeLists.txt e32a1150a2c190f23ad456ca8218b012c5d71507 
  src/kwindowinfo.h 171f441ff329a5356ccf560341272199e20c837a 
  src/kwindowinfo.cpp PRE-CREATION 
  src/kwindowinfo_p.h PRE-CREATION 
  src/kwindowinfo_p_x11.h PRE-CREATION 
  src/kwindowinfo_x11.cpp 865d8bed085e987f97f479ea8aa0e6de8567586f 

Diff: https://git.reviewboard.kde.org/r/115225/diff/


Testing
-------

Unit test from https://git.reviewboard.kde.org/r/115190/ is still working. Now you can guess why I wrote that test ;-)


Thanks,

Martin Gräßlin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140122/531364e5/attachment.html>


More information about the Kde-frameworks-devel mailing list