Load from XML
| 1527 | |
| 1528 | //! Load from XML |
| 1529 | bool ProcessBehaviorChart::load(XmlStreamReader* reader, bool preview) { |
| 1530 | Q_D(ProcessBehaviorChart); |
| 1531 | |
| 1532 | if (!readBasicAttributes(reader)) |
| 1533 | return false; |
| 1534 | |
| 1535 | QXmlStreamAttributes attribs; |
| 1536 | QString str; |
| 1537 | |
| 1538 | while (!reader->atEnd()) { |
| 1539 | reader->readNext(); |
| 1540 | if (reader->isEndElement() && reader->name() == QLatin1String("ProcessBehaviorChart")) |
| 1541 | break; |
| 1542 | |
| 1543 | if (!reader->isStartElement()) |
| 1544 | continue; |
| 1545 | |
| 1546 | if (reader->name() == QLatin1String("comment")) { |
| 1547 | if (!readCommentElement(reader)) |
| 1548 | return false; |
| 1549 | } else if (!preview && reader->name() == QLatin1String("general")) { |
| 1550 | attribs = reader->attributes(); |
| 1551 | READ_COLUMN(dataColumn); |
| 1552 | READ_COLUMN(data2Column); |
| 1553 | READ_COLUMN(xColumn); |
| 1554 | READ_COLUMN(yColumn); |
| 1555 | READ_COLUMN(xCenterColumn); |
| 1556 | READ_COLUMN(yCenterColumn); |
| 1557 | READ_COLUMN(xUpperLimitColumn); |
| 1558 | READ_COLUMN(yUpperLimitColumn); |
| 1559 | READ_COLUMN(xLowerLimitColumn); |
| 1560 | READ_COLUMN(yLowerLimitColumn); |
| 1561 | READ_INT_VALUE("type", type, ProcessBehaviorChart::Type); |
| 1562 | READ_INT_VALUE("limitsMetric", limitsMetric, ProcessBehaviorChart::LimitsMetric); |
| 1563 | READ_INT_VALUE("sampleSize", sampleSize, int); |
| 1564 | READ_DOUBLE_VALUE("minLowerLimit", minLowerLimit); |
| 1565 | READ_DOUBLE_VALUE("maxUpperLimit", maxUpperLimit); |
| 1566 | READ_INT_VALUE("exactLimitsEnabled", exactLimitsEnabled, bool); |
| 1567 | READ_INT_VALUE("legendVisible", legendVisible, bool); |
| 1568 | |
| 1569 | str = attribs.value(QStringLiteral("visible")).toString(); |
| 1570 | if (str.isEmpty()) |
| 1571 | reader->raiseMissingAttributeWarning(QStringLiteral("visible")); |
| 1572 | else |
| 1573 | d->setVisible(str.toInt()); |
| 1574 | } else if (!preview && reader->name() == QLatin1String("labels")) { |
| 1575 | attribs = reader->attributes(); |
| 1576 | READ_INT_VALUE("enabled", labelsEnabled, bool); |
| 1577 | READ_INT_VALUE("precision", labelsPrecision, int); |
| 1578 | READ_INT_VALUE("autoPrecision", labelsAutoPrecision, bool); |
| 1579 | d->labelsBorderLine->load(reader, preview); |
| 1580 | } else if (reader->name() == QLatin1String("column")) { |
| 1581 | attribs = reader->attributes(); |
| 1582 | bool rc = false; |
| 1583 | const auto& name = attribs.value(QStringLiteral("name")); |
| 1584 | if (name == QLatin1String("x")) |
| 1585 | rc = d->xColumn->load(reader, preview); |
| 1586 | else if (name == QLatin1String("y")) |
nothing calls this directly
no test coverage detected