/usr/include/marble/MarbleDirs.h is in libmarble-dev 4:17.12.3-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | //
// This file is part of the Marble Virtual Globe.
//
// This program is free software licensed under the GNU LGPL. You can
// find a copy of this license in LICENSE.txt in the top directory of
// the source code.
//
// Copyright 2006-2007 Torsten Rahn <tackat@kde.org>
// Copyright 2007 Inge Wallin <ingwa@kde.org>
//
#ifndef MARBLE_MARBLEDIRS_H
#define MARBLE_MARBLEDIRS_H
#include "marble_export.h"
#include <QDir>
class QString;
class QStringList;
namespace Marble
{
/**
* @short A class that manages data look-up for Marble.
*
* The class basically does for Marble what KStandardDirs did for KDE4.
* Given that the MarbleWidget is a Qt5-only library and given that it
* comes with its own model and data we need this class.
*
* The class needs to respect the requirements of the different plattforms,
* so to avoid very different implementations for each plattform we
* specify how data should get looked up:
*
* Generally there are two places of which Marble will draw it's data from:
*
* "localPath" and "systemPath".
*
* look-up of the data should happen in the localPath first.
* Only if the look-up in the localPath failed then MarbleDirs should
* look up the data in the systemPath.
*
* localPath:
* The place for localPath should match space that is fully accessible to
* the user. On Unix-like plattforms this matches
* QDir::homePath() + "/.marble/data"
*
* systemPath:
* Ideally the systemPath should match the place where cmake installed the
* data for marble. However this doesn't work for all plattforms:
*
* - For Linux and Mac non-bundle deployment the location can be
* chosen using the cmake MARBLE_DATA_PATH option at compile time.
* - For Mac bundle deployment the location inside the bundle gets
* chosen as the default location.
* - For Windows a path relative to the application binary can be chosen
* as this should usually work without problems.
*
* To allow kiosk-like setups and for custom setups in general
* it should be possible to change the place of the systemPath at runtime.
* Therefore we introduce a global variable "MarbleDataPath" in the
* MarbleDirs.h source code.
* Initially MarbleDataPath is empty. The systemPath will point to
* MarbleDataPath as soon as it gets changed to a valid non-empty path. So
* as soon as MarbleDataPath contains a valid path the path specified by
* cmake will get ignored.
*
* ( Possible future extension: if the MarbleDataPath contains several
* valid paths separated by a colon then each of these paths should be
* used for look up in the same order as for the KDE kiosk framework. )
*
* It's the duty of each application that uses the MarbleWidget to retrieve
* the value of the MarbleDataPath from the MarbleWidget and to save it
* in its settings and restore it on start-up of the application.
*
*/
class MARBLE_EXPORT MarbleDirs
{
public:
MarbleDirs();
static QString path( const QString& relativePath );
static QString pluginPath( const QString& relativePath );
static QStringList entryList( const QString& relativePath, QDir::Filters filters = QDir::NoFilter );
static QStringList pluginEntryList( const QString& relativePath, QDir::Filters filters = QDir::NoFilter );
static QString systemPath();
static QString pluginSystemPath();
static QString localPath();
static QStringList oldLocalPaths();
static QString pluginLocalPath();
static QString marbleDataPath();
static QString marblePluginPath();
static void setMarbleDataPath( const QString& adaptedPath);
static void setMarblePluginPath( const QString& adaptedPath);
static void debug();
private:
Q_DISABLE_COPY( MarbleDirs )
class Private;
Private * const d;
};
}
#endif
|