File indexing completed on 2025-01-19 13:27:35
0001 /* 0002 * This file is part of Office 2007 Filters for Calligra 0003 * 0004 * Copyright (C) 2010 Sebastian Sauer <sebsauer@kdab.com> 0005 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 0006 * 0007 * Contact: Suresh Chande suresh.chande@nokia.com 0008 * 0009 * This library is free software; you can redistribute it and/or 0010 * modify it under the terms of the GNU Lesser General Public License 0011 * version 2.1 as published by the Free Software Foundation. 0012 * 0013 * This library is distributed in the hope that it will be useful, but 0014 * WITHOUT ANY WARRANTY; without even the implied warranty of 0015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0016 * Lesser General Public License for more details. 0017 * 0018 * You should have received a copy of the GNU Lesser General Public 0019 * License along with this library; if not, write to the Free Software 0020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 0021 * 02110-1301 USA 0022 * 0023 */ 0024 0025 #ifndef XLSXXMLCHARTREADER_H 0026 #define XLSXXMLCHARTREADER_H 0027 0028 #include <MsooXmlCommonReader.h> 0029 0030 namespace KoChart { 0031 class Series; 0032 class Chart; 0033 class ShapeProperties; 0034 } 0035 0036 class XlsxChartOdfWriter; 0037 0038 class XlsxXmlChartReaderContext : public MSOOXML::MsooXmlReaderContext 0039 { 0040 public: 0041 KoStore* m_storeout; 0042 KoChart::Chart* m_chart; 0043 XlsxChartOdfWriter* m_chartWriter; 0044 explicit XlsxXmlChartReaderContext(KoStore* _storeout, XlsxChartOdfWriter* _chartWriter); 0045 ~XlsxXmlChartReaderContext() override; 0046 }; 0047 0048 class XlsxXmlChartReader : public MSOOXML::MsooXmlCommonReader 0049 { 0050 public: 0051 explicit XlsxXmlChartReader(KoOdfWriters *writers); 0052 ~XlsxXmlChartReader() override; 0053 KoFilter::ConversionStatus read(MSOOXML::MsooXmlReaderContext* context = 0) override; 0054 void WriteIntoInternalTable(QString &range, QVector< QString > &buffer, KoGenStyle::Type formatType, const QString& formatString = QString()); 0055 QString AlocateAndWriteIntoInternalTable(QVector< QString > &buffer, KoGenStyle::Type formatType); 0056 protected: 0057 KoFilter::ConversionStatus read_txPr(); 0058 KoFilter::ConversionStatus read_plotArea(); 0059 KoFilter::ConversionStatus read_valAx(); 0060 KoFilter::ConversionStatus read_catAx(); 0061 KoFilter::ConversionStatus read_scaling(); 0062 KoFilter::ConversionStatus read_title(); 0063 KoFilter::ConversionStatus read_legend(); 0064 KoFilter::ConversionStatus read_spPr(); 0065 KoFilter::ConversionStatus read_dLbl(); 0066 KoFilter::ConversionStatus read_dLbls(); 0067 0068 KoFilter::ConversionStatus read_pieChart(); 0069 KoFilter::ConversionStatus read_pie3DChart(); 0070 KoFilter::ConversionStatus read_ofPieChart(); 0071 KoFilter::ConversionStatus read_doughnutChart(); 0072 KoFilter::ConversionStatus read_areaChart(); 0073 KoFilter::ConversionStatus read_area3DChart(); 0074 KoFilter::ConversionStatus read_barChart(); 0075 KoFilter::ConversionStatus read_bar3DChart(); 0076 KoFilter::ConversionStatus read_lineChart(); 0077 KoFilter::ConversionStatus read_line3DChart(); 0078 KoFilter::ConversionStatus read_scatterChart(); 0079 KoFilter::ConversionStatus read_radarChart(); 0080 KoFilter::ConversionStatus read_surfaceChart(); 0081 KoFilter::ConversionStatus read_surface3DChart(); 0082 KoFilter::ConversionStatus read_bubbleChart(); 0083 KoFilter::ConversionStatus read_stockChart(); 0084 0085 KoFilter::ConversionStatus read_pieChart_Ser(); 0086 KoFilter::ConversionStatus read_bubbleChart_Ser(); 0087 KoFilter::ConversionStatus read_scatterChart_Ser(); 0088 KoFilter::ConversionStatus read_barChart_Ser(); 0089 KoFilter::ConversionStatus read_areaChart_Ser(); 0090 KoFilter::ConversionStatus read_radarChart_Ser(); 0091 KoFilter::ConversionStatus read_lineChart_Ser(); 0092 KoFilter::ConversionStatus read_surfaceChart_Ser(); 0093 0094 KoFilter::ConversionStatus read_barDir(); 0095 KoFilter::ConversionStatus read_grouping(); 0096 KoFilter::ConversionStatus read_val(); 0097 KoFilter::ConversionStatus read_xVal(); 0098 KoFilter::ConversionStatus read_yVal(); 0099 KoFilter::ConversionStatus read_cat(); 0100 KoFilter::ConversionStatus read_seriesText_Tx(); 0101 KoFilter::ConversionStatus read_chartText_Tx(); 0102 KoFilter::ConversionStatus read_numCache(); 0103 KoFilter::ConversionStatus read_formatCode(); 0104 KoFilter::ConversionStatus read_firstSliceAng(); 0105 KoFilter::ConversionStatus read_holeSize(); 0106 KoFilter::ConversionStatus read_bubbleSize(); 0107 KoFilter::ConversionStatus read_bubbleScale(); 0108 KoFilter::ConversionStatus read_bubble3D(); 0109 0110 KoFilter::ConversionStatus read_pt(); 0111 KoFilter::ConversionStatus read_p(); 0112 KoFilter::ConversionStatus read_pPr(); 0113 KoFilter::ConversionStatus read_defRPr(); 0114 KoFilter::ConversionStatus read_order(); 0115 KoFilter::ConversionStatus read_idx(); 0116 KoFilter::ConversionStatus read_explosion(); 0117 KoFilter::ConversionStatus read_strRef(); 0118 KoFilter::ConversionStatus read_multiLvlStrRef(); 0119 KoFilter::ConversionStatus read_multiLvlStrCache(); 0120 KoFilter::ConversionStatus read_lvl(); 0121 KoFilter::ConversionStatus read_numRef(); 0122 KoFilter::ConversionStatus read_f(); 0123 KoFilter::ConversionStatus read_ptCount(); 0124 KoFilter::ConversionStatus read_numLit(); 0125 KoFilter::ConversionStatus read_strCache(); 0126 KoFilter::ConversionStatus read_marker(); 0127 KoFilter::ConversionStatus read_serMarker(); 0128 0129 private: 0130 0131 void read_showDataLabel(); 0132 0133 enum ReadTxContext{ Title, None }; 0134 enum ReadAreaContext{ PlotArea, ChartArea }; 0135 XlsxXmlChartReaderContext *m_context; 0136 KoChart::Series *m_currentSeries; 0137 KoChart::ShapeProperties* m_currentShapeProperties; 0138 QString m_cellRangeAddress; 0139 ReadTxContext m_readTxContext; 0140 ReadAreaContext m_areaContext; 0141 bool m_serMarkerDefined; 0142 bool m_autoTitleDeleted; 0143 0144 class Private; 0145 Private * const d; 0146 }; 0147 0148 #endif