summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalazs Varga <balazs.varga.extern@allotropia.de>2024-12-16 13:35:38 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2024-12-19 13:42:55 +0100
commit50131f31f093c32d7f4a3c85fc77637ba0513f2c (patch)
tree7917ea49d14f70864955004e4702cf917b379178
parentbbdbf32e64d13dfe2e0bc4fae8a5be7458b9dd65 (diff)
tdf#135320 sd fix soft edges are not shown on text frames
Allow soft edge and glow effect on text frames objects. Change-Id: If08da1cfeae515aa50ded5689b7fe3a963a98cd9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178656 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> (cherry picked from commit 8b7900dc3dfc6e3284442dc106799c44dc8961de) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178739 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu6
-rw-r--r--sd/qa/unit/data/odg/softedges.odgbin10130 -> 14473 bytes
-rw-r--r--sd/qa/unit/data/pptx/shape-soft-edges.pptxbin32995 -> 50092 bytes
-rw-r--r--sd/qa/unit/export-tests-ooxml4.cxx4
-rw-r--r--sd/qa/unit/export-tests.cxx14
-rw-r--r--svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx14
-rw-r--r--svx/source/sdr/properties/textproperties.cxx2
7 files changed, 37 insertions, 3 deletions
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
index 543d13edf274..b4a826bcf680 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
@@ -765,10 +765,12 @@
Calc, Draw, hidden ;
DrawImpress, Draw, hidden ;
DrawImpress, Graphic, hidden ;
+ DrawImpress, TextObject, hidden ;
WriterVariants, Draw, hidden ;
- Calc, DrawFontwork, visible ;
+ Calc, TextObject, hidden ;
+ Calc, DrawFontwork, visible ;
DrawImpress, DrawFontwork, visible ;
- WriterVariants, DrawFontwork, visible ;
+ WriterVariants, DrawFontwork, visible ;
</value>
</prop>
<prop oor:name="ImplementationURL" oor:type="xs:string">
diff --git a/sd/qa/unit/data/odg/softedges.odg b/sd/qa/unit/data/odg/softedges.odg
index a1fcab90e9ad..f1604b5d851e 100644
--- a/sd/qa/unit/data/odg/softedges.odg
+++ b/sd/qa/unit/data/odg/softedges.odg
Binary files differ
diff --git a/sd/qa/unit/data/pptx/shape-soft-edges.pptx b/sd/qa/unit/data/pptx/shape-soft-edges.pptx
index cafb8cf4ca59..e735070f0364 100644
--- a/sd/qa/unit/data/pptx/shape-soft-edges.pptx
+++ b/sd/qa/unit/data/pptx/shape-soft-edges.pptx
Binary files differ
diff --git a/sd/qa/unit/export-tests-ooxml4.cxx b/sd/qa/unit/export-tests-ooxml4.cxx
index 55f1b5d5de2d..5c8085911303 100644
--- a/sd/qa/unit/export-tests-ooxml4.cxx
+++ b/sd/qa/unit/export-tests-ooxml4.cxx
@@ -579,6 +579,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testShapeSoftEdgeEffect)
sal_Int32 nRadius = -1;
xShapeProps->getPropertyValue(u"SoftEdgeRadius"_ustr) >>= nRadius;
CPPUNIT_ASSERT_EQUAL(sal_Int32(635), nRadius); // 18 pt
+
+ xShapeProps.set(getShapeFromPage(1, 0));
+ xShapeProps->getPropertyValue(u"SoftEdgeRadius"_ustr) >>= nRadius;
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(353), nRadius); // 10 pt
}
CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testShapeShadowBlurEffect)
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
index b20064eb1006..a57dc111b0d2 100644
--- a/sd/qa/unit/export-tests.cxx
+++ b/sd/qa/unit/export-tests.cxx
@@ -1581,6 +1581,20 @@ CPPUNIT_TEST_FIXTURE(SdExportTest, testSoftEdges)
pXmlDoc,
"/office:document-content/office:automatic-styles/style:style[2]/style:graphic-properties",
"softedge-radius", u"0.635cm");
+
+ // Text frame object
+ xShapeProps.set(getShapeFromPage(1, 0));
+ CPPUNIT_ASSERT(xShapeProps->getPropertyValue(u"SoftEdgeRadius"_ustr) >>= nRad);
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(353), nRad); // 10 pt
+
+ // Test ODF element
+ pXmlDoc = parseExport(u"content.xml"_ustr);
+ assertXPath(pXmlDoc, "/office:document-content/office:automatic-styles/style:style[3]",
+ "family", u"graphic");
+ assertXPath(
+ pXmlDoc,
+ "/office:document-content/office:automatic-styles/style:style[3]/style:graphic-properties",
+ "softedge-radius", u"0.353cm");
}
CPPUNIT_TEST_FIXTURE(SdExportTest, testShadowBlur)
diff --git a/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx
index e66285e6bb6e..60cfa24bd8db 100644
--- a/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx
@@ -89,6 +89,20 @@ namespace drawinglayer::primitive2d
getTransform()));
}
+ // Soft edges should be before text, since text is not affected by soft edges
+ if (!aRetval.empty() && getSdrLFSTAttribute().getSoftEdgeRadius())
+ {
+ aRetval = createEmbeddedSoftEdgePrimitive(std::move(aRetval),
+ getSdrLFSTAttribute().getSoftEdgeRadius());
+ }
+
+ // tdf#132199: put glow before shadow, to have shadow of the glow, not the opposite
+ if (!aRetval.empty() && !getSdrLFSTAttribute().getGlow().isDefault())
+ {
+ // glow
+ aRetval = createEmbeddedGlowPrimitive(std::move(aRetval), getSdrLFSTAttribute().getGlow());
+ }
+
// add text
if(!getSdrLFSTAttribute().getText().isDefault())
{
diff --git a/svx/source/sdr/properties/textproperties.cxx b/svx/source/sdr/properties/textproperties.cxx
index cabe52ab68b7..3a2990846621 100644
--- a/svx/source/sdr/properties/textproperties.cxx
+++ b/svx/source/sdr/properties/textproperties.cxx
@@ -54,7 +54,7 @@ namespace sdr::properties
svl::Items<SDRATTR_START, SDRATTR_SHADOW_LAST,
SDRATTR_MISC_FIRST, SDRATTR_MISC_LAST,
SDRATTR_TEXTDIRECTION, SDRATTR_TEXTDIRECTION,
- SDRATTR_GLOW_TEXT_FIRST, SDRATTR_GLOW_TEXT_LAST,
+ SDRATTR_GLOW_FIRST, SDRATTR_GLOW_TEXT_LAST,
SDRATTR_TEXTCOLUMNS_FIRST, SDRATTR_TEXTCOLUMNS_LAST,
// range from SdrTextObj