summaryrefslogtreecommitdiff
path: root/src/qdoc/main.cpp
diff options
context:
space:
mode:
authorPaul Wicking <paul.wicking@qt.io>2023-03-22 21:23:17 +0100
committerPaul Wicking <paul.wicking@qt.io>2023-03-23 13:41:50 +0100
commit4fc8835cf4534e926f27539c8c316470e5d7e11f (patch)
tree9f489bfec876375475138801f9c62cc94bc14d16 /src/qdoc/main.cpp
parent9ac1e17f5af594021b5c0eba4c7a6112d9199374 (diff)
downloadqttools-4fc8835cf4534e926f27539c8c316470e5d7e11f.tar.gz
QDoc: Extract singleExecutionMode function from main()
In QDoc's main(), two identical conditional checks for whether QDoc runs in single execution mode follow each other. This patch extracts the contents of these conditionals and places them in a separate function, singleExecutionMode(). This in turn makes main() slightly easier to read and reason about. The new function is documented such that its purpose can be understood in clear terms. The list the function operates on is obtained from Config. As that is a singleton object, the function doesn't require the passing of a reference to that object, as it can access the required functionality directly through the singleton instance itself. The new function is therefore parameterless. Task-number: QTBUG-71176 Change-Id: I49fb571b99a24ff70ab8f0b17de8e1f44064e418 Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
Diffstat (limited to 'src/qdoc/main.cpp')
-rw-r--r--src/qdoc/main.cpp44
1 files changed, 29 insertions, 15 deletions
diff --git a/src/qdoc/main.cpp b/src/qdoc/main.cpp
index 300c35970..58cbafa5b 100644
--- a/src/qdoc/main.cpp
+++ b/src/qdoc/main.cpp
@@ -611,6 +611,34 @@ static void processQdocconfFile(const QString &fileName)
qCDebug(lcQdoc, "qdoc classes terminated");
}
+/*!
+ \internal
+
+ A single QDoc process for prepare and generate phases.
+ The purpose is to first generate all index files for all documentation
+ projects that combined make out the documentation set being generated.
+ This allows QDoc to link to all content contained in all projects, e.g.
+ user-defined types or overview documentation, regardless of the project
+ that content belongs to when generating the final output.
+*/
+static void singleExecutionMode()
+{
+ const QStringList qdocFiles = Config::loadMaster(Config::instance().qdocFiles().at(0));
+
+ Config::instance().setQDocPass(Config::Prepare);
+ for (const auto &file : std::as_const(qdocFiles)) {
+ Config::instance().dependModules().clear();
+ processQdocconfFile(file);
+ }
+
+ Config::instance().setQDocPass(Config::Generate);
+ QDocDatabase::qdocDB()->processForest();
+ for (const auto &file : std::as_const(qdocFiles)) {
+ Config::instance().dependModules().clear();
+ processQdocconfFile(file);
+ }
+}
+
QT_END_NAMESPACE
int main(int argc, char **argv)
@@ -655,22 +683,8 @@ int main(int argc, char **argv)
if (qdocFiles.isEmpty())
config.showHelp();
- if (config.singleExec())
- qdocFiles = Config::loadMaster(qdocFiles.at(0));
-
if (config.singleExec()) {
- // single qdoc process for prepare and generate phases
- config.setQDocPass(Config::Prepare);
- for (const auto &file : std::as_const(qdocFiles)) {
- config.dependModules().clear();
- processQdocconfFile(file);
- }
- config.setQDocPass(Config::Generate);
- QDocDatabase::qdocDB()->processForest();
- for (const auto &file : std::as_const(qdocFiles)) {
- config.dependModules().clear();
- processQdocconfFile(file);
- }
+ singleExecutionMode();
} else {
// separate qdoc processes for prepare and generate phases
for (const auto &file : std::as_const(qdocFiles)) {