[KDE/Mac] Review Request 120437: [OS X] patchset to make QtCurve 1.8.18+ build and work
René J.V. Bertin
rjvbertin at gmail.com
Tue Sep 30 13:22:22 UTC 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/120437/
-----------------------------------------------------------
(Updated Sept. 30, 2014, 3:22 p.m.)
Review request for KDE Software on Mac OS X, André Marcelo Alvarenga, Yuri Chornoivan, and Yichao Yu.
Changes
-------
This should address the issues I just closed as fixed.
Repository: qtcurve
Description
-------
KDE is built on a cross-platform framework, and as such most applications (not directly linked to the Plasma desktop or X11) function or can be made to function fine.
Qt will use a native style by default, but supports the same style plugins as it does on other platforms, which bring the advantage of better (more precise) and more compact layout, without by definition reducing integration with the OS X desktop.
As such, QtCurve 1.8.14 worked "out of the box" (http://kde-look.org/content/show.php?content=40492, source from http://craigd.wikispaces.com/file/view) and I created a MacPorts port for it (https://trac.macports.org/ticket/44527). With the `kde4-workspace` port installed, one has almost the full customisation experience, minus everything window-manager related of course, nor full control of window backgrounds (not allowed by Qt and/or OS X).
The current version, which has seen many changes that require X11, was less straightforward to get to work, requiring a considerable collection of small changes.
The brunt of the present patchset consists of making the code in question conditional on the presence of `Q_WS_X11`, `Q_OS_MAC`, `__MACH__` or `__APPLE__` in non Qt code and `APPLE` in the cmake files. A few patches introduce functions not available on OS X (getline) or replace them with OS X specifics (`clock_gettime` -> `mach_absolute_timer`, nicely initialised with a dylib constructor function :) ) while others simply ensure that header files are found (or inexistent ones ignored).
The only functional guess/change I made is in `setOpacityProp()`, where I added a `w->setWindowOpacity( 0.01 * opacity )` for non Q_WS_X11 code, presuming that `prop` is simply on the 0-100 percentage as exposed in the preferences dialog.
Diffs (updated)
-----
qt4/style/qtcurve.cpp 7346c2f
qt4/style/qtcurve_plugin.cpp f390da4
qt5/CMakeLists.txt 1d0359e
qt5/style/CMakeLists.txt b6cb222
qt4/kwinconfig/CMakeLists.txt cbd8b62
qt4/style/CMakeLists.txt f38d029
qt4/config/CMakeLists.txt 15454e6
qt4/config/exportthemedialog.h 42590ec
qt4/config/exportthemedialog.cpp f39b86d
qt4/kwin/CMakeLists.txt 654604b
lib/utils/CMakeLists.txt 15757ed
lib/utils/color.h 2c7081f
lib/utils/map.c a829e9e
lib/utils/process.c f2490ef
lib/utils/timer.c 879451e
CMakeLists.txt f76fd1b
gtk2/common/config_file.c d732ca9
gtk2/style/CMakeLists.txt 01e8891
gtk2/style/qt_settings.c f5a5c98
lib/cairo/CMakeLists.txt c66c63c
Diff: https://git.reviewboard.kde.org/r/120437/diff/
Testing
-------
On OS X 10.6.8 against kdelibs 4.14.1 and Qt 4.8.6 . This OS requires to build v1.8.18 with a gcc version from MacPorts in order to get the necessary C++11 support; newer OS versions will use a recent clang version (system compiler).
- Qt4/KDE4 support: OK (see screenshot)
- GTk2 support: OK
- X11 support: builds but I have no idea what it's supposed to do
- Qt5 support: OK (against Qt 5.3.1 obtained with Digia's installer)
File Attachments
----------------
sample showing a native file dialog for comparison
https://git.reviewboard.kde.org/media/uploaded/files/2014/09/30/02545bef-04d2-4a45-8955-e13bf7d063a0__Screen_shot_2014-09-30_at_14.05.54.png
KDE4 systemsettings and the QtCurve configuration dialog
https://git.reviewboard.kde.org/media/uploaded/files/2014/09/30/fe5564f2-5e4e-485a-96d7-d192ff104261__QtCurve-1818.png
KDE4 systemsettings and QtCurve config dialog with QtCuve 1.8.14, for comparison
https://git.reviewboard.kde.org/media/uploaded/files/2014/09/30/6bd8dd5a-9b94-43c3-88d9-c9be32a56b72__QtCurve-1814.png
Thanks,
René J.V. Bertin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20140930/7a76e644/attachment-0001.html>
More information about the kde-mac
mailing list