summaryrefslogtreecommitdiffstats
path: root/addon/xmlparse/mainhandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'addon/xmlparse/mainhandler.cpp')
-rw-r--r--addon/xmlparse/mainhandler.cpp43
1 files changed, 42 insertions, 1 deletions
diff --git a/addon/xmlparse/mainhandler.cpp b/addon/xmlparse/mainhandler.cpp
index 8a5d449..21185e6 100644
--- a/addon/xmlparse/mainhandler.cpp
+++ b/addon/xmlparse/mainhandler.cpp
@@ -13,6 +13,7 @@
*
*/
+#include <qxml.h>
#include "mainhandler.h"
void MainHandler::startCompound(const QXmlAttributes& attrib)
@@ -20,9 +21,10 @@ void MainHandler::startCompound(const QXmlAttributes& attrib)
CompoundHandler *compHandler = new CompoundHandler(this);
compHandler->startCompound(attrib);
m_compounds.append(compHandler);
+ m_compoundDict.insert(compHandler->id(),compHandler);
}
-MainHandler::MainHandler()
+MainHandler::MainHandler() : m_compoundDict(10007)
{
m_compounds.setAutoDelete(TRUE);
addStartHandler("doxygen");
@@ -33,6 +35,45 @@ MainHandler::MainHandler()
MainHandler::~MainHandler()
{
+ printf("MainHandler::~MainHandler()\n");
}
+class ErrorHandler : public QXmlErrorHandler
+{
+ public:
+ virtual ~ErrorHandler() {}
+ bool warning( const QXmlParseException & )
+ {
+ return FALSE;
+ }
+ bool error( const QXmlParseException & )
+ {
+ return FALSE;
+ }
+ bool fatalError( const QXmlParseException &exception )
+ {
+ fprintf(stderr,"Fatal error at line %d column %d: %s\n",
+ exception.lineNumber(),exception.columnNumber(),
+ exception.message().data());
+ return FALSE;
+ }
+ QString errorString() { return ""; }
+
+ private:
+ QString errorMsg;
+};
+
+IDoxygen *createObjectModelFromXML(const char * xmlFileName)
+{
+ QFile xmlFile(xmlFileName);
+ MainHandler * handler = new MainHandler;
+ ErrorHandler errorHandler;
+ QXmlInputSource source( xmlFile );
+ QXmlSimpleReader reader;
+ reader.setContentHandler( handler );
+ reader.setErrorHandler( &errorHandler );
+ reader.parse( source );
+ return handler;
+}
+