Loading...
Searching...
No Matches
contentxml.h
Go to the documentation of this file.
/*
libodsstream is a library to read and write ODS documents as streams
Copyright (C) 2013 Olivier Langella <Olivier.Langella@moulon.inra.fr>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <quazip.h>
#include <quazipfile.h>
#include <QXmlStreamWriter>
#include <QUrl>
#include <QDate>
#include <QDateTime>
#include "../options/odstablecellstyle.h"
#include "../options/odstablecellstyleref.h"
#include "../options/odscolorscale.h"
#include "settingsxml.h"
class ContentXml
{
public:
ContentXml(QuaZip *p_quaZip, SettingsXml *p_settings_xml);
virtual ~ContentXml();
void writeSheet(const QString &sheetName);
void writeCell(double value, const QString &annotation);
void writeCell(std::size_t value, const QString &annotation);
void writeCell(int value, const QString &annotation);
void writeCell(const QString &value, const QString &annotation);
void writeCell(const QDate &, const QString &annotation);
void writeCell(const QDateTime &, const QString &annotation);
void writeCell(const QUrl &, const QString &, const QString &annotation);
void writeCell(bool value, const QString &annotation);
void writeCellPercentage(double value, const QString &annotation);
void writeEmptyCell(const QString &annotation);
void writeLine();
void close();
OdsTableCellStyleRef getTableCellStyleRef(const OdsTableCellStyle &style);
void setTableCellStyleRef(OdsTableCellStyleRef style_ref);
void addColorScale(const OdsColorScale &ods_color_scale);
QString getCellCoordinate();
private:
void writeCellFloat(const QString &value,
const QString &representation,
const QString &annotation);
void writeSheet();
void writeEndTable();
std::vector<OdsColorScale>
getOdsColorScaleListBySheetName(const QString &sheet_name);
void WriteHeader();
void writeFontFaceDecls();
void writeAutomaticStyles();
void startSpreadsheet();
void writeAnnotation(const QString &annotation);
QuaZipFile _outFile;
static QString _xsdNamespaceURI;
static QString _xsiNamespaceURI;
QuaZip *_p_quaZip;
QXmlStreamWriter *_p_writer;
bool _tableStarted;
bool _tableRowStarted;
bool _automatic_styles_writed = false;
bool _spreadsheet_started = false;
std::vector<OdsTableCellStyle> _style2write;
std::vector<OdsTableCellStyleRef> _style_ref_list;
OdsTableCellStyleRefInternal *_current_style_ref = nullptr;
std::vector<OdsColorScale> _color_scale_list;
QString _current_sheet_name;
unsigned int _row_pos = 0;
unsigned int _col_pos = 0;
SettingsXml *_p_settings_xml;
};
ContentXml::writeLine
void writeLine()
Definition contentxml.cpp:462
ContentXml::close
void close()
Definition contentxml.cpp:338
ContentXml::_xsdNamespaceURI
static QString _xsdNamespaceURI
Definition contentxml.h:75
ContentXml::_p_settings_xml
SettingsXml * _p_settings_xml
Definition contentxml.h:97
ContentXml::WriteHeader
void WriteHeader()
Definition contentxml.cpp:46
ContentXml::_p_writer
QXmlStreamWriter * _p_writer
Definition contentxml.h:80
ContentXml::getOdsColorScaleListBySheetName
std::vector< OdsColorScale > getOdsColorScaleListBySheetName(const QString &sheet_name)
Definition contentxml.cpp:353
ContentXml::writeCell
void writeCell(double value, const QString &annotation)
Definition contentxml.cpp:498
ContentXml::writeCellPercentage
void writeCellPercentage(double value, const QString &annotation)
Definition contentxml.cpp:521
ContentXml::_p_quaZip
QuaZip * _p_quaZip
Definition contentxml.h:79
ContentXml::getTableCellStyleRef
OdsTableCellStyleRef getTableCellStyleRef(const OdsTableCellStyle &style)
Definition contentxml.cpp:953
ContentXml::writeEmptyCell
void writeEmptyCell(const QString &annotation)
Definition contentxml.cpp:626
ContentXml::_current_style_ref
OdsTableCellStyleRefInternal * _current_style_ref
Definition contentxml.h:89
ContentXml::startSpreadsheet
void startSpreadsheet()
Definition contentxml.cpp:142
ContentXml::_automatic_styles_writed
bool _automatic_styles_writed
Definition contentxml.h:85
ContentXml::writeAutomaticStyles
void writeAutomaticStyles()
Definition contentxml.cpp:157
ContentXml::_row_pos
unsigned int _row_pos
Definition contentxml.h:95
ContentXml::~ContentXml
virtual ~ContentXml()
Definition contentxml.cpp:41
ContentXml::_style2write
std::vector< OdsTableCellStyle > _style2write
Definition contentxml.h:87
ContentXml::_tableStarted
bool _tableStarted
Definition contentxml.h:82
ContentXml::ContentXml
ContentXml(QuaZip *p_quaZip, SettingsXml *p_settings_xml)
Definition contentxml.cpp:30
ContentXml::_color_scale_list
std::vector< OdsColorScale > _color_scale_list
Definition contentxml.h:91
ContentXml::_style_ref_list
std::vector< OdsTableCellStyleRef > _style_ref_list
Definition contentxml.h:88
ContentXml::writeAnnotation
void writeAnnotation(const QString &annotation)
Definition contentxml.cpp:668
ContentXml::addColorScale
void addColorScale(const OdsColorScale &ods_color_scale)
Definition contentxml.cpp:988
ContentXml::writeCellFloat
void writeCellFloat(const QString &value, const QString &representation, const QString &annotation)
Definition contentxml.cpp:574
ContentXml::_xsiNamespaceURI
static QString _xsiNamespaceURI
Definition contentxml.h:76
ContentXml::_spreadsheet_started
bool _spreadsheet_started
Definition contentxml.h:86
ContentXml::_col_pos
unsigned int _col_pos
Definition contentxml.h:96
ContentXml::setTableCellStyleRef
void setTableCellStyleRef(OdsTableCellStyleRef style_ref)
Definition contentxml.cpp:971
ContentXml::_tableRowStarted
bool _tableRowStarted
Definition contentxml.h:84
ContentXml::getCellCoordinate
QString getCellCoordinate()
Definition contentxml.cpp:995
ContentXml::writeEndTable
void writeEndTable()
Definition contentxml.cpp:369
ContentXml::_outFile
QuaZipFile _outFile
Definition contentxml.h:73
ContentXml::writeFontFaceDecls
void writeFontFaceDecls()
Definition contentxml.cpp:118
ContentXml::_current_sheet_name
QString _current_sheet_name
Definition contentxml.h:92
ContentXml::writeSheet
void writeSheet()
Definition contentxml.cpp:492
OdsColorScale
Definition odscolorscale.h:44
OdsTableCellStyleRefInternal
Definition odstablecellstyleref.h:39
OdsTableCellStyle
Definition odstablecellstyle.h:34
SettingsXml
Definition settingsxml.h:45
odscolorscale.h
structure to apply a color scale in ODS sheets
odstablecellstyle.h
handler for ODS cell style
odstablecellstyleref.h
internal reference on handler for ODS cell style
OdsTableCellStyleRef
OdsTableCellStyleRefInternal * OdsTableCellStyleRef
Definition odstablecellstyleref.h:35
settingsxml.h