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: 

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 

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

Interest mailing list

Reply via email to