comparison src/xlsx/xlsxsharedstrings_p.h @ 1:93d3106bb9a4

Add qt xlsx library
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 22 Mar 2016 10:38:08 +0100
parents
children
comparison
equal deleted inserted replaced
0:49cd5cc0b072 1:93d3106bb9a4
1 /****************************************************************************
2 ** Copyright (c) 2013-2014 Debao Zhang <hello@debao.me>
3 ** All right reserved.
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining
6 ** a copy of this software and associated documentation files (the
7 ** "Software"), to deal in the Software without restriction, including
8 ** without limitation the rights to use, copy, modify, merge, publish,
9 ** distribute, sublicense, and/or sell copies of the Software, and to
10 ** permit persons to whom the Software is furnished to do so, subject to
11 ** the following conditions:
12 **
13 ** The above copyright notice and this permission notice shall be
14 ** included in all copies or substantial portions of the Software.
15 **
16 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 **
24 ****************************************************************************/
25 #ifndef XLSXSHAREDSTRINGS_H
26 #define XLSXSHAREDSTRINGS_H
27
28 //
29 // W A R N I N G
30 // -------------
31 //
32 // This file is not part of the Qt Xlsx API. It exists for the convenience
33 // of the Qt Xlsx. This header file may change from
34 // version to version without notice, or even be removed.
35 //
36 // We mean it.
37 //
38
39 #include "xlsxglobal.h"
40 #include "xlsxrichstring.h"
41 #include "xlsxabstractooxmlfile.h"
42 #include <QHash>
43 #include <QStringList>
44 #include <QSharedPointer>
45
46 class QIODevice;
47 class QXmlStreamReader;
48 class QXmlStreamWriter;
49
50 namespace QXlsx {
51
52 class XlsxSharedStringInfo
53 {
54 public:
55 XlsxSharedStringInfo(int index=0, int count = 1) :
56 index(index), count(count)
57 {
58 }
59
60 int index;
61 int count;
62 };
63
64 class XLSX_AUTOTEST_EXPORT SharedStrings : public AbstractOOXmlFile
65 {
66 public:
67 SharedStrings(CreateFlag flag);
68 int count() const;
69 bool isEmpty() const;
70
71 int addSharedString(const QString &string);
72 int addSharedString(const RichString &string);
73 void removeSharedString(const QString &string);
74 void removeSharedString(const RichString &string);
75 void incRefByStringIndex(int idx);
76
77 int getSharedStringIndex(const QString &string) const;
78 int getSharedStringIndex(const RichString &string) const;
79 RichString getSharedString(int index) const;
80 QList<RichString> getSharedStrings() const;
81
82 void saveToXmlFile(QIODevice *device) const;
83 bool loadFromXmlFile(QIODevice *device);
84
85 private:
86 void readString(QXmlStreamReader &reader); // <si>
87 void readRichStringPart(QXmlStreamReader &reader, RichString &rich); // <r>
88 void readPlainStringPart(QXmlStreamReader &reader, RichString &rich); // <v>
89 Format readRichStringPart_rPr(QXmlStreamReader &reader);
90 void writeRichStringPart_rPr(QXmlStreamWriter &writer, const Format &format) const;
91
92 QHash<RichString, XlsxSharedStringInfo> m_stringTable; //for fast lookup
93 QList<RichString> m_stringList;
94 int m_stringCount;
95 };
96
97 }
98 #endif // XLSXSHAREDSTRINGS_H
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)