24 #include <QtCore/QCoreApplication>
25 #include <QtCore/QDir>
26 #include <QtGui/QIcon>
27 #include <QtQml/QQmlEngine>
28 #include <QStandardPaths>
30 inline bool isRunningInstalled() {
31 static bool installed = (QCoreApplication::applicationDirPath() ==
32 QDir(QStringLiteral(
"/usr/bin")).canonicalPath());
36 inline QString buildDirectory() {
37 if (!qEnvironmentVariableIsEmpty(
"UNITY_BINARY_DIR"))
return qgetenv(
"UNITY_BINARY_DIR");
38 return QStringLiteral(
"/build/unity8-R75PGO/unity8-8.11+16.04.20151104/obj-x86_64-linux-gnu");
41 inline QString sourceDirectory() {
42 if (!qEnvironmentVariableIsEmpty(
"UNITY_SOURCE_DIR"))
return qgetenv(
"UNITY_SOURCE_DIR");
43 return QStringLiteral(
"/build/unity8-R75PGO/unity8-8.11+16.04.20151104");
46 inline QString translationDirectory() {
47 if (isRunningInstalled()) {
48 return QStringLiteral(
"/usr/share/locale");
50 return QString(buildDirectory() +
"/po/locale");
54 inline QString qmlDirectory() {
55 if (isRunningInstalled()) {
56 return QStringLiteral(
"/usr/share/unity8/");
58 return QString(sourceDirectory() +
"/qml");
62 inline QStringList overrideImportPaths() {
64 if (!isRunningInstalled()) {
65 paths << QString(buildDirectory() +
"/plugins");
70 inline QStringList nonMirImportPaths() {
72 if (isRunningInstalled()) {
73 paths << QStringLiteral(
"/usr/lib/x86_64-linux-gnu/unity8/qml/nonmirplugins");
75 paths << QString(buildDirectory() +
"/nonmirplugins");
80 inline QStringList fallbackImportPaths() {
82 if (isRunningInstalled()) {
83 paths << QStringLiteral(
"/usr/lib/x86_64-linux-gnu/unity8/qml");
84 paths << QStringLiteral(
"/usr/lib/x86_64-linux-gnu/ubuntu-system-settings/private");
85 paths << QStringLiteral(
"/usr/lib/x86_64-linux-gnu/unity8/qml");
86 paths << QStringLiteral(
"/usr/lib/x86_64-linux-gnu/unity8/qml/mocks");
88 paths << QStringLiteral(
"/usr/lib/x86_64-linux-gnu/ubuntu-system-settings/private");
89 paths << QStringLiteral(
"/usr/lib/x86_64-linux-gnu/unity8/qml");
90 paths << QString(buildDirectory() +
"/tests/mocks");
95 inline QString mockPluginsDir() {
96 if (isRunningInstalled()) {
97 return QStringLiteral(
"/usr/lib/x86_64-linux-gnu/unity8/qml/mocks");
99 return QString(buildDirectory() +
"/tests/mocks");
103 inline QStringList shellDataDirs() {
104 QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
105 if (isRunningInstalled()) {
107 dirs.append(qmlDirectory());
112 inline void prependImportPaths(QQmlEngine *engine,
const QStringList &paths)
114 QStringList importPathList = engine->importPathList();
115 for (
int i = paths.count() -1; i >= 0; i--) {
117 const QString& path = paths[i];
118 QStringList::iterator iter = qFind(importPathList.begin(), importPathList.end(), path);
119 if (iter == importPathList.end()) {
120 engine->addImportPath(path);
128 inline void appendImportPaths(QQmlEngine *engine,
const QStringList &paths)
130 QStringList importPathList = engine->importPathList();
131 Q_FOREACH(
const QString& path, paths) {
133 QStringList::iterator iter = qFind(importPathList.begin(), importPathList.end(), path);
134 if (iter == importPathList.end()) {
135 importPathList.append(path);
138 engine->setImportPathList(importPathList);