Load from XML
| 1142 | |
| 1143 | //! Load from XML |
| 1144 | bool 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 |
nothing calls this directly
no test coverage detected