1 /******************************************************************************************************
2 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
7 #include "CmdMediator.h"
8 #include "DocumentModelExportFormat.h"
9 #include "DocumentSerialize.h"
10 #include "Logger.h"
11 #include <QObject>
12 #include <QSettings>
13 #include <QTextStream>
14 #include <QXmlStreamWriter>
15 #include "Settings.h"
16 #include "Xml.h"
17
18 const QStringList DEFAULT_CURVE_NAMES_NOT_EXPORTED;
19 const double DEFAULT_POINTS_INTERVAL_FUNCTIONS = 10; // Consistent with DEFAULT_POINTS_INTERVAL_UNITS_FUNCTIONS
20 const double DEFAULT_POINTS_INTERVAL_RELATIONS = 10; // Consistent with DEFAULT_POINTS_INTERVAL_UNITS_RELATIONS
21 const QString DEFAULT_X_LABEL ("x");
22 const ExportPointsIntervalUnits DEFAULT_POINTS_INTERVAL_UNITS_FUNCTIONS = EXPORT_POINTS_INTERVAL_UNITS_SCREEN; // Consistent with DEFAULT_POINTS_INTERVAL_FUNCTIONS
23 const ExportPointsIntervalUnits DEFAULT_POINTS_INTERVAL_UNITS_RELATIONS = EXPORT_POINTS_INTERVAL_UNITS_SCREEN; // Consistent with DEFAULT_POINTS_INTERVAL_RELATIONS
24 const bool DEFAULT_EXPORT_DELIMITER_OVERRIDE = false; // Target beginner users who expect simplest behavior. Issue #169
25 const bool DEFAULT_EXTRAPOLATE = true; // Traditional behavior before version 11
26
DocumentModelExportFormat()27 DocumentModelExportFormat::DocumentModelExportFormat()
28 {
29 QSettings settings (SETTINGS_ENGAUGE, SETTINGS_DIGITIZER);
30 settings.beginGroup (SETTINGS_GROUP_EXPORT);
31
32 // Sync these settings with DlgSettingsExportFormat::slotLoadDefault()
33 // and DlgSettingsExportFormat::slotSaveDefault()
34 m_curveNamesNotExported = settings.value (SETTINGS_EXPORT_CURVE_NAMES_NOT_EXPORTED,
35 QVariant (DEFAULT_CURVE_NAMES_NOT_EXPORTED)).toStringList();
36 m_delimiter = static_cast<ExportDelimiter> (settings.value (SETTINGS_EXPORT_DELIMITER,
37 QVariant (EXPORT_DELIMITER_COMMA)).toInt());
38 m_extrapolateOutsideEndpoints = settings.value (SETTINGS_EXPORT_EXTRAPOLATE_OUTSIDE_ENDPOINTS,
39 QVariant (DEFAULT_EXTRAPOLATE)).toBool();
40 m_overrideCsvTsv = settings.value (SETTINGS_EXPORT_DELIMITER_OVERRIDE_CSV_TSV,
41 QVariant (DEFAULT_EXPORT_DELIMITER_OVERRIDE)).toBool();
42 m_header = static_cast<ExportHeader> (settings.value (SETTINGS_EXPORT_HEADER,
43 QVariant (EXPORT_HEADER_SIMPLE)).toInt());
44 m_layoutFunctions = static_cast<ExportLayoutFunctions> (settings.value (SETTINGS_EXPORT_LAYOUT_FUNCTIONS,
45 QVariant (EXPORT_LAYOUT_ALL_PER_LINE)).toInt());
46 m_pointsIntervalFunctions = settings.value (SETTINGS_EXPORT_POINTS_INTERVAL_FUNCTIONS,
47 QVariant (DEFAULT_POINTS_INTERVAL_FUNCTIONS)).toDouble();
48 m_pointsIntervalRelations = settings.value (SETTINGS_EXPORT_POINTS_INTERVAL_RELATIONS,
49 QVariant (DEFAULT_POINTS_INTERVAL_RELATIONS)).toDouble();
50 m_pointsIntervalUnitsFunctions = static_cast<ExportPointsIntervalUnits> (settings.value (SETTINGS_EXPORT_POINTS_INTERVAL_UNITS_FUNCTIONS,
51 QVariant (DEFAULT_POINTS_INTERVAL_UNITS_FUNCTIONS)).toInt());
52 m_pointsIntervalUnitsRelations = static_cast<ExportPointsIntervalUnits> (settings.value (SETTINGS_EXPORT_POINTS_INTERVAL_UNITS_RELATIONS,
53 QVariant (DEFAULT_POINTS_INTERVAL_UNITS_RELATIONS)).toInt());
54 m_pointsSelectionFunctions = static_cast<ExportPointsSelectionFunctions> (settings.value (SETTINGS_EXPORT_POINTS_SELECTION_FUNCTIONS,
55 QVariant (EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_ALL_CURVES)).toInt());
56 m_pointsSelectionRelations = static_cast<ExportPointsSelectionRelations> (settings.value (SETTINGS_EXPORT_POINTS_SELECTION_RELATIONS,
57 QVariant (EXPORT_POINTS_SELECTION_RELATIONS_INTERPOLATE)).toInt());
58 m_xLabel = settings.value (SETTINGS_EXPORT_X_LABEL,
59 QVariant (DEFAULT_X_LABEL)).toString();
60 }
61
DocumentModelExportFormat(const Document & document)62 DocumentModelExportFormat::DocumentModelExportFormat (const Document &document) :
63 m_curveNamesNotExported (document.modelExport().curveNamesNotExported()),
64 m_pointsSelectionFunctions (document.modelExport().pointsSelectionFunctions()),
65 m_pointsIntervalFunctions (document.modelExport().pointsIntervalFunctions()),
66 m_pointsIntervalUnitsFunctions (document.modelExport().pointsIntervalUnitsFunctions()),
67 m_pointsSelectionRelations (document.modelExport().pointsSelectionRelations()),
68 m_pointsIntervalRelations (document.modelExport().pointsIntervalRelations()),
69 m_pointsIntervalUnitsRelations (document.modelExport().pointsIntervalUnitsRelations()),
70 m_layoutFunctions (document.modelExport().layoutFunctions()),
71 m_delimiter (document.modelExport().delimiter()),
72 m_extrapolateOutsideEndpoints (document.modelExport().extrapolateOutsideEndpoints()),
73 m_overrideCsvTsv (document.modelExport().overrideCsvTsv()),
74 m_header (document.modelExport().header()),
75 m_xLabel (document.modelExport().xLabel())
76 {
77 }
78
DocumentModelExportFormat(const DocumentModelExportFormat & other)79 DocumentModelExportFormat::DocumentModelExportFormat(const DocumentModelExportFormat &other) :
80 m_curveNamesNotExported (other.curveNamesNotExported()),
81 m_pointsSelectionFunctions (other.pointsSelectionFunctions()),
82 m_pointsIntervalFunctions (other.pointsIntervalFunctions()),
83 m_pointsIntervalUnitsFunctions (other.pointsIntervalUnitsFunctions()),
84 m_pointsSelectionRelations (other.pointsSelectionRelations()),
85 m_pointsIntervalRelations (other.pointsIntervalRelations()),
86 m_pointsIntervalUnitsRelations (other.pointsIntervalUnitsRelations()),
87 m_layoutFunctions (other.layoutFunctions()),
88 m_delimiter (other.delimiter()),
89 m_extrapolateOutsideEndpoints (other.extrapolateOutsideEndpoints()),
90 m_overrideCsvTsv (other.overrideCsvTsv()),
91 m_header (other.header()),
92 m_xLabel (other.xLabel ())
93 {
94 }
95
operator =(const DocumentModelExportFormat & other)96 DocumentModelExportFormat &DocumentModelExportFormat::operator=(const DocumentModelExportFormat &other)
97 {
98 m_curveNamesNotExported = other.curveNamesNotExported();
99 m_pointsSelectionFunctions = other.pointsSelectionFunctions();
100 m_pointsIntervalFunctions = other.pointsIntervalFunctions();
101 m_pointsIntervalUnitsFunctions = other.pointsIntervalUnitsFunctions();
102 m_pointsSelectionRelations = other.pointsSelectionRelations();
103 m_pointsIntervalRelations = other.pointsIntervalRelations();
104 m_pointsIntervalUnitsRelations = other.pointsIntervalUnitsRelations();
105 m_layoutFunctions = other.layoutFunctions();
106 m_delimiter = other.delimiter();
107 m_extrapolateOutsideEndpoints = other.extrapolateOutsideEndpoints();
108 m_overrideCsvTsv = other.overrideCsvTsv();
109 m_header = other.header();
110 m_xLabel = other.xLabel();
111
112 return *this;
113 }
114
curveNamesNotExported() const115 QStringList DocumentModelExportFormat::curveNamesNotExported() const
116 {
117 return m_curveNamesNotExported;
118 }
119
delimiter() const120 ExportDelimiter DocumentModelExportFormat::delimiter() const
121 {
122 return m_delimiter;
123 }
124
extrapolateOutsideEndpoints() const125 bool DocumentModelExportFormat::extrapolateOutsideEndpoints() const
126 {
127 return m_extrapolateOutsideEndpoints;
128 }
129
header() const130 ExportHeader DocumentModelExportFormat::header() const
131 {
132 return m_header;
133 }
134
layoutFunctions() const135 ExportLayoutFunctions DocumentModelExportFormat::layoutFunctions() const
136 {
137 return m_layoutFunctions;
138 }
139
loadXml(QXmlStreamReader & reader)140 void DocumentModelExportFormat::loadXml(QXmlStreamReader &reader)
141 {
142 LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelExportFormat::loadXml";
143
144 bool success = true;
145
146 QXmlStreamAttributes attributes = reader.attributes();
147
148 // DOCUMENT_SERIALIZE_EXPORT_EXTRAPOLATE_OUTSIDE_ENDPOINTS is specific to versions 11 and newer
149 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_FUNCTIONS) &&
150 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_FUNCTIONS) &&
151 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_UNITS_FUNCTIONS) &&
152 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_RELATIONS) &&
153 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_RELATIONS) &&
154 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_UNITS_RELATIONS) &&
155 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_LAYOUT_FUNCTIONS) &&
156 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_DELIMITER) &&
157 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_HEADER) &&
158 attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_X_LABEL)) {
159
160 setPointsSelectionFunctions (static_cast<ExportPointsSelectionFunctions> (attributes.value(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_FUNCTIONS).toInt()));
161 setPointsIntervalFunctions (attributes.value(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_FUNCTIONS).toDouble());
162 setPointsIntervalUnitsFunctions (static_cast<ExportPointsIntervalUnits> (attributes.value(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_UNITS_FUNCTIONS).toInt()));
163 setPointsSelectionRelations (static_cast<ExportPointsSelectionRelations> (attributes.value(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_RELATIONS).toInt()));
164 setPointsIntervalRelations (attributes.value(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_RELATIONS).toDouble());
165 setPointsIntervalUnitsRelations (static_cast<ExportPointsIntervalUnits> (attributes.value(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_UNITS_RELATIONS).toInt()));
166 setLayoutFunctions (static_cast<ExportLayoutFunctions> (attributes.value(DOCUMENT_SERIALIZE_EXPORT_LAYOUT_FUNCTIONS).toInt()));
167 setDelimiter (static_cast<ExportDelimiter> (attributes.value (DOCUMENT_SERIALIZE_EXPORT_DELIMITER).toInt()));
168 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_DELIMITER_OVERRIDE_CSV_TSV)) {
169
170 // Boolean value
171 QString stringOverrideCsvTsv = attributes.value (DOCUMENT_SERIALIZE_EXPORT_DELIMITER_OVERRIDE_CSV_TSV).toString();
172
173 setOverrideCsvTsv(stringOverrideCsvTsv == DOCUMENT_SERIALIZE_BOOL_TRUE);
174 }
175 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_EXPORT_EXTRAPOLATE_OUTSIDE_ENDPOINTS)) {
176
177 // Boolean value
178 QString stringExtrapolate = attributes.value (DOCUMENT_SERIALIZE_EXPORT_EXTRAPOLATE_OUTSIDE_ENDPOINTS).toString();
179
180 setExtrapolateOutsideEndpoints (stringExtrapolate == DOCUMENT_SERIALIZE_BOOL_TRUE);
181 }
182
183 setHeader (static_cast<ExportHeader> (attributes.value(DOCUMENT_SERIALIZE_EXPORT_HEADER).toInt()));
184 setXLabel (attributes.value(DOCUMENT_SERIALIZE_EXPORT_X_LABEL).toString());
185
186 // Read element containing excluded curve names
187 while ((loadNextFromReader (reader) != QXmlStreamReader::StartElement) ||
188 (reader.name() != DOCUMENT_SERIALIZE_EXPORT_CURVE_NAMES_NOT_EXPORTED)) {
189
190 if (reader.atEnd()) {
191 success = false;
192 break;
193 }
194 }
195
196 if (success) {
197
198 QStringList curveNamesNotExported;
199
200 QXmlStreamReader::TokenType tokenType = loadNextFromReader(reader);
201 while (tokenType == QXmlStreamReader::StartElement) {
202
203 if (reader.name() == DOCUMENT_SERIALIZE_EXPORT_CURVE_NAME_NOT_EXPORTED) {
204 curveNamesNotExported << reader.text().toString();
205 }
206 tokenType = loadNextFromReader(reader);
207 }
208
209 // Save curve names
210 setCurveNamesNotExported(curveNamesNotExported);
211
212 // Read until end of this subtree
213 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
214 (reader.name() != DOCUMENT_SERIALIZE_EXPORT)){
215 loadNextFromReader(reader);
216 if (reader.atEnd()) {
217 success = false;
218 break;
219 }
220 }
221 }
222 }
223
224 if (!success) {
225 reader.raiseError (QObject::tr ("Cannot read export data"));
226 }
227 }
228
overrideCsvTsv() const229 bool DocumentModelExportFormat::overrideCsvTsv() const
230 {
231 return m_overrideCsvTsv;
232 }
233
pointsIntervalFunctions() const234 double DocumentModelExportFormat::pointsIntervalFunctions() const
235 {
236 return m_pointsIntervalFunctions;
237 }
238
pointsIntervalRelations() const239 double DocumentModelExportFormat::pointsIntervalRelations() const
240 {
241 return m_pointsIntervalRelations;
242 }
243
pointsIntervalUnitsFunctions() const244 ExportPointsIntervalUnits DocumentModelExportFormat::pointsIntervalUnitsFunctions() const
245 {
246 return m_pointsIntervalUnitsFunctions;
247 }
248
pointsIntervalUnitsRelations() const249 ExportPointsIntervalUnits DocumentModelExportFormat::pointsIntervalUnitsRelations() const
250 {
251 return m_pointsIntervalUnitsRelations;
252 }
253
pointsSelectionFunctions() const254 ExportPointsSelectionFunctions DocumentModelExportFormat::pointsSelectionFunctions() const
255 {
256 return m_pointsSelectionFunctions;
257 }
258
pointsSelectionRelations() const259 ExportPointsSelectionRelations DocumentModelExportFormat::pointsSelectionRelations() const
260 {
261 return m_pointsSelectionRelations;
262 }
263
printStream(QString indentation,QTextStream & str) const264 void DocumentModelExportFormat::printStream(QString indentation,
265 QTextStream &str) const
266 {
267 str << indentation << "DocumentModelExportFormat\n";
268
269 indentation += INDENTATION_DELTA;
270
271 str << indentation << "curveNamesNotExported=";
272 QStringList::const_iterator itr;
273 for (itr = m_curveNamesNotExported.begin (); itr != m_curveNamesNotExported.end(); itr++) {
274 QString curveName = *itr;
275 str << indentation << curveName << " ";
276 }
277 str << "\n";
278
279 str << indentation << "exportPointsSelectionFunctions="
280 << exportPointsSelectionFunctionsToString (m_pointsSelectionFunctions) << "\n";
281 str << indentation << "pointsIntervalFunctions=" << m_pointsIntervalFunctions << "\n";
282 str << indentation << "pointsIntervalUnitsFunctions="
283 << exportPointsIntervalUnitsToString (m_pointsIntervalUnitsFunctions) << "\n";
284 str << indentation << "exportPointsSelectionRelations="
285 << exportPointsSelectionRelationsToString (m_pointsSelectionRelations) << "\n";
286 str << indentation << "pointsIntervalRelations=" << m_pointsIntervalRelations << "\n";
287 str << indentation << "pointsIntervalUnitsRelations="
288 << exportPointsIntervalUnitsToString (m_pointsIntervalUnitsRelations) << "\n";
289 str << indentation << "exportLayoutFunctions=" << exportLayoutFunctionsToString (m_layoutFunctions) << "\n";
290 str << indentation << "exportDelimiter=" << exportDelimiterToString (m_delimiter) << "\n";
291 str << indentation << "exportExtrapolateOutsideEndpoints=" << (m_extrapolateOutsideEndpoints ? "yes" : "no") << "\n";
292 str << indentation << "overrideCsvTsv=" << (m_overrideCsvTsv ? "true" : "false") << "\n";
293 str << indentation << "exportHeader=" << exportHeaderToString (m_header) << "\n";
294 str << indentation << "xLabel=" << m_xLabel << "\n";
295 }
296
saveXml(QXmlStreamWriter & writer) const297 void DocumentModelExportFormat::saveXml(QXmlStreamWriter &writer) const
298 {
299 LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelExportFormat::saveXml";
300
301 writer.writeStartElement(DOCUMENT_SERIALIZE_EXPORT);
302 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_FUNCTIONS, QString::number (m_pointsSelectionFunctions));
303 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_FUNCTIONS_STRING, exportPointsSelectionFunctionsToString (m_pointsSelectionFunctions));
304 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_FUNCTIONS, QString::number (m_pointsIntervalFunctions));
305 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_UNITS_FUNCTIONS, QString::number (m_pointsIntervalUnitsFunctions));
306 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_RELATIONS, QString::number (m_pointsSelectionRelations));
307 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_SELECTION_RELATIONS_STRING, exportPointsSelectionRelationsToString (m_pointsSelectionRelations));
308 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_UNITS_RELATIONS, QString::number (m_pointsIntervalUnitsRelations));
309 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_POINTS_INTERVAL_RELATIONS, QString::number (m_pointsIntervalRelations));
310 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_LAYOUT_FUNCTIONS, QString::number (m_layoutFunctions));
311 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_LAYOUT_FUNCTIONS_STRING, exportLayoutFunctionsToString (m_layoutFunctions));
312 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_DELIMITER, QString::number (m_delimiter));
313 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_DELIMITER_OVERRIDE_CSV_TSV, m_overrideCsvTsv ?
314 DOCUMENT_SERIALIZE_BOOL_TRUE :
315 DOCUMENT_SERIALIZE_BOOL_FALSE);
316 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_DELIMITER_STRING, exportDelimiterToString (m_delimiter));
317 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_EXTRAPOLATE_OUTSIDE_ENDPOINTS, m_extrapolateOutsideEndpoints ?
318 DOCUMENT_SERIALIZE_BOOL_TRUE :
319 DOCUMENT_SERIALIZE_BOOL_FALSE);
320 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_HEADER, QString::number (m_header));
321 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_HEADER_STRING, exportHeaderToString (m_header));
322 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_X_LABEL, m_xLabel);
323
324 // Loop through curve names that are not to be exported
325 writer.writeStartElement(DOCUMENT_SERIALIZE_EXPORT_CURVE_NAMES_NOT_EXPORTED);
326 QStringList::const_iterator itr;
327 for (itr = m_curveNamesNotExported.begin (); itr != m_curveNamesNotExported.end (); itr++) {
328 QString curveNameNotExported = *itr;
329 writer.writeStartElement(DOCUMENT_SERIALIZE_EXPORT_CURVE_NAME_NOT_EXPORTED);
330 writer.writeAttribute(DOCUMENT_SERIALIZE_EXPORT_CURVE_NAME_NOT_EXPORTED_NAME, curveNameNotExported);
331 writer.writeEndElement();
332 }
333 writer.writeEndElement();
334
335 writer.writeEndElement();
336 }
337
setCurveNamesNotExported(const QStringList & curveNamesNotExported)338 void DocumentModelExportFormat::setCurveNamesNotExported(const QStringList &curveNamesNotExported)
339 {
340 m_curveNamesNotExported = curveNamesNotExported;
341 }
342
setDelimiter(ExportDelimiter delimiter)343 void DocumentModelExportFormat::setDelimiter(ExportDelimiter delimiter)
344 {
345 m_delimiter = delimiter;
346 }
347
setExtrapolateOutsideEndpoints(bool extrapolateOutsideEndpoints)348 void DocumentModelExportFormat::setExtrapolateOutsideEndpoints(bool extrapolateOutsideEndpoints)
349 {
350 m_extrapolateOutsideEndpoints = extrapolateOutsideEndpoints;
351 }
352
setHeader(ExportHeader header)353 void DocumentModelExportFormat::setHeader(ExportHeader header)
354 {
355 m_header = header;
356 }
357
setLayoutFunctions(ExportLayoutFunctions layoutFunctions)358 void DocumentModelExportFormat::setLayoutFunctions(ExportLayoutFunctions layoutFunctions)
359 {
360 m_layoutFunctions = layoutFunctions;
361 }
362
setOverrideCsvTsv(bool overrideCsvTsv)363 void DocumentModelExportFormat::setOverrideCsvTsv(bool overrideCsvTsv)
364 {
365 m_overrideCsvTsv = overrideCsvTsv;
366 }
367
setPointsIntervalFunctions(double pointsIntervalFunctions)368 void DocumentModelExportFormat::setPointsIntervalFunctions(double pointsIntervalFunctions)
369 {
370 m_pointsIntervalFunctions = pointsIntervalFunctions;
371 }
372
setPointsIntervalRelations(double pointsIntervalRelations)373 void DocumentModelExportFormat::setPointsIntervalRelations(double pointsIntervalRelations)
374 {
375 m_pointsIntervalRelations = pointsIntervalRelations;
376 }
377
setPointsIntervalUnitsFunctions(ExportPointsIntervalUnits pointsIntervalUnitsFunctions)378 void DocumentModelExportFormat::setPointsIntervalUnitsFunctions(ExportPointsIntervalUnits pointsIntervalUnitsFunctions)
379 {
380 m_pointsIntervalUnitsFunctions = pointsIntervalUnitsFunctions;
381 }
382
setPointsIntervalUnitsRelations(ExportPointsIntervalUnits pointsIntervalUnitsRelations)383 void DocumentModelExportFormat::setPointsIntervalUnitsRelations(ExportPointsIntervalUnits pointsIntervalUnitsRelations)
384 {
385 m_pointsIntervalUnitsRelations = pointsIntervalUnitsRelations;
386 }
387
setPointsSelectionFunctions(ExportPointsSelectionFunctions pointsSelectionFunctions)388 void DocumentModelExportFormat::setPointsSelectionFunctions(ExportPointsSelectionFunctions pointsSelectionFunctions)
389 {
390 m_pointsSelectionFunctions = pointsSelectionFunctions;
391 }
392
setPointsSelectionRelations(ExportPointsSelectionRelations pointsSelectionRelations)393 void DocumentModelExportFormat::setPointsSelectionRelations(ExportPointsSelectionRelations pointsSelectionRelations)
394 {
395 m_pointsSelectionRelations = pointsSelectionRelations;
396 }
397
setXLabel(const QString & xLabel)398 void DocumentModelExportFormat::setXLabel (const QString &xLabel)
399 {
400 m_xLabel = xLabel;
401 }
402
xLabel() const403 QString DocumentModelExportFormat::xLabel () const
404 {
405 return m_xLabel;
406 }
407