Digging through Qt's source code to figure out if and how I can get KF5 
applications to honour theming settings on OS X, I observe the following in 
class QKdeThemePrivate in qgenericunixthemes.cpp:

    static QString kdeGlobals(const QString &kdeDir)
    {
        return kdeDir + QStringLiteral("/share/config/kdeglobals");
    }

and QVariant QKdeThemePrivate::readKdeSetting() then does

    foreach (const QString &kdeDir, kdeDirs) {
        QSettings *settings = kdeSettings.value(kdeDir);
        if (!settings) {
            const QString kdeGlobalsPath = kdeGlobals(kdeDir);
            if (QFileInfo(kdeGlobalsPath).isReadable()) {
            // ... etc ...

It may be intentional that that file avoids the use of QStandardPaths (is it?), 
but it seems that this code cannot read the kdeglobals file in its intended 
location (~/.config/kdeglobals on XDG-compliant systems). Not even when $KDExxx 
variables are set to provide the correct value for `kdeDirs` .

Am I right that kdeGlobals() should return the current value only if 
kdeVersion<=4, and for kdeVersion>=5 it should rather return `kdeDir + 
QStringLiteral("/kdeglobals")`, with `kdeDirs` extended to include ~/.config? 
In that case, should a fallback for "/share/config/kdeglobals" be added?

A pure KF5 system will not have ~/.kde*/share/config/kdeglobals, correct?

R.
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to