[Interest] My experience porting to Qt5 (on OS X)
morten.sorvig at nokia.com
morten.sorvig at nokia.com
Mon Sep 3 12:18:46 CEST 2012
On Sep 2, 2012, at 1:38 PM, ext Till Oliver Knoll <till.oliver.knoll at gmail.com> wrote:
> Hi,
>
Hi! Thanks for testing. Commenting on some of the issues below:
>
> GOOD:
>
> - "Lion Fullscreen" is now supported out of the box (so I can get rid of
> my native API hacking :)) However it seems that the "fullscreen" option
> is added to every main window by default. Not sure whether I really want
> this (should be a window configuration flag maybe - or maybe that's
> already present as an option?)
We should probably add a flag, and find a way to fit the tree options (on, off, auto) into Qt::WindowFlags..
>
> BAD:
> - Lots of rendering artifacts (mostly seems like a "refresh" problem:
> old pixel "blocks" remain on the screen until a repaint is enforced,
> e.g. by rescaling the window - can also be observed with the Qt 5
> Designer etc.)
This is unexpected, we've been running for example Qt Creator on Qt 5 artifact-free. As you note elsewhere it could be a 10.6 issue.
>
> - setUnifiedTitleAndToolBarOnMac(true) doesn't seem to have an effect
> anymore:
>
> THIS IS AN ABSOLUTE SHOW-STOPPER ON MAC!
I don't want to bring setUnifiedTitleAndToolBarOnMac forward to Qt 5. There are two reasons for this:
- It's a horrible hack. In Qt 4 we move the toolbar out of it's containing main window, embed it in an external NSView, and then #ifdef all the layout code to account for the missing toolbar.
- It emulates a native toolbar. This gives you something that looks similar, but behaves slightly different.
Instead, I see two possible replacements:
- Wrap NSToolBar in a QAction-based API. This gives you access to the real NSToolBar, with perfect native look-and-feel (Including the customisation menu). The downside is that you have to play by the NSToolBar rules. Research work on this option is underway, see http://qt.gitorious.org/qtplayground/qtmacextras.
- Expand QWindow to cover the toolbar/titlebar area. Qt would then be free to draw the toolbar is it likes. Chrome does something like this to implement tabs-on-top, so it's not completely unprecedented.
Morten
More information about the Interest
mailing list