summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3/pagegenerator.cpp
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-02-04 14:19:15 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-02-04 14:19:15 (GMT)
commitf018d9236647b687e03dd9d2e1867944b4f4058b (patch)
treefa45c1bba51250efd04d630eef9a1d8ca4ca5941 /tools/qdoc3/pagegenerator.cpp
parentbc331aca61a2f212a347708c9d44a4fb092183fd (diff)
parentf34259ed82da481f009830839ad4d421d9b80780 (diff)
downloadQt-f018d9236647b687e03dd9d2e1867944b4f4058b.zip
Qt-f018d9236647b687e03dd9d2e1867944b4f4058b.tar.gz
Qt-f018d9236647b687e03dd9d2e1867944b4f4058b.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-doc-staging into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-doc-staging: (216 commits) Doc: Fixed a reference to the wrong image. Fixed a bug that caused marked up inline text to be truncated. Doc: Renamed an image to ensure that it does not clash with another. Doc: Fixed QML, unindented snippet. Doc: Removed unnecessary HTML entity from the title. Doc: Fixed broken links to the old Symbian Foundation Wiki. Doc: Updated the copyright statements in the templates. Doc: Fixing typo Replace all occurances of "Qt 4.7" with "QtQuick 1.0" Doc: Adjusted the font sizes for the offline documentation. Doc: Added a missing style sheet to the qhp manifest. Doc: Fixed the qthelp namespace for the Qt documentation. Doc: including missing pages in overviews. Doc: Fixed typo in QCoreApplication docs Fixed whitespace. Avoid hard-coding product names in page titles. Doc: Unindented a code snippet. Doc: Fixed confusing wording of a sentence. Doc: Fixed a broken link. Doc: Updated the information about commercial editions of Qt. ...
Diffstat (limited to 'tools/qdoc3/pagegenerator.cpp')
-rw-r--r--tools/qdoc3/pagegenerator.cpp55
1 files changed, 43 insertions, 12 deletions
diff --git a/tools/qdoc3/pagegenerator.cpp b/tools/qdoc3/pagegenerator.cpp
index 3e160c9..89ec6fe 100644
--- a/tools/qdoc3/pagegenerator.cpp
+++ b/tools/qdoc3/pagegenerator.cpp
@@ -46,6 +46,7 @@
#include <qfile.h>
#include <qfileinfo.h>
#include <qdebug.h>
+#include "codemarker.h"
#include "pagegenerator.h"
#include "tree.h"
@@ -55,6 +56,7 @@ QT_BEGIN_NAMESPACE
Nothing to do in the constructor.
*/
PageGenerator::PageGenerator()
+ : outputCodec(0)
{
// nothing.
}
@@ -175,9 +177,9 @@ bool PageGenerator::parseArg(const QString& src,
/*!
This function is recursive.
*/
-void PageGenerator::generateTree(const Tree *tree, CodeMarker *marker)
+void PageGenerator::generateTree(const Tree *tree)
{
- generateInnerNode(tree->root(), marker);
+ generateInnerNode(tree->root());
}
QString PageGenerator::fileBase(const Node *node) const
@@ -257,7 +259,12 @@ QString PageGenerator::fileBase(const Node *node) const
return res;
}
-QString PageGenerator::fileName(const Node *node) const
+/*!
+ If the \a node has a URL, return the URL as the file name.
+ Otherwise, construct the file name from the fileBase() and
+ the fileExtension(), and return the constructed name.
+ */
+QString PageGenerator::fileName(const Node* node) const
{
if (!node->url().isEmpty())
return node->url();
@@ -268,23 +275,37 @@ QString PageGenerator::fileName(const Node *node) const
return name;
}
+/*!
+ Return the current output file name.
+ */
QString PageGenerator::outFileName()
{
- return QFileInfo(static_cast<QFile *>(out().device())->fileName()).fileName();
+ return QFileInfo(static_cast<QFile*>(out().device())->fileName()).fileName();
}
+/*!
+ Creates the file named \a fileName in the output directory.
+ Attaches a QTextStream to the created file, which is written
+ to all over the place using out().
+ */
void PageGenerator::beginSubPage(const Location& location,
const QString& fileName)
{
- QFile *outFile = new QFile(outputDir() + "/" + fileName);
+ QFile* outFile = new QFile(outputDir() + "/" + fileName);
if (!outFile->open(QFile::WriteOnly))
- location.fatal(tr("Cannot open output file '%1'")
- .arg(outFile->fileName()));
- QTextStream *out = new QTextStream(outFile);
- out->setCodec(outputCodec);
+ location.fatal(tr("Cannot open output file '%1'").arg(outFile->fileName()));
+ QTextStream* out = new QTextStream(outFile);
+
+ if (outputCodec)
+ out->setCodec(outputCodec);
outStreamStack.push(out);
}
+/*!
+ Flush the text stream associated with the subpage, and
+ then pop it off the text stream stack and delete it.
+ This terminates output of the subpage.
+ */
void PageGenerator::endSubPage()
{
outStreamStack.top()->flush();
@@ -292,16 +313,21 @@ void PageGenerator::endSubPage()
delete outStreamStack.pop();
}
+/*!
+ Used for writing to the current output stream. Returns a
+ reference to the crrent output stream, which is then used
+ with the \c {<<} operator for writing.
+ */
QTextStream &PageGenerator::out()
{
return *outStreamStack.top();
}
/*!
- Recursive writing of html files from the root \a node.
+ Recursive writing of HTML files from the root \a node.
*/
void
-PageGenerator::generateInnerNode(const InnerNode* node, CodeMarker* marker)
+PageGenerator::generateInnerNode(const InnerNode* node)
{
if (!node->url().isNull())
return;
@@ -320,6 +346,11 @@ PageGenerator::generateInnerNode(const InnerNode* node, CodeMarker* marker)
}
}
+ /*
+ Obtain a code marker for the source file.
+ */
+ CodeMarker *marker = CodeMarker::markerForFileName(node->location().filePath());
+
if (node->parent() != 0) {
beginSubPage(node->location(), fileName(node));
if (node->type() == Node::Namespace || node->type() == Node::Class) {
@@ -334,7 +365,7 @@ PageGenerator::generateInnerNode(const InnerNode* node, CodeMarker* marker)
NodeList::ConstIterator c = node->childNodes().begin();
while (c != node->childNodes().end()) {
if ((*c)->isInnerNode() && (*c)->access() != Node::Private)
- generateInnerNode((const InnerNode *) *c, marker);
+ generateInnerNode((const InnerNode *) *c);
++c;
}
}