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

#include <settingsxml.h>

Protected Member Functions

 SettingsXml ()
 
virtual ~SettingsXml ()
 
void addSheetName (const QString &name)
 
const QString getDefaultSheetName () const
 
void setCurrentOdsTableSettings (const OdsTableSettings &settings)
 
void write (QuaZip *p_quazip)
 

Private Member Functions

void writeConfigurationSettings (QXmlStreamWriter *p_writer)
 
void writeSheetSettings (QXmlStreamWriter *p_writer, const QString &sheet_name)
 
void writeConfigItem (QXmlStreamWriter *p_writer, const QString &name, const QString &type, const QString &value)
 

Private Attributes

friend OdsDocWriter
 
friend ContentXml
 
OdsTableSettings _default_table_settings
 
std::vector< QString > _sheet_list
 
std::vector< OdsTableSettings_table_settings_list
 

Detailed Description

Definition at line 44 of file settingsxml.h.

Constructor & Destructor Documentation

◆ SettingsXml()

SettingsXml::SettingsXml ( )
protected

Definition at line 42 of file settingsxml.cpp.

43{
44}

◆ ~SettingsXml()

SettingsXml::~SettingsXml ( )
protectedvirtual

Definition at line 45 of file settingsxml.cpp.

46{
47}

Member Function Documentation

◆ addSheetName()

void SettingsXml::addSheetName ( const QString &  name)
protected

Definition at line 83 of file settingsxml.cpp.

84{
85 if(name.isEmpty())
86 {
87 throw OdsException(QObject::tr("Error in %1 %2 : sheet name is empty")
88 .arg(__FILE__)
89 .arg(__FUNCTION__));
90 }
91
92 if(std::find(_sheet_list.begin(), _sheet_list.end(), name) !=
93 _sheet_list.end())
94 {
95 throw OdsException(
96 QObject::tr(
97 "Error in %1 %2 :\n the sheet named %3 already exists in the "
98 "document. Sheet names has to be unique in the same document.")
99 .arg(__FILE__)
100 .arg(__FUNCTION__)
101 .arg(name));
102 }
103 // throw OdsException(QObject::tr("addSheetName"));
104 _sheet_list.push_back(name);
105 // qDebug() << QObject::tr("addSheetName") << _sheet_list.size();
106}
std::vector< QString > _sheet_list
Definition settingsxml.h:72

References _sheet_list.

Referenced by ContentXml::writeSheet().

◆ getDefaultSheetName()

const QString SettingsXml::getDefaultSheetName ( ) const
protected

Definition at line 77 of file settingsxml.cpp.

78{
79 return QString("Sheet%1").arg(_sheet_list.size() + 1);
80}

References _sheet_list.

Referenced by ContentXml::writeSheet().

◆ setCurrentOdsTableSettings()

void SettingsXml::setCurrentOdsTableSettings ( const OdsTableSettings settings)
protected

Definition at line 49 of file settingsxml.cpp.

50{
51 if(_sheet_list.size() == 0)
52 {
53 throw OdsException(
54 QObject::tr("unable to set current sheet settings : no sheet started"));
55 }
56 OdsTableSettings settings(settings_in);
57 settings.setSheetName(_sheet_list.back());
58 auto it = std::find_if(_table_settings_list.begin(),
60 [&settings](OdsTableSettings settings_other) -> bool {
61 return settings.getSheetName() ==
62 settings_other.getSheetName();
63 });
64 if(it != _table_settings_list.end())
65 {
66 *it = settings;
67 }
68 else
69 {
70 _table_settings_list.push_back(settings);
71 }
72
73 qDebug() << __FILE__ << " " << __FUNCTION__ << " "
74 << settings.getValue("VerticalSplitPosition");
75}
const QString getValue(const QString &property) const
void setSheetName(const QString &sheetname)
std::vector< OdsTableSettings > _table_settings_list
Definition settingsxml.h:74

References _sheet_list, _table_settings_list, OdsTableSettings::getValue(), and OdsTableSettings::setSheetName().

Referenced by OdsDocWriter::setCurrentOdsTableSettings().

◆ write()

void SettingsXml::write ( QuaZip *  p_quazip)
protected

Definition at line 109 of file settingsxml.cpp.

110{
111 if(_sheet_list.size() == 0)
112 {
113 throw OdsException(QObject::tr("_sheet_list is empty"));
114 }
115 QuaZipFile out_file(p_quazip);
116 QuaZipNewInfo info("settings.xml");
117 out_file.open(QIODevice::WriteOnly, info);
118 QXmlStreamWriter writer(&out_file);
119 writer.setAutoFormatting(true);
120
121
122 writer.writeStartDocument("1.0");
123
124 // <?xml version="1.0" encoding="UTF-8"?>
125 //<office:document-settings
126 //xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
127 //xmlns:xlink="http://www.w3.org/1999/xlink"
128 //xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
129 //xmlns:ooo="http://openoffice.org/2004/office" office:version="1.2">
130 writer.writeNamespace(MetaXml::getNamespaceURI("office"), "office");
131 writer.writeNamespace(MetaXml::getNamespaceURI("xlink"), "xlink");
132 writer.writeNamespace(MetaXml::getNamespaceURI("config"), "config");
133 writer.writeNamespace(MetaXml::getNamespaceURI("ooo"), "ooo");
134 writer.writeStartElement(MetaXml::getNamespaceURI("office"),
135 "document-settings");
136 writer.writeAttribute(MetaXml::getNamespaceURI("office"), "version", "1.2");
137
138 //<office:settings>
139 writer.writeStartElement(MetaXml::getNamespaceURI("office"), "settings");
140
141
142 //<config:config-item-set config:name="ooo:view-settings">
143 writer.writeStartElement(MetaXml::getNamespaceURI("config"),
144 "config-item-set");
145 writer.writeAttribute(
146 MetaXml::getNamespaceURI("config"), "name", "ooo:view-settings");
147 //<config:config-item config:name="VisibleAreaTop" config:type="int">0
148 writeConfigItem(&writer, "VisibleAreaTop", "int", "0");
149 //<config:config-item config:name="VisibleAreaLeft" config:type="int">0
150 writeConfigItem(&writer, "VisibleAreaLeft", "int", "0");
151 // <config:config-item config:name="VisibleAreaWidth" config:type="int">18062
152 writeConfigItem(&writer, "VisibleAreaWidth", "int", "18062");
153 //<config:config-item config:name="VisibleAreaHeight" config:type="int">5418
154 writeConfigItem(&writer, "VisibleAreaHeight", "int", "5418");
155
156 //<config:config-item-map-indexed config:name="Views">
157 writer.writeStartElement(MetaXml::getNamespaceURI("config"),
158 "config-item-map-indexed");
159 writer.writeAttribute(MetaXml::getNamespaceURI("config"), "name", "Views");
160
161 // <config:config-item-map-entry>
162 writer.writeStartElement(MetaXml::getNamespaceURI("config"),
163 "config-item-map-entry");
164 //<config:config-item config:name="ViewId" config:type="string">view1
165 writeConfigItem(&writer, "ViewId", "string", "view1");
166
167 // <config:config-item-map-named config:name="Tables">
168 writer.writeStartElement(MetaXml::getNamespaceURI("config"),
169 "config-item-map-named");
170 writer.writeAttribute(MetaXml::getNamespaceURI("config"), "name", "Tables");
171
172 for(const QString &sheet_name : _sheet_list)
173 {
174 writeSheetSettings(&writer, sheet_name);
175 }
176
177 //</config:config-item-map-named>
178 writer.writeEndElement();
179
180 //<config:config-item config:name="ActiveTable" config:type="string">Feuille1
181 writeConfigItem(&writer, "ActiveTable", "string", _sheet_list[0]);
182
183 //<config:config-item config:name="HorizontalScrollbarWidth"
184 //config:type="int">1857
185 writeConfigItem(&writer, "HorizontalScrollbarWidth", "int", "1857");
186
187 //<config:config-item config:name="ZoomType" config:type="short">0
188 writeConfigItem(&writer, "ZoomType", "short", "0");
189
190 //<config:config-item config:name="ZoomValue"
191 //config:type="int">100</config:config-item>
192 writeConfigItem(&writer, "ZoomValue", "int", "100");
193
194 //<config:config-item config:name="PageViewZoomValue"
195 //config:type="int">60</config:config-item>
196 writeConfigItem(&writer, "PageViewZoomValue", "int", "60");
197
198 //<config:config-item config:name="ShowPageBreakPreview"
199 //config:type="boolean">false</config:config-item>
200 writeConfigItem(&writer, "ShowPageBreakPreview", "boolean", "false");
201
202 //<config:config-item config:name="ShowZeroValues"
203 //config:type="boolean">true</config:config-item>
204 writeConfigItem(&writer, "ShowZeroValues", "boolean", "true");
205 //<config:config-item config:name="ShowNotes"
206 //config:type="boolean">true</config:config-item>
207 writeConfigItem(&writer, "ShowNotes", "boolean", "true");
208 //<config:config-item config:name="ShowGrid"
209 //config:type="boolean">true</config:config-item>
210 writeConfigItem(&writer, "ShowGrid", "boolean", "true");
211 //<config:config-item config:name="GridColor"
212 //config:type="long">12632256</config:config-item>
213 writeConfigItem(&writer, "GridColor", "long", "12632256");
214 // <config:config-item config:name="ShowPageBreaks"
215 // config:type="boolean">true</config:config-item>
216 writeConfigItem(&writer, "ShowPageBreaks", "boolean", "true");
217 // <config:config-item config:name="HasColumnRowHeaders"
218 // config:type="boolean">true</config:config-item>
219 writeConfigItem(&writer, "HasColumnRowHeaders", "boolean", "true");
220 // <config:config-item config:name="HasSheetTabs"
221 // config:type="boolean">true</config:config-item>
222 writeConfigItem(&writer, "HasSheetTabs", "boolean", "true");
223 // <config:config-item config:name="IsOutlineSymbolsSet"
224 // config:type="boolean">true</config:config-item>
225 writeConfigItem(&writer, "IsOutlineSymbolsSet", "boolean", "true");
226 //<config:config-item config:name="IsValueHighlightingEnabled"
227 //config:type="boolean">false</config:config-item>
228 writeConfigItem(&writer, "IsValueHighlightingEnabled", "boolean", "false");
229 //<config:config-item config:name="IsSnapToRaster"
230 //config:type="boolean">false</config:config-item>
231 writeConfigItem(&writer, "IsSnapToRaster", "boolean", "false");
232 // <config:config-item config:name="RasterIsVisible"
233 // config:type="boolean">false</config:config-item>
234 writeConfigItem(&writer, "RasterIsVisible", "boolean", "false");
235 //<config:config-item config:name="RasterResolutionX"
236 //config:type="int">1000</config:config-item>
237 writeConfigItem(&writer, "RasterResolutionX", "int", "1000");
238 //<config:config-item config:name="RasterResolutionY"
239 //config:type="int">1000</config:config-item>
240 writeConfigItem(&writer, "RasterResolutionY", "int", "1000");
241 // <config:config-item config:name="RasterSubdivisionX"
242 // config:type="int">1</config:config-item>
243 writeConfigItem(&writer, "RasterSubdivisionX", "int", "1");
244 //<config:config-item config:name="RasterSubdivisionY"
245 //config:type="int">1</config:config-item>
246 writeConfigItem(&writer, "RasterSubdivisionY", "int", "1");
247 //<config:config-item config:name="IsRasterAxisSynchronized"
248 //config:type="boolean">true</config:config-item>
249 writeConfigItem(&writer, "IsRasterAxisSynchronized", "boolean", "true");
250
251 //</config:config-item-map-entry>
252 writer.writeEndElement();
253
254 // </config:config-item-map-indexed>
255 writer.writeEndElement();
256
257
259
260 //</config:config-item-set>
261 writer.writeEndElement();
262
263
264 //</office:settings>
265 writer.writeEndElement();
266
267 //</office:document-settings>
268 writer.writeEndElement();
269
270 writer.writeEndDocument();
271 out_file.close();
272}
static const QString & getNamespaceURI(const QString &xml_namespace)
Definition metaxml.cpp:32
void writeConfigItem(QXmlStreamWriter *p_writer, const QString &name, const QString &type, const QString &value)
void writeSheetSettings(QXmlStreamWriter *p_writer, const QString &sheet_name)
void writeConfigurationSettings(QXmlStreamWriter *p_writer)

References _sheet_list, MetaXml::getNamespaceURI(), writeConfigItem(), writeConfigurationSettings(), and writeSheetSettings().

Referenced by OdsDocWriter::close().

◆ writeConfigItem()

void SettingsXml::writeConfigItem ( QXmlStreamWriter *  p_writer,
const QString &  name,
const QString &  type,
const QString &  value 
)
private

Definition at line 355 of file settingsxml.cpp.

359{
360 //<config:config-item config:name="CursorPositionX" config:type="int">3
361 p_writer->writeStartElement(MetaXml::getNamespaceURI("config"),
362 "config-item");
363 p_writer->writeAttribute(MetaXml::getNamespaceURI("config"), "name", name);
364 p_writer->writeAttribute(MetaXml::getNamespaceURI("config"), "type", type);
365 if(!value.isEmpty())
366 p_writer->writeCharacters(value);
367 //</config:config-item>
368 p_writer->writeEndElement();
369}

References MetaXml::getNamespaceURI().

Referenced by write(), writeConfigurationSettings(), and writeSheetSettings().

◆ writeConfigurationSettings()

void SettingsXml::writeConfigurationSettings ( QXmlStreamWriter *  p_writer)
private

< config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>

Definition at line 372 of file settingsxml.cpp.

373{
374
375 // <config:config-item-set config:name="ooo:configuration-settings">
376 p_writer->writeStartElement(MetaXml::getNamespaceURI("config"),
377 "config-item-set");
378 p_writer->writeAttribute(
379 MetaXml::getNamespaceURI("config"), "name", "ooo:configuration-settings");
380
381 // <config:config-item config:name="IsDocumentShared"
382 // config:type="boolean">false
383 writeConfigItem(p_writer, "IsDocumentShared", "boolean", "false");
384
385 //<config:config-item config:name="LoadReadonly"
386 //config:type="boolean">false</config:config-item>
387 writeConfigItem(p_writer, "LoadReadonly", "boolean", "false");
388 //<config:config-item config:name="AllowPrintJobCancel"
389 //config:type="boolean">true</config:config-item>
390 writeConfigItem(p_writer, "AllowPrintJobCancel", "boolean", "true");
391 //<config:config-item config:name="UpdateFromTemplate"
392 //config:type="boolean">true</config:config-item>
393 writeConfigItem(p_writer, "UpdateFromTemplate", "boolean", "true");
394 //<config:config-item config:name="IsKernAsianPunctuation"
395 //config:type="boolean">false</config:config-item>
396 writeConfigItem(p_writer, "IsKernAsianPunctuation", "boolean", "false");
397 //<config:config-item config:name="EmbedFonts"
398 //config:type="boolean">false</config:config-item>
399 writeConfigItem(p_writer, "EmbedFonts", "boolean", "false");
400 //<config:config-item config:name="IsSnapToRaster"
401 //config:type="boolean">false</config:config-item>
402 writeConfigItem(p_writer, "IsSnapToRaster", "boolean", "false");
403 //<config:config-item config:name="RasterResolutionX"
404 //config:type="int">1000</config:config-item>
405 writeConfigItem(p_writer, "RasterResolutionX", "int", "1000");
406 //<config:config-item config:name="RasterResolutionY"
407 //config:type="int">1000</config:config-item>
408 writeConfigItem(p_writer, "RasterResolutionY", "int", "1000");
409 ///< config:config-item config:name="HasSheetTabs"
410 ///< config:type="boolean">true</config:config-item>
411 writeConfigItem(p_writer, "HasSheetTabs", "boolean", "true");
412 //<config:config-item config:name="IsRasterAxisSynchronized"
413 //config:type="boolean">true</config:config-item>
414 writeConfigItem(p_writer, "IsRasterAxisSynchronized", "boolean", "true");
415 //<config:config-item config:name="ShowPageBreaks"
416 //config:type="boolean">true</config:config-item>
417 writeConfigItem(p_writer, "ShowPageBreaks", "boolean", "true");
418 //<config:config-item config:name="ShowGrid"
419 //config:type="boolean">true</config:config-item>
420 writeConfigItem(p_writer, "ShowGrid", "boolean", "true");
421 //<config:config-item config:name="ShowNotes"
422 //config:type="boolean">true</config:config-item>
423 writeConfigItem(p_writer, "ShowNotes", "boolean", "true");
424 //<config:config-item config:name="IsOutlineSymbolsSet"
425 //config:type="boolean">true</config:config-item>
426 writeConfigItem(p_writer, "IsOutlineSymbolsSet", "boolean", "true");
427 //<config:config-item config:name="ShowZeroValues"
428 //config:type="boolean">true</config:config-item>
429 writeConfigItem(p_writer, "ShowZeroValues", "boolean", "true");
430 //<config:config-item config:name="SaveVersionOnClose"
431 //config:type="boolean">false</config:config-item>
432 writeConfigItem(p_writer, "SaveVersionOnClose", "boolean", "false");
433 //<config:config-item config:name="GridColor"
434 //config:type="long">12632256</config:config-item>
435 writeConfigItem(p_writer, "GridColor", "long", "12632256");
436 //<config:config-item config:name="RasterIsVisible"
437 //config:type="boolean">false</config:config-item>
438 writeConfigItem(p_writer, "RasterIsVisible", "boolean", "false");
439 //<config:config-item config:name="PrinterName" config:type="string"/>
440 writeConfigItem(p_writer, "PrinterName", "string", "");
441 //<config:config-item config:name="LinkUpdateMode"
442 //config:type="short">3</config:config-item>
443 writeConfigItem(p_writer, "LinkUpdateMode", "short", "3");
444 //<config:config-item config:name="RasterSubdivisionX"
445 //config:type="int">1</config:config-item>
446 writeConfigItem(p_writer, "RasterSubdivisionX", "int", "1");
447 //<config:config-item config:name="HasColumnRowHeaders"
448 //config:type="boolean">true</config:config-item>
449 writeConfigItem(p_writer, "HasColumnRowHeaders", "boolean", "true");
450 //<config:config-item config:name="RasterSubdivisionY"
451 //config:type="int">1</config:config-item>
452 writeConfigItem(p_writer, "RasterSubdivisionY", "int", "1");
453 //<config:config-item config:name="AutoCalculate"
454 //config:type="boolean">true</config:config-item>
455 writeConfigItem(p_writer, "AutoCalculate", "boolean", "true");
456 //<config:config-item config:name="PrinterSetup" config:type="base64Binary"/>
457 writeConfigItem(p_writer, "PrinterSetup", "base64Binary", "");
458 //<config:config-item config:name="ApplyUserData"
459 //config:type="boolean">true</config:config-item>
460 writeConfigItem(p_writer, "ApplyUserData", "boolean", "true");
461 //<config:config-item config:name="CharacterCompressionType"
462 //config:type="short">0</config:config-item>
463 writeConfigItem(p_writer, "CharacterCompressionType", "short", "0");
464
465
466 //</config:config-item-set>
467 p_writer->writeEndElement();
468}

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

Referenced by write().

◆ writeSheetSettings()

void SettingsXml::writeSheetSettings ( QXmlStreamWriter *  p_writer,
const QString &  sheet_name 
)
private

Definition at line 275 of file settingsxml.cpp.

277{
278
279 const OdsTableSettings *p_table_settings = &_default_table_settings;
280
281 auto it = std::find_if(_table_settings_list.begin(),
283 [&sheet_name](OdsTableSettings settings) -> bool {
284 return sheet_name == settings.getSheetName();
285 });
286 if(it != _table_settings_list.end())
287 {
288 p_table_settings = &(*it);
289 }
290 // <config:config-item-map-entry config:name="Feuille1">
291 p_writer->writeStartElement(MetaXml::getNamespaceURI("config"),
292 "config-item-map-entry");
293 p_writer->writeAttribute(
294 MetaXml::getNamespaceURI("config"), "name", sheet_name);
295
296 //<config:config-item config:name="CursorPositionX" config:type="int">3
297 writeConfigItem(p_writer, "CursorPositionX", "int", "0");
298
299 //<config:config-item config:name="CursorPositionY" config:type="int">0
300 writeConfigItem(p_writer, "CursorPositionY", "int", "0");
301
302 //<config:config-item config:name="HorizontalSplitMode" config:type="short">0
303 writeConfigItem(p_writer,
304 "HorizontalSplitMode",
305 "short",
306 p_table_settings->getValue("HorizontalSplitMode"));
307
308 //<config:config-item config:name="VerticalSplitMode" config:type="short">2
309 writeConfigItem(p_writer,
310 "VerticalSplitMode",
311 "short",
312 p_table_settings->getValue("VerticalSplitMode"));
313
314 //<config:config-item config:name="HorizontalSplitPosition"
315 //config:type="int">0
316 writeConfigItem(p_writer,
317 "HorizontalSplitPosition",
318 "int",
319 p_table_settings->getValue("HorizontalSplitPosition"));
320
321 //<config:config-item config:name="VerticalSplitPosition" config:type="int">1
322 writeConfigItem(p_writer,
323 "VerticalSplitPosition",
324 "int",
325 p_table_settings->getValue("VerticalSplitPosition"));
326
327 //<config:config-item config:name="ActiveSplitRange" config:type="short">0
328 writeConfigItem(p_writer, "ActiveSplitRange", "short", "2");
329
330
331 //<config:config-item config:name="PositionLeft" config:type="int">0
332 writeConfigItem(p_writer, "PositionLeft", "int", "0");
333 //<config:config-item config:name="PositionRight" config:type="int">0
334 writeConfigItem(p_writer, "PositionRight", "int", "0");
335
336 //<config:config-item config:name="PositionTop" config:type="int">0
337 writeConfigItem(p_writer, "PositionTop", "int", "0");
338
339 //<config:config-item config:name="PositionBottom" config:type="int">1
340 writeConfigItem(p_writer, "PositionBottom", "int", "1");
341 //<config:config-item config:name="ZoomType" config:type="short">0
342 writeConfigItem(p_writer, "ZoomType", "short", "0");
343 //<config:config-item config:name="ZoomValue" config:type="int">100
344 writeConfigItem(p_writer, "ZoomValue", "int", "100");
345 //<config:config-item config:name="PageViewZoomValue" config:type="int">60
346 writeConfigItem(p_writer, "PageViewZoomValue", "int", "60");
347 //<config:config-item config:name="ShowGrid" config:type="boolean">true
348 writeConfigItem(p_writer, "ShowGrid", "boolean", "true");
349 //</config:config-item-map-entry>
350 p_writer->writeEndElement();
351}
OdsTableSettings _default_table_settings
Definition settingsxml.h:70

References _default_table_settings, _table_settings_list, MetaXml::getNamespaceURI(), OdsTableSettings::getValue(), and writeConfigItem().

Referenced by write().

Member Data Documentation

◆ _default_table_settings

OdsTableSettings SettingsXml::_default_table_settings
private

Definition at line 70 of file settingsxml.h.

Referenced by writeSheetSettings().

◆ _sheet_list

std::vector<QString> SettingsXml::_sheet_list
private

Definition at line 72 of file settingsxml.h.

Referenced by addSheetName(), getDefaultSheetName(), setCurrentOdsTableSettings(), and write().

◆ _table_settings_list

std::vector<OdsTableSettings> SettingsXml::_table_settings_list
private

Definition at line 74 of file settingsxml.h.

Referenced by setCurrentOdsTableSettings(), and writeSheetSettings().

◆ ContentXml

friend SettingsXml::ContentXml
private

Definition at line 47 of file settingsxml.h.

◆ OdsDocWriter

friend SettingsXml::OdsDocWriter
private

Definition at line 46 of file settingsxml.h.


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