summaryrefslogtreecommitdiffstats
path: root/htmlhelpparser_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'htmlhelpparser_p.h')
-rw-r--r--htmlhelpparser_p.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/htmlhelpparser_p.h b/htmlhelpparser_p.h
new file mode 100644
index 0000000..277147f
--- /dev/null
+++ b/htmlhelpparser_p.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the doxygen2qthelp project on Trolltech Labs.
+ **
+ ** This file may be used under the terms of the GNU General Public
+ ** License version 2.0 or 3.0 as published by the Free Software Foundation
+ ** and appearing in the file LICENSE.GPL included in the packaging of
+ ** this file. Please review the following information to ensure GNU
+ ** General Public Licensing requirements will be met:
+ ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+ ** http://www.gnu.org/copyleft/gpl.html.
+ **
+ ** If you are unsure which license is appropriate for your use, please
+ ** contact the sales department at qt-sales@nokia.com.
+ **
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ **
+ ****************************************************************************/
+
+#ifndef HTMLHELPPARSER_P_H
+#define HTMLHELPPARSER_P_H
+
+#include "simplehtmlreceiver_p.h"
+#include <QString>
+#include <QStack>
+#include <QList>
+
+QT_BEGIN_NAMESPACE
+
+class ContainerNode;
+struct QHelpDataIndexItem;
+class QHelpDataContentItem;
+
+
+class HtmlHelpParser : public SimpleHtmlReceiver
+{
+private:
+ enum State {
+ WAIT_NAME_OR_LOCAL,
+ WAIT_NAME_NAME_OR_NAME_LOCAL,
+ WAIT_LOCAL_NAME,
+ WAIT_NAME_NAME_LOCAL_NAME,
+ WAIT_NAME_NAME_LOCAL
+ };
+
+public:
+ HtmlHelpParser();
+ ~HtmlHelpParser();
+
+ void parseFile(const QString &fileName);
+ void parseString(const QString &text);
+ const QList<QHelpDataIndexItem> stealIndex();
+ const QList<QHelpDataContentItem*> stealToc(const QString &rootName,
+ const QString &rootHref);
+
+private:
+ void onTagOpen(const QString &tagName, const QStringList &attributes);
+ void onTagClose(const QString &tagName);
+ void onTextChunk(const QString &text);
+ void onStop();
+
+ void finishLastNode();
+
+ static QString findAttribute(const QStringList &list, const QString &key);
+
+ QString m_name;
+ QString m_href;
+ QString m_subName;
+ State m_state;
+ ContainerNode * const m_tree;
+ QStack<ContainerNode *> m_nodeStack;
+};
+
+QT_END_NAMESPACE
+
+#endif // HTMLHELPPARSER_P_H
+