on xenial help sign in
clean up import paths
c927ff6Michał Sawicz
main.cpp+7−8
@@ -39,10 +39,10 @@ void prependImportPaths(QQmlEngine *engine, const QStringList &paths)
39 // don't duplicate
39 // don't duplicate
40 const QString& path = paths[i];
40 const QString& path = paths[i];
41 QStringList::iterator iter = qFind(importPathList.begin(), importPathList.end(), path);
41 QStringList::iterator iter = qFind(importPathList.begin(), importPathList.end(), path);
42− if (iter == importPathList.end())
42+ if (iter == importPathList.end()) {
43− importPathList.prepend(path);
43+ engine->addImportPath(path);
44+ }
44 }
45 }
45− engine->setImportPathList(importPathList);
46}
46}
47
47
48/* When you append and import path to the list of import paths it will be the *last*
48/* When you append and import path to the list of import paths it will be the *last*
@@ -54,10 +54,10 @@ void appendImportPaths(QQmlEngine *engine, const QStringList &paths)
54 Q_FOREACH(const QString& path, paths) {
54 Q_FOREACH(const QString& path, paths) {
55 // don't duplicate
55 // don't duplicate
56 QStringList::iterator iter = qFind(importPathList.begin(), importPathList.end(), path);
56 QStringList::iterator iter = qFind(importPathList.begin(), importPathList.end(), path);
57− if (iter == importPathList.end())
57+ if (iter == importPathList.end()) {
58 importPathList.append(path);
58 importPathList.append(path);
59+ }
59 }
60 }
60− importPathList.append(paths);
61 engine->setImportPathList(importPathList);
61 engine->setImportPathList(importPathList);
62}
62}
63
63
@@ -134,9 +134,8 @@ int main(int argc, char** argv)
134 QObject::connect(view->engine(), SIGNAL(quit()), qApp, SLOT(quit()));
134 QObject::connect(view->engine(), SIGNAL(quit()), qApp, SLOT(quit()));
135
135
136 QUrl source("Shell.qml");
136 QUrl source("Shell.qml");
137− prependImportPaths(view->engine(), QStringList() << ::shellAppDirectory());
137+ prependImportPaths(view->engine(), ::overrideImportPaths());
138− prependImportPaths(view->engine(), ::shellImportPaths());
139− appendImportPaths(view->engine(), QStringList() << ::fakePluginsImportPath());
138+ appendImportPaths(view->engine(), ::fallbackImportPaths());
140 view->setSource(source);
139 view->setSource(source);
141 view->setColor("transparent");
140 view->setColor("transparent");
142
141
paths.h.in+6−4
@@ -46,7 +46,7 @@ inline QString shellAppDirectory() {
46 }
46 }
47}
47}
48
48
49−inline QStringList shellImportPaths() {
49+inline QStringList overrideImportPaths() {
50 QStringList paths;
50 QStringList paths;
51 if (isRunningInstalled()) {
51 if (isRunningInstalled()) {
52 paths << QString("@CMAKE_INSTALL_PREFIX@/@SHELL_PRIVATE_LIBDIR@/qml");
52 paths << QString("@CMAKE_INSTALL_PREFIX@/@SHELL_PRIVATE_LIBDIR@/qml");
@@ -56,12 +56,14 @@ inline QStringList shellImportPaths() {
56 return paths;
56 return paths;
57}
57}
58
58
59−inline QString fakePluginsImportPath() {
59+inline QStringList fallbackImportPaths() {
60+ QStringList paths;
60 if (isRunningInstalled()) {
61 if (isRunningInstalled()) {
61− return QString("@CMAKE_INSTALL_PREFIX@/@SHELL_PRIVATE_LIBDIR@/qml/mocks");
62+ paths << QString("@CMAKE_INSTALL_PREFIX@/@SHELL_PRIVATE_LIBDIR@/qml/mocks");
62 } else {
63 } else {
63− return QString("@CMAKE_BINARY_DIR@/tests/mocks");
64+ paths << QString("@CMAKE_BINARY_DIR@/tests/mocks");
64 }
65 }
66+ return paths;
65}
67}
66
68
67inline QString sourceDirectory() {
69inline QString sourceDirectory() {