MCPcopy Create free account
hub / github.com/KDE/labplot / XmlReadFunction

Method XmlReadFunction

src/backend/worksheet/plots/cartesian/XYFunctionCurve.cpp:490–554  ·  view source on GitHub ↗

* \brief Read XML function element */

Source from the content-addressed store, hash-verified

488 * \brief Read XML function element
489 */
490bool XYFunctionCurve::XmlReadFunction(XmlStreamReader* reader, bool preview) {
491 Q_D(XYFunctionCurve);
492 QString function;
493 QStringList variableNames;
494 QStringList curvePaths;
495
496 while (reader->readNext()) {
497 if (reader->isEndElement())
498 break;
499
500 if (reader->name() == QLatin1String("text"))
501 function = reader->readElementText();
502 else if (reader->name() == QLatin1String("variableNames")) {
503 while (reader->readNext()) {
504 if (reader->name() == QLatin1String("variableNames") && reader->isEndElement())
505 break;
506
507 if (reader->isStartElement())
508 variableNames << reader->readElementText();
509 }
510 } else if (reader->name() == QLatin1String("curvePaths")) {
511 while (reader->readNext()) {
512 if (reader->name() == QLatin1String("curvePaths") && reader->isEndElement())
513 break;
514
515 if (reader->isStartElement())
516 curvePaths << reader->readElementText();
517 }
518 } else if (reader->name() == QLatin1String("column")) {
519 Column* column = new Column(QString(), AbstractColumn::ColumnMode::Double);
520 if (!column->load(reader, preview)) {
521 delete column;
522 return false;
523 }
524 if (column->name() == QLatin1String("x"))
525 d->xColumn = column;
526 else if (column->name() == QLatin1String("y"))
527 d->yColumn = column;
528 else {
529 delete column;
530 return false;
531 }
532 }
533 }
534
535 d->setFunction(function, variableNames, curvePaths);
536
537 if (d->xColumn && d->yColumn) {
538 d->xColumn->setHidden(true);
539 addChild(d->xColumn);
540
541 d->yColumn->setHidden(true);
542 addChild(d->yColumn);
543
544 d->xVector = static_cast<QVector<double>*>(d->xColumn->data());
545 d->yVector = static_cast<QVector<double>*>(d->yColumn->data());
546
547 static_cast<XYCurvePrivate*>(d_ptr)->xColumn = d->xColumn;

Callers

nothing calls this directly

Calls 6

setFunctionMethod · 0.80
QStringClass · 0.50
nameMethod · 0.45
loadMethod · 0.45
setHiddenMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected