[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-mac
Subject:    Re: [KDE/Mac] Multiplatform frameworks
From:       Ian Wadham <iandw.au () gmail ! com>
Date:       2015-03-01 2:56:23
Message-ID: 255D3639-C289-498B-91B6-59EA602B5B89 () gmail ! com
[Download RAW message or body]

Hi Jeremy,

On 28/02/2015, at 11:20 PM, Jeremy Whiting wrote:
> On Sat, Feb 28, 2015 at 4:51 AM, René J.V. <rjvbertin@gmail.com> wrote:
> On Saturday February 28 2015 22:00:07 Ian Wadham wrote:
> > > We could change GenericDataDir in QStandardPaths to be:
> > > 
> > > "~/Library/Application Support/Qt5", "/Library/Application Support/Qt5"
> > > 
> > > That would work for ALL applications that use Qt5 and QSP, regardless of \
> > > origin, and would be a more "correct" usage of Apple OS X by the Qt 5 \
> > > libraries.

> Then data will all be under ~/Library/Application Support/Qt5/appname ? that's a \
> bit cleaner,

Errrmm, not "all", unless there has been a change in KDE Community designs/policy…

App data would be INSTALLED under /Library/Application Support/Qt5/appname (no ~)
and would be read-only.  The "~" version is used by apps when they *execute*, either
for the user of the app to override one of the read-only files (e.g. <appname>ui.rc) \
or to save personal data for that app (e.g. statistics in the KPat game).

> but why would Qt/KDE applications need to use a namespace like that when apple's \
> own applications don't?

Ahem!  Why do American web addresses not have a country code?  It is a matter of
"first in, best dressed", as we say in Australia.

Anyway, as René says, it really is best to keep Open Source files quite separate \
from Apple files, to avoid any possibility of cross-contamination, name duplication \
or even actual deletion or overwriting.  That is why MacPorts uses /opt/local for \
utilities and libraries, rather than /usr/local.

> Here I see ~/Library/Application Support/kf5 for all frameworks as it is, I don't \
> think any frameworks or applications are using GenericDataLocation directly, they \
> all use a subfolder of it, otherwise we would see application data files in \
> /usr/share on linux which isn't recommended either.

What I see is source-code of apps that have been ported to KF5, such as, in Granatier \
[1].

    49	m_soundExplode = new KgSound(QStandardPaths::locate
                                        (QStandardPaths::DataLocation, \
"sounds/explode.wav"));  102	            const QStringList dirs = \
                QStandardPaths::locateAll
                                        (QStandardPaths::GenericDataLocation, \
"granatier/arenas",  QStandardPaths::LocateDirectory);

This has been ported and tested on Linux and Linux CI (at least) and there it is \
(AFAIK) using plain, unaltered QStandardPaths.  So there should be no kf5/ subfolder \
there, unless it comes from $XDG_DATA_DIRS.

The first lines of code will find the explosion sound, either in \
/usr/local/share/granatier, where it has been installed, OR in \
~/.local/share/granatier, if the user has their own explosion sound.  The *order* of \
paths in QSP ensures that the latter is picked up first, if it exists.  It will not \
be found in /usr/share, because it has not been installed there.

The second bit of code finds all folders that contain Granatier "arenas" (board \
layouts containing bombs, etc.).  These could be installed or provided by the user \
(or GHNS?).

Note that the code could have said '(QStandardPaths::DataLocation, "arenas", '.  So \
no way for a "kf5" suffix to get in there.  Maybe it comes from $XDG_DATA_DIRS (?).

Also, there would be several shared data folders in GenericDataLocation, alongside
the DataLocation folders for the apps.  See [2] for details.  These would fit in \
quite well with standard paths on Apple OS X set to:

     "~/Library/Application Support/<subdir>", "/Library/Application \
Support/<subdir>"

always supposing we really *want* to be good Apple citizens.  They would not look at
all good if they were directly under "Application Support/", because they are not \
apps.

Cheers, Ian W.

[1] https://projects.kde.org/projects/kde/kdegames/granatier/repository/revisions/master/entry/src/game.cpp
 [2] http://api.kde.org/ecm/kde-module/KDEInstallDirs.html

_______________________________________________
kde-mac@kde.org
List Information: https://mail.kde.org/mailman/listinfo/kde-mac
KDE/Mac Information: http://community.kde.org/Mac


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic