Scope of framework integration plugin?

René J. V. Bertin rjvbertin at gmail.com
Mon Nov 30 13:45:41 UTC 2015


Adding KDE-mac because we're the first concerned (thanks for omitting us ... 
again).

First off: what about splitting off the KdePlatformPlugin from 
frameworkintegration? I can see the point that it was conceived to allow pure 
Qt5 applications to integrate with the look KF5 applications have under Plasma.
Make the plugin a standalone component (and dependency for fwintegration), and 
the whole theoretical argument around platform integration becomes moot.

Luigi Toscano wrote:

>> Now I understand that some people don't like the native look of their
>> platform and would prefer using Plasma. 

It is not really about using Plasma. It's also not about forcing anyone to use 
something other than a native look. It's above all about being able to have a 
good and professional look, if possible one that can be tuned to personal 
preference or requirements.
And it's above all too about not forcing anyone what NOT to do based on the same 
kind of dogma that Apple is usually accused of rather than praised for.

I have always believed that one can be most productive if one can adapt one's 
tools rather than having to adapt to one's tools. That may mean that some "angry 
teenager" can completely f**k up his/her environment with counterproductive 
choices, but so what?

>> Sorry I don't have an answer to that

You don't need to, I already found *an* answer. Or a beginning of an answer if 
you prefer.

>> Unfortunately I think it's completely out of scope for the
>> integration platform to be considered outside Plasma.

>From what I can see there is very little in frameworkintegration that is purely 
about Plasma.

> Really? I see people trying to use KDE Applications (for example on #kde) on
> different desktop environment and being confused for the look and feel. I
> understand that:

> - you don't want the Plasma look used outside Plasma

Can someone define what the "Plasma look" is? Breeze? Fine, Plasma can keep that 
one -- but just as I don't want to be told what I'm allowed to use based on some 
dogma that really has no place in a collaborative, open software community I do 
not want to be the one to tell others from KDE-Mac what they're allowed to do or 
not.
Either way, "Plasma look" is what the user defines it to be. Configurability has 
always been central to KDE, and I don't think that should stop.
Heck, it's one of KDE's main arguments and reasons I've started to use KDE 
applications over their Apple-provided counterparts.

> - yes, other desktop environment should provide and integration plugin

I agree, but only to the extent that the current integration plugin doesn't "cut 
it". There's no reason to waste efforts to rewrite something that already does 
the trick.

That said, I will repeat here what I said in another thread:
There are various reasons why I think the look-n-feel of KF5 (but really, Qt5 
apps in general) is insufficient on OS X. Qt provides a common denominator that 
provides a workable compromise on all platforms, but doesn't go beyond that. 
Understandably, in a way. Case in point: Qt Creator doesn't use the default, but 
elaborates on it to provide a much better experience (that still suffers from a 
misconceptions in the domain of the font sizes used throughout the interface).
I've tried to take this up several times on Qt MLs and even in bug report(s), 
but there is clearly little to no animo to act on this. Again, that's probably 
understandable: fine-tuning something like fonts to use is highly application-
specific. Colour palette is affected in a similar fashion, btw.
The code that implements the native OS X style is also pretty complex with its 
mix of C++ and ObjC, so not very accessible to outsiders.

The best way I see to improve the native look-n-feel on OS X (and possibly other 
platforms) is to implement a dedicated theme. KDE applications are already wired 
to use different font and icon roles. The font roles are KDE specific and can 
thus only be handled in KF5 code for now, or else all applications would have to 
be riddled with ifdefs. But it should be feasible to write a theme that 
overrides only the native methods that require it in order to apply the 
requested font sizes/styles, icons and why not even colours.

As I said in another thread, it might even be work to request the native theme 
through KF5's theme selection mechanism, and apply font, icon etc. settings 
through the existing KdePlatformPlugin with my modifications.

And if that's true (or with an improved "native" theme), frameworkintegration 
would be squat in its designated role, be it on a platform that's not Plasma.


> but isn't it really possible to have a "simpler" default integration plugin,
> when no one else is provided, that at least show the icons, for example?

If you mean the user's selected icon theme, then yes. I'd give priority to 
his/her fonts of choice, but the choice of icons is definitely part of what 
should be respected if the user indicates s/he wants this.

> That would belong into Qt, shouldn't it?
> Qt already provides QPlatformTheme plugins that integrate on those
> platforms. If they don't work, we should fix them upstream.
> 

And why would that be any different on Plasma? The qgenericunixtheme already 
contains (outdated) logic that reads KDE settings.
True, I might have used the same techniques I used in my fwintegration patches 
to patch the qgenericunixtheme, and achieve similar results. But the same can be 
said the KdePlatformIntegrationPlugin.

But I'm sure anyone who's ever tried to get Qt patches incorporated knows how 
(understandably) difficult that is (and so tedious that there's at least 1 
company that made it its business). Would you really expect Qt to accept a patch 
that allows generic applications to use font role specifications from KF5? 
They'd rightfully reject such a patch because it'd be up to KF5 to provide the 
glue required to make that work.

> I'm assuming we agree that we expect applications on non-plasma
> platforms to look and behave native.

No. Not if it means that that other choices are off-limits. And not if it means 
you end up stuck with a common-denominator compromise.

> I think we are not helping users of KDE applications but not Plasma users, and
> let's be realistic about the possibility of other desktop environment
> providing an integration plugin.

To repeat something else: simply using QT_STYLE_OVERRIDE or `-style XX` is a 
step in the right direction. But where it was actually enough with Qt4 (in that 
it changed widget drawing and fonts used), it is not with Qt5 (where it only 
changes widget look and layout).

If there were a way in Qt5 to load and apply other settings (esp. fonts) then I 
would not have made the RR that led to this thread. Sadly there is none.

>> Given that: if people agree with my view that the framework integration is
>> only about Plasma, I suggest that we move the framework integration to kde/
>> workspace to release it together with Plasma instead of frameworks.
> 
> IMHO only if it's possible to package and load it outside Plasma, or otherwise
> if there is a more sane default plugin.
> 
> Ciao



More information about the Kde-frameworks-devel mailing list