From 89b385c2336e5b3868d2a040e11134b349b7d010 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Mon, 14 Sep 2020 16:58:38 +0200 Subject: [PATCH] oox smartart: handle Which defines that a data node has text properties as direct formatting, so autoscale should not happen. We decide autofit at a shape level, smartart defines custom text props at a data node level. So take the shape, go to its first presentation node, get its data node and see if it has custom text props. If not, continue to scale text down till it fits. smartart-autofit-sync.pptx is extended to contain a 3rd shape: the first two have their autofit scaling synchronized, while the 3rd has a fixed font size of 10pt. Change-Id: I6caacdaab9a36072b9ad5021bd217c955b09b790 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102689 Reviewed-by: Miklos Vajna Tested-by: Jenkins --- .../drawingml/diagram/diagramlayoutatoms.cxx | 56 +++++++++++++++++- .../unit/data/pptx/smartart-autofit-sync.pptx | Bin 45546 -> 41874 bytes sd/qa/unit/import-tests-smartart.cxx | 11 ++++ 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx index f48895975018..8f261f625d5a 100644 --- a/oox/source/drawingml/diagram/diagramlayoutatoms.cxx +++ b/oox/source/drawingml/diagram/diagramlayoutatoms.cxx @@ -478,6 +478,54 @@ void ApplyConstraintToLayout(const Constraint& rConstraint, LayoutPropertyMap& r = rConstraint.mfValue * fUnitFactor; } } + +/// Does the first data node of this shape have customized text properties? +bool HasCustomText(const ShapePtr& rShape, LayoutNode& rLayoutNode) +{ + const PresPointShapeMap& rPresPointShapeMap + = rLayoutNode.getDiagram().getLayout()->getPresPointShapeMap(); + const DiagramData::StringMap& rPresOfNameMap + = rLayoutNode.getDiagram().getData()->getPresOfNameMap(); + const DiagramData::PointNameMap& rPointNameMap + = rLayoutNode.getDiagram().getData()->getPointNameMap(); + // Get the first presentation node of the shape. + const dgm::Point* pPresNode = nullptr; + for (const auto& rPair : rPresPointShapeMap) + { + if (rPair.second == rShape) + { + pPresNode = rPair.first; + break; + } + } + // Get the first data node of the presentation node. + dgm::Point* pDataNode = nullptr; + if (pPresNode) + { + auto itPresToData = rPresOfNameMap.find(pPresNode->msModelId); + if (itPresToData != rPresOfNameMap.end()) + { + for (const auto& rPair : itPresToData->second) + { + const DiagramData::SourceIdAndDepth& rItem = rPair.second; + auto it = rPointNameMap.find(rItem.msSourceId); + if (it != rPointNameMap.end()) + { + pDataNode = it->second; + break; + } + } + } + } + + // If we have a data node, see if its text is customized or not. + if (pDataNode) + { + return pDataNode->mbCustomText; + } + + return false; +} } void AlgAtom::layoutShape(const ShapePtr& rShape, const std::vector& rConstraints, @@ -1452,7 +1500,13 @@ void AlgAtom::layoutShape(const ShapePtr& rShape, const std::vector& if (!aRun->getTextCharacterProperties().moHeight.has()) aRun->getTextCharacterProperties().moHeight = fFontSize * 100; } - pTextBody->getTextProperties().maPropertyMap.setProperty(PROP_TextFitToSize, drawing::TextFitToSizeType_AUTOFIT); + + if (!HasCustomText(rShape, getLayoutNode())) + { + // No customized text properties: enable autofit. + pTextBody->getTextProperties().maPropertyMap.setProperty( + PROP_TextFitToSize, drawing::TextFitToSizeType_AUTOFIT); + } // ECMA-376-1:2016 21.4.7.5 ST_AutoTextRotation (Auto Text Rotation) const sal_Int32 nautoTxRot = maMap.count(XML_autoTxRot) ? maMap.find(XML_autoTxRot)->second : XML_upr; diff --git a/sd/qa/unit/data/pptx/smartart-autofit-sync.pptx b/sd/qa/unit/data/pptx/smartart-autofit-sync.pptx index f682c143f584659db33c749f4099330ffd358c2d..9a6ce0f494c57008bc5c29bafe4c0eef450de258 100644 GIT binary patch delta 16553 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

D~LDqDp7vOyE7gaHsJD+jiz4jRyO7YJ?-lL`ND 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 diff --git a/sd/qa/unit/import-tests-smartart.cxx b/sd/qa/unit/import-tests-smartart.cxx index ddc0bb9579e2..616f18f0b5f0 100644 --- a/sd/qa/unit/import-tests-smartart.cxx +++ b/sd/qa/unit/import-tests-smartart.cxx @@ -1591,6 +1591,17 @@ void SdImportTestSmartArt::testAutofitSync() // requested that their scaling matches. CPPUNIT_ASSERT_EQUAL(nSecondScale, nFirstScale); + // Without the accompanying fix in place, this test would have failed with: + // - Expected: 0 (drawing::TextFitToSizeType_NONE) + // - Actual : 3 (TextFitToSizeType_AUTOFIT) + // i.e. the 3rd shape had font size as direct formatting, but its automatic text scale was not + // disabled. + uno::Reference xThirdInner(getChildShape(getChildShape(xMiddle, 4), 0), + uno::UNO_QUERY); + drawing::TextFitToSizeType eType{}; + CPPUNIT_ASSERT(xThirdInner->getPropertyValue("TextFitToSize") >>= eType); + CPPUNIT_ASSERT_EQUAL(drawing::TextFitToSizeType_NONE, eType); + xDocShRef->DoClose(); }