File indexing completed on 2025-02-16 10:54:10

0001 /*
0002  * This file is part of Office 2007 Filters for Calligra
0003  *
0004  * SPDX-FileCopyrightText: 2009 Nokia Corporation and /or its subsidiary(-ies).
0005  *
0006  * Contact: Suresh Chande suresh.chande@nokia.com
0007  *
0008  * SPDX-License-Identifier: LGPL-2.1-only
0009  *
0010  */
0011 
0012 #ifndef XLSXXMLSHAREDSTRINGSREADER_H
0013 #define XLSXXMLSHAREDSTRINGSREADER_H
0014 
0015 #include "XlsxXmlCommonReader.h"
0016 
0017 
0018 class XlsxXmlSharedStringsReaderContext : public MSOOXML::MsooXmlReaderContext
0019 {
0020 public:
0021     explicit XlsxXmlSharedStringsReaderContext(QVector<QString>& _strings, MSOOXML::DrawingMLTheme* _themes,
0022         QVector<QString>& _colorIndices);
0023     QVector<QString>* strings;
0024     MSOOXML::DrawingMLTheme* themes;
0025     QVector<QString>& colorIndices;
0026 };
0027 
0028 //! A class reading MSOOXML XLSX markup - sharedStrings.xml part.
0029 //! See ECMA-376, 12.3.15: Shared String Table Part
0030 class XlsxXmlSharedStringsReader : public XlsxXmlCommonReader
0031 {
0032 public:
0033     explicit XlsxXmlSharedStringsReader(KoOdfWriters *writers);
0034 
0035     ~XlsxXmlSharedStringsReader() override;
0036 
0037     //! Reads/parses the file of format document.xml.
0038     //! The output goes mainly to KoXmlWriter* KoOdfWriters::body
0039     KoFilter::ConversionStatus read(MSOOXML::MsooXmlReaderContext* context = 0) override;
0040 
0041 protected:
0042     KoFilter::ConversionStatus readInternal();
0043     KoFilter::ConversionStatus read_sst();
0044     KoFilter::ConversionStatus read_si();
0045 
0046     uint m_index;
0047 
0048     XlsxXmlSharedStringsReaderContext* m_context;
0049 private:
0050     void init();
0051 
0052     class Private;
0053     Private* const d;
0054 };
0055 
0056 #endif //XLSXXMLSHAREDSTRINGSREADER_H