! Loads from XML. */
| 322 | Loads from XML. |
| 323 | */ |
| 324 | bool StatisticsSpreadsheet::load(XmlStreamReader* reader, bool preview) { |
| 325 | if (preview) |
| 326 | return true; |
| 327 | |
| 328 | if (!readBasicAttributes(reader)) |
| 329 | return false; |
| 330 | |
| 331 | const auto& attribs = reader->attributes(); |
| 332 | const auto& str = attribs.value(QStringLiteral("metrics")).toString(); |
| 333 | if (str.isEmpty()) |
| 334 | reader->raiseMissingAttributeWarning(QStringLiteral("metrics")); |
| 335 | else |
| 336 | m_metrics = static_cast<StatisticsSpreadsheet::Metric>(str.toInt()); |
| 337 | |
| 338 | // read child elements |
| 339 | while (!reader->atEnd()) { |
| 340 | reader->readNext(); |
| 341 | |
| 342 | if (reader->isEndElement() && reader->name() == QStringLiteral("statisticsSpreadsheet")) |
| 343 | break; |
| 344 | |
| 345 | if (reader->isStartElement()) { |
| 346 | if (reader->name() == QStringLiteral("column")) { |
| 347 | Column* column = new Column(QString()); |
| 348 | column->setIsLoading(true); |
| 349 | if (!column->load(reader, preview)) { |
| 350 | delete column; |
| 351 | setColumnCount(0); |
| 352 | return false; |
| 353 | } |
| 354 | addChildFast(column); |
| 355 | } else { // unknown element |
| 356 | reader->raiseUnknownElementWarning(); |
| 357 | if (!reader->skipToEndElement()) |
| 358 | return false; |
| 359 | } |
| 360 | } |
| 361 | } |
| 362 | |
| 363 | return !reader->hasError(); |
| 364 | } |
nothing calls this directly
no test coverage detected