summaryrefslogtreecommitdiff
path: root/src/qdoc/generator.cpp
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2020-01-03 23:10:47 +0100
committerTopi Reinio <topi.reinio@qt.io>2020-01-13 10:30:34 +0100
commitccdbf30b6ac9180ead6fc22c858b6fac112d493c (patch)
tree684348bac8eae2acffe5c78545a608bbee9c62a9 /src/qdoc/generator.cpp
parentade15563a6c7613b58201e6e05e3f67fde3f6056 (diff)
downloadqttools-ccdbf30b6ac9180ead6fc22c858b6fac112d493c.tar.gz
qdoc: Make Config a singleton
There is no need to pass a pointer to Config throughout the API; the only instance of it is created in main() so we can turn it into a singleton. Having access to Config without API changes makes implementation of configurable features easier. Change-Id: Ida47e067865082dfe036a7a97f7f1ffc736db346 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'src/qdoc/generator.cpp')
-rw-r--r--src/qdoc/generator.cpp31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp
index 6bcc084b5..ab27ecea7 100644
--- a/src/qdoc/generator.cpp
+++ b/src/qdoc/generator.cpp
@@ -921,7 +921,7 @@ void Generator::generateRequiredLinks(const Node *node, CodeMarker *marker)
return;
const ExampleNode *en = static_cast<const ExampleNode *>(node);
- QString exampleUrl = config()->getString(CONFIG_URL + Config::dot + CONFIG_EXAMPLES);
+ QString exampleUrl = Config::instance().getString(CONFIG_URL + Config::dot + CONFIG_EXAMPLES);
if (exampleUrl.isEmpty()) {
if (!en->noAutoList()) {
@@ -962,7 +962,7 @@ void Generator::generateLinkToExample(const ExampleNode *en, CodeMarker *marker,
// Construct a path to the example; <install path>/<example name>
QStringList path = QStringList()
- << config()->getString(CONFIG_EXAMPLESINSTALLPATH) << en->name();
+ << Config::instance().getString(CONFIG_EXAMPLESINSTALLPATH) << en->name();
path.removeAll({});
Text text;
@@ -1685,8 +1685,9 @@ QString Generator::indent(int level, const QString &markedCode)
return t;
}
-void Generator::initialize(const Config &config)
+void Generator::initialize()
{
+ Config &config = Config::instance();
outputFormats = config.getOutputFormats();
redirectDocumentationToDevNull_ = config.getBool(CONFIG_REDIRECTDOCUMENTATIONTODEVNULL);
@@ -1706,7 +1707,7 @@ void Generator::initialize(const Config &config)
for (auto &g : generators) {
if (outputFormats.contains(g->format())) {
currentGenerator_ = g;
- g->initializeGenerator(config);
+ g->initializeGenerator();
}
}
@@ -1765,9 +1766,9 @@ void Generator::initialize(const Config &config)
Creates template-specific subdirs (e.g. /styles and /scripts for HTML)
and copies the files to them.
*/
-void Generator::copyTemplateFiles(const Config &config, const QString &configVar,
- const QString &subDir)
+void Generator::copyTemplateFiles(const QString &configVar, const QString &subDir)
{
+ Config &config = Config::instance();
QStringList files = config.getCanonicalPathList(configVar, true);
if (!files.isEmpty()) {
QDir dirInfo;
@@ -1785,12 +1786,13 @@ void Generator::copyTemplateFiles(const Config &config, const QString &configVar
}
/*!
- Reads format-specific variables from \a config, sets output
+ Reads format-specific variables from config, sets output
(sub)directories, creates them on the filesystem and copies the
template-specific files.
*/
-void Generator::initializeFormat(const Config &config)
+void Generator::initializeFormat()
{
+ Config &config = Config::instance();
outFileNames_.clear();
useOutputSubdirs_ = true;
if (config.getBool(format() + Config::dot + "nosubdirs"))
@@ -1825,9 +1827,9 @@ void Generator::initializeFormat(const Config &config)
config.lastLocation().fatal(
tr("Cannot create images directory '%1'").arg(outDir_ + "/images"));
- copyTemplateFiles(config, format() + Config::dot + CONFIG_STYLESHEETS, "style");
- copyTemplateFiles(config, format() + Config::dot + CONFIG_SCRIPTS, "scripts");
- copyTemplateFiles(config, format() + Config::dot + CONFIG_EXTRAIMAGES, "images");
+ copyTemplateFiles(format() + Config::dot + CONFIG_STYLESHEETS, "style");
+ copyTemplateFiles(format() + Config::dot + CONFIG_SCRIPTS, "scripts");
+ copyTemplateFiles(format() + Config::dot + CONFIG_EXTRAIMAGES, "images");
// Use a format-specific .quotinginformation if defined, otherwise a global value
if (config.subVars(format()).contains(CONFIG_QUOTINGINFORMATION))
@@ -1851,11 +1853,10 @@ void Generator::augmentImageDirs(QSet<QString> &moreImageDirs)
/*!
Sets the generator's pointer to the Config instance.
*/
-void Generator::initializeGenerator(const Config &config)
+void Generator::initializeGenerator()
{
- config_ = &config;
- showInternal_ = config.getBool(CONFIG_SHOWINTERNAL);
- singleExec_ = config.getBool(CONFIG_SINGLEEXEC);
+ showInternal_ = Config::instance().getBool(CONFIG_SHOWINTERNAL);
+ singleExec_ = Config::instance().getBool(CONFIG_SINGLEEXEC);
}
bool Generator::matchAhead(const Atom *atom, Atom::AtomType expectedAtomType)