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

Method load

src/backend/worksheet/Image.cpp:383–435  ·  view source on GitHub ↗

Load from XML

Source from the content-addressed store, hash-verified

381
382//! Load from XML
383bool Image::load(XmlStreamReader* reader, bool preview) {
384 if (!readBasicAttributes(reader))
385 return false;
386
387 Q_D(Image);
388 QXmlStreamAttributes attribs;
389 QString str;
390
391 while (!reader->atEnd()) {
392 reader->readNext();
393 if (reader->isEndElement() && reader->name() == QLatin1String("image"))
394 break;
395
396 if (!reader->isStartElement())
397 continue;
398
399 if (!preview && reader->name() == QLatin1String("comment")) {
400 if (!readCommentElement(reader))
401 return false;
402 } else if (!preview && reader->name() == QLatin1String("general")) {
403 attribs = reader->attributes();
404 d->fileName = attribs.value(QStringLiteral("fileName")).toString();
405 READ_INT_VALUE("embedded", embedded, bool);
406 READ_DOUBLE_VALUE("opacity", opacity);
407 } else if (reader->name() == QLatin1String("data")) {
408 QByteArray ba = QByteArray::fromBase64(reader->readElementText().toLatin1());
409 if (!d->image.loadFromData(ba))
410 reader->raiseWarning(i18n("Failed to read image data"));
411 } else if (!preview && reader->name() == QLatin1String("geometry")) {
412 attribs = reader->attributes();
413
414 READ_INT_VALUE("width", width, int);
415 READ_INT_VALUE("height", height, int);
416 READ_INT_VALUE("keepRatio", keepRatio, bool);
417
418 WorksheetElement::load(reader, preview);
419 } else if (!preview && reader->name() == QLatin1String("border")) {
420 d->borderLine->load(reader, preview);
421 } else { // unknown element
422 reader->raiseUnknownElementWarning();
423 if (!reader->skipToEndElement())
424 return false;
425 }
426 }
427
428 if (!preview) {
429 if (!d->embedded)
430 d->image = QImage(d->fileName);
431 d->imageScaled = d->image.scaled(d->width, d->height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
432 }
433
434 return true;
435}
436
437// ##############################################################################
438// ######################### Theme management ##################################

Callers

nothing calls this directly

Calls 8

atEndMethod · 0.80
raiseWarningMethod · 0.80
skipToEndElementMethod · 0.80
QImageClass · 0.50
nameMethod · 0.45
toStringMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected