[Interest] about the 5.10 Macintosh style (as a standalone project)

René J.V. Bertin rjvbertin at gmail.com
Thu Feb 8 13:08:42 CET 2018


Hi,

I must have mentioned already that I am maintaining a project that provides backported and slightly customised versions of the Cocoa QPA and the Macintosh style (called Aqua to avoid hiding the official version). The stable branch currently has these plugins from the qtbase 5.9 branch and will work with Qt 5.8 and 5.9 on OS X 10.9 and up.

I noticed that Qt 5.10 provides the Mac style as a separate plugin and continues the move away from the HI Toolbox, so I spent some time rebasing my Aqua implementation on the 5.10 Mac style. (I applied a 5.9->5.10 branch diff to my sources, which applied with "only" 25 or so failed hunks.)

Somewhat to my surprise there were only a handful changes that required backporting to Qt 5.8/5.9, and I found only 1 change that I had to backport to 10.9 . In fact, I have the impression there's actually a bit less code that requires 10.10 or higher.

Overall the style works, including my modifications like a simple implementation of menu sections (texted separators, rendered as just an inactive menu item with a separator underneath and/or above). There are a few glitches though:

- I had to scale the PE_IndicatorArrow arrows an additional factor 4 to get them to an acceptable size
- the "aqua" pattern in progressbars doesn't animate
- the progressbar doesn't advance in the styles example
- vertical sliders with a knob (QSlider) act weird. In the sliders example it moves sideways to the left along with the vertical movement. And in another example (oxygen-demo, from the KDE Oxygen style), it moves correctly along the vertical progressbar in opposite direction of the vertical scrollbar, but when I grab the knob itself the slide moves in the opposite direction (and the knob disappears when I release it).
- horizontal sliders do not (always) display at the correct width immediately in oxygen-demo (but they do after I switch the application style to and from any other style).

(Slider widget source from oxygen-demo: https://cgit.kde.org/oxygen.git/tree/kstyle/demo/oxygensliderdemowidget.cpp)

I haven't yet been able to figure out the issues with the animation and vertical slider. I do include a number of "private" copies of Qt 5.10 implementation files in the plugin build (including qstyleanimation.cpp) so a priori the plugin should be using the correct version of the classes in question.

I'd appreciate pointers or suggestions of course (but please don't feel obliged to waste your time).

Thanks,
R.



More information about the Interest mailing list