libodsstream
Library for mass spectrometry
Loading...
Searching...
No Matches
StylesXml Class Reference

#include <stylesxml.h>

Public Member Functions

 StylesXml (QuaZip *p_quaZip)
 
virtual ~StylesXml ()
 

Static Public Member Functions

static const QString & getNamespaceURI (const QString &xml_namespace)
 

Private Member Functions

void WriteHeader (QXmlStreamWriter &writer)
 
void WriteFontFaceDecls (QXmlStreamWriter &writer)
 
void WriteOfficeStyles (QXmlStreamWriter &writer)
 
void WriteAutomaticStyles (QXmlStreamWriter &writer)
 
void WriteMasterStyles (QXmlStreamWriter &writer)
 

Static Private Attributes

static QHash< QString, QString > * _p_hashNamespaceURI
 

Detailed Description

Definition at line 25 of file stylesxml.h.

Constructor & Destructor Documentation

◆ StylesXml()

StylesXml::StylesXml ( QuaZip *  p_quaZip)

Definition at line 87 of file stylesxml.cpp.

88{
89 QuaZipFile outFile(p_quaZip);
90 QuaZipNewInfo info("styles.xml");
91 outFile.open(QIODevice::WriteOnly, info);
92 QXmlStreamWriter writer(&outFile);
93 writer.setAutoFormatting(true);
94
95 this->WriteHeader(writer);
96 this->WriteFontFaceDecls(writer);
97
98 // <office:styles>
99 this->WriteOfficeStyles(writer);
100
101 // <office:automatic-styles>
102 this->WriteAutomaticStyles(writer);
103
104 // <office:master-styles>
105 this->WriteMasterStyles(writer);
106 writer.writeEndDocument();
107 outFile.close();
108}
void WriteHeader(QXmlStreamWriter &writer)
void WriteMasterStyles(QXmlStreamWriter &writer)
void WriteAutomaticStyles(QXmlStreamWriter &writer)
void WriteOfficeStyles(QXmlStreamWriter &writer)
void WriteFontFaceDecls(QXmlStreamWriter &writer)

References WriteAutomaticStyles(), WriteFontFaceDecls(), WriteHeader(), WriteMasterStyles(), and WriteOfficeStyles().

◆ ~StylesXml()

StylesXml::~StylesXml ( )
virtual

Definition at line 110 of file stylesxml.cpp.

111{
112}

Member Function Documentation

◆ getNamespaceURI()

const QString & StylesXml::getNamespaceURI ( const QString &  xml_namespace)
static

Definition at line 28 of file stylesxml.cpp.

29{
30 if(_p_hashNamespaceURI->size() == 0)
31 {
32 _p_hashNamespaceURI->insert(
33 "chart", "urn:oasis:names:tc:opendocument:xmlns:chart:1.0");
34 _p_hashNamespaceURI->insert("dc", "http://purl.org/dc/elements/1.1/");
35 _p_hashNamespaceURI->insert(
36 "dr3d", "urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0");
37 _p_hashNamespaceURI->insert(
38 "draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0");
39 _p_hashNamespaceURI->insert(
40 "fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0");
41 _p_hashNamespaceURI->insert(
42 "form", "urn:oasis:names:tc:opendocument:xmlns:form:1.0");
43 _p_hashNamespaceURI->insert("grddl",
44 "http://www.w3.org/2003/g/data-view#");
45 _p_hashNamespaceURI->insert("math", "http://www.w3.org/1998/Math/MathML");
46 _p_hashNamespaceURI->insert(
47 "meta", "urn:oasis:names:tc:opendocument:xmlns:meta:1.0");
48 _p_hashNamespaceURI->insert(
49 "number", "urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0");
50 _p_hashNamespaceURI->insert(
51 "of", "urn:oasis:names:tc:opendocument:xmlns:of:1.2");
52 _p_hashNamespaceURI->insert(
53 "office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0");
54 _p_hashNamespaceURI->insert("ooo", "http://openoffice.org/2004/office");
55 _p_hashNamespaceURI->insert(
56 "presentation",
57 "urn:oasis:names:tc:opendocument:xmlns:presentation:1.0");
58 _p_hashNamespaceURI->insert(
59 "script", "urn:oasis:names:tc:opendocument:xmlns:script:1.0");
60 _p_hashNamespaceURI->insert(
61 "style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
62 _p_hashNamespaceURI->insert(
63 "svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0");
64 _p_hashNamespaceURI->insert(
65 "table", "urn:oasis:names:tc:opendocument:xmlns:table:1.0");
66 _p_hashNamespaceURI->insert(
67 "text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0");
68 _p_hashNamespaceURI->insert("xhtml", "http://www.w3.org/1999/xhtml");
69 _p_hashNamespaceURI->insert("xlink", "http://www.w3.org/1999/xlink");
70 // * xmlns:ooow="http://openoffice.org/2004/writer"
71 _p_hashNamespaceURI->insert("ooow", "http://openoffice.org/2004/writer");
72 // * xmlns:oooc="http://openoffice.org/2004/calc"
73 _p_hashNamespaceURI->insert("oooc", "http://openoffice.org/2004/calc");
74 // * xmlns:dom="http://www.w3.org/2001/xml-events"
75 _p_hashNamespaceURI->insert("dom", "http://www.w3.org/2001/xml-events");
76 // * xmlns:rpt="http://openoffice.org/2005/report"
77 _p_hashNamespaceURI->insert("rpt", "http://openoffice.org/2005/report");
78 // * xmlns:tableooo="http://openoffice.org/2009/table"
79 _p_hashNamespaceURI->insert("tableooo",
80 "http://openoffice.org/2009/table");
81 // * xmlns:css3t="http://www.w3.org/TR/css3-text/"
82 _p_hashNamespaceURI->insert("css3t", "http://www.w3.org/TR/css3-text/");
83 }
84 return _p_hashNamespaceURI->operator[](xml_namespace);
85}
static QHash< QString, QString > * _p_hashNamespaceURI
Definition stylesxml.h:34

References _p_hashNamespaceURI.

Referenced by WriteAutomaticStyles(), WriteFontFaceDecls(), WriteHeader(), WriteMasterStyles(), and WriteOfficeStyles().

◆ WriteAutomaticStyles()

void StylesXml::WriteAutomaticStyles ( QXmlStreamWriter &  writer)
private

Definition at line 299 of file stylesxml.cpp.

300{
301 /*
302 *
303 * <style:header-style> <style:header-footer-properties
304 * fo:min-height="0.45in" fo:margin-left="0.7in" fo:margin-right="0.7in"
305 * fo:margin-bottom="0in" /> </style:header-style> <style:footer-style>
306 * <style:header-footer-properties fo:min-height="0.45in"
307 * fo:margin-left="0.7in" fo:margin-right="0.7in" fo:margin-top="0in" />
308 * </style:footer-style> </style:page-layout> </office:automatic-styles>
309 */
310 /*
311 * <office:automatic-styles> <style:page-layout style:name="pm1">
312 */
313 writer.writeStartElement(MetaXml::getNamespaceURI("office"),
314 "automatic-styles");
315
316 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "page-layout");
317 writer.writeAttribute(StylesXml::getNamespaceURI("style"), "name", "pm1");
318 /*
319 * <style:page-layout-properties fo:margin-top="0.3in"
320 * fo:margin-bottom="0.3in" fo:margin-left="0.7in"
321 * fo:margin-right="0.7in" style:table-centering="none"
322 * style:print="objects charts drawings" />
323 */
324 writer.writeStartElement(MetaXml::getNamespaceURI("style"),
325 "page-layout-properties");
326 writer.writeAttribute(
327 StylesXml::getNamespaceURI("fo"), "margin-top", "0.3in");
328 writer.writeAttribute(
329 StylesXml::getNamespaceURI("fo"), "margin-bottom", "0.3in");
330 writer.writeAttribute(
331 StylesXml::getNamespaceURI("fo"), "margin-left", "0.7in");
332 writer.writeAttribute(
333 StylesXml::getNamespaceURI("fo"), "margin-right", "0.7in");
334 writer.writeAttribute(
335 StylesXml::getNamespaceURI("style"), "table-centering", "none");
336 writer.writeAttribute(
337 StylesXml::getNamespaceURI("style"), "print", "objects charts drawings");
338 writer.writeEndElement();
339
340 writer.writeEndElement();
341 writer.writeEndElement();
342}
static const QString & getNamespaceURI(const QString &xml_namespace)
Definition metaxml.cpp:32
static const QString & getNamespaceURI(const QString &xml_namespace)
Definition stylesxml.cpp:28

References MetaXml::getNamespaceURI(), and getNamespaceURI().

Referenced by StylesXml().

◆ WriteFontFaceDecls()

void StylesXml::WriteFontFaceDecls ( QXmlStreamWriter &  writer)
private

Definition at line 144 of file stylesxml.cpp.

145{
146 /*
147 *
148 * <office:font-face-decls>
149 */
150 writer.writeStartElement(MetaXml::getNamespaceURI("office"),
151 "font-face-decls");
152 /*
153 * <style:font-face style:name="Arial" svg:font-family="Arial"
154 * style:font-family-generic="swiss" style:font-pitch="variable"/>
155 */
156 // Arial
157 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "font-face");
158 writer.writeAttribute(StylesXml::getNamespaceURI("style"), "name", "Arial");
159 writer.writeAttribute(
160 StylesXml::getNamespaceURI("svg"), "font-family", "Arial");
161 writer.writeAttribute(
162 StylesXml::getNamespaceURI("style"), "font-family-generic", "swiss");
163 writer.writeAttribute(
164 StylesXml::getNamespaceURI("style"), "font-pitch", "variable");
165 writer.writeEndElement();
166
167 /*
168 * </office:font-face-decls>
169 */
170 writer.writeEndElement();
171}

References MetaXml::getNamespaceURI(), and getNamespaceURI().

Referenced by StylesXml().

◆ WriteHeader()

void StylesXml::WriteHeader ( QXmlStreamWriter &  writer)
private

Definition at line 116 of file stylesxml.cpp.

117{
118 writer.writeStartDocument("1.0");
119 /*
120 * <?xml version="1.0" encoding="UTF-8"?> <office:document-styles
121 * office:version="1.2" grddl
122 * :transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl"
123 * >
124 */
125
127 QHash<QString, QString>::iterator i;
128 for(i = StylesXml::_p_hashNamespaceURI->begin();
130 ++i)
131 {
132 writer.writeNamespace(i.value(), i.key());
133 }
134 writer.writeStartElement(StylesXml::getNamespaceURI("office"),
135 "document-styles");
136 writer.writeAttribute(StylesXml::getNamespaceURI("office"), "version", "1.2");
137 writer.writeAttribute(
139 "transformation",
140 "http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl");
141}

References _p_hashNamespaceURI, and getNamespaceURI().

Referenced by StylesXml().

◆ WriteMasterStyles()

void StylesXml::WriteMasterStyles ( QXmlStreamWriter &  writer)
private

Definition at line 346 of file stylesxml.cpp.

347{
348 /*
349 *
350 *
351 *
352 */
353 //<office:master-styles>
354 writer.writeStartElement(MetaXml::getNamespaceURI("office"), "master-styles");
355 //<style:master-page style:name="mp1" style:page-layout-name="pm1">
356 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "master-page");
357 writer.writeAttribute(StylesXml::getNamespaceURI("style"), "name", "mp1");
358 writer.writeAttribute(
359 StylesXml::getNamespaceURI("style"), "page-layout-name", "pm1");
360 //<style:header />
361 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "header");
362 writer.writeEndElement();
363
364 //<style:header-left style:display="false" />
365 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "header-left");
366 writer.writeAttribute(
367 StylesXml::getNamespaceURI("style"), "display", "false");
368 writer.writeEndElement();
369
370 //<style:footer />
371 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "footer");
372 writer.writeEndElement();
373
374 //<style:footer-left style:display="false" />
375 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "footer-left");
376 writer.writeAttribute(
377 StylesXml::getNamespaceURI("style"), "display", "false");
378 writer.writeEndElement();
379
380 //</style:master-page>
381 writer.writeEndElement();
382
383 //</office:master-styles>
384 writer.writeEndElement();
385}

References MetaXml::getNamespaceURI(), and getNamespaceURI().

Referenced by StylesXml().

◆ WriteOfficeStyles()

void StylesXml::WriteOfficeStyles ( QXmlStreamWriter &  writer)
private

Definition at line 174 of file stylesxml.cpp.

175{
176 // <office:styles>
177 writer.writeStartElement(MetaXml::getNamespaceURI("office"), "styles");
178
179 /*
180 * <number:number-style style:name="N0"><number:number
181 * number:min-integer-digits="1"/></number:number-style>
182 */
183 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "number-style");
184 writer.writeAttribute(StylesXml::getNamespaceURI("style"), "name", "N0");
185 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "number");
186 writer.writeAttribute(
187 StylesXml::getNamespaceURI("number"), "min-integer-digits", "1");
188 writer.writeEndElement();
189 writer.writeEndElement();
190
191 /*
192 * <number:date-style
193 * style:name="N36"><number:day/><number:text>/</number
194 * :text><number:month/><number:text>/</number:text> <number:year/>
195 * </number:date-style>
196 */
197 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "date-style");
198 writer.writeAttribute(StylesXml::getNamespaceURI("style"), "name", "N36");
199 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "day");
200 writer.writeEndElement();
201 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "text");
202 writer.writeCharacters("/");
203 writer.writeEndElement();
204 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "month");
205 writer.writeEndElement();
206 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "text");
207 writer.writeCharacters("/");
208 writer.writeEndElement();
209 writer.writeStartElement(MetaXml::getNamespaceURI("number"), "year");
210 writer.writeEndElement();
211 writer.writeEndElement();
212
213 /*
214 *
215 *
216 *
217 *
218 *
219 *
220 */
221 /*
222 * <style:style style:name="Default" style:family="table-cell"
223 * style:data-style-name="N0">
224 */
225 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "style");
226 writer.writeAttribute(StylesXml::getNamespaceURI("style"), "name", "Default");
227 writer.writeAttribute(
228 StylesXml::getNamespaceURI("style"), "family", "table-cell");
229 writer.writeAttribute(
230 StylesXml::getNamespaceURI("style"), "data-style-name", "N0");
231 /*
232 * <style:table-cell-properties style:vertical-align="automatic"
233 * fo:background-color="transparent" />
234 */
235 writer.writeStartElement(MetaXml::getNamespaceURI("style"),
236 "table-cell-properties");
237 writer.writeAttribute(
238 StylesXml::getNamespaceURI("style"), "vertical-align", "automatic");
239 writer.writeAttribute(
240 StylesXml::getNamespaceURI("fo"), "background-color", "transparent");
241 writer.writeEndElement();
242
243 /*
244 * <style:text-properties fo:color="#000000" style:font-name="Calibri"
245 * style:font-name-asian="Calibri" style:font-name-complex="Calibri"
246 * fo:font-size="11pt" style:font-size-asian="11pt"
247 * style:font-size-complex="11pt" />
248 */
249 writer.writeStartElement(MetaXml::getNamespaceURI("style"),
250 "text-properties");
251 writer.writeAttribute(StylesXml::getNamespaceURI("fo"), "color", "#000000");
252 writer.writeAttribute(
253 StylesXml::getNamespaceURI("style"), "font-name", "Arial");
254 writer.writeAttribute(
255 StylesXml::getNamespaceURI("style"), "font-name-asian", "Arial");
256 writer.writeAttribute(
257 StylesXml::getNamespaceURI("style"), "font-name-complex", "Arial");
258 writer.writeAttribute(StylesXml::getNamespaceURI("fo"), "font-size", "11pt");
259 writer.writeAttribute(
260 StylesXml::getNamespaceURI("style"), "font-size-asian", "11pt");
261 writer.writeAttribute(
262 StylesXml::getNamespaceURI("style"), "font-size-complex", "11pt");
263 writer.writeEndElement();
264
265 // </style:style>
266 writer.writeEndElement();
267
268 // <style:default-style style:family="graphic">
269 writer.writeStartElement(MetaXml::getNamespaceURI("style"), "default-style");
270 writer.writeAttribute(
271 StylesXml::getNamespaceURI("style"), "family", "graphic");
272 /*
273 * <style:graphic-properties draw:fill="solid" draw:fill-color="#4f81bd"
274 * draw:opacity="100%" draw:stroke="solid" svg:stroke-width="0.02778in"
275 * svg:stroke-color="#385d8a" svg:stroke-opacity="100%" />
276 */
277 writer.writeStartElement(MetaXml::getNamespaceURI("style"),
278 "graphic-properties");
279 writer.writeAttribute(StylesXml::getNamespaceURI("draw"), "fill", "solid");
280 writer.writeAttribute(
281 StylesXml::getNamespaceURI("draw"), "fill-color", "#4f81bd");
282 writer.writeAttribute(StylesXml::getNamespaceURI("draw"), "opacity", "100%");
283 writer.writeAttribute(StylesXml::getNamespaceURI("draw"), "stroke", "solid");
284 writer.writeAttribute(
285 StylesXml::getNamespaceURI("svg"), "stroke-width", "0.02778in");
286 writer.writeAttribute(
287 StylesXml::getNamespaceURI("svg"), "stroke-color", "#385d8a");
288 writer.writeAttribute(
289 StylesXml::getNamespaceURI("svg"), "stroke-opacity", "100%");
290 writer.writeEndElement();
291
292 // </style:default-style>
293 writer.writeEndElement();
294
295 writer.writeEndElement();
296}

References MetaXml::getNamespaceURI(), and getNamespaceURI().

Referenced by StylesXml().

Member Data Documentation

◆ _p_hashNamespaceURI

QHash< QString, QString > * StylesXml::_p_hashNamespaceURI
staticprivate
Initial value:
=
new QHash<QString, QString>()

Definition at line 34 of file stylesxml.h.

Referenced by getNamespaceURI(), and WriteHeader().


The documentation for this class was generated from the following files: