Allow QStandardPaths (Mac, Windows, Unix) to be bootstrapped
This allows using QStandardPaths in one of the bootstrapped tools, if required for a future need. The Blackberry version appears to be usable in bootstrapped mode already. Change-Id: Ia4e9b9564395d2e151f8ac229ac2a2aa2982e92f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This commit is contained in:
parent
300534fc21
commit
a025a2fcfa
@ -44,8 +44,11 @@
|
|||||||
#include <qdir.h>
|
#include <qdir.h>
|
||||||
#include <qfileinfo.h>
|
#include <qfileinfo.h>
|
||||||
#include <qhash.h>
|
#include <qhash.h>
|
||||||
|
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
#include <qobject.h>
|
#include <qobject.h>
|
||||||
#include <qcoreapplication.h>
|
#include <qcoreapplication.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef QT_NO_STANDARDPATHS
|
#ifndef QT_NO_STANDARDPATHS
|
||||||
|
|
||||||
@ -300,7 +303,7 @@ QString QStandardPaths::findExecutable(const QString &executableName, const QStr
|
|||||||
an empty QString if no relevant location can be found.
|
an empty QString if no relevant location can be found.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef Q_OS_MAC
|
#if !defined(Q_OS_MAC) && !defined(QT_BOOTSTRAPPED)
|
||||||
QString QStandardPaths::displayName(StandardLocation type)
|
QString QStandardPaths::displayName(StandardLocation type)
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -42,7 +42,10 @@
|
|||||||
#include "qstandardpaths.h"
|
#include "qstandardpaths.h"
|
||||||
#include <qdir.h>
|
#include <qdir.h>
|
||||||
#include <private/qcore_mac_p.h>
|
#include <private/qcore_mac_p.h>
|
||||||
|
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
#include <qcoreapplication.h>
|
#include <qcoreapplication.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <ApplicationServices/ApplicationServices.h>
|
#include <ApplicationServices/ApplicationServices.h>
|
||||||
|
|
||||||
@ -101,12 +104,16 @@ static QString getFullPath(const FSRef &ref)
|
|||||||
|
|
||||||
static void appendOrganizationAndApp(QString &path)
|
static void appendOrganizationAndApp(QString &path)
|
||||||
{
|
{
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
const QString org = QCoreApplication::organizationName();
|
const QString org = QCoreApplication::organizationName();
|
||||||
if (!org.isEmpty())
|
if (!org.isEmpty())
|
||||||
path += QLatin1Char('/') + org;
|
path += QLatin1Char('/') + org;
|
||||||
const QString appName = QCoreApplication::applicationName();
|
const QString appName = QCoreApplication::applicationName();
|
||||||
if (!appName.isEmpty())
|
if (!appName.isEmpty())
|
||||||
path += QLatin1Char('/') + appName;
|
path += QLatin1Char('/') + appName;
|
||||||
|
#else
|
||||||
|
Q_UNUSED(path);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString macLocation(QStandardPaths::StandardLocation type, short domain)
|
static QString macLocation(QStandardPaths::StandardLocation type, short domain)
|
||||||
@ -180,6 +187,7 @@ QStringList QStandardPaths::standardLocations(StandardLocation type)
|
|||||||
return dirs;
|
return dirs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
QString QStandardPaths::displayName(StandardLocation type)
|
QString QStandardPaths::displayName(StandardLocation type)
|
||||||
{
|
{
|
||||||
if (QStandardPaths::HomeLocation == type)
|
if (QStandardPaths::HomeLocation == type)
|
||||||
@ -197,5 +205,6 @@ QString QStandardPaths::displayName(StandardLocation type)
|
|||||||
|
|
||||||
return static_cast<QString>(displayName);
|
return static_cast<QString>(displayName);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -44,23 +44,30 @@
|
|||||||
#include <qfile.h>
|
#include <qfile.h>
|
||||||
#include <qhash.h>
|
#include <qhash.h>
|
||||||
#include <qtextstream.h>
|
#include <qtextstream.h>
|
||||||
#include <qcoreapplication.h>
|
|
||||||
#include <private/qfilesystemengine_p.h>
|
#include <private/qfilesystemengine_p.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
|
#include <qcoreapplication.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef QT_NO_STANDARDPATHS
|
#ifndef QT_NO_STANDARDPATHS
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
static void appendOrganizationAndApp(QString &path)
|
static void appendOrganizationAndApp(QString &path)
|
||||||
{
|
{
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
const QString org = QCoreApplication::organizationName();
|
const QString org = QCoreApplication::organizationName();
|
||||||
if (!org.isEmpty())
|
if (!org.isEmpty())
|
||||||
path += QLatin1Char('/') + org;
|
path += QLatin1Char('/') + org;
|
||||||
const QString appName = QCoreApplication::applicationName();
|
const QString appName = QCoreApplication::applicationName();
|
||||||
if (!appName.isEmpty())
|
if (!appName.isEmpty())
|
||||||
path += QLatin1Char('/') + appName;
|
path += QLatin1Char('/') + appName;
|
||||||
|
#else
|
||||||
|
Q_UNUSED(path);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QStandardPaths::writableLocation(StandardLocation type)
|
QString QStandardPaths::writableLocation(StandardLocation type)
|
||||||
@ -141,6 +148,7 @@ QString QStandardPaths::writableLocation(StandardLocation type)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
// http://www.freedesktop.org/wiki/Software/xdg-user-dirs
|
// http://www.freedesktop.org/wiki/Software/xdg-user-dirs
|
||||||
QString xdgConfigHome = QFile::decodeName(qgetenv("XDG_CONFIG_HOME"));
|
QString xdgConfigHome = QFile::decodeName(qgetenv("XDG_CONFIG_HOME"));
|
||||||
if (xdgConfigHome.isEmpty())
|
if (xdgConfigHome.isEmpty())
|
||||||
@ -199,6 +207,7 @@ QString QStandardPaths::writableLocation(StandardLocation type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
QString path;
|
QString path;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
@ -44,7 +44,10 @@
|
|||||||
#include <qdir.h>
|
#include <qdir.h>
|
||||||
#include <private/qsystemlibrary_p.h>
|
#include <private/qsystemlibrary_p.h>
|
||||||
#include <qstringlist.h>
|
#include <qstringlist.h>
|
||||||
|
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
#include <qcoreapplication.h>
|
#include <qcoreapplication.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <qt_windows.h>
|
#include <qt_windows.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
@ -107,12 +110,14 @@ QString QStandardPaths::writableLocation(StandardLocation type)
|
|||||||
result = convertCharArray(path);
|
result = convertCharArray(path);
|
||||||
if (isTestModeEnabled())
|
if (isTestModeEnabled())
|
||||||
result += QLatin1String("/qttest");
|
result += QLatin1String("/qttest");
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
if (type != GenericDataLocation) {
|
if (type != GenericDataLocation) {
|
||||||
if (!QCoreApplication::organizationName().isEmpty())
|
if (!QCoreApplication::organizationName().isEmpty())
|
||||||
result += QLatin1Char('/') + QCoreApplication::organizationName();
|
result += QLatin1Char('/') + QCoreApplication::organizationName();
|
||||||
if (!QCoreApplication::applicationName().isEmpty())
|
if (!QCoreApplication::applicationName().isEmpty())
|
||||||
result += QLatin1Char('/') + QCoreApplication::applicationName();
|
result += QLatin1Char('/') + QCoreApplication::applicationName();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DesktopLocation:
|
case DesktopLocation:
|
||||||
@ -189,10 +194,12 @@ QStringList QStandardPaths::standardLocations(StandardLocation type)
|
|||||||
if (SHGetSpecialFolderPath(0, path, CSIDL_COMMON_APPDATA, FALSE)) {
|
if (SHGetSpecialFolderPath(0, path, CSIDL_COMMON_APPDATA, FALSE)) {
|
||||||
QString result = convertCharArray(path);
|
QString result = convertCharArray(path);
|
||||||
if (type != GenericDataLocation) {
|
if (type != GenericDataLocation) {
|
||||||
|
#ifndef QT_BOOTSTRAPPED
|
||||||
if (!QCoreApplication::organizationName().isEmpty())
|
if (!QCoreApplication::organizationName().isEmpty())
|
||||||
result += QLatin1Char('/') + QCoreApplication::organizationName();
|
result += QLatin1Char('/') + QCoreApplication::organizationName();
|
||||||
if (!QCoreApplication::applicationName().isEmpty())
|
if (!QCoreApplication::applicationName().isEmpty())
|
||||||
result += QLatin1Char('/') + QCoreApplication::applicationName();
|
result += QLatin1Char('/') + QCoreApplication::applicationName();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
dirs.append(result);
|
dirs.append(result);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user