Engauge Digitizer  2
 All Classes Functions Variables Typedefs Enumerations Friends Pages
DocumentModelExportFormat.cpp
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 
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 
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 
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 
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 
116 {
117  return m_curveNamesNotExported;
118 }
119 
121 {
122  return m_delimiter;
123 }
124 
126 {
127  return m_extrapolateOutsideEndpoints;
128 }
129 
131 {
132  return m_header;
133 }
134 
135 ExportLayoutFunctions DocumentModelExportFormat::layoutFunctions() const
136 {
137  return m_layoutFunctions;
138 }
139 
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 
230 {
231  return m_overrideCsvTsv;
232 }
233 
235 {
236  return m_pointsIntervalFunctions;
237 }
238 
240 {
241  return m_pointsIntervalRelations;
242 }
243 
245 {
246  return m_pointsIntervalUnitsFunctions;
247 }
248 
250 {
251  return m_pointsIntervalUnitsRelations;
252 }
253 
254 ExportPointsSelectionFunctions DocumentModelExportFormat::pointsSelectionFunctions() const
255 {
256  return m_pointsSelectionFunctions;
257 }
258 
259 ExportPointsSelectionRelations DocumentModelExportFormat::pointsSelectionRelations() const
260 {
261  return m_pointsSelectionRelations;
262 }
263 
264 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 
297 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 
338 void DocumentModelExportFormat::setCurveNamesNotExported(const QStringList &curveNamesNotExported)
339 {
340  m_curveNamesNotExported = curveNamesNotExported;
341 }
342 
343 void DocumentModelExportFormat::setDelimiter(ExportDelimiter delimiter)
344 {
345  m_delimiter = delimiter;
346 }
347 
348 void DocumentModelExportFormat::setExtrapolateOutsideEndpoints(bool extrapolateOutsideEndpoints)
349 {
350  m_extrapolateOutsideEndpoints = extrapolateOutsideEndpoints;
351 }
352 
353 void DocumentModelExportFormat::setHeader(ExportHeader header)
354 {
355  m_header = header;
356 }
357 
358 void DocumentModelExportFormat::setLayoutFunctions(ExportLayoutFunctions layoutFunctions)
359 {
360  m_layoutFunctions = layoutFunctions;
361 }
362 
364 {
365  m_overrideCsvTsv = overrideCsvTsv;
366 }
367 
368 void DocumentModelExportFormat::setPointsIntervalFunctions(double pointsIntervalFunctions)
369 {
370  m_pointsIntervalFunctions = pointsIntervalFunctions;
371 }
372 
373 void DocumentModelExportFormat::setPointsIntervalRelations(double pointsIntervalRelations)
374 {
375  m_pointsIntervalRelations = pointsIntervalRelations;
376 }
377 
378 void DocumentModelExportFormat::setPointsIntervalUnitsFunctions(ExportPointsIntervalUnits pointsIntervalUnitsFunctions)
379 {
380  m_pointsIntervalUnitsFunctions = pointsIntervalUnitsFunctions;
381 }
382 
383 void DocumentModelExportFormat::setPointsIntervalUnitsRelations(ExportPointsIntervalUnits pointsIntervalUnitsRelations)
384 {
385  m_pointsIntervalUnitsRelations = pointsIntervalUnitsRelations;
386 }
387 
388 void DocumentModelExportFormat::setPointsSelectionFunctions(ExportPointsSelectionFunctions pointsSelectionFunctions)
389 {
390  m_pointsSelectionFunctions = pointsSelectionFunctions;
391 }
392 
393 void DocumentModelExportFormat::setPointsSelectionRelations(ExportPointsSelectionRelations pointsSelectionRelations)
394 {
395  m_pointsSelectionRelations = pointsSelectionRelations;
396 }
397 
398 void DocumentModelExportFormat::setXLabel (const QString &xLabel)
399 {
400  m_xLabel = xLabel;
401 }
402 
404 {
405  return m_xLabel;
406 }
void setPointsSelectionFunctions(ExportPointsSelectionFunctions exportPointsSelectionFunctions)
Set method for point selection for functions.
ExportPointsSelectionFunctions pointsSelectionFunctions() const
Get method for point selection for functions.
ExportLayoutFunctions layoutFunctions() const
Get method for functions layout.
DocumentModelExportFormat()
Default constructor.
ExportPointsIntervalUnits pointsIntervalUnitsRelations() const
Get method for points interval units for relations.
ExportPointsIntervalUnits pointsIntervalUnitsFunctions() const
Get method for points interval units for functions.
Model for DlgSettingsExportFormat and CmdSettingsExportFormat.
void setPointsSelectionRelations(ExportPointsSelectionRelations exportPointsSelectionRelations)
Set method for point selection for relations.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
void setCurveNamesNotExported(const QStringList &curveNamesNotExported)
Set method for curve names not exported.
void setExtrapolateOutsideEndpoints(bool extrapolateOutsideEndpoints)
Set methods for extrapolation.
bool extrapolateOutsideEndpoints() const
Get methods for extrapolation.
void setDelimiter(ExportDelimiter exportDelimiter)
Set method for delimiter.
void setPointsIntervalFunctions(double pointsIntervalFunctions)
Set method for points interval for functions.
double pointsIntervalFunctions() const
Get method for points interval for functions.
ExportHeader header() const
Get method for header.
void setLayoutFunctions(ExportLayoutFunctions exportLayoutFunctions)
Set method for functions layout.
QString xLabel() const
Get method for x label.
void setPointsIntervalUnitsFunctions(ExportPointsIntervalUnits pointsIntervalUnitsFunctions)
Set method for points interval units for functions.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
DocumentModelExportFormat & operator=(const DocumentModelExportFormat &other)
Assignment constructor.
ExportDelimiter delimiter() const
Get method for delimiter.
QStringList curveNamesNotExported() const
Get method for curve names not exported.
void setPointsIntervalRelations(double pointsIntervalRelations)
Set method for relations interval for relations.
double pointsIntervalRelations() const
Get method for relations interval for relations.
Storage of one imported image and the data attached to that image.
Definition: Document.h:41
void setPointsIntervalUnitsRelations(ExportPointsIntervalUnits pointsIntervalUnitsRelations)
Set method for points interval units for relations.
void setHeader(ExportHeader exportHeader)
Set method for header.
void setOverrideCsvTsv(bool overrideCsvTsv)
Set method for csv/tsv format override.
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
ExportPointsSelectionRelations pointsSelectionRelations() const
Get method for point selection for relations.
bool overrideCsvTsv() const
Get method for csv/tsv format override.
void setXLabel(const QString &xLabel)
Set method for x label.