KTitleWidget and the native Mac style

René J.V. Bertin rjvbertin at gmail.com
Tue Jul 4 15:55:01 UTC 2017


On Tuesday July 04 2017 15:49:28 Kevin Funk wrote:

>With regards to the "Widget Style and Behaviour" label in the `kcmshell5 
>style` dialog: I don't find that particularly attracting under Breeze as well.
>
>It's too "bulky" for my taste. 

Indeed. I just notice that contrary to what you'd expect, unticking "draw a frame around page titles" in the Breeze settings only makes the frame invisible but does NOT remove the space allocated for it. It would probably look a lot less bulky without that useless padding, or if it adopted the same height as the text to look more like a banner.

I agree it isn't particularly necessary to use a bigger font, but that too is a bit subject to personal taste. It would probably have made more sense to introduce a new font role/category for this (or repurpose the Window Title font role).

>Maybe we can find a solution that works well under both styles?

Hmmm, Breeze already checks if widgets inherit KTitleWidget in order to decide if it must apply the aforementioned setting (StyleConfigData::titleWidgetDrawFrame()). That means one could obtain the same result as far as the frame is concerned even if KTitleWidget does NOT create a filled and outlined frame itself. The QtCurve style also checks for KTitleWidgets (styles shipped by Qt evidently won't do that).

IOW, KTitleWidget only needs to create a transparent/invisible QFrame. Breeze and QtCurve can decide whether and how to render it much like they already do; Oxygen already skips renders it invisibly.

Alternatively the KTitleWidget ctor could try to read the TitleWidgetDrawFrame key from breezerc with a default of False. That should cover things on non-Plasma DEs, but it's not very elegant.

I don't think the platform theme plugin can be of real influence here, can it? FWIW, I do have a standalone fork of the Macintosh widget style (from Qt 5.9, works with 5.8 too) in which I could add KDE-specific code but that would benefit only those applications that embed the plugin.

>    This patch removes the bold weight from KTitleWidget and makes the text
>     a bit bigger, improving focus. This is more in line with common
>     expectations of a title, and it's more in line with Plasma 5's
>     typography.

I'm not sure what my common expectations are for a dialog title but I think they'd put the title text in the window titlebar. Or else centred horizontally, possibly with underlining. Maybe a style could underline text over the entire widget width? Both (centring and underlining) would not look as much deviant on Mac as the current title look.

FWIW and beyond the topic at hand: Mac dialogs that adopt a tabbed design usually have the tabs (icons or text labels) in a horizontal top row so they already have something like a title at the top. If I were to add a title to such dialogs I'd experiment with putting it in a completely different position, at the lower right, above or under the OK/Cancel buttons. That's often where you look first when a dialog opens, and also the last region (if you favour the mouse over the keyboard).

>PS: I've no incentive for getting this fixed, just wanted to add my 2c and 
>connect people.

Me neither for myself, I'm happy with how my QtCurve theme looks but I'm also trying to improve the way KDE software looks using the native style.

R.


More information about the Kde-frameworks-devel mailing list