diff options
author | Paul Wicking <paul.wicking@qt.io> | 2020-02-12 15:16:50 +0100 |
---|---|---|
committer | Paul Wicking <paul.wicking@qt.io> | 2020-03-04 11:41:27 +0100 |
commit | 94ee5927f5551d32876f5854c8b0f630b68b4659 (patch) | |
tree | f38dbb99e08e4409c5160a84f7519b0e22196d3b | |
parent | e0c75e0bb8a2e71e2d6a583158ebd7a825bfd234 (diff) |
QDoc: Disentangle Generator and Config
* Keep track of use of DocBook extensions in Config.
* Let Location query Config about use of Timestamps in logging.
* Set writeQaPages in Config and get it from there.
* Let Location query Config about whether logging is enabled or not.
* Let Config track if QDoc is running in single or dual exec mode.
* Move phase information to Config and track the current phase state
there.
* Remove the inclusion of generator.h from config.cpp,
clangcodeparser.cpp.
Task-number: QTBUG-82106
Change-Id: I06c8aeb40417e5c83cfa693f5f1ab2c210d34469
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
-rw-r--r-- | src/qdoc/clangcodeparser.cpp | 4 | ||||
-rw-r--r-- | src/qdoc/config.cpp | 20 | ||||
-rw-r--r-- | src/qdoc/config.h | 21 | ||||
-rw-r--r-- | src/qdoc/docbookgenerator.cpp | 2 | ||||
-rw-r--r-- | src/qdoc/generator.cpp | 8 | ||||
-rw-r--r-- | src/qdoc/generator.h | 17 | ||||
-rw-r--r-- | src/qdoc/htmlgenerator.cpp | 15 | ||||
-rw-r--r-- | src/qdoc/location.cpp | 7 | ||||
-rw-r--r-- | src/qdoc/location.h | 3 | ||||
-rw-r--r-- | src/qdoc/main.cpp | 18 | ||||
-rw-r--r-- | src/qdoc/qdocdatabase.cpp | 9 | ||||
-rw-r--r-- | src/qdoc/tree.cpp | 7 |
12 files changed, 65 insertions, 66 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp index 645acc5bd..04fd8bd49 100644 --- a/src/qdoc/clangcodeparser.cpp +++ b/src/qdoc/clangcodeparser.cpp @@ -45,7 +45,6 @@ #include "codechunk.h" #include "config.h" -#include "generator.h" #include "loggingcategory.h" #include "qdocdatabase.h" #include "utilities.h" @@ -1703,7 +1702,8 @@ Node *ClangCodeParser::parseFnArg(const Location &location, const QString &fnArg */ if (fnNode == nullptr) { unsigned diagnosticCount = clang_getNumDiagnostics(tu); - if (diagnosticCount > 0 && (!Generator::preparing() || Generator::singleExec())) { + const auto &config = Config::instance(); + if (diagnosticCount > 0 && (!config.preparing() || config.singleExec())) { bool report = true; QStringList signature = fnArg.split(QChar('(')); if (signature.size() > 1) { diff --git a/src/qdoc/config.cpp b/src/qdoc/config.cpp index 21527f5b5..dee983004 100644 --- a/src/qdoc/config.cpp +++ b/src/qdoc/config.cpp @@ -31,7 +31,6 @@ */ #include "config.h" -#include "generator.h" #include "loggingcategory.h" #include <QtCore/qdebug.h> @@ -57,6 +56,7 @@ QString ConfigStrings::CPPCLASSESTITLE = QStringLiteral("cppclassestitle"); QString ConfigStrings::DEFINES = QStringLiteral("defines"); QString ConfigStrings::DEPENDS = QStringLiteral("depends"); QString ConfigStrings::DESCRIPTION = QStringLiteral("description"); +QString ConfigStrings::DOCBOOKEXTENSIONS = QStringLiteral("usedocbookextensions"); QString ConfigStrings::EDITION = QStringLiteral("edition"); QString ConfigStrings::ENDHEADER = QStringLiteral("endheader"); QString ConfigStrings::EXAMPLEDIRS = QStringLiteral("exampledirs"); @@ -85,6 +85,7 @@ QString ConfigStrings::LANDINGPAGE = QStringLiteral("landingpage"); QString ConfigStrings::LANDINGTITLE = QStringLiteral("landingtitle"); QString ConfigStrings::LANGUAGE = QStringLiteral("language"); QString ConfigStrings::LOCATIONINFO = QStringLiteral("locationinfo"); +QString ConfigStrings::LOGPROGRESS = QStringLiteral("logprogress"); QString ConfigStrings::MACRO = QStringLiteral("macro"); QString ConfigStrings::MANIFESTMETA = QStringLiteral("manifestmeta"); QString ConfigStrings::MODULEHEADER = QStringLiteral("moduleheader"); @@ -117,6 +118,7 @@ QString ConfigStrings::STYLESHEETS = QStringLiteral("stylesheets"); QString ConfigStrings::SYNTAXHIGHLIGHTING = QStringLiteral("syntaxhighlighting"); QString ConfigStrings::TABSIZE = QStringLiteral("tabsize"); QString ConfigStrings::TAGFILE = QStringLiteral("tagfile"); +QString ConfigStrings::TIMESTAMPS = QStringLiteral("timestamps"); QString ConfigStrings::TRANSLATORS = QStringLiteral("translators"); QString ConfigStrings::URL = QStringLiteral("url"); QString ConfigStrings::VERSION = QStringLiteral("version"); @@ -385,24 +387,20 @@ void Config::processCommandLineOptions(const QStringList &args) debug_ = m_parser.isSet(m_parser.debugOption); - // TODO: Make Generator use Config instead of storing these separately if (m_parser.isSet(m_parser.prepareOption)) - Generator::setQDocPass(Generator::Prepare); + m_qdocPass = Prepare; if (m_parser.isSet(m_parser.generateOption)) - Generator::setQDocPass(Generator::Generate); - if (m_parser.isSet(m_parser.singleExecOption)) - Generator::setSingleExec(); + m_qdocPass = Generate; if (m_parser.isSet(m_parser.writeQaPagesOption)) { - Generator::setWriteQaPages(); qCWarning(lcQdoc, "The QA pages option for QDoc is deprecated and will be removed in Qt 6."); } if (m_parser.isSet(m_parser.logProgressOption)) - Location::startLoggingProgress(); + setStringList(CONFIG_LOGPROGRESS, QStringList("true")); if (m_parser.isSet(m_parser.timestampsOption)) - Generator::setUseTimestamps(); + setStringList(CONFIG_TIMESTAMPS, QStringList("true")); if (m_parser.isSet(m_parser.useDocBookExtensions)) - Generator::setUseDocBookExtensions(); + setStringList(CONFIG_DOCBOOKEXTENSIONS, QStringList("true")); } void Config::setIncludePaths() @@ -475,7 +473,7 @@ QString Config::getOutputDir(const QString &format) const t = getString(CONFIG_OUTPUTDIR); else t = overrideOutputDir; - if (Generator::singleExec()) { + if (getBool(CONFIG_SINGLEEXEC)) { QString project = getString(CONFIG_PROJECT); t += QLatin1Char('/') + project.toLower(); } diff --git a/src/qdoc/config.h b/src/qdoc/config.h index 151a8caee..30b2637f6 100644 --- a/src/qdoc/config.h +++ b/src/qdoc/config.h @@ -98,6 +98,8 @@ class Config : public Singleton<Config> public: ~Config(); + enum QDocPass { Neither, Prepare, Generate }; + void init(const QString &programName, const QStringList &args); bool getDebug() const { return debug_; } @@ -163,6 +165,7 @@ public: static QSet<QString> overrideOutputFormats; inline bool singleExec() const; + inline bool dualExec() const; QStringList &defines() { return m_defines; } QStringList &dependModules() { return m_dependModules; } QStringList &includePaths() { return m_includePaths; } @@ -172,6 +175,11 @@ public: QString previousCurrentDir() const { return m_previousCurrentDir; } void setPreviousCurrentDir(const QString &path) { m_previousCurrentDir = path; } + QDocPass qdocPass() const { return m_qdocPass; } + void setQDocPass(const QDocPass &pass) { m_qdocPass = pass; }; + bool preparing() const { return (m_qdocPass == Prepare); } + bool generating() const { return (m_qdocPass == Generate); } + private: void processCommandLineOptions(const QStringList &args); void setIncludePaths(); @@ -198,6 +206,8 @@ private: static QStack<QString> workingDirs_; static QMap<QString, QStringList> includeFilesMap_; QDocCommandLineParser m_parser; + + QDocPass m_qdocPass = Neither; }; struct ConfigStrings @@ -214,6 +224,7 @@ struct ConfigStrings static QString DEFINES; static QString DEPENDS; static QString DESCRIPTION; + static QString DOCBOOKEXTENSIONS; static QString EDITION; static QString ENDHEADER; static QString EXAMPLEDIRS; @@ -242,6 +253,7 @@ struct ConfigStrings static QString LANDINGTITLE; static QString LANGUAGE; static QString LOCATIONINFO; + static QString LOGPROGRESS; static QString MACRO; static QString MANIFESTMETA; static QString MODULEHEADER; @@ -273,6 +285,7 @@ struct ConfigStrings static QString SYNTAXHIGHLIGHTING; static QString TABSIZE; static QString TAGFILE; + static QString TIMESTAMPS; static QString TRANSLATORS; static QString URL; static QString VERSION; @@ -298,6 +311,7 @@ struct ConfigStrings #define CONFIG_DEFINES ConfigStrings::DEFINES #define CONFIG_DEPENDS ConfigStrings::DEPENDS #define CONFIG_DESCRIPTION ConfigStrings::DESCRIPTION +#define CONFIG_DOCBOOKEXTENSIONS ConfigStrings::DOCBOOKEXTENSIONS #define CONFIG_EDITION ConfigStrings::EDITION #define CONFIG_ENDHEADER ConfigStrings::ENDHEADER #define CONFIG_EXAMPLEDIRS ConfigStrings::EXAMPLEDIRS @@ -326,6 +340,7 @@ struct ConfigStrings #define CONFIG_LANDINGTITLE ConfigStrings::LANDINGTITLE #define CONFIG_LANGUAGE ConfigStrings::LANGUAGE #define CONFIG_LOCATIONINFO ConfigStrings::LOCATIONINFO +#define CONFIG_LOGPROGRESS ConfigStrings::LOGPROGRESS #define CONFIG_MACRO ConfigStrings::MACRO #define CONFIG_MANIFESTMETA ConfigStrings::MANIFESTMETA #define CONFIG_MODULEHEADER ConfigStrings::MODULEHEADER @@ -357,6 +372,7 @@ struct ConfigStrings #define CONFIG_SYNTAXHIGHLIGHTING ConfigStrings::SYNTAXHIGHLIGHTING #define CONFIG_TABSIZE ConfigStrings::TABSIZE #define CONFIG_TAGFILE ConfigStrings::TAGFILE +#define CONFIG_TIMESTAMPS ConfigStrings::TIMESTAMPS #define CONFIG_TRANSLATORS ConfigStrings::TRANSLATORS #define CONFIG_URL ConfigStrings::URL #define CONFIG_VERSION ConfigStrings::VERSION @@ -374,6 +390,11 @@ inline bool Config::singleExec() const return getBool(CONFIG_SINGLEEXEC); } +inline bool Config::dualExec() const +{ + return !getBool(CONFIG_SINGLEEXEC); +} + QT_END_NAMESPACE #endif diff --git a/src/qdoc/docbookgenerator.cpp b/src/qdoc/docbookgenerator.cpp index 8e2292211..5f8d961f8 100644 --- a/src/qdoc/docbookgenerator.cpp +++ b/src/qdoc/docbookgenerator.cpp @@ -2537,7 +2537,7 @@ void DocBookGenerator::generateDocBookSynopsis(const Node *node) // Generator::generateThreadSafeness, QDocIndexFiles::generateIndexSection. // This function is the only place where DocBook extensions are used. - if (useDocBookExtensions()) + if (config->getBool(CONFIG_DOCBOOKEXTENSIONS)) return; // Nothing to export in some cases. diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp index f886ef56c..7bb32f471 100644 --- a/src/qdoc/generator.cpp +++ b/src/qdoc/generator.cpp @@ -75,12 +75,8 @@ QStringList Generator::styleFiles; bool Generator::noLinkErrors_ = false; bool Generator::autolinkErrors_ = false; bool Generator::redirectDocumentationToDevNull_ = false; -Generator::QDocPass Generator::qdocPass_ = Generator::Neither; bool Generator::qdocSingleExec_ = false; -bool Generator::qdocWriteQaPages_ = false; bool Generator::useOutputSubdirs_ = true; -bool Generator::useTimestamps_ = false; -bool Generator::useDocBookExtensions_ = false; QmlTypeNode *Generator::qmlTypeContext_ = nullptr; static QRegExp tag("</?@[^>]*>"); @@ -1814,7 +1810,7 @@ void Generator::initializeFormat() QDir dirInfo; if (dirInfo.exists(outDir_)) { - if (!generating() && Generator::useOutputSubdirs()) { + if (!config.generating() && Generator::useOutputSubdirs()) { if (!Config::removeDirContents(outDir_)) config.lastLocation().error(tr("Cannot empty output directory '%1'").arg(outDir_)); } @@ -1823,7 +1819,7 @@ void Generator::initializeFormat() } // Output directory exists, which is enough for prepare phase. - if (preparing()) + if (config.preparing()) return; if (!dirInfo.exists(outDir_ + "/images") && !dirInfo.mkdir(outDir_ + "/images")) diff --git a/src/qdoc/generator.h b/src/qdoc/generator.h index 05a215c46..fd5fbbcef 100644 --- a/src/qdoc/generator.h +++ b/src/qdoc/generator.h @@ -52,7 +52,6 @@ class Generator Q_DECLARE_TR_FUNCTIONS(QDoc::Generator) public: - enum QDocPass { Neither, Prepare, Generate }; enum ListType { Generic, Obsolete }; Generator(); @@ -80,16 +79,6 @@ public: static void augmentImageDirs(QSet<QString> &moreImageDirs); static bool noLinkErrors() { return noLinkErrors_; } static bool autolinkErrors() { return autolinkErrors_; } - static void setQDocPass(QDocPass t) { qdocPass_ = t; } - static void setUseTimestamps() { useTimestamps_ = true; } - static void setUseDocBookExtensions() { useDocBookExtensions_ = true; } - static bool preparing() { return (qdocPass_ == Prepare); } - static bool generating() { return (qdocPass_ == Generate); } - static bool singleExec() { return qdocSingleExec_; } - static bool dualExec() { return !qdocSingleExec_; } - static bool writeQaPages() { return qdocWriteQaPages_; } - static void setSingleExec() { qdocSingleExec_ = true; } - static void setWriteQaPages() { qdocWriteQaPages_ = true; } static QString defaultModuleName() { return project_; } static void resetUseOutputSubdirs() { useOutputSubdirs_ = false; } static bool useOutputSubdirs() { return useOutputSubdirs_; } @@ -97,8 +86,6 @@ public: static QmlTypeNode *qmlTypeContext() { return qmlTypeContext_; } static QString cleanRef(const QString &ref); static QString plainCode(const QString &markedCode); - static bool useTimestamps() { return useTimestamps_; } - static bool useDocBookExtensions() { return useDocBookExtensions_; } protected: static QFile *openSubPageFile(const Node *node, const QString &fileName); @@ -220,12 +207,8 @@ private: static bool noLinkErrors_; static bool autolinkErrors_; static bool redirectDocumentationToDevNull_; - static QDocPass qdocPass_; static bool qdocSingleExec_; - static bool qdocWriteQaPages_; static bool useOutputSubdirs_; - static bool useTimestamps_; - static bool useDocBookExtensions_; static QmlTypeNode *qmlTypeContext_; void generateReimplementsClause(const FunctionNode *fn, CodeMarker *marker); diff --git a/src/qdoc/htmlgenerator.cpp b/src/qdoc/htmlgenerator.cpp index 8bd009f5f..e7f4dc1cb 100644 --- a/src/qdoc/htmlgenerator.cpp +++ b/src/qdoc/htmlgenerator.cpp @@ -285,19 +285,19 @@ void HtmlGenerator::generateDocs() Node *qflags = qdb_->findClassNode(QStringList("QFlags")); if (qflags) qflagsHref_ = linkForNode(qflags, nullptr); - if (!preparing()) + if (!config->preparing()) Generator::generateDocs(); - if (Generator::generating() && Generator::writeQaPages()) + if (config->generating() && config->getBool(CONFIG_WRITEQAPAGES)) generateQAPage(); - if (!generating()) { + if (!config->generating()) { QString fileBase = project.toLower().simplified().replace(QLatin1Char(' '), QLatin1Char('-')); qdb_->generateIndex(outputDir() + QLatin1Char('/') + fileBase + ".index", projectUrl, projectDescription, this); } - if (!preparing()) { + if (!config->preparing()) { helpProjectWriter->generate(); generateManifestFiles(); /* @@ -502,7 +502,8 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark if (link.isEmpty()) { out() << protectEnc(atom->string()); } else { - if (Generator::writeQaPages() && node && (atom->type() != Atom::NavAutoLink)) { + if (config->getBool(CONFIG_WRITEQAPAGES) + && node && (atom->type() != Atom::NavAutoLink)) { QString text = atom->string(); QString target = qdb_->getNewLinkTarget(relative, node, outFileName(), text); out() << "<a id=\"" << Doc::canonicalTitle(target) @@ -846,13 +847,13 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark QString link = getLink(atom, relative, &node); if (link.isEmpty() && (node != relative) && !noLinkErrors()) { relative->doc().location().warning(tr("Can't link to '%1'").arg(atom->string())); - if (Generator::writeQaPages() && (atom->type() != Atom::NavAutoLink)) { + if (config->getBool(CONFIG_WRITEQAPAGES) && (atom->type() != Atom::NavAutoLink)) { QString text = atom->next()->next()->string(); QString target = qdb_->getNewLinkTarget(relative, node, outFileName(), text, true); out() << "<a id=\"" << Doc::canonicalTitle(target) << "\" class=\"qa-mark\"></a>"; } } else { - if (Generator::writeQaPages() && node && (atom->type() != Atom::NavLink)) { + if (config->getBool(CONFIG_WRITEQAPAGES) && node && (atom->type() != Atom::NavLink)) { QString text = atom->next()->next()->string(); QString target = qdb_->getNewLinkTarget(relative, node, outFileName(), text); out() << "<a id=\"" << Doc::canonicalTitle(target) << "\" class=\"qa-mark\"></a>"; diff --git a/src/qdoc/location.cpp b/src/qdoc/location.cpp index 7178c0f85..a63b1780e 100644 --- a/src/qdoc/location.cpp +++ b/src/qdoc/location.cpp @@ -48,7 +48,6 @@ int Location::warningLimit = -1; QString Location::programName; QString Location::project; QRegExp *Location::spuriousRegExp = nullptr; -bool Location::logProgress_ = false; /*! \class Location @@ -256,7 +255,8 @@ QString Location::canonicalRelativePath(const QString &path) */ void Location::warning(const QString &message, const QString &details) const { - if (!Generator::preparing() || Generator::singleExec()) + const auto &config = Config::instance(); + if (!config.preparing() || config.singleExec()) emitMessage(Warning, message, details); } @@ -267,7 +267,8 @@ void Location::warning(const QString &message, const QString &details) const */ void Location::error(const QString &message, const QString &details) const { - if (!Generator::preparing() || Generator::singleExec()) + const auto &config = Config::instance(); + if (!config.preparing() || config.singleExec()) emitMessage(Error, message, details); } diff --git a/src/qdoc/location.h b/src/qdoc/location.h index 818984b63..68ab28845 100644 --- a/src/qdoc/location.h +++ b/src/qdoc/location.h @@ -84,8 +84,6 @@ public: static void terminate(); static void information(const QString &message); static void internalError(const QString &hint); - static void startLoggingProgress() { logProgress_ = true; } - static void stopLoggingProgress() { logProgress_ = false; } static QString canonicalRelativePath(const QString &path); static int exitCode(); @@ -117,7 +115,6 @@ private: static QString programName; static QString project; static QRegExp *spuriousRegExp; - static bool logProgress_; }; Q_DECLARE_TYPEINFO(Location::StackEntry, Q_MOVABLE_TYPE); Q_DECLARE_TYPEINFO(Location, Q_COMPLEX_TYPE); // stkTop = &stkBottom diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp index 1105fcf43..96e93c015 100644 --- a/src/qdoc/main.cpp +++ b/src/qdoc/main.cpp @@ -237,9 +237,9 @@ void logStartEndMessage(const QLatin1String &startStop, const Config &config) const QString runName = " qdoc for " + config.getString(CONFIG_PROJECT) + QLatin1String(" in ") - + QLatin1String(Generator::singleExec() ? "single" : "dual") + + QLatin1String(config.singleExec() ? "single" : "dual") + QLatin1String(" process mode, (") - + QLatin1String(Generator::preparing() ? "prepare" : "generate") + + QLatin1String(config.preparing() ? "prepare" : "generate") + QLatin1String(" phase)"); const QString msg = startStop + runName; @@ -358,14 +358,14 @@ static void processQdocconfFile(const QString &fileName) Location outputFormatsLocation = config.lastLocation(); qdb->clearSearchOrder(); - if (!Generator::singleExec()) { - if (!Generator::preparing()) { + if (!config.singleExec()) { + if (!config.preparing()) { qCDebug(lcQdoc, " loading index files"); loadIndexFiles(outputFormats); qCDebug(lcQdoc, " done loading index files"); } qdb->newPrimaryTree(project); - } else if (Generator::preparing()) + } else if (config.preparing()) qdb->newPrimaryTree(project); else qdb->setPrimaryTree(project); @@ -409,7 +409,7 @@ static void processQdocconfFile(const QString &fileName) } Generator::augmentImageDirs(exampleImageDirs); - if (Generator::dualExec() || Generator::preparing()) { + if (config.dualExec() || config.preparing()) { QStringList headerList; QStringList sourceList; @@ -585,14 +585,14 @@ int main(int argc, char **argv) if (config.singleExec()) qdocFiles = Config::loadMaster(qdocFiles.at(0)); - if (Generator::singleExec()) { + if (config.singleExec()) { // single qdoc process for prepare and generate phases - Generator::setQDocPass(Generator::Prepare); + config.setQDocPass(Config::Prepare); for (const auto &file : qAsConst(qdocFiles)) { config.dependModules().clear(); processQdocconfFile(file); } - Generator::setQDocPass(Generator::Generate); + config.setQDocPass(Config::Generate); QDocDatabase::qdocDB()->processForest(); for (const auto &file : qAsConst(qdocFiles)) { config.dependModules().clear(); diff --git a/src/qdoc/qdocdatabase.cpp b/src/qdoc/qdocdatabase.cpp index 2297c237d..966fb8aaa 100644 --- a/src/qdoc/qdocdatabase.cpp +++ b/src/qdoc/qdocdatabase.cpp @@ -1102,7 +1102,8 @@ const NodeMap &QDocDatabase::getSinceMap(const QString &key) */ void QDocDatabase::resolveStuff() { - if (Generator::dualExec() || Generator::preparing()) { + const auto &config = Config::instance(); + if (config.dualExec() || config.preparing()) { // order matters primaryTree()->resolveBaseClasses(primaryTreeRoot()); primaryTree()->resolvePropertyOverriddenFromPtrs(primaryTreeRoot()); @@ -1116,19 +1117,19 @@ void QDocDatabase::resolveStuff() primaryTree()->resolveCppToQmlLinks(); primaryTree()->resolveUsingClauses(); } - if (Generator::singleExec() && Generator::generating()) { + if (config.singleExec() && config.generating()) { primaryTree()->resolveBaseClasses(primaryTreeRoot()); primaryTree()->resolvePropertyOverriddenFromPtrs(primaryTreeRoot()); primaryTreeRoot()->resolveQmlInheritance(); primaryTree()->resolveCppToQmlLinks(); primaryTree()->resolveUsingClauses(); } - if (Generator::generating()) { + if (config.generating()) { resolveNamespaces(); resolveProxies(); resolveBaseClasses(); } - if (Generator::dualExec()) + if (config.dualExec()) QDocIndexFiles::destroyQDocIndexFiles(); } diff --git a/src/qdoc/tree.cpp b/src/qdoc/tree.cpp index 2cc36736f..f6477b6b1 100644 --- a/src/qdoc/tree.cpp +++ b/src/qdoc/tree.cpp @@ -78,9 +78,9 @@ Tree::Tree(const QString &camelCaseModuleName, QDocDatabase *qdb) { root_.setPhysicalModuleName(physicalModuleName_); root_.setTree(this); - if (Generator::writeQaPages()) { + const auto &config = Config::instance(); + if (config.getBool(CONFIG_WRITEQAPAGES)) targetListMap_ = new TargetListMap; - } } /*! @@ -104,7 +104,8 @@ Tree::~Tree() } nodesByTargetRef_.clear(); nodesByTargetTitle_.clear(); - if (Generator::writeQaPages() && targetListMap_) { + const auto &config = Config::instance(); + if (config.getBool(CONFIG_WRITEQAPAGES) && targetListMap_) { for (auto target = targetListMap_->begin(); target != targetListMap_->end(); ++target) { TargetList *tlist = target.value(); if (tlist) { |