diff options
Diffstat (limited to 'addon/xmlparse/mainhandler.cpp')
-rw-r--r-- | addon/xmlparse/mainhandler.cpp | 43 |
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; +} + |