Load from XML
| 194 | |
| 195 | //! Load from XML |
| 196 | bool Workbook::load(XmlStreamReader* reader, bool preview) { |
| 197 | if (!readBasicAttributes(reader)) |
| 198 | return false; |
| 199 | |
| 200 | while (!reader->atEnd()) { |
| 201 | reader->readNext(); |
| 202 | if (reader->isEndElement() && reader->name() == QLatin1String("workbook")) |
| 203 | break; |
| 204 | |
| 205 | if (!reader->isStartElement()) |
| 206 | continue; |
| 207 | |
| 208 | if (reader->name() == QLatin1String("comment")) { |
| 209 | if (!readCommentElement(reader)) |
| 210 | return false; |
| 211 | } else if (reader->name() == QLatin1String("spreadsheet")) { |
| 212 | auto* spreadsheet = new Spreadsheet(QStringLiteral("spreadsheet"), true); |
| 213 | if (!spreadsheet->load(reader, preview)) { |
| 214 | delete spreadsheet; |
| 215 | return false; |
| 216 | } else |
| 217 | addChild(spreadsheet); |
| 218 | } else if (reader->name() == QLatin1String("matrix")) { |
| 219 | auto* matrix = new Matrix(i18n("matrix"), true); |
| 220 | if (!matrix->load(reader, preview)) { |
| 221 | delete matrix; |
| 222 | return false; |
| 223 | } else |
| 224 | addChild(matrix); |
| 225 | } else { // unknown element |
| 226 | reader->raiseWarning(i18n("unknown workbook element '%1'", reader->name().toString())); |
| 227 | if (!reader->skipToEndElement()) |
| 228 | return false; |
| 229 | } |
| 230 | } |
| 231 | |
| 232 | return true; |
| 233 | } |
nothing calls this directly
no test coverage detected