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

Method load

src/backend/worksheet/TextLabel.cpp:1144–1236  ·  view source on GitHub ↗

Load from XML

Source from the content-addressed store, hash-verified

1142
1143//! Load from XML
1144bool TextLabel::load(XmlStreamReader* reader, bool preview) {
1145 if (!readBasicAttributes(reader))
1146 return false;
1147
1148 Q_D(TextLabel);
1149 QXmlStreamAttributes attribs;
1150 QString str;
1151
1152 while (!reader->atEnd()) {
1153 reader->readNext();
1154 if (reader->isEndElement() && reader->name() == QLatin1String("textLabel"))
1155 break;
1156
1157 if (!reader->isStartElement())
1158 continue;
1159
1160 if (!preview && reader->name() == QLatin1String("comment")) {
1161 if (!readCommentElement(reader))
1162 return false;
1163 } else if (!preview && reader->name() == QLatin1String("geometry")) {
1164 WorksheetElement::load(reader, preview);
1165 } else if (!preview && reader->name() == QLatin1String("text")) {
1166 d->textWrapper.text = reader->readElementText();
1167 // "MS Shell Dlg 2" is a logical font on Windows (mapped to Tahoma) not used in Qt6 anymore
1168 if (d->textWrapper.text.contains(QStringLiteral("MS Shell Dlg 2"))) {
1169 if (QSysInfo::productType() == QStringLiteral("windows"))
1170 d->textWrapper.text.replace(QStringLiteral("MS Shell Dlg 2"), QStringLiteral("Tahoma"));
1171 else
1172 d->textWrapper.text.replace(QStringLiteral("MS Shell Dlg 2"), QStringLiteral("Sans Serif"));
1173 }
1174 } else if (!preview && reader->name() == QLatin1String("textPlaceholder"))
1175 d->textWrapper.textPlaceholder = reader->readElementText();
1176 else if (!preview && reader->name() == QLatin1String("format")) {
1177 attribs = reader->attributes();
1178
1179 if (Project::xmlVersion() < 4) {
1180 str = attribs.value(QStringLiteral("teXUsed")).toString();
1181 d->textWrapper.mode = static_cast<TextLabel::Mode>(str.toInt());
1182 } else
1183 READ_INT_VALUE("mode", textWrapper.mode, TextLabel::Mode);
1184
1185 str = attribs.value(QStringLiteral("placeholder")).toString();
1186 if (!str.isEmpty())
1187 d->textWrapper.allowPlaceholder = str.toInt();
1188
1189 READ_QFONT(d->teXFont);
1190 READ_QCOLOR2(d->fontColor, "fontColor");
1191 READ_QCOLOR2(d->backgroundColor, "backgroundColor");
1192 } else if (!preview && reader->name() == QLatin1String("border")) {
1193 attribs = reader->attributes();
1194 READ_INT_VALUE("borderShape", borderShape, BorderShape);
1195 d->borderLine->load(reader, preview);
1196 } else if (!preview && reader->name() == QLatin1String("teXPdfData")) {
1197 reader->readNext();
1198 QString content = reader->text().toString().trimmed();
1199 d->teXPdfData = QByteArray::fromBase64(content.toLatin1());
1200 d->teXImage = GuiTools::imageFromPDFData(d->teXPdfData);
1201 } else { // unknown element

Callers

nothing calls this directly

Calls 15

atEndMethod · 0.80
replaceMethod · 0.80
skipToEndElementMethod · 0.80
setHtmlMethod · 0.80
updateTextMethod · 0.80
updateBoundingRectMethod · 0.80
nameMethod · 0.45
containsMethod · 0.45
toStringMethod · 0.45
valueMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected