1 #include "XmlStackedHandlerReader.h"
6 #include "XmlStackedHandler.h"
9 XmlStackedHandlerReader::XmlStackedHandlerReader() {
10 m_contentHandlers = NULL;
11 m_contentHandlers =
new QStack<XmlStackedHandler *>;
15 XmlStackedHandlerReader::~XmlStackedHandlerReader() {
16 delete m_contentHandlers;
17 m_contentHandlers = NULL;
21 void XmlStackedHandlerReader::popContentHandler() {
22 m_contentHandlers->pop();
24 if (m_contentHandlers->size()) {
25 m_contentHandlers->top()->setReader(
this);
26 setContentHandler(m_contentHandlers->top());
29 setContentHandler(NULL);
34 void XmlStackedHandlerReader::pushContentHandler(XmlStackedHandler *newHandler) {
35 XmlStackedHandler *old = topContentHandler();
37 newHandler->setReader(
this);
38 m_contentHandlers->push(newHandler);
40 setContentHandler(m_contentHandlers->top());
43 old->switchToNewHandler(topContentHandler());
48 XmlStackedHandler *XmlStackedHandlerReader::topContentHandler() {
49 XmlStackedHandler *result = NULL;
51 if (m_contentHandlers->size())
52 result = m_contentHandlers->top();