diff options
author | Martin Smith <martin.smith@digia.com> | 2013-03-04 12:37:44 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-04 15:36:56 +0100 |
commit | c0c38912ebf0640ddae71f507bed6cc0b8c82fe6 (patch) | |
tree | cb7c03e520758309644487483785601c52961b34 /src/tools | |
parent | 7ed41b0e542b725c06405d837a8d6b8c10269645 (diff) |
qdoc: Allow QML linking without version nr
This change allows links of the form:
\l{qml-module-name::qml-type}{name}
i.e. no version number provided.
This change does not handle collisions.
There aren't any in Qt5 at the moment.
If a collision occurs, qdoc will link to
the name in one of the colliding QML
modules, but not necessarily the most
recent one. Hence, the link may go to
the wrong page. A further update might
be forthcoming that will handle this
better.
Task-number: QTBUG-29778
Change-Id: Ie2c2b117446ed02852593dd0273c390d39fed927
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Diffstat (limited to 'src/tools')
-rw-r--r-- | src/tools/qdoc/qdocdatabase.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp index 58c674de7a..191da5caf8 100644 --- a/src/tools/qdoc/qdocdatabase.cpp +++ b/src/tools/qdoc/qdocdatabase.cpp @@ -291,29 +291,29 @@ DocNode* QDocDatabase::addToModule(const QString& name, Node* node) */ DocNode* QDocDatabase::addToQmlModule(const QString& name, Node* node) { - QString longQmid, shortQmid; + QStringList qmid; QStringList dotSplit; QStringList blankSplit = name.split(QLatin1Char(' ')); + qmid.append(blankSplit[0]); if (blankSplit.size() > 1) { - longQmid = blankSplit[0] + blankSplit[1]; + qmid.append(blankSplit[0] + blankSplit[1]); dotSplit = blankSplit[1].split(QLatin1Char('.')); - shortQmid = blankSplit[0] + dotSplit[0]; + qmid.append(blankSplit[0] + dotSplit[0]); } DocNode* dn = findQmlModule(name); dn->addMember(node); node->setQmlModuleInfo(name); if (node->subType() == Node::QmlClass) { QmlClassNode* n = static_cast<QmlClassNode*>(node); - QString key = longQmid + "::" + node->name(); - for (int i=0; i<2; ++i) { + for (int i=0; i<qmid.size(); ++i) { + QString key = qmid[i] + "::" + node->name(); if (!qmlTypeMap_.contains(key)) qmlTypeMap_.insert(key,n); if (!masterMap_.contains(key)) masterMap_.insert(key,node); - if (!masterMap_.contains(node->name(),node)) - masterMap_.insert(node->name(),node); - key = shortQmid + "::" + node->name(); } + if (!masterMap_.contains(node->name(),node)) + masterMap_.insert(node->name(),node); } return dn; } |