diff options
Diffstat (limited to 'src/tools/qdoc/node.cpp')
-rw-r--r-- | src/tools/qdoc/node.cpp | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp index 30fa76ae02..f235753ccd 100644 --- a/src/tools/qdoc/node.cpp +++ b/src/tools/qdoc/node.cpp @@ -1478,7 +1478,6 @@ FakeNode::FakeNode(InnerNode* parent, const QString& name, SubType subtype, Node setPageType(OverviewPage); break; case QmlModule: - setQmlModule(name); setPageType(OverviewPage); break; case QmlClass: @@ -1574,10 +1573,10 @@ void FakeNode::insertQmlModuleNode(const QString& qmid, FakeNode* fn) and inserted into the QML module map mapped to the QML module identifier constructed from \a arg. */ -FakeNode* FakeNode::lookupQmlModuleNode(Tree* tree, const QString& arg) +FakeNode* FakeNode::lookupQmlModuleNode(Tree* tree, const ArgLocPair& arg) { QStringList dotSplit; - QStringList blankSplit = arg.split(QLatin1Char(' ')); + QStringList blankSplit = arg.first.split(QLatin1Char(' ')); QString qmid = blankSplit[0]; if (blankSplit.size() > 1) { dotSplit = blankSplit[1].split(QLatin1Char('.')); @@ -1587,7 +1586,8 @@ FakeNode* FakeNode::lookupQmlModuleNode(Tree* tree, const QString& arg) if (qmlModuleMap_.contains(qmid)) fn = qmlModuleMap_.value(qmid); if (!fn) { - fn = new FakeNode(tree->root(), arg, Node::QmlModule, Node::OverviewPage); + fn = new FakeNode(tree->root(), arg.first, Node::QmlModule, Node::OverviewPage); + fn->setQmlModule(arg); insertQmlModuleNode(qmid,fn); } return fn; @@ -2134,10 +2134,10 @@ void QmlClassNode::subclasses(const QString& base, NodeList& subs) true is returned. If any of the three is not found or is not correct, false is returned. */ -bool Node::setQmlModule(const QString& arg) +bool Node::setQmlModule(const ArgLocPair& arg) { QStringList dotSplit; - QStringList blankSplit = arg.split(QLatin1Char(' ')); + QStringList blankSplit = arg.first.split(QLatin1Char(' ')); qmlModuleName_ = blankSplit[0]; qmlModuleVersionMajor_ = "1"; qmlModuleVersionMinor_ = "0"; @@ -2149,10 +2149,10 @@ bool Node::setQmlModule(const QString& arg) return true; } else - doc().location().warning(tr("Minor version number missing for '\\qmlmodule' or '\\inqmlmodule'; 0 assumed.")); + arg.second.warning(tr("Minor version number missing for '\\qmlmodule' or '\\inqmlmodule'; 0 assumed.")); } else - doc().location().warning(tr("Module version number missing for '\\qmlmodule' or '\\inqmlmodule'; 1.0 assumed.")); + arg.second.warning(tr("Module version number missing for '\\qmlmodule' or '\\inqmlmodule'; 1.0 assumed.")); return false; } @@ -2294,6 +2294,7 @@ QmlPropertyNode::QmlPropertyNode(QmlPropGroupNode *parent, designable_(FlagValueDefault), isdefault_(false), attached_(attached), + qproperty_(false), readOnly_(FlagValueDefault) { setPageType(ApiPage); @@ -2313,6 +2314,7 @@ QmlPropertyNode::QmlPropertyNode(QmlClassNode *parent, designable_(FlagValueDefault), isdefault_(false), attached_(attached), + qproperty_(false), readOnly_(FlagValueDefault) { setPageType(ApiPage); @@ -2339,6 +2341,7 @@ QmlPropertyNode::QmlPropertyNode(QmlPropertyNode* parent, designable_(FlagValueDefault), isdefault_(false), attached_(attached), + qproperty_(false), readOnly_(FlagValueDefault) { setPageType(ApiPage); @@ -2353,18 +2356,19 @@ QmlPropertyNode::QmlPropertyNode(QmlPropertyNode* parent, */ bool QmlPropertyNode::isWritable(Tree* tree) { - if (readOnly_ != FlagValueDefault) { + if (readOnly_ != FlagValueDefault) return !fromFlagValue(readOnly_, false); - } - PropertyNode* pn = correspondingProperty(tree); - if (pn) { - return pn->isWritable(); - } - else { - location().warning(tr("Can't detect if QML property %1 is read-only; writable assumed.").arg(name())); - return true; + if (qproperty_) { + PropertyNode* pn = correspondingProperty(tree); + if (pn) + return pn->isWritable(); + + location().warning(tr("Can't detect if QML property %1::%2::%3 is read-only; " + "writable assumed.") + .arg(qmlModuleIdentifier()).arg(qmlTypeName()).arg(name())); } + return true; } PropertyNode* QmlPropertyNode::correspondingProperty(Tree *tree) |