diff options
Diffstat (limited to 'src/qdoc/sections.cpp')
-rw-r--r-- | src/qdoc/sections.cpp | 162 |
1 files changed, 75 insertions, 87 deletions
diff --git a/src/qdoc/sections.cpp b/src/qdoc/sections.cpp index 7fd39bc4f..7d5bcf03f 100644 --- a/src/qdoc/sections.cpp +++ b/src/qdoc/sections.cpp @@ -38,17 +38,21 @@ QT_BEGIN_NAMESPACE -//Aggregate *Sections::aggregate_ = nullptr; +// Aggregate *Sections::aggregate_ = nullptr; static bool sectionsInitialized = false; QVector<Section> Sections::stdSummarySections_(7, Section(Section::Summary, Section::Active)); QVector<Section> Sections::stdDetailsSections_(7, Section(Section::Details, Section::Active)); -QVector<Section> Sections::stdCppClassSummarySections_(18, Section(Section::Summary, Section::Active)); -QVector<Section> Sections::stdCppClassDetailsSections_(6, Section(Section::Details, Section::Active)); +QVector<Section> Sections::stdCppClassSummarySections_(18, + Section(Section::Summary, Section::Active)); +QVector<Section> Sections::stdCppClassDetailsSections_(6, + Section(Section::Details, Section::Active)); QVector<Section> Sections::sinceSections_(15, Section(Section::Details, Section::Active)); QVector<Section> Sections::allMembers_(1, Section(Section::AllMembers, Section::Active)); -QVector<Section> Sections::stdQmlTypeSummarySections_(7, Section(Section::Summary, Section::Active)); -QVector<Section> Sections::stdQmlTypeDetailsSections_(7, Section(Section::Details, Section::Active)); +QVector<Section> Sections::stdQmlTypeSummarySections_(7, + Section(Section::Summary, Section::Active)); +QVector<Section> Sections::stdQmlTypeDetailsSections_(7, + Section(Section::Details, Section::Active)); /*! \class Section @@ -61,9 +65,9 @@ QVector<Section> Sections::stdQmlTypeDetailsSections_(7, Section(Section::Detail */ Section::Section(Style style, Status status) : style_(style), status_(status), aggregate_(nullptr) { - //members_.reserve(100); - //obsoleteMembers_.reserve(50); - //reimplementedMembers_.reserve(50); + // members_.reserve(100); + // obsoleteMembers_.reserve(50); + // reimplementedMembers_.reserve(50); } /*! @@ -88,7 +92,7 @@ void Section::clear() reimplementedMemberMap_.clear(); if (!classMapList_.isEmpty()) { for (int i = 0; i < classMapList_.size(); i++) { - ClassMap* cm = classMapList_[i]; + ClassMap *cm = classMapList_[i]; classMapList_[i] = nullptr; delete cm; } @@ -102,7 +106,7 @@ void Section::clear() inheritedMembers_.clear(); if (!classKeysNodesList_.isEmpty()) { for (int i = 0; i < classKeysNodesList_.size(); i++) { - ClassKeysNodes* ckn = classKeysNodesList_[i]; + ClassKeysNodes *ckn = classKeysNodesList_[i]; classKeysNodesList_[i] = nullptr; delete ckn; } @@ -133,7 +137,7 @@ QString Section::sortName(const Node *node, const QString *name) // we want 'qint8' to appear before 'qint16' if (numDigits > 0) { for (int i = 0; i < 4 - numDigits; ++i) - nodeName.insert(nodeName.size()-numDigits-1, QLatin1Char('0')); + nodeName.insert(nodeName.size() - numDigits - 1, QLatin1Char('0')); } if (node->isFunction()) { @@ -144,8 +148,7 @@ QString Section::sortName(const Node *node, const QString *name) sortNo = QLatin1String("C"); else if (fn->isDtor()) sortNo = QLatin1String("D"); - else if (nodeName.startsWith(QLatin1String("operator")) - && nodeName.length() > 8 + else if (nodeName.startsWith(QLatin1String("operator")) && nodeName.length() > 8 && !nodeName[8].isLetterOrNumber()) sortNo = QLatin1String("F"); else @@ -185,12 +188,11 @@ void Section::insert(Node *node) if (node->isPrivate() || node->isInternal()) { irrelevant = true; - } - else if (node->isFunction()) { + } else if (node->isFunction()) { FunctionNode *func = static_cast<FunctionNode *>(node); irrelevant = (inherited && (func->isSomeCtor() || func->isDtor())); - } - else if (node->isClassNode() || node->isEnumType() || node->isTypedef() || node->isVariable()) { + } else if (node->isClassNode() || node->isEnumType() || node->isTypedef() + || node->isVariable()) { irrelevant = (inherited && style_ != AllMembers); if (!irrelevant && style_ == Details && node->isTypedef()) { const TypedefNode *tdn = static_cast<const TypedefNode *>(node); @@ -211,7 +213,8 @@ void Section::insert(Node *node) memberMap_.insertMulti(key, node); } if (inherited && (node->parent()->isClassNode() || node->parent()->isNamespace())) { - if (inheritedMembers_.isEmpty() || inheritedMembers_.last().first != node->parent()) { + if (inheritedMembers_.isEmpty() + || inheritedMembers_.last().first != node->parent()) { QPair<Aggregate *, int> p(node->parent(), 0); inheritedMembers_.append(p); } @@ -284,8 +287,8 @@ void Section::reduce() obsoleteMembers_ = obsoleteMemberMap_.values().toVector(); reimplementedMembers_ = reimplementedMemberMap_.values().toVector(); for (int i = 0; i < classMapList_.size(); i++) { - ClassMap* cm = classMapList_[i]; - ClassKeysNodes* ckn = new ClassKeysNodes; + ClassMap *cm = classMapList_[i]; + ClassKeysNodes *ckn = new ClassKeysNodes; ckn->first = cm->first; ckn->second.second = cm->second.values().toVector(); ckn->second.first = cm->second.keys(); @@ -397,11 +400,9 @@ Sections::Sections(const NodeMultiMap &nsmap) : aggregate_(nullptr) sections[SinceGlobalFunctions].appendMember(node); else sections[SinceNamespaceFunctions].appendMember(node); - } - else + } else sections[SinceGlobalFunctions].appendMember(node); - } - else + } else sections[SinceGlobalFunctions].appendMember(node); } break; @@ -456,8 +457,7 @@ Sections::~Sections() break; } aggregate_ = nullptr; - } - else { + } else { clear(sinceSections()); } } @@ -467,7 +467,7 @@ Sections::~Sections() */ void Sections::initAggregate(SectionVector &v, Aggregate *aggregate) { - for (int i = 0; i< v.size(); ++i) + for (int i = 0; i < v.size(); ++i) v[i].setAggregate(aggregate); } @@ -499,7 +499,8 @@ void Sections::initSections() v[8].init("Protected Functions", "protected function", "protected functions"); v[9].init("Protected Slots", "protected slot", "protected slots"); v[10].init("Protected Variables", "protected type", "protected variables"); - v[11].init("Static Protected Members", "static protected member", "static protected members"); + v[11].init("Static Protected Members", "static protected member", + "static protected members"); v[12].init("Private Types", "private type", "private types"); v[13].init("Private Functions", "private function", "private functions"); v[14].init("Private Slots", "private slot", "private slots"); @@ -572,13 +573,13 @@ void Sections::initSections() { QVector<Section> &v = stdQmlTypeDetailsSections_; - v[0].init("Property Documentation","qmlprop","member","members"); - v[1].init("Attached Property Documentation","qmlattprop", "member","members"); - v[2].init("Signal Documentation","qmlsig","signal","signals"); - v[3].init("Signal Handler Documentation","qmlsighan","signal handler","signal handlers"); - v[4].init("Attached Signal Documentation","qmlattsig", "signal","signals"); - v[5].init("Method Documentation","qmlmeth","member","members"); - v[6].init("Attached Method Documentation","qmlattmeth", "member","members"); + v[0].init("Property Documentation", "qmlprop", "member", "members"); + v[1].init("Attached Property Documentation", "qmlattprop", "member", "members"); + v[2].init("Signal Documentation", "qmlsig", "signal", "signals"); + v[3].init("Signal Handler Documentation", "qmlsighan", "signal handler", "signal handlers"); + v[4].init("Attached Signal Documentation", "qmlattsig", "signal", "signals"); + v[5].init("Method Documentation", "qmlmeth", "member", "members"); + v[6].init("Attached Method Documentation", "qmlattmeth", "member", "members"); } } @@ -623,32 +624,31 @@ void Sections::stdRefPageSwitch(SectionVector &v, Node *n, Node *t) case Node::Typedef: v[StdTypes].insert(n); return; - case Node::Function: - { - FunctionNode *func = static_cast<FunctionNode *>(t); - if (func->isMacro()) - v[StdMacros].insert(n); - else - v[StdFunctions].insert(n); - } + case Node::Function: { + FunctionNode *func = static_cast<FunctionNode *>(t); + if (func->isMacro()) + v[StdMacros].insert(n); + else + v[StdFunctions].insert(n); + } return; - case Node::Variable: - { - const VariableNode *var = static_cast<const VariableNode *>(t); - if (!var->doc().isEmpty()) { - if (var->isStatic()) - v[StdStaticVariables].insert(n); - else - v[StdVariables].insert(n); - } + case Node::Variable: { + const VariableNode *var = static_cast<const VariableNode *>(t); + if (!var->doc().isEmpty()) { + if (var->isStatic()) + v[StdStaticVariables].insert(n); + else + v[StdVariables].insert(n); } + } return; - case Node::SharedComment: - { - SharedCommentNode *scn = static_cast<SharedCommentNode *>(t); - if (!scn->doc().isEmpty() && scn->collective().count()) - stdRefPageSwitch(v, scn, scn->collective().first()); // TODO: warn about mixed node types in collective? - } + case Node::SharedComment: { + SharedCommentNode *scn = static_cast<SharedCommentNode *>(t); + if (!scn->doc().isEmpty() && scn->collective().count()) + stdRefPageSwitch( + v, scn, + scn->collective().first()); // TODO: warn about mixed node types in collective? + } return; default: return; @@ -738,24 +738,20 @@ void Sections::distributeNodeInSummaryVector(SectionVector &sv, Node *n) sv[PrivateSlots].insert(fn); else sv[ProtectedSlots].insert(fn); - } - else if (fn->isSignal()) { + } else if (fn->isSignal()) { if (fn->isPublic()) sv[Signals].insert(fn); - } - else if (fn->isPublic()) { + } else if (fn->isPublic()) { if (fn->isStatic()) sv[StaticPublicMembers].insert(fn); else if (!sv[PublicFunctions].insertReimplementedMember(fn)) sv[PublicFunctions].insert(fn); - } - else if (fn->isPrivate()) { + } else if (fn->isPrivate()) { if (fn->isStatic()) sv[StaticPrivateMembers].insert(fn); else if (!sv[PrivateFunctions].insertReimplementedMember(fn)) sv[PrivateFunctions].insert(fn); - } - else { // protected + } else { // protected if (fn->isStatic()) sv[StaticProtectedMembers].insert(fn); else if (!sv[ProtectedFunctions].insertReimplementedMember(fn)) @@ -775,8 +771,7 @@ void Sections::distributeNodeInSummaryVector(SectionVector &sv, Node *n) sv[StaticPrivateMembers].insert(n); else sv[StaticProtectedMembers].insert(n); - } - else { + } else { if (n->isPublic()) sv[PublicVariables].insert(n); else if (!n->isPrivate()) @@ -810,7 +805,7 @@ void Sections::distributeNodeInDetailsVector(SectionVector &dv, Node *n) if (n->isSharingComment()) return; - // t is the reference node to be tested - typically it's this node (n), but for + // t is the reference node to be tested - typically it's this node (n), but for // shared comment nodes we need to distribute based on the nodes in its collective. Node *t = n; @@ -926,7 +921,7 @@ void Sections::distributeQmlNodeInSummaryVector(SectionVector &sv, Node *n, bool sv[QmlMethods].insert(fn); } } else if (n->isSharedCommentNode()) { - SharedCommentNode *scn = static_cast<SharedCommentNode*>(n); + SharedCommentNode *scn = static_cast<SharedCommentNode *>(n); if (scn->isPropertyGroup()) { sv[QmlProperties].insert(scn); } else { @@ -957,11 +952,9 @@ void Sections::buildStdCppClassRefPageSections() bool documentAll = true; if (aggregate_->parent() && !aggregate_->name().isEmpty() && !aggregate_->hasDoc()) documentAll = false; - for (auto it = aggregate_->constBegin(); it != aggregate_->constEnd();++it) { + for (auto it = aggregate_->constBegin(); it != aggregate_->constEnd(); ++it) { Node *n = *it; - if (!n->isPrivate() - && !n->isProperty() - && !n->isRelatedNonmember() + if (!n->isPrivate() && !n->isProperty() && !n->isRelatedNonmember() && !n->isSharedCommentNode()) allMembers.insert(n); if (!documentAll && !n->hasDoc()) @@ -983,14 +976,12 @@ void Sections::buildStdCppClassRefPageSections() ClassNode *cn = stack.pop(); for (auto it = cn->constBegin(); it != cn->constEnd(); ++it) { Node *n = *it; - if (!n->isPrivate() - && !n->isProperty() - && !n->isRelatedNonmember() + if (!n->isPrivate() && !n->isProperty() && !n->isRelatedNonmember() && !n->isSharedCommentNode()) allMembers.insert(n); if (!documentAll && !n->hasDoc()) continue; - //distributeNodeInSummaryVector(sv, n); Why was this here? mws 03/07/2019 + // distributeNodeInSummaryVector(sv, n); Why was this here? mws 03/07/2019 } pushBaseClasses(stack, cn); } @@ -999,14 +990,13 @@ void Sections::buildStdCppClassRefPageSections() allMembers.reduce(); } - /*! Build the section vectors for a standard reference page, when the aggregate node is a QML type. */ void Sections::buildStdQmlTypeRefPageSections() { - ClassMap* classMap = nullptr; + ClassMap *classMap = nullptr; SectionVector &summarySections = stdQmlTypeSummarySections(); SectionVector &detailsSections = stdQmlTypeDetailsSections(); Section &allMembers = allMembersSection(); @@ -1015,7 +1005,7 @@ void Sections::buildStdQmlTypeRefPageSections() while (true) { if (!qtn->isAbstract() || !classMap) classMap = allMembers.newClassMap(qtn); - for (auto it = qtn->constBegin(); it !=qtn->constEnd(); ++it) { + for (auto it = qtn->constBegin(); it != qtn->constEnd(); ++it) { Node *n = *it; if (n->isInternal()) continue; @@ -1028,8 +1018,7 @@ void Sections::buildStdQmlTypeRefPageSections() } if (qtn->qmlBaseNode() == qtn) { qDebug() << "qdoc internal error: circular type definition." - << "QML type" << qtn->name() - << "can't be its own base type"; + << "QML type" << qtn->name() << "can't be its own base type"; qtn = nullptr; break; } @@ -1052,8 +1041,7 @@ void Sections::buildStdQmlTypeRefPageSections() } if (qtn->qmlBaseNode() == qtn) { qDebug() << "qdoc internal error: circular type definition." - << "QML type" << qtn->name() - << "can't be its own base type"; + << "QML type" << qtn->name() << "can't be its own base type"; qtn = nullptr; break; } @@ -1070,7 +1058,8 @@ void Sections::buildStdQmlTypeRefPageSections() have not been modified. Otherwise, both vectors will contain pointers to the sections that contain obsolete members. */ -bool Sections::hasObsoleteMembers(SectionPtrVector *summary_spv, SectionPtrVector *details_spv) const +bool Sections::hasObsoleteMembers(SectionPtrVector *summary_spv, + SectionPtrVector *details_spv) const { const SectionVector *sections = nullptr; if (aggregate_->isClassNode()) @@ -1096,5 +1085,4 @@ bool Sections::hasObsoleteMembers(SectionPtrVector *summary_spv, SectionPtrVecto return !summary_spv->isEmpty(); } - QT_END_NAMESPACE |