Rev 18084 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4430 | cbradney | 1 | /* |
2 | For general Scribus (>=1.3.2) copyright and licensing information please refer |
||
3 | to the COPYING file provided with the program. Following this notice may exist |
||
4 | a copyright and/or license notice that predates the release of Scribus 1.3.2 |
||
5 | for which a new license (GPL+exception) is in place. |
||
6 | */ |
||
1579 | tsoots | 7 | /*************************************************************************** |
8 | * Copyright (C) 2004 by Riku Leino * |
||
9 | * tsoots@gmail.com * |
||
10 | * * |
||
11 | * This program is free software; you can redistribute it and/or modify * |
||
12 | * it under the terms of the GNU General Public License as published by * |
||
13 | * the Free Software Foundation; either version 2 of the License, or * |
||
14 | * (at your option) any later version. * |
||
15 | * * |
||
16 | * This program is distributed in the hope that it will be useful, * |
||
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
||
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
||
19 | * GNU General Public License for more details. * |
||
20 | * * |
||
21 | * You should have received a copy of the GNU General Public License * |
||
22 | * along with this program; if not, write to the * |
||
23 | * Free Software Foundation, Inc., * |
||
18122 | mrdocs | 24 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * |
1579 | tsoots | 25 | ***************************************************************************/ |
26 | |||
27 | #ifndef CONTENTREADER_H |
||
28 | #define CONTENTREADER_H |
||
29 | |||
2688 | craig | 30 | #include "scconfig.h" |
1579 | tsoots | 31 | |
32 | #include <utility> |
||
33 | #include <vector> |
||
34 | #ifdef HAVE_XML26 |
||
35 | #include <libxml/SAX2.h> |
||
36 | #else |
||
37 | #include <libxml/SAX.h> |
||
38 | #endif |
||
10223 | cbradney | 39 | #include <QXmlAttributes> |
40 | #include <QMap> |
||
1579 | tsoots | 41 | |
13805 | jghali | 42 | class gtStyle; |
43 | class gtWriter; |
||
44 | class ListStyle; |
||
45 | class StyleReader; |
||
46 | |||
1579 | tsoots | 47 | typedef std::vector<std::pair<QString, QString> > Properties; |
48 | typedef QMap<QString, Properties > TMap; |
||
49 | |||
50 | class ContentReader |
||
51 | { |
||
52 | private: |
||
53 | static ContentReader *creader; |
||
54 | TMap tmap; |
||
55 | QString docname; |
||
56 | StyleReader* sreader; |
||
57 | gtWriter *writer; |
||
58 | gtStyle *defaultStyle; |
||
59 | gtStyle *currentStyle; |
||
60 | gtStyle *lastStyle; |
||
61 | gtStyle *pstyle; |
||
62 | bool importTextOnly; |
||
63 | bool inList; |
||
13814 | jghali | 64 | bool inAnnotation; |
1579 | tsoots | 65 | bool inSpan; |
12143 | jghali | 66 | int append; |
67 | int listLevel; |
||
68 | int listIndex; |
||
2212 | tsoots | 69 | ListStyle *currentListStyle; |
1579 | tsoots | 70 | std::vector<int> listIndex2; |
71 | bool inT; |
||
72 | std::vector<QString> styleNames; |
||
73 | QString tName; |
||
74 | QString currentList; |
||
75 | void write(const QString& text); |
||
76 | QString getName(); |
||
77 | void getStyle(); |
||
78 | public: |
||
79 | ContentReader(QString documentName, StyleReader* s, gtWriter *w, bool textOnly); |
||
80 | ~ContentReader(); |
||
81 | static void startElement(void *user_data, const xmlChar *fullname, const xmlChar ** atts); |
||
82 | static void endElement(void *user_data, const xmlChar *name); |
||
83 | static void characters(void *user_data, const xmlChar *ch, int len); |
||
84 | bool startElement(const QString&, const QString&, const QString &name, const QXmlAttributes &attrs); |
||
85 | bool endElement(const QString&, const QString&, const QString &name); |
||
86 | bool characters(const QString &ch); |
||
87 | void parse(QString fileName); |
||
88 | }; |
||
89 | |||
90 | #endif |