summaryrefslogtreecommitdiffstats
path: root/tools/qdoc3
diff options
context:
space:
mode:
authorDavid Boddie <david.boddie@nokia.com>2011-03-24 13:50:14 (GMT)
committerDavid Boddie <david.boddie@nokia.com>2011-03-24 13:50:14 (GMT)
commit2c1d8b2247896443e96de1c94582ead02ca24acd (patch)
tree36e47a0360be64253437b60ff1588ea626d1022f /tools/qdoc3
parentea9f34568acd1286f5ed4e7f2bf760982a4e4579 (diff)
parenteee16e58aa0255552a5dab7aa46dae66470e04a5 (diff)
downloadQt-2c1d8b2247896443e96de1c94582ead02ca24acd.zip
Qt-2c1d8b2247896443e96de1c94582ead02ca24acd.tar.gz
Qt-2c1d8b2247896443e96de1c94582ead02ca24acd.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-doc-team into 4.7
Diffstat (limited to 'tools/qdoc3')
-rw-r--r--tools/qdoc3/codemarker.cpp4
-rw-r--r--tools/qdoc3/codemarker.h2
-rw-r--r--tools/qdoc3/cppcodeparser.cpp22
-rw-r--r--tools/qdoc3/ditaxmlgenerator.cpp222
-rw-r--r--tools/qdoc3/ditaxmlgenerator.h4
-rw-r--r--tools/qdoc3/doc.cpp2
-rw-r--r--tools/qdoc3/node.cpp39
-rw-r--r--tools/qdoc3/node.h13
-rw-r--r--tools/qdoc3/test/macros.qdocconf1
-rw-r--r--tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf2
-rw-r--r--tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf2
-rw-r--r--tools/qdoc3/test/qt-html-templates.qdocconf256
-rw-r--r--tools/qdoc3/test/qt-project.qdocconf2
13 files changed, 436 insertions, 135 deletions
diff --git a/tools/qdoc3/codemarker.cpp b/tools/qdoc3/codemarker.cpp
index 58642ef..84a09ce 100644
--- a/tools/qdoc3/codemarker.cpp
+++ b/tools/qdoc3/codemarker.cpp
@@ -491,7 +491,7 @@ static QString encode(const QString &string)
#endif
}
-QStringList CodeMarker::macRefsForNode(const Node *node)
+QStringList CodeMarker::macRefsForNode(Node *node)
{
QString result = QLatin1String("cpp/");
switch (node->type()) {
@@ -583,7 +583,7 @@ QStringList CodeMarker::macRefsForNode(const Node *node)
{
NodeList list = static_cast<const PropertyNode*>(node)->functions();
QStringList stringList;
- foreach (const Node *node, list) {
+ foreach (Node* node, list) {
stringList += macRefsForNode(node);
}
return stringList;
diff --git a/tools/qdoc3/codemarker.h b/tools/qdoc3/codemarker.h
index 65fcdd4..21bc31f 100644
--- a/tools/qdoc3/codemarker.h
+++ b/tools/qdoc3/codemarker.h
@@ -155,7 +155,7 @@ class CodeMarker
const Tree* tree,
const Node* relative,
const Node* self = 0);
- virtual QStringList macRefsForNode(const Node* node);
+ virtual QStringList macRefsForNode(Node* node);
static void initialize(const Config& config);
static void terminate();
diff --git a/tools/qdoc3/cppcodeparser.cpp b/tools/qdoc3/cppcodeparser.cpp
index 595756a..4d04085 100644
--- a/tools/qdoc3/cppcodeparser.cpp
+++ b/tools/qdoc3/cppcodeparser.cpp
@@ -97,6 +97,22 @@ QT_BEGIN_NAMESPACE
#define COMMAND_QMLBASICTYPE Doc::alias("qmlbasictype")
#endif
+#define COMMAND_AUDIENCE Doc::alias("audience")
+#define COMMAND_CATEGORY Doc::alias("category")
+#define COMMAND_PRODNAME Doc::alias("prodname")
+#define COMMAND_COMPONENT Doc::alias("component")
+#define COMMAND_AUTHOR Doc::alias("author")
+#define COMMAND_PUBLISHER Doc::alias("publisher")
+#define COMMAND_COPYRYEAR Doc::alias("copyryear")
+#define COMMAND_COPYRHOLDER Doc::alias("copyrholder")
+#define COMMAND_PERMISSIONS Doc::alias("permissions")
+#define COMMAND_LIFECYCLEVERSION Doc::alias("lifecycleversion")
+#define COMMAND_LIFECYCLEWSTATUS Doc::alias("lifecyclestatus")
+#define COMMAND_LICENSEYEAR Doc::alias("licenseyear")
+#define COMMAND_LICENSENAME Doc::alias("licensename")
+#define COMMAND_LICENSEDESCRIPTION Doc::alias("licensedescription")
+#define COMMAND_RELEASEDATE Doc::alias("releasedate")
+
QStringList CppCodeParser::exampleFiles;
QStringList CppCodeParser::exampleDirs;
@@ -1811,7 +1827,7 @@ bool CppCodeParser::matchProperty(InnerNode *parent)
!match(Tok_QDOC_PROPERTY)) {
return false;
}
-
+
if (!match(expected_tok))
return false;
@@ -1893,9 +1909,9 @@ bool CppCodeParser::matchProperty(InnerNode *parent)
property->setRuntimeScrFunc(value);
}
}
- else if (key == "CONSTANT")
+ else if (key == "CONSTANT")
property->setConstant();
- else if (key == "FINAL")
+ else if (key == "FINAL")
property->setFinal();
}
match(Tok_RightParen);
diff --git a/tools/qdoc3/ditaxmlgenerator.cpp b/tools/qdoc3/ditaxmlgenerator.cpp
index 5d3e34a..018cbc7 100644
--- a/tools/qdoc3/ditaxmlgenerator.cpp
+++ b/tools/qdoc3/ditaxmlgenerator.cpp
@@ -1193,7 +1193,8 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
fileName = QLatin1String("images/") + protectEnc(atom->string());
}
- writeStartTag(DT_fig);
+ if (currentTag() != DT_xref)
+ writeStartTag(DT_fig);
writeStartTag(DT_image);
xmlWriter().writeAttribute("href",protectEnc(fileName));
if (atom->type() == Atom::InlineImage)
@@ -1208,7 +1209,8 @@ int DitaXmlGenerator::generateAtom(const Atom *atom,
writeEndTag(); // </alt>
}
writeEndTag(); // </image>
- writeEndTag(); // </fig>
+ if (currentTag() != DT_xref)
+ writeEndTag(); // </fig>
}
break;
case Atom::ImageText:
@@ -5551,13 +5553,74 @@ void DitaXmlGenerator::writeDitaMap()
}
/*!
+ Looks up the tag name for \a t in the map of metadata
+ values for the current topic in \a inner. If a value
+ for the tag is found, the element is written with the
+ found value. Otherwise if \a force is set, an empty
+ element is written using the tag.
+
+ Returns true or false depending on whether it writes
+ an element using the tag \a t.
+
+ \note If \a t is found in the metadata map, it is erased.
+ i.e. Once you call this function for a particular \a t,
+ you consume \a t.
+
+ At the moment, it doesn't chaeck to see if there is a
+ default value for the tag. But it will eventually.
+ */
+bool DitaXmlGenerator::writeMetadataElement(const InnerNode* inner,
+ DitaXmlGenerator::DitaTag t,
+ bool force)
+{
+ QString s;
+ QStringMap& metaTagMap = const_cast<QStringMap&>(inner->doc().metaTagMap());
+ QStringMap::iterator i = metaTagMap.find(ditaTags[t]);
+ if (i == metaTagMap.end()) {
+ // get the default author, if there is one.
+ }
+ else {
+ s = i.value();
+ metaTagMap.erase(i);
+ }
+ if (s.isEmpty() && !force)
+ return false;
+ writeStartTag(t);
+ if (!s.isEmpty())
+ xmlWriter().writeCharacters(s);
+ writeEndTag();
+ return true;
+}
+
+/*!
+ Looks up the tag name for \a t in the map of metadata
+ values for the current topic in \a inner. If a value
+ for the tag is found, the value is returned.
+
+ \note If \a t is found in the metadata map, it is erased.
+ i.e. Once you call this function for a particular \a t,
+ you consume \a t.
+ */
+QString DitaXmlGenerator::getMetadataElement(const InnerNode* inner, DitaXmlGenerator::DitaTag t)
+{
+ QString s;
+ QStringMap& metaTagMap = const_cast<QStringMap&>(inner->doc().metaTagMap());
+ QStringMap::iterator i = metaTagMap.find(ditaTags[t]);
+ if (i != metaTagMap.end()) {
+ s = i.value();
+ metaTagMap.erase(i);
+ }
+ return s;
+}
+
+/*!
Writes the <prolog> element for the \a inner node
using the \a marker. The <prolog> element contains
the <metadata> element, plus some others. This
function writes one or more of these elements:
\list
- \o <audience>
+ \o <audience> *
\o <author> *
\o <brand>
\o <category> *
@@ -5595,64 +5658,76 @@ DitaXmlGenerator::writeProlog(const InnerNode* inner, CodeMarker* marker)
if (!inner)
return;
writeStartTag(DT_prolog);
-
- QString author = inner->author();
- writeStartTag(DT_author);
- if (author.isEmpty())
- author = "Qt Development Frameworks";
- xmlWriter().writeCharacters(author);
- writeEndTag(); // <author>
-
- QString publisher = inner->publisher();
- writeStartTag(DT_publisher);
- if (publisher.isEmpty())
- publisher = "Nokia";
- xmlWriter().writeCharacters(publisher);
- writeEndTag(); // <publisher>
-
- QString permissions = inner->permissions();
+ writeMetadataElement(inner,DT_author);
+ writeMetadataElement(inner,DT_publisher);
+ QString s = getMetadataElement(inner,DT_copyryear);
+ if (s.isEmpty()) {
+ s = "2011"; // zzz
+ }
+ QString t = getMetadataElement(inner,DT_copyrholder);
+ if (t.isEmpty()) {
+ t = "Nokia"; // zzz
+ }
+ writeStartTag(DT_copyright);
+ writeStartTag(DT_copyryear);
+ xmlWriter().writeAttribute("year",s);
+ writeEndTag(); // </copyryear>
+ writeStartTag(DT_copyrholder);
+ xmlWriter().writeCharacters(t);
+ writeEndTag(); // </copyrholder>
+ writeEndTag(); // </copyright>
+ s = getMetadataElement(inner,DT_permissions);
+ if (s.isEmpty())
+ s = "all";
writeStartTag(DT_permissions);
- if (permissions.isEmpty())
- permissions = "all";
- xmlWriter().writeAttribute("view",permissions);
- writeEndTag(); // <permissions>
-
+ xmlWriter().writeAttribute("view",s);
+ writeEndTag(); // </permissions>
writeStartTag(DT_metadata);
- writeStartTag(DT_category);
- QString category = "Page";
- if (inner->type() == Node::Class)
- category = "C++ Class";
- else if (inner->type() == Node::Namespace)
- category = "C++ Namespace";
- else if (inner->type() == Node::Fake) {
- if (inner->subType() == Node::QmlBasicType)
- category = "QML Class";
- else if (inner->subType() == Node::QmlClass)
- category = "QML Basic Type";
- else if (inner->subType() == Node::HeaderFile)
- category = "Header File";
- else if (inner->subType() == Node::Module)
- category = "Module";
- else if (inner->subType() == Node::File)
- category = "Example Source File";
- else if (inner->subType() == Node::Example)
- category = "Example";
- else if (inner->subType() == Node::Image)
- category = "Image";
- else if (inner->subType() == Node::Group)
- category = "Group";
- else if (inner->subType() == Node::Page)
- category = "Page";
- else if (inner->subType() == Node::ExternalPage)
- category = "External Page"; // Is this necessary?
+ s = getMetadataElement(inner,DT_audience);
+ if (!s.isEmpty()) {
+ writeStartTag(DT_audience);
+ xmlWriter().writeAttribute("type",s);
+ writeEndTag(); // </audience>
+ }
+ if (!writeMetadataElement(inner,DT_category,false)) {
+ writeStartTag(DT_category);
+ QString category = "Page";
+ if (inner->type() == Node::Class)
+ category = "Class reference";
+ else if (inner->type() == Node::Namespace)
+ category = "Namespace";
+ else if (inner->type() == Node::Fake) {
+ if (inner->subType() == Node::QmlClass)
+ category = "QML Element Reference";
+ else if (inner->subType() == Node::QmlBasicType)
+ category = "QML Basic Type";
+ else if (inner->subType() == Node::HeaderFile)
+ category = "Header File";
+ else if (inner->subType() == Node::Module)
+ category = "Module";
+ else if (inner->subType() == Node::File)
+ category = "Example Source File";
+ else if (inner->subType() == Node::Example)
+ category = "Example";
+ else if (inner->subType() == Node::Image)
+ category = "Image";
+ else if (inner->subType() == Node::Group)
+ category = "Group";
+ else if (inner->subType() == Node::Page)
+ category = "Page";
+ else if (inner->subType() == Node::ExternalPage)
+ category = "External Page"; // Is this necessary?
+ }
+ xmlWriter().writeCharacters(category);
+ writeEndTag(); // </category>
}
- xmlWriter().writeCharacters(category);
- writeEndTag(); // <category>
if (vrm.size() > 0) {
writeStartTag(DT_prodinfo);
- writeStartTag(DT_prodname);
- xmlWriter().writeCharacters(projectDescription);
- writeEndTag(); // <prodname>
+ if (!writeMetadataElement(inner,DT_prodname,false)) {
+ writeStartTag(DT_prodname);
+ xmlWriter().writeCharacters(projectDescription);
+ writeEndTag(); // </prodname>
+ }
writeStartTag(DT_vrmlist);
writeStartTag(DT_vrm);
if (vrm.size() > 0)
@@ -5663,26 +5738,27 @@ DitaXmlGenerator::writeProlog(const InnerNode* inner, CodeMarker* marker)
xmlWriter().writeAttribute("modification",vrm[2]);
writeEndTag(); // <vrm>
writeEndTag(); // <vrmlist>
- QString component = inner->moduleName();
- if (!component.isEmpty()) {
- writeStartTag(DT_component);
- xmlWriter().writeCharacters(component);
- writeEndTag(); // <component>
- }
- writeEndTag(); // <prodinfo>
- if (inner->hasOtherMetadata()) {
- const QMap<QString, QString>& omd = inner->otherMetadata();
- QMapIterator<QString, QString> i(omd);
- while (i.hasNext()) {
- i.next();
- writeStartTag(DT_othermeta);
- xmlWriter().writeAttribute("name",i.key());
- xmlWriter().writeAttribute("content",i.value());
+ if (!writeMetadataElement(inner,DT_component,false)) {
+ QString component = inner->moduleName();
+ if (!component.isEmpty()) {
+ writeStartTag(DT_component);
+ xmlWriter().writeCharacters(component);
+ writeEndTag(); // </component>
}
}
+ writeEndTag(); // </prodinfo>
+ }
+ const QStringMap& metaTagMap = inner->doc().metaTagMap();
+ QMapIterator<QString, QString> i(metaTagMap);
+ while (i.hasNext()) {
+ i.next();
+ writeStartTag(DT_othermeta);
+ xmlWriter().writeAttribute("name",i.key());
+ xmlWriter().writeAttribute("content",i.value());
+ writeEndTag(); // </othermeta>
}
- writeEndTag(); // <metadata>
- writeEndTag(); // <prolog>
+ writeEndTag(); // </metadata>
+ writeEndTag(); // </prolog>
}
QT_END_NAMESPACE
diff --git a/tools/qdoc3/ditaxmlgenerator.h b/tools/qdoc3/ditaxmlgenerator.h
index 7793db0..972688a 100644
--- a/tools/qdoc3/ditaxmlgenerator.h
+++ b/tools/qdoc3/ditaxmlgenerator.h
@@ -316,6 +316,10 @@ class DitaXmlGenerator : public PageGenerator
void writeRelatedLinks(const FakeNode* fake, CodeMarker* marker);
void writeLink(const Node* node, const QString& tex, const QString& role);
void writeProlog(const InnerNode* inner, CodeMarker* marker);
+ bool writeMetadataElement(const InnerNode* inner,
+ DitaXmlGenerator::DitaTag t,
+ bool force=true);
+ QString getMetadataElement(const InnerNode* inner, DitaXmlGenerator::DitaTag t);
private:
enum SubTitleSize { SmallSubTitle, LargeSubTitle };
diff --git a/tools/qdoc3/doc.cpp b/tools/qdoc3/doc.cpp
index 5f563be..945b765 100644
--- a/tools/qdoc3/doc.cpp
+++ b/tools/qdoc3/doc.cpp
@@ -877,7 +877,7 @@ void DocParser::parse(const QString& source,
case CMD_META:
priv->constructExtra();
p1 = getArgument();
- priv->extra->metaMap.insert(p1, getRestOfLine());
+ priv->extra->metaMap.insert(p1, getArgument());
break;
case CMD_NEWCODE:
location().warning(tr("Unexpected '\\%1'").arg(cmdName(CMD_NEWCODE)));
diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp
index 0f85d37..ee050f5 100644
--- a/tools/qdoc3/node.cpp
+++ b/tools/qdoc3/node.cpp
@@ -771,30 +771,6 @@ void InnerNode::removeChild(Node *child)
}
}
-/*! \fn QString InnerNode::author() const
- Returns the author.
- */
-
-/*! \fn void InnerNode::setAuthor(const QString& author)
- Sets the \a author.
- */
-
-/*! \fn QString InnerNode::publisher() const
- Returns the publisher.
- */
-
-/*! \fn void InnerNode::setPublisher(const QString& publisher)
- Sets the \a publisher.
- */
-
-/*! \fn QString InnerNode::permissions() const
- Returns the permissions.
- */
-
-/*! \fn void InnerNode::setPermissions(const QString& permissions)
- Sets the \a permissions.
- */
-
/*!
Find the module (QtCore, QtGui, etc.) to which the class belongs.
We do this by obtaining the full path to the header file's location
@@ -858,21 +834,6 @@ void InnerNode::removeRelated(Node *pseudoChild)
related.removeAll(pseudoChild);
}
-/*! \fn bool InnerNode::hasOtherMetadata() const
- Returns tru if the other metadata map is not empty.
- */
-
-/*!
- Insert the pair \a name and \a content into the other metadata map.
- */
-void insertOtherMetadata(const QString& name, const QString& content)
-{
-}
-
-/*! \fn const QMap<QString, QString>& InnerNode::otherMetadata() cont
- Returns the map containing pairs for output as \c {<othermetadata>}.
- */
-
/*!
\class LeafNode
*/
diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h
index 2de2b5a..d1123dc 100644
--- a/tools/qdoc3/node.h
+++ b/tools/qdoc3/node.h
@@ -262,21 +262,12 @@ class InnerNode : public Node
NodeList overloads(const QString &funcName) const;
const QStringList& includes() const { return inc; }
- QString author() const { return author_; }
- void setAuthor(const QString& author) { author_ = author; }
- QString publisher() const { return publisher_; }
- void setPublisher(const QString& publisher) { publisher_ = publisher; }
- QString permissions() const { return permissions_; }
- void setPermissions(const QString& permissions) { permissions_ = permissions; }
QStringList primaryKeys();
QStringList secondaryKeys();
const QStringList& pageKeywords() const { return pageKeywds; }
virtual void addPageKeywords(const QString& t) { pageKeywds << t; }
virtual bool isAbstract() const { return false; }
virtual void setAbstract(bool ) { }
- bool hasOtherMetadata() const { return !otherMetadataMap.isEmpty(); }
- void insertOtherMetadata(const QString& name, const QString& content);
- const QMap<QString, QString>& otherMetadata() const { return otherMetadataMap; }
protected:
InnerNode(Type type, InnerNode* parent, const QString& name);
@@ -289,9 +280,6 @@ class InnerNode : public Node
void removeChild(Node* child);
void removeRelated(Node* pseudoChild);
- QString author_;
- QString publisher_;
- QString permissions_;
QStringList pageKeywds;
QStringList inc;
NodeList children;
@@ -300,7 +288,6 @@ class InnerNode : public Node
QMap<QString, Node*> childMap;
QMap<QString, Node*> primaryFunctionMap;
QMap<QString, NodeList> secondaryFunctionMap;
- QMap<QString, QString> otherMetadataMap;
};
class LeafNode : public Node
diff --git a/tools/qdoc3/test/macros.qdocconf b/tools/qdoc3/test/macros.qdocconf
index 2262daa..87e442d 100644
--- a/tools/qdoc3/test/macros.qdocconf
+++ b/tools/qdoc3/test/macros.qdocconf
@@ -29,6 +29,7 @@ macro.begincomment = "\\c{/*}"
macro.endcomment = "\\c{*/}"
macro.uuml.HTML = "&uuml;"
macro.mdash.HTML = "&mdash;"
+macro.pi.HTML = "&Pi;"
macro.beginfloatleft.HTML = "<div style=\"float: left; margin-right: 2em\">"
macro.beginfloatright.HTML = "<div style=\"float: right; margin-left: 2em\">"
diff --git a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
index ef3f78b..a14054c 100644
--- a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
@@ -96,7 +96,7 @@ excludedirs = $QT_SOURCE_TREE/src/3rdparty/clucene \
$QT_SOURCE_TREE/src/3rdparty/phonon/waveout
sources.fileextensions = "*.cpp *.qdoc *.mm"
-examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp"
+examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.css"
examples.imageextensions = "*.png"
exampledirs = $QT_SOURCE_TREE/doc/src \
diff --git a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
index 3eef92c..d4d43b8 100644
--- a/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
@@ -96,7 +96,7 @@ excludedirs = $QT_SOURCE_TREE/src/3rdparty/clucene \
$QT_SOURCE_TREE/src/3rdparty/phonon/waveout
sources.fileextensions = "*.cpp *.qdoc *.mm"
-examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp"
+examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.css"
examples.imageextensions = "*.png"
exampledirs = $QT_SOURCE_TREE/doc/src \
diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf
index 6f756da..8a70f3b 100644
--- a/tools/qdoc3/test/qt-html-templates.qdocconf
+++ b/tools/qdoc3/test/qt-html-templates.qdocconf
@@ -52,3 +52,259 @@ qhp.Qt.extraFiles = index.html \
images/horBar.png \
images/sprites-combined.png \
style/offline.css
+
+#QtWebKit Guide files
+qhp.Qt.extraFiles += webkit-guide/anim_accord.htm \
+webkit-guide/anim_demo-rotate.htm \
+webkit-guide/anim_demo-scale.htm \
+webkit-guide/anim_demo-skew.htm \
+webkit-guide/anim_gallery.htm \
+webkit-guide/anim_panel.htm \
+webkit-guide/anim_pulse.htm \
+webkit-guide/anim_skew.htm \
+webkit-guide/anim_slide1.htm \
+webkit-guide/anim_slide2.htm \
+webkit-guide/anim_slide3.htm \
+webkit-guide/anim_tabbedSkew.htm \
+webkit-guide/_copyright.txt \
+webkit-guide/css3_backgrounds.htm \
+webkit-guide/css3_border-img.htm \
+webkit-guide/css3_gradientBack.htm \
+webkit-guide/css3_gradientBackStop.htm \
+webkit-guide/css3_gradientButton.htm \
+webkit-guide/css3_grad-radial.htm \
+webkit-guide/css3_mask-grad.htm \
+webkit-guide/css3_mask-img.htm \
+webkit-guide/css3_multicol.htm \
+webkit-guide/css3_reflect.htm \
+webkit-guide/css3_scroll.htm \
+webkit-guide/css3_sel-nth.htm \
+webkit-guide/css3_shadow.htm \
+webkit-guide/css3_text-overflow.htm \
+webkit-guide/css3_text-shadow.htm \
+webkit-guide/css3_text-stroke.htm \
+webkit-guide/form_tapper.htm \
+webkit-guide/form_toggler.htm \
+webkit-guide/_image_assets.htm \
+webkit-guide/_index.html \
+webkit-guide/layout_link-fmt.htm \
+webkit-guide/layout_tbl-keyhole.htm \
+webkit-guide/mob_condjs.htm \
+webkit-guide/mob_layout.htm \
+webkit-guide/mob_mediaquery.htm \
+webkit-guide/storage.htm \
+webkit-guide/css/anim_accord.css \
+webkit-guide/css/anim_demo-rotate.css \
+webkit-guide/css/anim_demo-scale.css \
+webkit-guide/css/anim_demo-skew.css \
+webkit-guide/css/anim_gallery.css \
+webkit-guide/css/anim_panel.css \
+webkit-guide/css/anim_pulse.css \
+webkit-guide/css/anim_skew.css \
+webkit-guide/css/anim_slide.css \
+webkit-guide/css/anim_tabbedSkew.css \
+webkit-guide/css/css3_backgrounds.css \
+webkit-guide/css/css3_border-img.css \
+webkit-guide/css/css3_gradientBack.css \
+webkit-guide/css/css3_gradientBackStop.css \
+webkit-guide/css/css3_gradientButton.css \
+webkit-guide/css/css3_grad-radial.css \
+webkit-guide/css/css3_mask-grad.css \
+webkit-guide/css/css3_mask-img.css \
+webkit-guide/css/css3_multicol.css \
+webkit-guide/css/css3_reflect.css \
+webkit-guide/css/css3_scroll.css \
+webkit-guide/css/css3_sel-nth.css \
+webkit-guide/css/css3_shadowBlur.css \
+webkit-guide/css/css3_shadow.css \
+webkit-guide/css/css3_text-overflow.css \
+webkit-guide/css/css3_text-shadow.css \
+webkit-guide/css/css3_text-stroke.css \
+webkit-guide/css/form_tapper.css \
+webkit-guide/css/form_toggler.css \
+webkit-guide/css/layout_link-fmt.css \
+webkit-guide/css/layout_tbl-keyhole.css \
+webkit-guide/css/mob_condjs.css \
+webkit-guide/css/mobile.css \
+webkit-guide/css/mob_mediaquery.css \
+webkit-guide/css/mq_desktop.css \
+webkit-guide/css/mqlayout_desktop.css \
+webkit-guide/css/mqlayout_mobile.css \
+webkit-guide/css/mqlayout_touch.css \
+webkit-guide/css/mq_mobile.css \
+webkit-guide/css/mq_touch.css \
+webkit-guide/css/storage.css \
+webkit-guide/img/border-frame.png \
+webkit-guide/img/gal0.png \
+webkit-guide/img/gal1.png \
+webkit-guide/img/gal2.png \
+webkit-guide/img/gal3.png \
+webkit-guide/img/gal4.png \
+webkit-guide/img/gal5.png \
+webkit-guide/img/gal6.png \
+webkit-guide/img/gal7.png \
+webkit-guide/img/gal8.png \
+webkit-guide/img/gradient.jpg \
+webkit-guide/img/gray_icon_close.png \
+webkit-guide/img/ic_ag_016.png \
+webkit-guide/img/ic_ag_032.png \
+webkit-guide/img/ic_ag_036.png \
+webkit-guide/img/ic_ag_048.png \
+webkit-guide/img/ic_al_016.png \
+webkit-guide/img/ic_al_032.png \
+webkit-guide/img/ic_al_036.png \
+webkit-guide/img/ic_al_048.png \
+webkit-guide/img/ic_ar_016.png \
+webkit-guide/img/ic_ar_032.png \
+webkit-guide/img/ic_ar_036.png \
+webkit-guide/img/ic_ar_048.png \
+webkit-guide/img/ic_b_016.png \
+webkit-guide/img/ic_b_032.png \
+webkit-guide/img/ic_b_036.png \
+webkit-guide/img/ic_b_048.png \
+webkit-guide/img/ic_be_016.png \
+webkit-guide/img/ic_be_032.png \
+webkit-guide/img/ic_be_036.png \
+webkit-guide/img/ic_be_048.png \
+webkit-guide/img/ic_c_016.png \
+webkit-guide/img/ic_c_032.png \
+webkit-guide/img/ic_c_036.png \
+webkit-guide/img/ic_c_048.png \
+webkit-guide/img/ic_ca_016.png \
+webkit-guide/img/ic_ca_032.png \
+webkit-guide/img/ic_ca_036.png \
+webkit-guide/img/ic_ca_048.png \
+webkit-guide/img/ic_cl_016.png \
+webkit-guide/img/ic_cl_032.png \
+webkit-guide/img/ic_cl_036.png \
+webkit-guide/img/ic_cl_048.png \
+webkit-guide/img/ic_cu_016.png \
+webkit-guide/img/ic_cu_032.png \
+webkit-guide/img/ic_cu_036.png \
+webkit-guide/img/ic_cu_048.png \
+webkit-guide/img/ic_f_016.png \
+webkit-guide/img/ic_f_032.png \
+webkit-guide/img/ic_f_036.png \
+webkit-guide/img/ic_f_048.png \
+webkit-guide/img/ic_fe_016.png \
+webkit-guide/img/ic_fe_032.png \
+webkit-guide/img/ic_fe_036.png \
+webkit-guide/img/ic_fe_048.png \
+webkit-guide/img/ic_h_016.png \
+webkit-guide/img/ic_h_032.png \
+webkit-guide/img/ic_h_036.png \
+webkit-guide/img/ic_h_048.png \
+webkit-guide/img/ic_he_016.png \
+webkit-guide/img/ic_he_032.png \
+webkit-guide/img/ic_he_036.png \
+webkit-guide/img/ic_he_048.png \
+webkit-guide/img/ic_k_016.png \
+webkit-guide/img/ic_k_032.png \
+webkit-guide/img/ic_k_036.png \
+webkit-guide/img/ic_k_048.png \
+webkit-guide/img/ic_li_016.png \
+webkit-guide/img/ic_li_032.png \
+webkit-guide/img/ic_li_036.png \
+webkit-guide/img/ic_li_048.png \
+webkit-guide/img/ic_mg_016.png \
+webkit-guide/img/ic_mg_032.png \
+webkit-guide/img/ic_mg_036.png \
+webkit-guide/img/ic_mg_048.png \
+webkit-guide/img/ic_n_016.png \
+webkit-guide/img/ic_n_032.png \
+webkit-guide/img/ic_n_036.png \
+webkit-guide/img/ic_n_048.png \
+webkit-guide/img/ic_na_016.png \
+webkit-guide/img/ic_na_032.png \
+webkit-guide/img/ic_na_036.png \
+webkit-guide/img/ic_na_048.png \
+webkit-guide/img/ic_ne_016.png \
+webkit-guide/img/ic_ne_032.png \
+webkit-guide/img/ic_ne_036.png \
+webkit-guide/img/ic_ne_048.png \
+webkit-guide/img/ic_ni_016.png \
+webkit-guide/img/ic_ni_032.png \
+webkit-guide/img/ic_ni_036.png \
+webkit-guide/img/ic_ni_048.png \
+webkit-guide/img/ic_o_016.png \
+webkit-guide/img/ic_o_032.png \
+webkit-guide/img/ic_o_036.png \
+webkit-guide/img/ic_o_048.png \
+webkit-guide/img/icon_check.png \
+webkit-guide/img/icon_check_x24green.png \
+webkit-guide/img/icon_dismiss.png \
+webkit-guide/img/icon_dismiss_x22.png \
+webkit-guide/img/icon_drill-down.png \
+webkit-guide/img/icon_drill-down_x32.png \
+webkit-guide/img/icon_drill-up.png \
+webkit-guide/img/icon_drill-up_x32.png \
+webkit-guide/img/icon_expand-nav.png \
+webkit-guide/img/icon_head-collapsed.png \
+webkit-guide/img/icon_head-collapsed_x13.png \
+webkit-guide/img/icon_head-expanded.png \
+webkit-guide/img/icon_head-expanded_x13.png \
+webkit-guide/img/icon_info.png \
+webkit-guide/img/icon_info_x24.png \
+webkit-guide/img/icon_link-doc.png \
+webkit-guide/img/icon_link-email.png \
+webkit-guide/img/icon_link-external.png \
+webkit-guide/img/icon_link-pdf.png \
+webkit-guide/img/icon_link-ppt.png \
+webkit-guide/img/icon_link-rss.png \
+webkit-guide/img/icon_link-sms.png \
+webkit-guide/img/icon_link-tel.png \
+webkit-guide/img/icon_link-xls.png \
+webkit-guide/img/icon_list-all_circ.png \
+webkit-guide/img/icon_list-all.png \
+webkit-guide/img/icon_nav_end.png \
+webkit-guide/img/icon_nav-start.png \
+webkit-guide/img/icon_nav-top.png \
+webkit-guide/img/icon_nav-up.png \
+webkit-guide/img/icon_question.png \
+webkit-guide/img/icon_scroll-left.png \
+webkit-guide/img/icon_scroll-right.png \
+webkit-guide/img/icon_trash.png \
+webkit-guide/img/ic_pt_016.png \
+webkit-guide/img/ic_pt_032.png \
+webkit-guide/img/ic_pt_036.png \
+webkit-guide/img/ic_pt_048.png \
+webkit-guide/img/ic_si_016.png \
+webkit-guide/img/ic_si_032.png \
+webkit-guide/img/ic_si_036.png \
+webkit-guide/img/ic_si_048.png \
+webkit-guide/img/ic_zn_016.png \
+webkit-guide/img/ic_zn_032.png \
+webkit-guide/img/ic_zn_036.png \
+webkit-guide/img/ic_zn_048.png \
+webkit-guide/img/land1.png \
+webkit-guide/img/land2.png \
+webkit-guide/img/land3.png \
+webkit-guide/img/land4.png \
+webkit-guide/img/land5.png \
+webkit-guide/img/land6.png \
+webkit-guide/img/land7.png \
+webkit-guide/img/land8.png \
+webkit-guide/img/mask.png \
+webkit-guide/img/tnail_gal1.png \
+webkit-guide/img/tnail_gal2.png \
+webkit-guide/img/tnail_gal3.png \
+webkit-guide/img/tnail_gal4.png \
+webkit-guide/img/tnail_gal5.png \
+webkit-guide/img/tnail_gal6.png \
+webkit-guide/img/tnail_gal7.png \
+webkit-guide/img/tnail_gal8.png \
+webkit-guide/js/anim_accord.js \
+webkit-guide/js/anim_gallery.js \
+webkit-guide/js/anim_panel.js \
+webkit-guide/js/anim_skew.js \
+webkit-guide/js/css3_backgrounds.js \
+webkit-guide/js/css3_border-img.js \
+webkit-guide/js/css3_grad-radial.js \
+webkit-guide/js/css3_mask-grad.js \
+webkit-guide/js/css3_mask-img.js \
+webkit-guide/js/css3_text-overflow.js \
+webkit-guide/js/form_tapper.js \
+webkit-guide/js/mob_condjs.js \
+webkit-guide/js/mobile.js \
+webkit-guide/js/storage.js \
+
diff --git a/tools/qdoc3/test/qt-project.qdocconf b/tools/qdoc3/test/qt-project.qdocconf
index 3091cf8..2f6ab9d 100644
--- a/tools/qdoc3/test/qt-project.qdocconf
+++ b/tools/qdoc3/test/qt-project.qdocconf
@@ -90,7 +90,7 @@ excludedirs = $QT_SOURCE_TREE/src/3rdparty/clucene \
sources.fileextensions = "*.c++ *.cc *.cpp *.cxx *.mm *.qml *.qdoc"
headers.fileextensions = "*.ch *.h *.h++ *.hh *.hpp *.hxx"
-examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.qml"
+examples.fileextensions = "*.cpp *.h *.js *.xq *.svg *.xml *.ui *.qhp *.qhcp *.qml *.css"
examples.imageextensions = "*.png"
exampledirs = $QT_SOURCE_TREE/doc/src \