From ef5dc9d466438c22a2b0a66f25e18e2c9e55d37c Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 14 Feb 2018 13:54:35 +0100 Subject: qdoc/Config::findFile() Make userFriendlyFilePath an optional out parameter Task-number: PYSIDE-363 Change-Id: If076c9a77a5a11c05035f6fc30e6d68e60a35045 Reviewed-by: Martin Smith --- src/qdoc/config.cpp | 38 ++++++++++++++++++++------------------ src/qdoc/config.h | 4 ++-- src/qdoc/cppcodeparser.cpp | 13 +++---------- src/qdoc/doc.cpp | 2 +- src/qdoc/generator.cpp | 5 ++--- 5 files changed, 28 insertions(+), 34 deletions(-) diff --git a/src/qdoc/config.cpp b/src/qdoc/config.cpp index 3e3d84e37..de7f23ce6 100644 --- a/src/qdoc/config.cpp +++ b/src/qdoc/config.cpp @@ -707,10 +707,11 @@ QString Config::findFile(const Location& location, const QStringList& files, const QStringList& dirs, const QString& fileName, - QString& userFriendlyFilePath) + QString *userFriendlyFilePath) { if (fileName.isEmpty() || fileName.startsWith(QLatin1Char('/'))) { - userFriendlyFilePath = fileName; + if (userFriendlyFilePath) + *userFriendlyFilePath = fileName; return fileName; } @@ -740,26 +741,27 @@ QString Config::findFile(const Location& location, } } - userFriendlyFilePath = QString(); + if (userFriendlyFilePath) + userFriendlyFilePath->clear(); if (!fileInfo.exists()) return QString(); - QStringList::ConstIterator c = components.constBegin(); - for (;;) { - bool isArchive = (c != components.constEnd() - 1); - QString userFriendly = *c; - - userFriendlyFilePath += userFriendly; + if (userFriendlyFilePath) { + QStringList::ConstIterator c = components.constBegin(); + for (;;) { + bool isArchive = (c != components.constEnd() - 1); + userFriendlyFilePath->append(*c); + + if (isArchive) { + QString extracted = extractedDirs[fileInfo.filePath()]; + ++c; + fileInfo.setFile(QDir(extracted), *c); + } else { + break; + } - if (isArchive) { - QString extracted = extractedDirs[fileInfo.filePath()]; - ++c; - fileInfo.setFile(QDir(extracted), *c); - } else { - break; + userFriendlyFilePath->append(QLatin1Char('?')); } - - userFriendlyFilePath += QLatin1Char('?'); } return fileInfo.filePath(); } @@ -771,7 +773,7 @@ QString Config::findFile(const Location& location, const QStringList& dirs, const QString& fileBase, const QStringList& fileExtensions, - QString& userFriendlyFilePath) + QString *userFriendlyFilePath) { QStringList::ConstIterator e = fileExtensions.constBegin(); while (e != fileExtensions.constEnd()) { diff --git a/src/qdoc/config.h b/src/qdoc/config.h index cbff9771b..0de7076eb 100644 --- a/src/qdoc/config.h +++ b/src/qdoc/config.h @@ -114,13 +114,13 @@ public: const QStringList &files, const QStringList& dirs, const QString& fileName, - QString& userFriendlyFilePath); + QString *userFriendlyFilePath = nullptr); static QString findFile(const Location &location, const QStringList &files, const QStringList &dirs, const QString &fileBase, const QStringList &fileExtensions, - QString &userFriendlyFilePath); + QString *userFriendlyFilePath = nullptr); static QString copyFile(const Location& location, const QString& sourceFilePath, const QString& userFriendlySourceFilePath, diff --git a/src/qdoc/cppcodeparser.cpp b/src/qdoc/cppcodeparser.cpp index 14e4fa7ba..9ac687557 100644 --- a/src/qdoc/cppcodeparser.cpp +++ b/src/qdoc/cppcodeparser.cpp @@ -1346,31 +1346,24 @@ void CppCodeParser::createExampleFileNodes(DocumentNode *dn) { QString examplePath = dn->name(); QString proFileName = examplePath + QLatin1Char('/') + examplePath.split(QLatin1Char('/')).last() + ".pro"; - QString userFriendlyFilePath; - QString fullPath = Config::findFile(dn->doc().location(), exampleFiles, exampleDirs, - proFileName, - userFriendlyFilePath); + proFileName); if (fullPath.isEmpty()) { QString tmp = proFileName; proFileName = examplePath + QLatin1Char('/') + "qbuild.pro"; - userFriendlyFilePath.clear(); fullPath = Config::findFile(dn->doc().location(), exampleFiles, exampleDirs, - proFileName, - userFriendlyFilePath); + proFileName); if (fullPath.isEmpty()) { proFileName = examplePath + QLatin1Char('/') + examplePath.split(QLatin1Char('/')).last() + ".qmlproject"; - userFriendlyFilePath.clear(); fullPath = Config::findFile(dn->doc().location(), exampleFiles, exampleDirs, - proFileName, - userFriendlyFilePath); + proFileName); if (fullPath.isEmpty()) { QString details = QLatin1String("Example directories: ") + exampleDirs.join(QLatin1Char(' ')); if (!exampleFiles.isEmpty()) diff --git a/src/qdoc/doc.cpp b/src/qdoc/doc.cpp index 3c353957c..a63498208 100644 --- a/src/qdoc/doc.cpp +++ b/src/qdoc/doc.cpp @@ -3218,7 +3218,7 @@ CodeMarker *Doc::quoteFromFile(const Location &location, QString filePath = Config::findFile(location, DocParser::exampleFiles, DocParser::exampleDirs, - fileName, userFriendlyFilePath); + fileName, &userFriendlyFilePath); if (filePath.isEmpty()) { QString details = QLatin1String("Example directories: ") + DocParser::exampleDirs.join(QLatin1Char(' ')); if (!DocParser::exampleFiles.isEmpty()) diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp index 22ac363bd..d822c8e64 100644 --- a/src/qdoc/generator.cpp +++ b/src/qdoc/generator.cpp @@ -1065,8 +1065,7 @@ void Generator::generateFileList(const DocumentNode* dn, QStringList(), exampleDirs, file, - exampleImgExts, - userFriendlyFilePath); + exampleImgExts); outFileNames_ << prefix.mid(1) + userFriendlyFilePath; userFriendlyFilePath.truncate(userFriendlyFilePath.lastIndexOf('/')); QString imgOutDir = outDir_ + prefix + userFriendlyFilePath; @@ -1786,7 +1785,7 @@ QString Generator::imageFileName(const Node *relative, const QString& fileBase) imageDirs, fileBase, imgFileExts[format()], - userFriendlyFilePath); + &userFriendlyFilePath); if (filePath.isEmpty()) return QString(); -- cgit v1.2.3