diff -r d8fccb2cd802 -r 468f4c8d3d5b Orb/Doxygen/src/memberlist.cpp --- a/Orb/Doxygen/src/memberlist.cpp Fri Apr 23 20:47:58 2010 +0100 +++ b/Orb/Doxygen/src/memberlist.cpp Wed Aug 11 14:49:30 2010 +0100 @@ -2,7 +2,7 @@ * * * - * Copyright (C) 1997-2008 by Dimitri van Heesch. + * Copyright (C) 1997-2010 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby @@ -182,6 +182,69 @@ { } +bool MemberList::declVisible() const +{ + MemberListIterator mli(*this); + MemberDef *md; + for ( ; (md=mli.current()); ++mli ) + { + if (md->isBriefSectionVisible()) + { + switch (md->memberType()) + { + case MemberDef::Define: // fall through + case MemberDef::Typedef: // fall through + case MemberDef::Variable: // fall through + case MemberDef::Function: // fall through + case MemberDef::Signal: // fall through + case MemberDef::Slot: // fall through + case MemberDef::DCOP: // fall through + case MemberDef::Property: // fall through + case MemberDef::Event: + return TRUE; + case MemberDef::Enumeration: + { + int enumVars=0; + MemberListIterator vmli(*this); + MemberDef *vmd; + QCString name(md->name()); + int i=name.findRev("::"); + if (i!=-1) name=name.right(name.length()-i-2); // strip scope (TODO: is this needed?) + if (name[0]=='@') // anonymous enum => append variables + { + for ( ; (vmd=vmli.current()) ; ++vmli) + { + QCString vtype=vmd->typeString(); + if ((vtype.find(name))!=-1) + { + enumVars++; + } + } + } + // if this is an anoymous enum and there are variables of this + // enum type (i.e. enumVars>0), then we do not show the enum here. + if (enumVars==0) // show enum here + { + return TRUE; + } + } + break; + case MemberDef::Friend: + return TRUE; + case MemberDef::EnumValue: + { + if (m_inGroup) + { + return TRUE; + } + } + break; + } + } + } + return FALSE; +} + void MemberList::writePlainDeclarations(OutputList &ol, ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd ) @@ -347,7 +410,7 @@ // this,title,subtitle,numDecMembers()); if (title) { - ol.startMemberHeader(); + ol.startMemberHeader(listTypeAsString()); ol.parseText(title); ol.endMemberHeader(); } @@ -459,6 +522,7 @@ QCString title=md->qualifiedName(); startFile(ol,diskName,md->name(),title); container->writeNavigationPath(ol); + ol.startContents(); ol.writeString("\n" " \n" @@ -511,10 +575,12 @@ LockingPtr enumFields = md->enumFieldList(); if (md->memberType()==MemberDef::Enumeration && enumFields!=0) { + //printf(" Adding enum values!\n"); MemberListIterator vmli(*enumFields); MemberDef *vmd; for ( ; (vmd=vmli.current()) ; ++vmli) { + //printf(" adding %s\n",vmd->name().data()); vmd->addListReference(def); } } @@ -613,6 +679,60 @@ } } +QCString MemberList::listTypeAsString() const +{ + switch(m_listType) + { + case pubMethods: return "pub-methods"; + case proMethods: return "pro-methods"; + case pacMethods: return "pac-methods"; + case priMethods: return "pri-methods"; + case pubStaticMethods: return "pub-static-methods"; + case proStaticMethods: return "pro-static-methods"; + case pacStaticMethods: return "pac-static-methods"; + case priStaticMethods: return "pri-static-methods"; + case pubSlots: return "pub-slots"; + case proSlots: return "pro-slots"; + case priSlots: return "pri-slots"; + case pubAttribs: return "pub-attribs"; + case proAttribs: return "pro-attribs"; + case pacAttribs: return "pac-attribs"; + case priAttribs: return "pri-attribs"; + case pubStaticAttribs: return "pub-static-attribs"; + case proStaticAttribs: return "pro-static-attribs"; + case pacStaticAttribs: return "pac-static-attribs"; + case priStaticAttribs: return "pri-static-attribs"; + case pubTypes: return "pub-types"; + case proTypes: return "pro-types"; + case pacTypes: return "pac-types"; + case priTypes: return "pri-types"; + case related: return "related"; + case signals: return "signals"; + case friends: return "friends"; + case dcopMethods: return "dcop-methods"; + case properties: return "properties"; + case events: return "events"; + case decDefineMembers: return "define-members"; + case decProtoMembers: return "proto-members"; + case decTypedefMembers: return "typedef-members"; + case decEnumMembers: return "enum-members"; + case decFuncMembers: return "func-members"; + case decVarMembers: return "var-members"; + case decEnumValMembers: return "enumval-members"; + case decPubSlotMembers: return "pub-slot-members"; + case decProSlotMembers: return "pro-slot-members"; + case decPriSlotMembers: return "pri-slot-members"; + case decSignalMembers: return "signal-members"; + case decEventMembers: return "event-members"; + case decFriendMembers: return "friend-members"; + case decPropMembers: return "prop-members"; + case enumFields: return "enum-fields"; + case memberGroup: return "member-group"; + default: break; + } + return ""; +} + //-------------------------------------------------------------------------- int MemberSDict::compareItems(GCI item1, GCI item2) @@ -622,3 +742,4 @@ return stricmp(c1->name(),c2->name()); } +