| 430 | } |
| 431 | |
| 432 | bool ConditionalFormattingPrivate::readCfRule(QXmlStreamReader &reader, XlsxCfRuleData *rule, Styles *styles) |
| 433 | { |
| 434 | Q_ASSERT(reader.name() == QLatin1String("cfRule")); |
| 435 | QXmlStreamAttributes attrs = reader.attributes(); |
| 436 | if (attrs.hasAttribute(QLatin1String("type"))) |
| 437 | rule->attrs[XlsxCfRuleData::A_type] = attrs.value(QLatin1String("type")).toString(); |
| 438 | if (attrs.hasAttribute(QLatin1String("dxfId"))) { |
| 439 | int id = attrs.value(QLatin1String("dxfId")).toInt(); |
| 440 | if (styles) |
| 441 | rule->dxfFormat = styles->dxfFormat(id); |
| 442 | else |
| 443 | rule->dxfFormat.setDxfIndex(id); |
| 444 | } |
| 445 | rule->priority = attrs.value(QLatin1String("priority")).toInt(); |
| 446 | if (attrs.value(QLatin1String("stopIfTrue")) == QLatin1String("1")) { |
| 447 | //default is false |
| 448 | rule->attrs[XlsxCfRuleData::A_stopIfTrue] = QLatin1String("1"); |
| 449 | } |
| 450 | if (attrs.value(QLatin1String("aboveAverage")) == QLatin1String("0")) { |
| 451 | //default is true |
| 452 | rule->attrs[XlsxCfRuleData::A_aboveAverage] = QLatin1String("0"); |
| 453 | } |
| 454 | if (attrs.value(QLatin1String("percent")) == QLatin1String("1")) { |
| 455 | //default is false |
| 456 | rule->attrs[XlsxCfRuleData::A_percent] = QLatin1String("1"); |
| 457 | } |
| 458 | if (attrs.value(QLatin1String("bottom")) == QLatin1String("1")) { |
| 459 | //default is false |
| 460 | rule->attrs[XlsxCfRuleData::A_bottom] = QLatin1String("1"); |
| 461 | } |
| 462 | if (attrs.hasAttribute(QLatin1String("operator"))) |
| 463 | rule->attrs[XlsxCfRuleData::A_operator] = attrs.value(QLatin1String("operator")).toString(); |
| 464 | |
| 465 | if (attrs.hasAttribute(QLatin1String("text"))) |
| 466 | rule->attrs[XlsxCfRuleData::A_text] = attrs.value(QLatin1String("text")).toString(); |
| 467 | |
| 468 | if (attrs.hasAttribute(QLatin1String("timePeriod"))) |
| 469 | rule->attrs[XlsxCfRuleData::A_timePeriod] = attrs.value(QLatin1String("timePeriod")).toString(); |
| 470 | |
| 471 | if (attrs.hasAttribute(QLatin1String("rank"))) |
| 472 | rule->attrs[XlsxCfRuleData::A_rank] = attrs.value(QLatin1String("rank")).toString(); |
| 473 | |
| 474 | if (attrs.hasAttribute(QLatin1String("stdDev"))) |
| 475 | rule->attrs[XlsxCfRuleData::A_stdDev] = attrs.value(QLatin1String("stdDev")).toString(); |
| 476 | |
| 477 | if (attrs.value(QLatin1String("equalAverage")) == QLatin1String("1")) { |
| 478 | //default is false |
| 479 | rule->attrs[XlsxCfRuleData::A_equalAverage] = QLatin1String("1"); |
| 480 | } |
| 481 | |
| 482 | while (!reader.atEnd()) { |
| 483 | reader.readNextStartElement(); |
| 484 | if (reader.tokenType() == QXmlStreamReader::StartElement) { |
| 485 | if (reader.name() == QLatin1String("formula")) { |
| 486 | const QString f = reader.readElementText(); |
| 487 | if (!rule->attrs.contains(XlsxCfRuleData::A_formula1)) |
| 488 | rule->attrs[XlsxCfRuleData::A_formula1] = f; |
| 489 | else if (!rule->attrs.contains(XlsxCfRuleData::A_formula2)) |
no test coverage detected