summaryrefslogtreecommitdiffstats
path: root/ksayit/src/parasaxparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ksayit/src/parasaxparser.cpp')
-rw-r--r--ksayit/src/parasaxparser.cpp96
1 files changed, 96 insertions, 0 deletions
diff --git a/ksayit/src/parasaxparser.cpp b/ksayit/src/parasaxparser.cpp
new file mode 100644
index 0000000..575df06
--- /dev/null
+++ b/ksayit/src/parasaxparser.cpp
@@ -0,0 +1,96 @@
+//
+// C++ Implementation: parasaxparser
+//
+// Description: SAX2-Parser for 'para' elements of a DocBook file.
+//
+//
+// Author: Robert Vogl <voglrobe@web.de>, (C) 2005
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+// #include <iostream> // cout
+// using namespace std;
+
+// Qt includes
+
+// KDE includes
+#include <kdebug.h>
+
+// App specific includes
+#include "parasaxparser.h"
+
+ParaSaxParser::ParaSaxParser()
+{
+ m_reader = new QXmlSimpleReader();
+
+ m_handler = new SaxHandler();
+ m_reader->setContentHandler(m_handler);
+ m_reader->setErrorHandler(m_handler);
+ m_reader->setEntityResolver(m_handler);
+ m_reader->setDeclHandler(m_handler);
+
+ m_XmlInputHeader = QString::null;
+ m_XmlInputBody = QString::null;
+}
+
+ParaSaxParser::~ParaSaxParser()
+{
+ delete m_handler;
+ delete m_reader;
+}
+
+ParaSaxParser* ParaSaxParser::_instance = 0;
+
+ParaSaxParser* ParaSaxParser::Instance()
+{
+ if ( _instance == 0 ){
+ _instance = new ParaSaxParser();
+ }
+ return _instance;
+}
+
+
+void ParaSaxParser::setProcessingInstruction(const QString &data)
+{
+ m_XmlInputHeader = data;
+}
+
+
+void ParaSaxParser::setData(const QString &data)
+{
+ m_XmlInputBody = data;
+}
+
+
+void ParaSaxParser::getText(QString &data)
+{
+ QString XmlPart = m_XmlInputHeader + m_XmlInputBody;
+
+ QXmlInputSource input;
+ input.setData(XmlPart);
+
+ m_handler->reset();
+ m_handler->setRTF(false);
+ m_reader->parse( input );
+ m_handler->getData(data);
+
+}
+
+
+void ParaSaxParser::getRTFText(QString &data)
+{
+ QString XmlPart = m_XmlInputHeader + m_XmlInputBody;
+ kdDebug(100200) << "ParaSaxParser::getRTFText(): " << XmlPart << endl;
+
+ QXmlInputSource input;
+ input.setData(XmlPart);
+
+ m_handler->reset();
+ m_handler->setRTF(true);
+ m_reader->parse( input );
+ m_handler->getData(data);
+}
+
+
+