/*! Count the number of members in this list that are visible in * the declaration part of a compound's documentation page. */ void MemberList::countDecMembers(bool countEnumValues,GroupDef *gd) { if (m_numDecMembers!=-1) return; //printf("----- countDecMembers count=%d ----\n",count()); m_varCnt=m_funcCnt=m_enumCnt=m_enumValCnt=0; m_typeCnt=m_protoCnt=m_defCnt=m_friendCnt=0; m_numDecMembers=0; QListIterator<MemberDef> mli(*this); MemberDef *md; for (mli.toFirst();(md=mli.current());++mli) { //printf("MemberList::countDecMembers(md=%s,%d)\n",md->name().data(),md->isBriefSectionVisible()); if (md->isBriefSectionVisible()) { switch(md->memberType()) { case MemberType_Variable: // fall through case MemberType_Event: // fall through case MemberType_Property: m_varCnt++,m_numDecMembers++; break; // apparently necessary to get this to show up in declarations section? case MemberType_Interface: // fall through case MemberType_Service: // fall through case MemberType_Function: // fall through case MemberType_Signal: // fall through case MemberType_DCOP: // fall through case MemberType_Slot: if (!md->isRelated() || md->getClassDef()) m_funcCnt++,m_numDecMembers++; break; case MemberType_Enumeration: m_enumCnt++,m_numDecMembers++; break; case MemberType_EnumValue: if (countEnumValues) m_enumValCnt++,m_numDecMembers++; break; case MemberType_Typedef: m_typeCnt++,m_numDecMembers++; break; //case MemberType_Prototype: m_protoCnt++,m_numDecMembers++; break; case MemberType_Define: if (Config_getBool("EXTRACT_ALL") || md->argsString() || !md->initializer().isEmpty() || md->hasDocumentation() ) m_defCnt++,m_numDecMembers++; break; case MemberType_Friend: m_friendCnt++,m_numDecMembers++; break; default: err("Unknown member type found for member `%s'\n!",md->name().data()); } } } if (memberGroupList) { MemberGroupListIterator mgli(*memberGroupList); MemberGroup *mg; for (;(mg=mgli.current());++mgli) { mg->countDecMembers(gd); m_varCnt+=mg->varCount(); m_funcCnt+=mg->funcCount(); m_enumCnt+=mg->enumCount(); m_enumValCnt+=mg->enumValueCount(); m_typeCnt+=mg->typedefCount(); m_protoCnt+=mg->protoCount(); m_defCnt+=mg->defineCount(); m_friendCnt+=mg->friendCount(); m_numDecMembers+=mg->numDecMembers(); } } //printf("----- end countDecMembers ----\n"); //printf("MemberList::countDecMembers()=%d\n",m_numDecMembers); }