[KDE/Mac] Thoughts on standard directories in Qt5 - QStandardPaths
David Faure
faure at kde.org
Mon Jan 5 12:52:52 UTC 2015
Hi Ian,
Thanks for this concrete suggestion.
> David's patch replaces the value of "dirs", for some cases in the switch()
> statement, with a value derived from calling xdgDataDirs(). The latter
> currently returns a list of one string, namely the constant
> "/opt/local/share", but could easily be modified to return a list based on
> $XDG_DATADIRS or a value based on the MacPorts ${prefix}, as it was at
> build time.
Whooops! I definitely didn't want to replace the list, but to append or
prepend to it.
Sorry if this created any confusion... this was definitely not my intention.
> My idea is simply to move the *second* hunk of David's patch, in its
> entirety, to insert it at the line following:
> ----------------------------------------------------------------------------
> ------------------------- QStringList
> QStandardPaths::standardLocations(StandardLocation type) {
> QStringList dirs;
Sounds good.
> The effect of this would be to *prepend* the list from xdgDataDirs() to the
> standard (Apple OS X) list provided by QSP. So the order of paths for
> directories of the required type would be:
>
> 1. Local directory (writeable)
> 2. XDG-type directories, based on MacPorts' builds of apps that come
> from releases by the KDE Community (colloquially called "KDE
> apps" in the MacPorts world, and in the world at large, I imagine
> [1]).
And not just apps coming from the KDE community, but any Qt app that install
stuff into /opt/local/share...
> 3. Standard Apple OS X directories, which *might* be used by Qt-based
> apps that are built by MacPorts but not released by the KDE Community (e.g.
> QGIS) [2].
Plus apps not built by MacPorts, of course.
> I think we should also implement, in the patch, support for *all* XDG-type
> directories AND the corresponding XDG_* environment variables,
> including XDG_*_HOME directories, in either ::standardLocations()
> or ::writableLocation().
OK. You can take that code from qstandardpaths_unix.cpp ;-)
I could update my patch, but I'm coding blind, so it would be much better if
someone with a Qt build from sources (git) on OS X could finish the patch and
then submit it to gerrit.
> [2] Installation locations used by apps within MacPorts are determined by
> MacPorts port developers. In KDE 4, the developers use the same kind
> of directory tree as Linux distros and KDE developers do, but based on
> /opt/local for read-only files.
Surely there are other apps doing that, not just KDE apps?
The only thing I'm wondering about is: this approach will force users to
export XDG_DATA_DIRS=/opt/local/share
This is why I was wondering if this couldn't be the default value, much like
/usr/local/share:/usr/share is the default value for XDG_DATA_DIRS on
freedesktop platforms.
It would make sense, if this is the default prefix for MacPorts installs.
--
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5
More information about the kde-mac
mailing list