summaryrefslogtreecommitdiffstats
path: root/addon/doxmlparser/src/memberhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'addon/doxmlparser/src/memberhandler.cpp')
-rw-r--r--addon/doxmlparser/src/memberhandler.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/addon/doxmlparser/src/memberhandler.cpp b/addon/doxmlparser/src/memberhandler.cpp
index 31b5d84..018dfbd 100644
--- a/addon/doxmlparser/src/memberhandler.cpp
+++ b/addon/doxmlparser/src/memberhandler.cpp
@@ -159,6 +159,9 @@ MemberHandler::MemberHandler(IBaseHandler *parent)
addStartHandler("location",this,&MemberHandler::startLocation);
addEndHandler("location");
+ addStartHandler("templateparamlist",this,&MemberHandler::startTemplateParamList);
+ addEndHandler("templateparamlist",this,&MemberHandler::endTemplateParamList);
+
m_type.setAutoDelete(TRUE);
m_initializer.setAutoDelete(TRUE);
m_exception.setAutoDelete(TRUE);
@@ -172,6 +175,8 @@ MemberHandler::MemberHandler(IBaseHandler *parent)
m_defLine=0;
m_bodyStart=0;
m_bodyEnd=0;
+ m_insideTemplateParamList=FALSE;
+ m_hasTemplateParamList=FALSE;
}
MemberHandler::~MemberHandler()
@@ -313,7 +318,14 @@ void MemberHandler::startParam(const QXmlAttributes& attrib)
{
ParamHandler *paramHandler = new ParamHandler(this);
paramHandler->startParam(attrib);
- m_params.append(paramHandler);
+ if (m_insideTemplateParamList)
+ {
+ m_templateParams.append(paramHandler);
+ }
+ else
+ {
+ m_params.append(paramHandler);
+ }
}
void MemberHandler::startEnumValue(const QXmlAttributes& attrib)
@@ -323,6 +335,17 @@ void MemberHandler::startEnumValue(const QXmlAttributes& attrib)
m_enumValues.append(evh);
}
+void MemberHandler::startTemplateParamList(const QXmlAttributes&)
+{
+ m_insideTemplateParamList = TRUE;
+ m_hasTemplateParamList = TRUE;
+}
+
+void MemberHandler::endTemplateParamList()
+{
+ m_insideTemplateParamList = FALSE;
+}
+
void MemberHandler::initialize(MainHandler *mh)
{
{