qdoc: Make example file names unique

To avoid duplicate files for examples, the files
are named this way. Suppose you have an example
called mandelbrot. The example is in a subdirectory
named mandelbrot, and there is a \example command
somewhere like this:

\example mandelbrot

In this case, the mandelbrot example is in the QtCore
module. Then the name of the example page will be:

"qtcore-mandelbrot-example"

...and the names of the example files will be:

"qtcore-mandelbrot-main-cpp.html"
"qtcore-mandelbrot-mandelbrot-pro.html"
"qtcore-mandelbrot-mandelbrotwidget-cpp.html"
"qtcore-mandelbrot-mandelbrotwidget-h.html"
"qtcore-mandelbrot-renderthread-cpp.html"
"qtcore-mandelbrot-renderthread-h.html"

Task-number: QTBUG-32580
Change-Id: Ic4445fd65b679523d6d94a8b0c19289d049ef0b0
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
This commit is contained in:
Martin Smith 2013-08-19 11:54:26 +02:00 committed by The Qt Project
parent 5b4c0d4b0b
commit d9b5cead97
3 changed files with 10 additions and 1 deletions

View File

@ -3698,7 +3698,7 @@ QString DitaXmlGenerator::guidForNode(const Node* node)
Constructs a file name appropriate for the \a node and returns
it. If the \a node is not a fake node, or if it is a fake node but
it is neither an external page node nor an image node or a ditamap,
call the PageGenerator::fileName() function.
call the Generator::fileName() function.
*/
QString DitaXmlGenerator::fileName(const Node* node)
{

View File

@ -358,6 +358,11 @@ QString Generator::fileBase(const Node *node) const
if (node->subType() == Node::Module) {
base.append("-module");
}
if (node->isExample() || node->isExampleFile())
base.prepend(project.toLower() + QLatin1Char('-'));
if (node->isExample())
base.append(QLatin1String("-example"));
}
// the code below is effectively equivalent to:

View File

@ -193,6 +193,8 @@ public:
void markNotSeen() { seen_ = false; }
virtual bool isInnerNode() const = 0;
virtual bool isExample() const { return false; }
virtual bool isExampleFile() const { return false; }
virtual bool isLeaf() const { return false; }
virtual bool isReimp() const { return false; }
virtual bool isFunction() const { return false; }
@ -510,6 +512,8 @@ public:
virtual QString nameForLists() const { return title(); }
virtual void setImageFileName(const QString& ) { }
virtual bool isGroup() const { return (subType() == Node::Group); }
virtual bool isExample() const { return (subType() == Node::Example); }
virtual bool isExampleFile() const { return (parent() && parent()->isExample()); }
protected:
SubType nodeSubtype_;