diff options
Diffstat (limited to 'src/tools/qdoc/cppcodemarker.cpp')
-rw-r--r-- | src/tools/qdoc/cppcodemarker.cpp | 68 |
1 files changed, 36 insertions, 32 deletions
diff --git a/src/tools/qdoc/cppcodemarker.cpp b/src/tools/qdoc/cppcodemarker.cpp index 4c1e84fe3c..774ff115b9 100644 --- a/src/tools/qdoc/cppcodemarker.cpp +++ b/src/tools/qdoc/cppcodemarker.cpp @@ -103,7 +103,7 @@ bool CppCodeMarker::recognizeLanguage(const QString &lang) /*! Returns the type of atom used to represent C++ code in the documentation. */ -Atom::Type CppCodeMarker::atomType() const +Atom::AtomType CppCodeMarker::atomType() const { return Atom::Code; } @@ -157,11 +157,11 @@ QString CppCodeMarker::markedUpSynopsis(const Node *node, synopsis += "("; if (!func->parameters().isEmpty()) { //synopsis += QLatin1Char(' '); - QList<Parameter>::ConstIterator p = func->parameters().constBegin(); + QVector<Parameter>::ConstIterator p = func->parameters().constBegin(); while (p != func->parameters().constEnd()) { if (p != func->parameters().constBegin()) synopsis += ", "; - synopsis += typified((*p).leftType()); + synopsis += typified((*p).dataType()); if (style != Subpage && !(*p).name().isEmpty()) synopsis += "<@param>" + protect((*p).name()) + "</@param>"; @@ -328,11 +328,11 @@ QString CppCodeMarker::markedUpQmlItem(const Node* node, bool summary) synopsis = name; synopsis += QLatin1Char('('); if (!func->parameters().isEmpty()) { - QList<Parameter>::ConstIterator p = func->parameters().constBegin(); + QVector<Parameter>::ConstIterator p = func->parameters().constBegin(); while (p != func->parameters().constEnd()) { if (p != func->parameters().constBegin()) synopsis += ", "; - synopsis += typified((*p).leftType()); + synopsis += typified((*p).dataType()); if (!(*p).name().isEmpty()) { if (!synopsis.endsWith(QLatin1Char('('))) synopsis += QLatin1Char(' '); @@ -436,7 +436,7 @@ QString CppCodeMarker::functionEndRegExp(const QString& /* funcName */) return "^\\}$"; } -QList<Section> CppCodeMarker::sections(const InnerNode *inner, +QList<Section> CppCodeMarker::sections(const Aggregate *inner, SynopsisStyle style, Status status) { @@ -522,10 +522,10 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, ++r; } - QStack<const InnerNode *> stack; + QStack<const Aggregate *> stack; stack.push(inner); while (!stack.isEmpty()) { - const InnerNode* ancestor = stack.pop(); + const Aggregate* ancestor = stack.pop(); NodeList::ConstIterator c = ancestor->childNodes().constBegin(); while (c != ancestor->childNodes().constEnd()) { @@ -537,11 +537,9 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, isSlot = (func->metaness() == FunctionNode::Slot); isSignal = (func->metaness() == FunctionNode::Signal); isStatic = func->isStatic(); - if (func->associatedProperty()) { - if (func->associatedProperty()->status() == Node::Obsolete) { - ++c; - continue; - } + if (func->hasAssociatedProperties() && !func->hasActiveAssociatedProperty()) { + ++c; + continue; } } else if ((*c)->type() == Node::Variable) { @@ -685,7 +683,7 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, } else if ((*c)->type() == Node::Function) { FunctionNode *function = static_cast<FunctionNode *>(*c); - if (!function->associatedProperty()) + if (!function->hasAssociatedProperties() || !function->doc().isEmpty()) insert(memberFunctions, function, style, status); } ++c; @@ -701,11 +699,11 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, else { FastSection all(inner,QString(),QString(),"member","members"); - QStack<const InnerNode*> stack; + QStack<const Aggregate*> stack; stack.push(inner); while (!stack.isEmpty()) { - const InnerNode* ancestor = stack.pop(); + const Aggregate* ancestor = stack.pop(); NodeList::ConstIterator c = ancestor->childNodes().constBegin(); while (c != ancestor->childNodes().constEnd()) { if ((*c)->access() != Node::Private && (*c)->type() != Node::Property) @@ -812,8 +810,8 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner, if (!ns->orphans().isEmpty()) { foreach (Node* n, ns->orphans()) { // Use inner as a temporary parent when inserting orphans - InnerNode* p = n->parent(); - n->setParent(const_cast<InnerNode*>(inner)); + Aggregate* p = n->parent(); + n->setParent(const_cast<Aggregate*>(inner)); if (n->isClass()) insert(classes, n, style, status); else if (n->isNamespace()) @@ -895,8 +893,8 @@ QString CppCodeMarker::addMarkUp(const QString &in, ch = (i < (int)code.length()) ? code[i++].cell() : EOF QString code = in; - QStringList out; - QString text; + QString out; + QStringRef text; int braceDepth = 0; int parenDepth = 0; int i = 0; @@ -931,8 +929,7 @@ QString CppCodeMarker::addMarkUp(const QString &in, } else if (keywords.contains(ident)) { tag = QStringLiteral("keyword"); } else if (braceDepth == 0 && parenDepth == 0) { - if (QString(code.unicode() + i - 1, code.length() - (i - 1)) - .indexOf(findFunctionRegExp) == 0) + if (code.indexOf(findFunctionRegExp, i - 1) == i - 1) tag = QStringLiteral("func"); target = true; } @@ -1071,27 +1068,34 @@ QString CppCodeMarker::addMarkUp(const QString &in, } } - text = code.mid(start, finish - start); + text = code.midRef(start, finish - start); start = finish; if (!tag.isEmpty()) { - out << QStringLiteral("<@") << tag; - if (target) - out << QStringLiteral(" target=\"") << text << QStringLiteral("()\""); - out << QStringLiteral(">"); + out += QStringLiteral("<@"); + out += tag; + if (target) { + out += QStringLiteral(" target=\""); + out += text; + out += QStringLiteral("()\""); + } + out += QStringLiteral(">"); } - out << protect(text); + appendProtectedString(&out, text); - if (!tag.isEmpty()) - out << QStringLiteral("</@") << tag << QStringLiteral(">"); + if (!tag.isEmpty()) { + out += QStringLiteral("</@"); + out += tag; + out += QStringLiteral(">"); + } } if (start < code.length()) { - out << protect(code.mid(start)); + appendProtectedString(&out, code.midRef(start)); } - return out.join(QString()); + return out; } /*! |