1 /* This file is part of the KDE project
2 
3    Copyright (C) 2013 Inge Wallin            <inge@lysator.liu.se>
4 
5    This library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Library General Public
7    License as published by the Free Software Foundation; either
8    version 2 of the License, or (at your option) any later version.
9 
10    This library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Library General Public License for more details.
14 
15    You should have received a copy of the GNU Library General Public License
16    along with this library; see the file COPYING.LIB.  If not, write to
17    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18    Boston, MA 02110-1301, USA.
19 */
20 
21 #ifndef ODFTEXTREADERDOCXBACKEND_H
22 #define ODFTEXTREADERDOCXBACKEND_H
23 
24 // Calligra
25 #include <KoXmlStreamReader.h>
26 #include <KoFilter.h>
27 #include <OdfTextReaderBackend.h>
28 
29 
30 
31 class KoOdfStyleProperties;
32 class OdfReaderContext;
33 class OdfReaderDocxContext;
34 
35 class OdfTextReaderDocxBackend : public OdfTextReaderBackend
36 {
37  public:
38     OdfTextReaderDocxBackend();
39     ~OdfTextReaderDocxBackend() override;
40 
41     // ----------------------------------------------------------------
42     // Text level functions: paragraphs, headings, sections, frames, objects, etc
43 
44     void elementTextH(KoXmlStreamReader &reader, OdfReaderContext *context) override;
45     void elementTextP(KoXmlStreamReader &reader, OdfReaderContext *context) override;
46 
47     // ----------------------------------------------------------------
48     // Paragraph level functions: spans, annotations, notes, text content itself, etc.
49 
50     void elementOfficeAnnotation(KoXmlStreamReader &reader, OdfReaderContext *context) override;
51 
52     void elementDcCreator(KoXmlStreamReader &reader, OdfReaderContext *context) override;
53     void elementDcDate(KoXmlStreamReader &reader, OdfReaderContext *context) override;
54 
55     void elementTextSpan(KoXmlStreamReader &reader, OdfReaderContext *context) override;
56     void elementTextS(KoXmlStreamReader &reader, OdfReaderContext *context) override;
57 
58     void characterData(KoXmlStreamReader &reader, OdfReaderContext *context) override;
59 
60  private:
61     void startRun(const KoXmlStreamReader &reader, OdfReaderDocxContext *context);
62     void endRun(OdfReaderDocxContext *context);
63 
64  private:
65     int m_insideSpanLevel;    // Number of nexted <text:span> levels.
66     int m_currentOutlineLevel;
67     int m_commentIndex;
68     bool m_writeComment;
69     bool m_insideComment;
70     bool m_insideDcCreator;
71     bool m_insideDcDate;
72     KoOdfStyleProperties *m_currentParagraphTextProperties;
73     QString m_currentParagraphParent;
74 };
75 
76 
77 #endif // ODFTEXTREADERDOCXBACKEND_H
78