diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-10-30 20:57:53 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2002-10-30 20:57:53 (GMT) |
commit | c6d6555a949e86be5c859311eb4db5dcc092c258 (patch) | |
tree | dd06bd100b0bd88b6ee40c8464efac800a749c32 /addon/doxmlparser/src/memberhandler.cpp | |
parent | 7c34dd2b1594925d0a012e9ba290bf9c80574db5 (diff) | |
download | Doxygen-c6d6555a949e86be5c859311eb4db5dcc092c258.zip Doxygen-c6d6555a949e86be5c859311eb4db5dcc092c258.tar.gz Doxygen-c6d6555a949e86be5c859311eb4db5dcc092c258.tar.bz2 |
Release-1.2.18-20021030
Diffstat (limited to 'addon/doxmlparser/src/memberhandler.cpp')
-rw-r--r-- | addon/doxmlparser/src/memberhandler.cpp | 71 |
1 files changed, 53 insertions, 18 deletions
diff --git a/addon/doxmlparser/src/memberhandler.cpp b/addon/doxmlparser/src/memberhandler.cpp index 74b1e32..ad35a91 100644 --- a/addon/doxmlparser/src/memberhandler.cpp +++ b/addon/doxmlparser/src/memberhandler.cpp @@ -39,6 +39,7 @@ class MemberTypeMap m_map.insert("friend",new int(IMember::Friend)); m_map.insert("dcop",new int(IMember::DCOP)); m_map.insert("slot",new int(IMember::Slot)); + m_map.insert("enumvalue",new int(IMember::EnumValue)); } IMember::MemberKind map(const QString &s) { @@ -82,19 +83,28 @@ IMember *MemberReference::member() const //------------------------------------------------------------------------------ -EnumValueHandler::EnumValueHandler(IBaseHandler *parent) : m_parent(parent), m_brief(0), m_detailed(0) +#if 0 +EnumValueHandler::EnumValueHandler(IBaseHandler *parent) : + m_parent(parent), m_brief(0), m_detailed(0), m_linkedTextHandler(0) { addEndHandler("enumvalue",this,&EnumValueHandler::endEnumValue); addStartHandler("name",this,&EnumValueHandler::startName); addEndHandler("name",this,&EnumValueHandler::endName); addStartHandler("initializer",this,&EnumValueHandler::startInitializer); - addEndHandler("initializer",this,&EnumValueHandler::endInitializer); addStartHandler("briefdescription",this,&EnumValueHandler::startBriefDesc); addStartHandler("detaileddescription",this,&EnumValueHandler::startDetailedDesc); + m_initializer.setAutoDelete(TRUE); +} + +EnumValueHandler::~EnumValueHandler() +{ + delete m_brief; + delete m_detailed; + delete m_linkedTextHandler; } void EnumValueHandler::startEnumValue(const QXmlAttributes& /*attrib*/) @@ -119,12 +129,9 @@ void EnumValueHandler::endName() void EnumValueHandler::startInitializer(const QXmlAttributes& /*attrib*/) { - m_curString=""; -} - -void EnumValueHandler::endInitializer() -{ - m_initializer = m_curString; + delete m_linkedTextHandler; + m_linkedTextHandler = new LinkedTextHandler(this,m_initializer); + m_linkedTextHandler->start("initializer"); } void EnumValueHandler::startBriefDesc(const QXmlAttributes& attrib) @@ -140,7 +147,7 @@ void EnumValueHandler::startDetailedDesc(const QXmlAttributes& attrib) docHandler->startDoc(attrib); m_detailed = docHandler; } - +#endif //------------------------------------------------------------------------------ @@ -149,13 +156,14 @@ MemberHandler::MemberHandler(IBaseHandler *parent) { //printf("MemberHandler::MemberHandler() %p\n",this); addEndHandler("memberdef",this,&MemberHandler::endMember); + addEndHandler("enumvalue",this,&MemberHandler::endMember); addStartHandler("type",this,&MemberHandler::startType); addStartHandler("initializer",this,&MemberHandler::startInitializer); addStartHandler("exception",this,&MemberHandler::startException); - addStartHandler("enumvalue",this,&MemberHandler::startEnumValue); + addStartHandler("enumvalue",this,&MemberHandler::startEnumValue2); - addStartHandler("name"); + addStartHandler("name",this,&MemberHandler::startName); addEndHandler("name",this,&MemberHandler::endName); addStartHandler("param",this,&MemberHandler::startParam); @@ -212,6 +220,7 @@ void MemberHandler::startMember(const QXmlAttributes& attrib) { m_parent->setDelegate(this); m_kindString = attrib.value("kind"); + printf("startMember kindString=`%s'\n",m_kindString.data()); m_kind = s_typeMap->map(m_kindString); m_id = attrib.value("id"); m_virtualness = attrib.value("virt"); @@ -222,6 +231,29 @@ void MemberHandler::startMember(const QXmlAttributes& attrib) m_kindString.data(),m_id.data(),m_protection.data(),m_virtualness.data()); } +void MemberHandler::startEnumValue(const QXmlAttributes& attrib) +{ + m_parent->setDelegate(this); + m_kindString = "enumvalue"; + printf("startEnumValue kindString=`%s'\n",m_kindString.data()); + m_kind = s_typeMap->map(m_kindString); + m_id = attrib.value("id"); + m_virtualness = "non-virtual"; + m_protection = attrib.value("prot"); + m_isConst = FALSE; + m_isVolatile = FALSE; + debug(2,"member kind=`%s' id=`%s' prot=`%s' virt=`%s'\n", + m_kindString.data(),m_id.data(),m_protection.data(),m_virtualness.data()); +} + +void MemberHandler::startEnumValue2(const QXmlAttributes& attrib) +{ + MemberHandler *mh = new MemberHandler(this); + mh->startEnumValue(attrib); + m_enumValues.append(mh); +} + + void MemberHandler::startBriefDesc(const QXmlAttributes& attrib) { DocHandler *docHandler = new DocHandler(this); @@ -328,6 +360,11 @@ void MemberHandler::startException(const QXmlAttributes &) m_linkedTextHandler->start("exception"); } +void MemberHandler::startName(const QXmlAttributes &) +{ + m_curString=""; +} + void MemberHandler::endName() { m_name = m_curString.stripWhiteSpace(); @@ -348,13 +385,6 @@ void MemberHandler::startParam(const QXmlAttributes& attrib) } } -void MemberHandler::startEnumValue(const QXmlAttributes& attrib) -{ - EnumValueHandler *evh = new EnumValueHandler(this); - evh->startEnumValue(attrib); - m_enumValues.append(evh); -} - void MemberHandler::startTemplateParamList(const QXmlAttributes&) { m_insideTemplateParamList = TRUE; @@ -416,4 +446,9 @@ ISection *MemberHandler::section() const return m_section; } +IMemberIterator *MemberHandler::enumValues() const +{ + return new MemberIterator(m_enumValues); +} + |