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

Method loadFromXml

src/3rdparty/QXlsx/source/xlsxdatavalidation.cpp:442–535  ·  view source on GitHub ↗

! * \internal */

Source from the content-addressed store, hash-verified

440 * \internal
441 */
442DataValidation DataValidation::loadFromXml(QXmlStreamReader &reader)
443{
444 Q_ASSERT(reader.name() == QLatin1String("dataValidation"));
445
446 static const QMap<QString, DataValidation::ValidationType> typeMap = {
447 {QStringLiteral("none"), DataValidation::None},
448 {QStringLiteral("whole"), DataValidation::Whole},
449 {QStringLiteral("decimal"), DataValidation::Decimal},
450 {QStringLiteral("list"), DataValidation::List},
451 {QStringLiteral("date"), DataValidation::Date},
452 {QStringLiteral("time"), DataValidation::Time},
453 {QStringLiteral("textLength"), DataValidation::TextLength},
454 {QStringLiteral("custom"), DataValidation::Custom}
455 };
456
457 static const QMap<QString, DataValidation::ValidationOperator> opMap = {
458 {QStringLiteral("between"), DataValidation::Between},
459 {QStringLiteral("notBetween"), DataValidation::NotBetween},
460 {QStringLiteral("equal"), DataValidation::Equal},
461 {QStringLiteral("notEqual"), DataValidation::NotEqual},
462 {QStringLiteral("lessThan"), DataValidation::LessThan},
463 {QStringLiteral("lessThanOrEqual"), DataValidation::LessThanOrEqual},
464 {QStringLiteral("greaterThan"), DataValidation::GreaterThan},
465 {QStringLiteral("greaterThanOrEqual"), DataValidation::GreaterThanOrEqual}
466 };
467
468 static const QMap<QString, DataValidation::ErrorStyle> esMap = {
469 {QStringLiteral("stop"), DataValidation::Stop},
470 {QStringLiteral("warning"), DataValidation::Warning},
471 {QStringLiteral("information"), DataValidation::Information}
472 };
473
474 DataValidation validation;
475 QXmlStreamAttributes attrs = reader.attributes();
476
477 QString sqref = attrs.value(QLatin1String("sqref")).toString();
478 const auto sqrefParts = sqref.split(QLatin1Char(' '));
479 for (const QString &range : sqrefParts)
480 validation.addRange(range);
481
482 if (attrs.hasAttribute(QLatin1String("type"))) {
483 QString t = attrs.value(QLatin1String("type")).toString();
484 auto it = typeMap.constFind(t);
485 validation.setValidationType(it != typeMap.constEnd() ? it.value() : DataValidation::None);
486 }
487 if (attrs.hasAttribute(QLatin1String("errorStyle"))) {
488 QString es = attrs.value(QLatin1String("errorStyle")).toString();
489 auto it = esMap.constFind(es);
490 validation.setErrorStyle(it != esMap.constEnd() ? it.value() : DataValidation::Stop);
491 }
492 if (attrs.hasAttribute(QLatin1String("operator"))) {
493 QString op = attrs.value(QLatin1String("operator")).toString();
494 auto it = opMap.constFind(op);
495 validation.setValidationOperator(it != opMap.constEnd() ? it.value() : DataValidation::Between);
496 }
497 if (attrs.hasAttribute(QLatin1String("allowBlank"))) {
498 validation.setAllowBlank(true);
499 } else {

Callers

nothing calls this directly

Calls 15

splitMethod · 0.80
setValidationTypeMethod · 0.80
setErrorStyleMethod · 0.80
setValidationOperatorMethod · 0.80
setAllowBlankMethod · 0.80
setErrorMessageMethod · 0.80
setPromptMessageMethod · 0.80
setFormula1Method · 0.80
setFormula2Method · 0.80
nameMethod · 0.45

Tested by

no test coverage detected