use a different tab bar widget for tabbed documents

Authored by rjvbb on Oct 18 2016, 4:21 PM.

Description

use a different tab bar widget for tabbed documents

This is a potential fix for an issue raised on BKO: https://bugs.kde.org/show_bug.cgi?id=363473

It's also the most complete/implementation:

  • applies only when the Macintosh widget style is being used
  • if so, creates a QStyle object for the Fusion widget style
  • when successful, sets the Sublime::ContainerTabBar to use that style

This solves all issues stemming from Qt's use of a "native" widget that is intended only for use in dialogs and not in tabbed document interfaces.

In my testing, the ContainerTabBar ctor is called only rarely, apparently only when changing views (e.g. code -> patch review and back again, or code -> debug). If that observation is correct, use of a global qTabBarStyle variable is justified (but more elegant solutions might exist). This observation also justifies (IMHO) the check for the active application style rather than using an #ifdef Q_OS_OSX or even applying the fix across all platforms and application styles. That is certainly a possibility that doesn't lead to any shocking style mismatches in my eyes. It does cause some loss of compactness when using my QtCurve settings, which is why I added the style check; a small cost as a gesture to users of a highly configurable style.

There is still some weirdness behind the tabs which looks like a misaligned well or frame. I'd love to get that right too.

REVIEW: 128880
BUG: 363473

Details

Committed
kfunkOct 18 2016, 4:21 PM
Parents
R32:088e4ab98b83: Remove now unused variable
Branches
Unknown
Tags
Unknown