summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Wicking <paul.wicking@qt.io>2019-02-08 10:45:48 +0100
committerPaul Wicking <paul.wicking@qt.io>2019-02-08 13:39:25 +0000
commit439d9682de6052492431324e8c207e3cc3c02957 (patch)
tree2bbb676533999b180cb93c8ff4cec6663fbeb903
parent438e477d35c4e62251664878bdbf9f8efc85cd0d (diff)
downloadqttools-439d9682de6052492431324e8c207e3cc3c02957.tar.gz
QDoc: generate proper html for example source file pages
Source for examples are put into html files that are linked to from the example page. In 5.12 these html files contained the doc site header, footer, and proper styling. This behavior is restored with this change. Change-Id: I23254366e4f85d348ed1bf7af5175334920cd672 Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--src/qdoc/generator.cpp11
-rw-r--r--src/qdoc/generator.h1
-rw-r--r--src/qdoc/htmlgenerator.cpp31
-rw-r--r--src/qdoc/htmlgenerator.h1
4 files changed, 34 insertions, 10 deletions
diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp
index be5f6b20c..34194b7d7 100644
--- a/src/qdoc/generator.cpp
+++ b/src/qdoc/generator.cpp
@@ -1003,16 +1003,7 @@ void Generator::generateFileList(const ExampleNode* en, CodeMarker* marker, bool
}
else {
- Text text;
- Quoter quoter;
- Doc::quoteFromFile(en->doc().location(), quoter, file);
- QString code = quoter.quoteTo(en->location(), QString(), QString());
- CodeMarker *codeMarker = CodeMarker::markerForFileName(file);
- text << Atom(codeMarker->atomType(), code);
- Atom a(codeMarker->atomType(), code);
- beginFilePage(en, linkForExampleFile(file, en));
- generateText(text, en, codeMarker);
- endFilePage();
+ generateExampleFilePage(en, file, marker);
}
openedList.next();
diff --git a/src/qdoc/generator.h b/src/qdoc/generator.h
index 437da7ba0..dd1747e4e 100644
--- a/src/qdoc/generator.h
+++ b/src/qdoc/generator.h
@@ -111,6 +111,7 @@ protected:
virtual QString fileBase(const Node* node) const;
virtual QString fileExtension() const = 0;
virtual void generateQAPage() { }
+ virtual void generateExampleFilePage(const Node *, const QString &, CodeMarker *) {}
virtual void generateAlsoList(const Node *node, CodeMarker *marker);
virtual int generateAtom(const Atom *, const Node *, CodeMarker *) { return 0; }
virtual void generateBody(const Node *node, CodeMarker *marker);
diff --git a/src/qdoc/htmlgenerator.cpp b/src/qdoc/htmlgenerator.cpp
index 06da48698..04e3bb0e7 100644
--- a/src/qdoc/htmlgenerator.cpp
+++ b/src/qdoc/htmlgenerator.cpp
@@ -38,6 +38,7 @@
#include "qdocdatabase.h"
#include "separator.h"
#include "tree.h"
+#include "quoter.h"
#include <ctype.h>
#include <qdebug.h>
#include <qlist.h>
@@ -405,6 +406,36 @@ void HtmlGenerator::generateQAPage()
}
/*!
+ Generate an html file with the contents of a C++ or QML source file.
+ */
+void HtmlGenerator::generateExampleFilePage(const Node *en,
+ const QString &file,
+ CodeMarker *marker)
+{
+ SubTitleSize subTitleSize = LargeSubTitle;
+ QString fullTitle = en->fullTitle();
+
+ beginFilePage(en, linkForExampleFile(file, en));
+ generateHeader(fullTitle, en, marker);
+ generateTitle(fullTitle,
+ Text() << en->subtitle(),
+ subTitleSize,
+ en,
+ marker);
+
+ Text text;
+ Quoter quoter;
+ Doc::quoteFromFile(en->doc().location(), quoter, file);
+ QString code = quoter.quoteTo(en->location(), QString(), QString());
+ CodeMarker *codeMarker = CodeMarker::markerForFileName(file);
+ text << Atom(codeMarker->atomType(), code);
+ Atom a(codeMarker->atomType(), code);
+
+ generateText(text, en, codeMarker);
+ endFilePage();
+}
+
+/*!
This function writes an html file containing a list of
links to links that originate in the current module and
go to targets in the specified \a module. The \a marker
diff --git a/src/qdoc/htmlgenerator.h b/src/qdoc/htmlgenerator.h
index 4ae50fac8..b83e21aa2 100644
--- a/src/qdoc/htmlgenerator.h
+++ b/src/qdoc/htmlgenerator.h
@@ -65,6 +65,7 @@ public:
protected:
void generateQAPage() override;
+ void generateExampleFilePage(const Node *en, const QString &file, CodeMarker *marker) override;
QString generateLinksToLinksPage(const QString& module, CodeMarker* marker);
QString generateLinksToBrokenLinksPage(CodeMarker* marker, int& count);
virtual int generateAtom(const Atom *atom,