File indexing completed on 2025-11-09 12:09:44
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2000-2003 David Faure <faure@kde.org> 0003 SPDX-FileCopyrightText: 2003 Norbert Andres <nandres@web.de> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef OPENCALCEXPORT_H 0009 #define OPENCALCEXPORT_H 0010 0011 #include "opencalcstyleexport.h" 0012 0013 #include <KoFilter.h> 0014 #include <QByteArray> 0015 #include <QVariantList> 0016 0017 class QDomDocument; 0018 class QDomElement; 0019 class KoStore; 0020 0021 namespace Calligra 0022 { 0023 namespace Sheets 0024 { 0025 class DocBase; 0026 class Localization; 0027 class Sheet; 0028 } 0029 } 0030 0031 class OpenCalcExport : public KoFilter 0032 { 0033 Q_OBJECT 0034 0035 public: 0036 OpenCalcExport(QObject* parent, const QVariantList &); 0037 ~OpenCalcExport() override {} 0038 0039 KoFilter::ConversionStatus convert(const QByteArray & from, 0040 const QByteArray & to) override; 0041 0042 private: 0043 enum files { metaXML = 0x01, contentXML = 0x02, stylesXML = 0x04, settingsXML = 0x08 }; 0044 OpenCalcStyles m_styles; 0045 0046 bool writeFile(const Calligra::Sheets::DocBase * ksdoc); 0047 0048 bool exportDocInfo(KoStore * store, const Calligra::Sheets::DocBase * ksdoc); 0049 bool exportStyles(KoStore * store, const Calligra::Sheets::DocBase * ksdoc); 0050 bool exportContent(KoStore * store, const Calligra::Sheets::DocBase * ksdoc); 0051 bool exportSettings(KoStore * store, const Calligra::Sheets::DocBase * ksdoc); 0052 0053 bool exportBody(QDomDocument & doc, QDomElement & content, const Calligra::Sheets::DocBase * ksdoc); 0054 void exportSheet(QDomDocument & doc, QDomElement & tabElem, 0055 Calligra::Sheets::Sheet * sheet, int maxCols, int maxRows); 0056 void exportCells(QDomDocument & doc, QDomElement & rowElem, 0057 Calligra::Sheets::Sheet * sheet, int row, int maxCols); 0058 void exportDefaultCellStyle(QDomDocument & doc, QDomElement & officeStyles); 0059 void exportPageAutoStyles(QDomDocument & doc, QDomElement & autoStyles, 0060 const Calligra::Sheets::DocBase * ksdoc); 0061 void exportMasterStyles(QDomDocument & doc, QDomElement & masterStyles, 0062 const Calligra::Sheets::DocBase *ksdoc); 0063 0064 bool writeMetaFile(KoStore * store, uint filesWritten); 0065 0066 void convertPart(QString const & part, QDomDocument & doc, 0067 QDomElement & parent, const Calligra::Sheets::DocBase * ksdoc); 0068 void addText(QString const & text, QDomDocument & doc, 0069 QDomElement & parent); 0070 0071 void createDefaultStyles(); 0072 QString convertFormula(QString const & formula) const; 0073 private: 0074 /// Pointer to the Calligra::Sheets locale 0075 Calligra::Sheets::Localization* m_locale; 0076 }; 0077 0078 #endif