diff options
author | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-10-22 13:07:11 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@theqtcompany.com> | 2015-10-22 13:07:11 +0200 |
commit | b103f6a6b9cc0ddf3df2788816a6fd98369b1b6d (patch) | |
tree | fc90bc070f0f50a2d8768db8fa1e16611d158f18 /tools | |
parent | 4867a49618e0d6a476e0549aeca5134b2e3c5892 (diff) | |
parent | 8ee3673e439b4499a8a4a4280637ee0270c4a54a (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.cpp | 35 | ||||
-rw-r--r-- | tools/qmlscene/main.cpp | 69 |
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; |