aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@theqtcompany.com>2015-10-22 13:07:11 +0200
committerUlf Hermann <ulf.hermann@theqtcompany.com>2015-10-22 13:07:11 +0200
commitb103f6a6b9cc0ddf3df2788816a6fd98369b1b6d (patch)
treefc90bc070f0f50a2d8768db8fa1e16611d158f18 /tools
parent4867a49618e0d6a476e0549aeca5134b2e3c5892 (diff)
parent8ee3673e439b4499a8a4a4280637ee0270c4a54a (diff)
Merge remote-tracking branch 'origin/5.6' into origin/dev
Conflicts: src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debuggeragent.h src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.cpp src/plugins/qmltooling/qmldbg_debugger/qv4debugservice.h src/qml/debugger/qqmldebugserviceinterfaces.cpp src/qml/jsruntime/qv4debugging_p.h Change-Id: I82a4ce1bcd4579181df886558f55ad2b328d1682
Diffstat (limited to 'tools')
-rw-r--r--tools/qmlimportscanner/main.cpp35
-rw-r--r--tools/qmlscene/main.cpp69
2 files changed, 69 insertions, 35 deletions
diff --git a/tools/qmlimportscanner/main.cpp b/tools/qmlimportscanner/main.cpp
index 395c31a710..56cca8fcb4 100644
--- a/tools/qmlimportscanner/main.cpp
+++ b/tools/qmlimportscanner/main.cpp
@@ -54,6 +54,7 @@
#include <QtCore/QLibraryInfo>
#include <iostream>
+#include <algorithm>
QT_USE_NAMESPACE
@@ -343,10 +344,35 @@ QVariantList findQmlImportsInDirectory(const QString &qmlDir)
if (qmlDir.isEmpty())
return ret;
- QDirIterator iterator(qmlDir, QDirIterator::Subdirectories);
+ QDirIterator iterator(qmlDir, QDir::AllDirs | QDir::NoDotDot, QDirIterator::Subdirectories);
+ QStringList blacklist;
+ struct isMetainfo {
+ bool operator() (const QFileInfo &x) const {
+ return x.suffix() == QLatin1String("metainfo");
+ }
+ };
+ struct pathStartsWith {
+ pathStartsWith(const QString &path) : _path(path) {}
+ bool operator() (const QString &x) const {
+ return _path.startsWith(x);
+ }
+ const QString _path;
+ };
+
+
while (iterator.hasNext()) {
iterator.next();
- QString path = iterator.filePath();
+ const QString path = iterator.filePath();
+ const QFileInfoList entries = QDir(path).entryInfoList();
+
+ // Skip designer related stuff
+ if (std::find_if(entries.cbegin(), entries.cend(), isMetainfo()) != entries.cend()) {
+ blacklist << path;
+ continue;
+ }
+
+ if (std::find_if(blacklist.cbegin(), blacklist.cend(), pathStartsWith(path)) != blacklist.cend())
+ continue;
// skip obvious build output directories
if (path.contains(QStringLiteral("Debug-iphoneos")) || path.contains(QStringLiteral("Release-iphoneos")) ||
@@ -358,8 +384,9 @@ QVariantList findQmlImportsInDirectory(const QString &qmlDir)
continue;
}
- QVariantList imports = findQmlImportsInFile(path);
- ret = mergeImports(ret, imports);
+ foreach (const QFileInfo &x, entries)
+ if (x.isFile())
+ ret = mergeImports(ret, findQmlImportsInFile(x.absoluteFilePath()));
}
return ret;
}
diff --git a/tools/qmlscene/main.cpp b/tools/qmlscene/main.cpp
index ab37b6457d..9bf1c200e4 100644
--- a/tools/qmlscene/main.cpp
+++ b/tools/qmlscene/main.cpp
@@ -415,11 +415,11 @@ static void setWindowTitle(bool verbose, const QObject *topLevel, QWindow *windo
window->setTitle(newTitle);
}
-static QUrl parseUrlArgument(const char *arg)
+static QUrl parseUrlArgument(const QString &arg)
{
- const QUrl url = QUrl::fromUserInput(QFile::decodeName(arg), QDir::currentPath(), QUrl::AssumeLocalFile);
+ const QUrl url = QUrl::fromUserInput(arg, QDir::currentPath(), QUrl::AssumeLocalFile);
if (!url.isValid()) {
- fprintf(stderr, "Invalid URL: \"%s\"\n", arg);
+ fprintf(stderr, "Invalid URL: \"%s\"\n", qPrintable(arg));
return QUrl();
}
if (url.isLocalFile()) {
@@ -439,11 +439,39 @@ int main(int argc, char ** argv)
QStringList imports;
QStringList pluginPaths;
+
+ // Parse arguments for application attributes to be applied before Q[Gui]Application creation.
for (int i = 1; i < argc; ++i) {
- if (*argv[i] != '-') {
- options.url = parseUrlArgument(argv[i]);
+ const char *arg = argv[i];
+ if (!qstrcmp(arg, "--disable-context-sharing"))
+ options.applicationAttributes.removeAll(Qt::AA_ShareOpenGLContexts);
+ else if (!qstrcmp(arg, "--gles"))
+ options.applicationAttributes.append(Qt::AA_UseOpenGLES);
+ else if (!qstrcmp(arg, "--software"))
+ options.applicationAttributes.append(Qt::AA_UseSoftwareOpenGL);
+ else if (!qstrcmp(arg, "--desktop"))
+ options.applicationAttributes.append(Qt::AA_UseDesktopOpenGL);
+ else if (!qstrcmp(arg, "--no-scaling"))
+ options.applicationAttributes.append(Qt::AA_NoHighDpiScaling);
+ }
+
+ foreach (Qt::ApplicationAttribute a, options.applicationAttributes)
+ QCoreApplication::setAttribute(a);
+#ifdef QT_WIDGETS_LIB
+ QApplication app(argc, argv);
+#else
+ QGuiApplication app(argc, argv);
+#endif
+ app.setApplicationName("QtQmlViewer");
+ app.setOrganizationName("QtProject");
+ app.setOrganizationDomain("qt-project.org");
+
+ const QStringList arguments = QCoreApplication::arguments();
+ for (int i = 1, size = arguments.size(); i < size; ++i) {
+ if (!arguments.at(i).startsWith(QLatin1Char('-'))) {
+ options.url = parseUrlArgument(arguments.at(i));
} else {
- const QString lowerArgument = QString::fromLatin1(argv[i]).toLower();
+ const QString lowerArgument = arguments.at(i).toLower();
if (lowerArgument == QLatin1String("--maximized"))
options.maximized = true;
else if (lowerArgument == QLatin1String("--fullscreen"))
@@ -464,22 +492,12 @@ int main(int argc, char ** argv)
options.resizeViewToRootItem = true;
else if (lowerArgument == QLatin1String("--multisample"))
options.multisample = true;
- else if (lowerArgument == QLatin1String("--disable-context-sharing"))
- options.applicationAttributes.removeAll(Qt::AA_ShareOpenGLContexts);
- else if (lowerArgument == QLatin1String("--gles"))
- options.applicationAttributes.append(Qt::AA_UseOpenGLES);
- else if (lowerArgument == QLatin1String("--software"))
- options.applicationAttributes.append(Qt::AA_UseSoftwareOpenGL);
- else if (lowerArgument == QLatin1String("--desktop"))
- options.applicationAttributes.append(Qt::AA_UseDesktopOpenGL);
- else if (lowerArgument == QLatin1String("--no-scaling"))
- options.applicationAttributes.append(Qt::AA_NoHighDpiScaling);
else if (lowerArgument == QLatin1String("--verbose"))
options.verbose = true;
- else if (lowerArgument == QLatin1String("-i") && i + 1 < argc)
- imports.append(QString::fromLatin1(argv[++i]));
- else if (lowerArgument == QLatin1String("-p") && i + 1 < argc)
- pluginPaths.append(QString::fromLatin1(argv[++i]));
+ else if (lowerArgument == QLatin1String("-i") && i + 1 < size)
+ imports.append(arguments.at(++i));
+ else if (lowerArgument == QLatin1String("-p") && i + 1 < size)
+ pluginPaths.append(arguments.at(++i));
else if (lowerArgument == QLatin1String("--help")
|| lowerArgument == QLatin1String("-help")
|| lowerArgument == QLatin1String("--h")
@@ -488,17 +506,6 @@ int main(int argc, char ** argv)
}
}
- foreach (Qt::ApplicationAttribute a, options.applicationAttributes)
- QCoreApplication::setAttribute(a);
-#ifdef QT_WIDGETS_LIB
- QApplication app(argc, argv);
-#else
- QGuiApplication app(argc, argv);
-#endif
- app.setApplicationName("QtQmlViewer");
- app.setOrganizationName("QtProject");
- app.setOrganizationDomain("qt-project.org");
-
#ifndef QT_NO_TRANSLATION
QTranslator translator;
QTranslator qtTranslator;