diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qdoc/cppcodeparser.cpp | 14 | ||||
-rw-r--r-- | src/qdoc/cppcodeparser.h | 2 | ||||
-rw-r--r-- | src/qdoc/main.cpp | 77 |
3 files changed, 28 insertions, 65 deletions
diff --git a/src/qdoc/cppcodeparser.cpp b/src/qdoc/cppcodeparser.cpp index c1295c3a7..61fb9b7d7 100644 --- a/src/qdoc/cppcodeparser.cpp +++ b/src/qdoc/cppcodeparser.cpp @@ -54,6 +54,8 @@ static bool inMacroCommand_ = false; static bool parsingHeaderFile_ = false; QStringList CppCodeParser::exampleFiles; QStringList CppCodeParser::exampleDirs; +QSet<QString> CppCodeParser::excludeDirs; +QSet<QString> CppCodeParser::excludeFiles; CppCodeParser* CppCodeParser::cppParser_ = 0; /*! @@ -78,7 +80,7 @@ CppCodeParser::~CppCodeParser() /*! The constructor initializes a map of special node types for identifying important nodes. And it initializes - some filters for identifying certain kinds of files. + some filters for identifying and excluding certain kinds of files. */ void CppCodeParser::initializeParser(const Config &config) { @@ -100,6 +102,10 @@ void CppCodeParser::initializeParser(const Config &config) QStringList exampleFilePatterns = config.getStringList( CONFIG_EXAMPLES + Config::dot + CONFIG_FILEEXTENSIONS); + // Used for excluding dirs and files from the list of example files + excludeDirs = QSet<QString>::fromList(config.getCanonicalPathList(CONFIG_EXCLUDEDIRS)); + excludeFiles = QSet<QString>::fromList(config.getCanonicalPathList(CONFIG_EXCLUDEFILES)); + if (!exampleFilePatterns.isEmpty()) exampleNameFilter = exampleFilePatterns.join(' '); else @@ -121,6 +127,8 @@ void CppCodeParser::initializeParser(const Config &config) void CppCodeParser::terminateParser() { nodeTypeMap.clear(); + excludeDirs.clear(); + excludeFiles.clear(); CodeParser::terminateParser(); } @@ -2643,9 +2651,9 @@ void CppCodeParser::createExampleFileNodes(DocumentNode *dn) sizeOfBoringPartOfName = sizeOfBoringPartOfName - 2; fullPath.truncate(fullPath.lastIndexOf('/')); - QStringList exampleFiles = Config::getFilesHere(fullPath,exampleNameFilter); + QStringList exampleFiles = Config::getFilesHere(fullPath, exampleNameFilter, Location(), excludeDirs, excludeFiles); QString imagesPath = fullPath + "/images"; - QStringList imageFiles = Config::getFilesHere(imagesPath,exampleImageFilter); + QStringList imageFiles = Config::getFilesHere(imagesPath, exampleImageFilter, Location(), excludeDirs, excludeFiles); if (!exampleFiles.isEmpty()) { // move main.cpp and to the end, if it exists QString mainCpp; diff --git a/src/qdoc/cppcodeparser.h b/src/qdoc/cppcodeparser.h index d3a5829e3..3910807ab 100644 --- a/src/qdoc/cppcodeparser.h +++ b/src/qdoc/cppcodeparser.h @@ -179,6 +179,8 @@ protected: static QStringList exampleFiles; static QStringList exampleDirs; + static QSet<QString> excludeDirs; + static QSet<QString> excludeFiles; static CppCodeParser* cppParser_; QString exampleNameFilter; QString exampleImageFilter; diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp index 500a085cc..990207204 100644 --- a/src/qdoc/main.cpp +++ b/src/qdoc/main.cpp @@ -365,31 +365,26 @@ static void processQdocconfFile(const QString &fileName) + Config::dot + CONFIG_LANDINGPAGE)); - QSet<QString> excludedDirs; - QSet<QString> excludedFiles; - QStringList excludedDirsList; - QStringList excludedFilesList; + QSet<QString> excludedDirs = QSet<QString>::fromList(config.getCanonicalPathList(CONFIG_EXCLUDEDIRS)); + QSet<QString> excludedFiles = QSet<QString>::fromList(config.getCanonicalPathList(CONFIG_EXCLUDEFILES)); + + Generator::debug("Adding doc/image dirs found in exampledirs to imagedirs"); + QSet<QString> exampleImageDirs; + QStringList exampleImageList = config.getExampleImageFiles(excludedDirs, excludedFiles); + for (int i = 0; i < exampleImageList.size(); ++i) { + if (exampleImageList[i].contains("doc/images")) { + QString t = exampleImageList[i].left(exampleImageList[i].lastIndexOf("doc/images") + 10); + if (!exampleImageDirs.contains(t)) { + exampleImageDirs.insert(t); + } + } + } + Generator::augmentImageDirs(exampleImageDirs); if (!Generator::singleExec() || !Generator::generating()) { QStringList headerList; QStringList sourceList; - Generator::debug("Reading excludedirs"); - excludedDirsList = config.getCanonicalPathList(CONFIG_EXCLUDEDIRS); - foreach (const QString &excludeDir, excludedDirsList) { - QString p = QDir::fromNativeSeparators(excludeDir); - QDir tmp(p); - if (tmp.exists()) - excludedDirs.insert(p); - } - - Generator::debug("Reading excludefiles"); - excludedFilesList = config.getCanonicalPathList(CONFIG_EXCLUDEFILES); - foreach (const QString& excludeFile, excludedFilesList) { - QString p = QDir::fromNativeSeparators(excludeFile); - excludedFiles.insert(p); - } - Generator::debug("Reading headerdirs"); headerList = config.getAllFiles(CONFIG_HEADERS,CONFIG_HEADERDIRS,excludedDirs,excludedFiles); QMap<QString,QString> headers; @@ -430,20 +425,6 @@ static void processQdocconfFile(const QString &fileName) sourceFileNames.insert(t,t); } } - - Generator::debug("Adding doc/image dirs found in exampledirs to imagedirs"); - QSet<QString> exampleImageDirs; - QStringList exampleImageList = config.getExampleImageFiles(excludedDirs, excludedFiles); - for (int i=0; i<exampleImageList.size(); ++i) { - if (exampleImageList[i].contains("doc/images")) { - QString t = exampleImageList[i].left(exampleImageList[i].lastIndexOf("doc/images")+10); - if (!exampleImageDirs.contains(t)) { - exampleImageDirs.insert(t); - } - } - } - Generator::augmentImageDirs(exampleImageDirs); - /* Parse each header file in the set using the appropriate parser and add it to the big tree. @@ -504,34 +485,6 @@ static void processQdocconfFile(const QString &fileName) qdb->resolveIssues(); } else { - Generator::debug("Reading excludedirs"); - excludedDirsList = config.getCanonicalPathList(CONFIG_EXCLUDEDIRS); - foreach (const QString &excludeDir, excludedDirsList) { - QString p = QDir::fromNativeSeparators(excludeDir); - QDir tmp(p); - if (tmp.exists()) - excludedDirs.insert(p); - } - - Generator::debug("Reading excludefiles"); - excludedFilesList = config.getCanonicalPathList(CONFIG_EXCLUDEFILES); - foreach (const QString& excludeFile, excludedFilesList) { - QString p = QDir::fromNativeSeparators(excludeFile); - excludedFiles.insert(p); - } - - Generator::debug("Adding doc/image dirs found in exampledirs to imagedirs"); - QSet<QString> exampleImageDirs; - QStringList exampleImageList = config.getExampleImageFiles(excludedDirs, excludedFiles); - for (int i=0; i<exampleImageList.size(); ++i) { - if (exampleImageList[i].contains("doc/images")) { - QString t = exampleImageList[i].left(exampleImageList[i].lastIndexOf("doc/images")+10); - if (!exampleImageDirs.contains(t)) { - exampleImageDirs.insert(t); - } - } - } - Generator::augmentImageDirs(exampleImageDirs); qdb->resolveStuff(); } |