On Thursday September 24 2015 22:56:37 David Faure wrote:

> Maybe this needs to be per-method-call then.... :
> * if libA installs stuff into XDG paths, then it would find it using 
> QSP::locate(type, filename, XDG)
> * the alternative would be QSP::locate(type, filename, Native), which would 
> be the default.
> This seems more correct to me after all, no? Porting the KDE code would be 
> just running
> one perl script, don't worry about that part.

I've whipped up an alternative patch that is a more or less rough 
implementation of this idea combined with my thoughts about it described 
earlier : cf.
https://github.com/RJVB/macstrop/blob/master/aqua/qt5-kde-devel/files/patch-QSP-multiple-conventions.diff

There's a problem with that approach, though: Qt itself uses QSP; at least 
QLoggingRegistry::init() (qloggingregistry.cpp:279 for Qt 5.5.0) uses 
QSP::standardLocations(GenericConfigLocation) to determine where to 
store/obtain the logging defaults (QtProject/qtlogging.ini) .

Using a per-method-call parameter with a default set when Qt is built means 
libraries calling QSP cannot be toggled after they've been built. For the 
particular file I happened upon this may be harmless, but I must admit I don't 
really like the idea. It's bound to lead to conflicts at some point (with full 
application of Murphy's law, evidently).

Of course we could combine the 2 principles to come up with a default 
convention that means "return the last used convention", but that would mean 
applications could end up using different conventions during a single run. So 
that's not an option either.

The more I think about it, the more I like the idea of a dedicated standalone 
framework that sets a (build-time defined) default convention, but can also be 
used to toggle the convention. That doesn't even have to go against what I said 
earlier about not targeting only KF5 applications, what with KF5 frameworks 
intended to be of general use :)
I reckon there is already a mechanism in place (in Qt or in KF5) to determine 
at runtime whether a class method is available (or some kind of weak linking), 
so that the framework will work with patched and unpatched Qt versions?

R.
_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to