From c0c38912ebf0640ddae71f507bed6cc0b8c82fe6 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 4 Mar 2013 12:37:44 +0100 Subject: [PATCH] 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 Reviewed-by: Jerome Pasion --- src/tools/qdoc/qdocdatabase.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tools/qdoc/qdocdatabase.cpp b/src/tools/qdoc/qdocdatabase.cpp index 58c674de7ab..191da5caf84 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(node); - QString key = longQmid + "::" + node->name(); - for (int i=0; i<2; ++i) { + for (int i=0; iname(); 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; }