1 /*
2  * This file is part of Office 2007 Filters for Calligra
3  *
4  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5  *
6  * Contact: Suresh Chande suresh.chande@nokia.com
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  *
22  */
23 
24 #ifndef DOCXXMLNUMBERINGREADER_H
25 #define DOCXXMLNUMBERINGREADER_H
26 
27 #include <QMap>
28 
29 #include "DocxXmlDocumentReader.h"
30 
31 //! A class reading MSOOXML numbering markup - numbering.xml part.
32 class DocxXmlNumberingReader : public DocxXmlDocumentReader
33 {
34 public:
35     explicit DocxXmlNumberingReader(KoOdfWriters *writers);
36     ~DocxXmlNumberingReader() override;
37     KoFilter::ConversionStatus read(MSOOXML::MsooXmlReaderContext* context = 0) override;
38 
39 protected:
40 
41     KoFilter::ConversionStatus read_numbering();
42     KoFilter::ConversionStatus read_abstractNum();
43     KoFilter::ConversionStatus read_lvl();
44     KoFilter::ConversionStatus read_start();
45     KoFilter::ConversionStatus read_numFmt();
46     KoFilter::ConversionStatus read_lvlText();
47     KoFilter::ConversionStatus read_num();
48     KoFilter::ConversionStatus read_abstractNumId();
49     KoFilter::ConversionStatus read_lvlJc();
50     KoFilter::ConversionStatus read_suff();
51     KoFilter::ConversionStatus read_lvlPicBulletId();
52     KoFilter::ConversionStatus read_numPicBullet();
53     KoFilter::ConversionStatus read_lvlOverride();
54 
55     // NOTE: We read pPr here for now because we are only interested in subset
56     // of pPr features which can be used with lists.
57     KoFilter::ConversionStatus read_pPr_numbering();
58     KoFilter::ConversionStatus read_ind_numbering();
59 /*     KoFilter::ConversionStatus read_rPr_numbering(); */
60 /*     KoFilter::ConversionStatus read_rFonts_numbering(); */
61 /*     KoFilter::ConversionStatus read_color_numbering(); */
62 
63     bool m_bulletStyle;
64 
65     QMap<QString, QList<MSOOXML::Utils::ParagraphBulletProperties> > m_abstractListStyles;
66     QMap<QString, QString> m_picBulletPaths;
67 
68     QString m_bulletCharacter;
69     QString m_currentAbstractId;
70 
71 private:
72     void init();
73     class Private;
74     Private* const d;
75 };
76 
77 #endif //DOCXXMLNUMBERINGREADER_H
78