diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-12-16 16:23:13 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-12-16 16:23:13 +0100 |
commit | 9a816664b1eafdce52fab9e2d5ec535fc28a782c (patch) | |
tree | b9758c3e78f44901bc469eca4ac4c86de96cf8e2 /src | |
parent | a637203b75706843d6a36e747ddeb2d1cce32a48 (diff) | |
parent | e14f2d2c85c92fc7ecd4b9032632ffa7bcfbc7ab (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I9d12d13a40f0514410dc5e660cabd89152cfc6c6
Diffstat (limited to 'src')
-rw-r--r-- | src/assistant/assistant/helpviewer.cpp | 2 | ||||
-rw-r--r-- | src/assistant/help/qhelpprojectdata.cpp | 13 | ||||
-rw-r--r-- | src/designer/src/lib/shared/pluginmanager.cpp | 8 | ||||
-rw-r--r-- | src/linguist/lupdate/cpp.cpp | 6 | ||||
-rw-r--r-- | src/windeployqt/main.cpp | 80 | ||||
-rw-r--r-- | src/windeployqt/qmlutils.cpp | 20 | ||||
-rw-r--r-- | src/windeployqt/qmlutils.h | 1 |
7 files changed, 86 insertions, 44 deletions
diff --git a/src/assistant/assistant/helpviewer.cpp b/src/assistant/assistant/helpviewer.cpp index 13c76cbb3..2a1b615af 100644 --- a/src/assistant/assistant/helpviewer.cpp +++ b/src/assistant/assistant/helpviewer.cpp @@ -171,7 +171,7 @@ bool HelpViewer::launchWithExternalApp(const QUrl &url) actualTmpFile.close(); return QDesktopServices::openUrl(QUrl(actualTmpFile.fileName())); } - } else if (url.scheme() == QLatin1String("http")) { + } else if (url.scheme() == QLatin1String("http") || url.scheme() == QLatin1String("mailto")) { return QDesktopServices::openUrl(url); } return false; diff --git a/src/assistant/help/qhelpprojectdata.cpp b/src/assistant/help/qhelpprojectdata.cpp index ee86f78a5..feb42ab85 100644 --- a/src/assistant/help/qhelpprojectdata.cpp +++ b/src/assistant/help/qhelpprojectdata.cpp @@ -60,9 +60,9 @@ public: QString virtualFolder; QString namespaceName; + QString fileName; QString rootPath; - QStringList fileList; QList<QHelpDataCustomFilter> customFilterList; QList<QHelpDataFilterSection> filterSectionList; QMap<QString, QVariant> metaData; @@ -85,7 +85,7 @@ private: void QHelpProjectDataPrivate::raiseUnknownTokenError() { - raiseError(QCoreApplication::translate("QHelpProject", "Unknown token.")); + raiseError(QCoreApplication::translate("QHelpProject", "Unknown token in file \"%1\".").arg(fileName)); } void QHelpProjectDataPrivate::readData(const QByteArray &contents) @@ -119,12 +119,12 @@ void QHelpProjectDataPrivate::readProject() virtualFolder = readElementText(); if (!hasValidSyntax(QLatin1String("test"), virtualFolder)) raiseError(QCoreApplication::translate("QHelpProject", - "Virtual folder has invalid syntax.")); + "Virtual folder has invalid syntax in file: \"%1\"").arg(fileName)); } else if (name() == QLatin1String("namespace")) { namespaceName = readElementText(); if (!hasValidSyntax(namespaceName, QLatin1String("test"))) raiseError(QCoreApplication::translate("QHelpProject", - "Namespace has invalid syntax.")); + "Namespace \"%1\" has invalid syntax in file: \"%2\"").arg(namespaceName, fileName)); } else if (name() == QLatin1String("customFilter")) { readCustomFilter(); } else if (name() == QLatin1String("filterSection")) { @@ -143,10 +143,10 @@ void QHelpProjectDataPrivate::readProject() } else if (isEndElement() && name() == QLatin1String("QtHelpProject")) { if (namespaceName.isEmpty()) raiseError(QCoreApplication::translate("QHelpProject", - "Missing namespace in QtHelpProject.")); + "Missing namespace in QtHelpProject file: \"%1\"").arg(fileName)); else if (virtualFolder.isEmpty()) raiseError(QCoreApplication::translate("QHelpProject", - "Missing virtual folder in QtHelpProject")); + "Missing virtual folder in QtHelpProject file: \"%1\"").arg(fileName)); break; } } @@ -374,6 +374,7 @@ QHelpProjectData::~QHelpProjectData() */ bool QHelpProjectData::readData(const QString &fileName) { + d->fileName = fileName; d->rootPath = QFileInfo(fileName).absolutePath(); QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { diff --git a/src/designer/src/lib/shared/pluginmanager.cpp b/src/designer/src/lib/shared/pluginmanager.cpp index 5b31f848c..7e57379db 100644 --- a/src/designer/src/lib/shared/pluginmanager.cpp +++ b/src/designer/src/lib/shared/pluginmanager.cpp @@ -698,6 +698,14 @@ void QDesignerPluginManager::registerPlugin(const QString &plugin) if (m_d->m_registeredPlugins.contains(plugin)) return; + // ###fixme: Temporary workaround for QTCREATORBUG-10273 + if (QCoreApplication::applicationName() == QLatin1String("QtCreator") + && plugin.contains(QLatin1String("declarativeview"), Qt::CaseInsensitive)) { + const QString errorMessage = tr("Not loaded due to potential symbol clashes (QTCREATORBUG-10273)"); + m_d->m_failedPlugins.insert(plugin, errorMessage); + return; + } + QPluginLoader loader(plugin); if (loader.isLoaded() || loader.load()) { m_d->m_registeredPlugins += plugin; diff --git a/src/linguist/lupdate/cpp.cpp b/src/linguist/lupdate/cpp.cpp index 5371cfc73..b282e8f57 100644 --- a/src/linguist/lupdate/cpp.cpp +++ b/src/linguist/lupdate/cpp.cpp @@ -239,7 +239,7 @@ private: std::ostream &yyMsg(int line = 0); - uint getChar(); + int getChar(); uint getToken(); bool getMacroArgs(); @@ -417,7 +417,7 @@ void CppParser::setInput(QTextStream &ts, const QString &fileName) The 0 doesn't produce any token. */ -uint CppParser::getChar() +int CppParser::getChar() { const ushort *uc = yyInPtr; forever { @@ -455,7 +455,7 @@ uint CppParser::getChar() yyAtNewline = false; } yyInPtr = uc; - return c; + return int(c); } } diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp index 2ce6fcd49..dc57f340b 100644 --- a/src/windeployqt/main.cpp +++ b/src/windeployqt/main.cpp @@ -69,30 +69,31 @@ enum QtModule QtDesignerComponents = 0x20, QtDesignerModule = 0x40, QtGuiModule = 0x80, - QtHelpModule = 0x100, - QtMultimediaModule = 0x200, - QtMultimediaWidgetsModule = 0x400, - QtNetworkModule = 0x800, - QtNfcModule = 0x1000, - QtOpenGLModule = 0x2000, - QtPositioningModule = 0x4000, - QtPrintSupportModule = 0x8000, - QtQmlModule = 0x10000, - QtQuickModule = 0x20000, - QtQuickParticlesModule = 0x40000, - QtScriptModule = 0x80000, - QtScriptToolsModule = 0x100000, - QtSensorsModule = 0x200000, - QtSerialPortModule = 0x400000, - QtSqlModule = 0x800000, - QtSvgModule = 0x1000000, - QtTestModule = 0x2000000, - QtWidgetsModule = 0x4000000, - QtWinExtrasModule = 0x8000000, - QtXmlModule = 0x10000000, - QtXmlPatternsModule = 0x20000000, - QtWebKitModule = 0x40000000, - QtWebKitWidgetsModule = 0x80000000 + QtCluceneModule = 0x100, + QtHelpModule = 0x200, + QtMultimediaModule = 0x400, + QtMultimediaWidgetsModule = 0x800, + QtNetworkModule = 0x1000, + QtNfcModule = 0x2000, + QtOpenGLModule = 0x4000, + QtPositioningModule = 0x8000, + QtPrintSupportModule = 0x10000, + QtQmlModule = 0x20000, + QtQuickModule = 0x40000, + QtQuickParticlesModule = 0x80000, + QtScriptModule = 0x100000, + QtScriptToolsModule = 0x200000, + QtSensorsModule = 0x400000, + QtSerialPortModule = 0x800000, + QtSqlModule = 0x1000000, + QtSvgModule = 0x2000000, + QtTestModule = 0x4000000, + QtWidgetsModule = 0x8000000, + QtWinExtrasModule = 0x10000000, + QtXmlModule = 0x20000000, + QtXmlPatternsModule = 0x40000000, + QtWebKitModule = 0x80000000, + QtWebKitWidgetsModule = 0x100000000 }; struct QtModuleEntry { @@ -111,7 +112,8 @@ QtModuleEntry qtModuleEntries[] = { { QtDesignerComponents, "designercomponents", "Qt5DesignerComponents", 0 }, { QtDesignerModule, "designer", "Qt5Designer", 0 }, { QtGuiModule, "gui", "Qt5Gui", "qtbase" }, - { QtHelpModule, "help", "Qt5Help", "qt_help" }, + { QtCluceneModule, "clucene", "Qt5CLucene", 0 }, + { QtHelpModule, "qthelp", "Qt5Help", "qt_help" }, { QtMultimediaModule, "multimedia", "Qt5Multimedia", "qtmultimedia" }, { QtMultimediaWidgetsModule, "multimediawidgets", "Qt5MultimediaWidgets", "qtmultimedia" }, { QtNetworkModule, "network", "Qt5Network", "qtbase" }, @@ -192,7 +194,7 @@ struct Options { unsigned additionalLibraries; unsigned disabledLibraries; unsigned updateFileFlags; - QString qmlDirectory; // Project's QML files. + QStringList qmlDirectories; // Project's QML files. QString directory; QString libraryDirectory; QString binary; @@ -325,6 +327,14 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse options->disabledLibraries |= disabledModules.at(int(i)).second; } + // Add some dependencies + if (options->additionalLibraries & QtQuickModule) + options->additionalLibraries |= QtQmlModule; + if (options->additionalLibraries & QtHelpModule) + options->additionalLibraries |= QtCLuceneModule; + if (options->additionalLibraries & QtDesignerComponents) + options->additionalLibraries |= QtDesignerModule; + if (parser->isSet(jsonOption)) { optVerboseLevel = 0; options->json = new JsonOutput; @@ -356,7 +366,7 @@ static inline int parseArguments(const QStringList &arguments, QCommandLineParse options->directory = parser->value(dirOption); if (parser->isSet(qmlDirOption)) - options->qmlDirectory = parser->value(qmlDirOption); + options->qmlDirectories = parser->values(qmlDirOption); const QString &file = posArgs.front(); const QFileInfo fi(QDir::cleanPath(file)); @@ -716,11 +726,19 @@ static DeployResult deploy(const Options &options, // Scan Quick2 imports QmlImportScanResult qmlScanResult; if (options.quickImports && usesQml2) { - const QString qmlDirectory = options.qmlDirectory.isEmpty() ? findQmlDirectory(options.platform, options.directory) : options.qmlDirectory; - if (!qmlDirectory.isEmpty()) { - qmlScanResult = runQmlImportScanner(qmlDirectory, qmakeVariables.value(QStringLiteral("QT_INSTALL_QML")), options.platform, isDebug, errorMessage); - if (!qmlScanResult.ok) + QStringList qmlDirectories = options.qmlDirectories; + if (qmlDirectories.isEmpty()) { + const QString qmlDirectory = findQmlDirectory(options.platform, options.directory); + if (!qmlDirectory.isEmpty()) + qmlDirectories.append(qmlDirectory); + } + foreach (const QString &qmlDirectory, qmlDirectories) { + if (optVerboseLevel >= 1) + std::printf("Scanning %s:\n", qPrintable(QDir::toNativeSeparators(qmlDirectory))); + const QmlImportScanResult scanResult = runQmlImportScanner(qmlDirectory, qmakeVariables.value(QStringLiteral("QT_INSTALL_QML")), options.platform, isDebug, errorMessage); + if (!scanResult.ok) return result; + qmlScanResult.append(scanResult); // Additional dependencies of QML plugins. foreach (const QString &plugin, qmlScanResult.plugins) { if (!findDependentQtLibraries(libraryLocation, plugin, options.platform, errorMessage, &dependentQtLibs, &wordSize, &isDebug)) diff --git a/src/windeployqt/qmlutils.cpp b/src/windeployqt/qmlutils.cpp index c2593cd35..8e16a9526 100644 --- a/src/windeployqt/qmlutils.cpp +++ b/src/windeployqt/qmlutils.cpp @@ -97,7 +97,7 @@ QmlImportScanResult runQmlImportScanner(const QString &directory, const QString QByteArray stdOut; QByteArray stdErr; const QString binary = QStringLiteral("qmlimportscanner"); - if (!runProcess(binary, arguments, directory, &exitCode, &stdOut, &stdErr, errorMessage)) + if (!runProcess(binary, arguments, QDir::currentPath(), &exitCode, &stdOut, &stdErr, errorMessage)) return result; if (exitCode) { *errorMessage = binary + QStringLiteral(" returned ") + QString::number(exitCode) @@ -118,12 +118,26 @@ QmlImportScanResult runQmlImportScanner(const QString &directory, const QString const QJsonObject object = array.at(c).toObject(); if (object.value(QStringLiteral("type")).toString() == QLatin1String("module")) { const QString path = object.value(QStringLiteral("path")).toString(); - result.modulesDirectories.append(path); - findFileRecursion(QDir(path), Platform(platform), debug, &result.plugins); + if (!path.isEmpty()) { + result.modulesDirectories.append(path); + findFileRecursion(QDir(path), Platform(platform), debug, &result.plugins); + } } } result.ok = true; return result; } +void QmlImportScanResult::append(const QmlImportScanResult &other) +{ + foreach (const QString &module, other.modulesDirectories) { + if (!modulesDirectories.contains(module)) + modulesDirectories.append(module); + } + foreach (const QString &plugin, other.plugins) { + if (!plugin.contains(plugin)) + plugins.append(plugin); + } +} + QT_END_NAMESPACE diff --git a/src/windeployqt/qmlutils.h b/src/windeployqt/qmlutils.h index 0d7c6cc74..ea8c7747d 100644 --- a/src/windeployqt/qmlutils.h +++ b/src/windeployqt/qmlutils.h @@ -50,6 +50,7 @@ QString findQmlDirectory(int platform, const QString &startDirectoryName); struct QmlImportScanResult { QmlImportScanResult() : ok(false) {} + void append(const QmlImportScanResult &other); bool ok; QStringList modulesDirectories; |