Rebased ref, commits from common ancestor:
commit fb680b970f5a88f575e2c2dcb45046b83d38458b
Author: Balazs Varga <[email protected]>
AuthorDate: Tue Sep 23 13:50:24 2025 +0200
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:55 2025 +0200
tdf#167042 - sc cell comments texts should not be deleted
but the note text should be remembered in maNoteData to be able
to later reconstruct a caption from it.
Originally the bPreserveData was introduced and set to true in commit:
b8b657123cc508c906622d20669507628c93e104
(tdf#104967 preserve isolated notes data in clipboard when closing document)
The original bugdoc from tdf#104967 was checked with this patch and
had no crash with it.
Change-Id: I3b6c56e4828c11c2cab0351c95dd4bcb5762d86e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191396
Tested-by: Jenkins
Reviewed-by: Balazs Varga <[email protected]>
(cherry picked from commit 01765ffe843953bbf7d1e2822512306d3776b3be)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191461
Reviewed-by: Xisco Fauli <[email protected]>
Signed-off-by: Xisco Fauli <[email protected]>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191465
diff --git a/sc/qa/unit/tiledrendering/data/tdf167042.ods
b/sc/qa/unit/tiledrendering/data/tdf167042.ods
new file mode 100644
index 000000000000..22e95e0597ef
Binary files /dev/null and b/sc/qa/unit/tiledrendering/data/tdf167042.ods differ
diff --git a/sc/qa/unit/tiledrendering/tiledrendering2.cxx
b/sc/qa/unit/tiledrendering/tiledrendering2.cxx
index b9df067e40dc..d764812e2e35 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering2.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering2.cxx
@@ -21,6 +21,7 @@
#include <docuno.hxx>
#include <scmod.hxx>
#include <tabvwsh.hxx>
+#include <postit.hxx>
using namespace com::sun::star;
@@ -201,6 +202,56 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest,
testSplitPanesXLSX)
assertXPath(pSheet, "/x:worksheet/x:sheetViews/x:sheetView/x:pane",
"activePane", u"topRight");
}
+CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, testTdf167042)
+{
+ ScModelObj* pModelObj = createDoc("tdf167042.ods");
+ ScDocument* pDoc = pModelObj->GetDocument();
+ ViewCallback aView1;
+
+ uno::Sequence<beans::PropertyValue> aPropertyValues
+ = { comphelper::makePropertyValue("ToPoint", OUString("$A$1")) };
+ dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
+
+ Point aPoint = aView1.m_aCellCursorBounds.Center();
+
+ aPropertyValues = { comphelper::makePropertyValue("ToPoint",
OUString("$B$1")) };
+ dispatchCommand(mxComponent, ".uno:GoToCell", aPropertyValues);
+
+ // Check that we have the comment on A1
+ CPPUNIT_ASSERT_MESSAGE("There should be a note on A1",
pDoc->HasNote(ScAddress(0, 0, 0)));
+ ScPostIt* pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+ CPPUNIT_ASSERT(pNote);
+ CPPUNIT_ASSERT_EQUAL(u"test1"_ustr, pNote->GetText());
+
+ uno::Sequence aArgs{ comphelper::makePropertyValue(u"PersistentCopy"_ustr,
false) };
+ dispatchCommand(mxComponent, u".uno:FormatPaintbrush"_ustr, aArgs);
+
+ pModelObj->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONDOWN, aPoint.getX(),
aPoint.getY(), 1,
+ MOUSE_LEFT, 0);
+ pModelObj->postMouseEvent(LOK_MOUSEEVENT_MOUSEBUTTONUP, aPoint.getX(),
aPoint.getY(), 1,
+ MOUSE_LEFT, 0);
+
+ // Check that FormatPaintbrush worked
+ vcl::Font aFont;
+ pDoc->GetPattern(0, 0, 0)->fillFontOnly(aFont);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("font should be bold A1", WEIGHT_BOLD,
aFont.GetWeight());
+
+ // Check that we still have the comment on A1 after FormatPaintbrush
+ pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+ CPPUNIT_ASSERT(pNote);
+ CPPUNIT_ASSERT_EQUAL(u"test1"_ustr, pNote->GetText());
+
+ dispatchCommand(mxComponent, u".uno:Undo"_ustr, {});
+
+ // Check that we still have the comment on A1 after Undo
+ pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+ CPPUNIT_ASSERT(pNote);
+ // Without the fix in place, this test would have failed with
+ // - Expected : test1
+ // - Actual :
+ CPPUNIT_ASSERT_EQUAL(u"test1"_ustr, pNote->GetText());
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index 5b30ac8c470e..c44b9e7a1ebd 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -1021,9 +1021,13 @@ void ScUndoPaste::DoChange(bool bUndo)
}
sal_uInt16 nExtFlags = 0;
+
pDocShell->UpdatePaintExt(nExtFlags, maBlockRanges.Combine());
- rDoc.ForgetNoteCaptions(maBlockRanges, false);
+ // tdf#167042 - cell comments texts should not be deleted but
+ // the note text should be remembered in maNoteData to be able
+ // to later reconstruct a caption from it.
+ rDoc.ForgetNoteCaptions(maBlockRanges, true);
aMarkData.MarkToMulti();
rDoc.DeleteSelection(nUndoFlags, aMarkData, false); // no broadcasting here
for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i)
commit e569e77c7ddb3468168f6c852fdd0cfa1f19bd34
Author: Mike Kaganski <[email protected]>
AuthorDate: Sat Sep 27 00:42:27 2025 +0500
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:50 2025 +0200
tdf#168569: support date values in string pool
Commit f45463d8e2bb0771ec1837d159ff98108b0047cf (tdf#93727 Support date
literals in basic, 2017-05-24) introduced correct parsing of literals
like #2025-09-26#. However, it didn't retain the value type; there was
a discussion about that in gerrit, but no solution was found, and type
was set to double.
Later, a similar problem (storing type of value in compiled image) was
fixed in commit 5eedb3beeaeed88de0d1ebd041a9f15ceea7e78c (tdf#142460:
properly handle boolean values in string pool, 2021-06-25).
This change reuses the same method to store date type using 'd' char in
the string pool.
Change-Id: I32e8497ece1f30980ba6d4fca248687b817348f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191555
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <[email protected]>
(cherry picked from commit 22d7827c6695358e11ee06a5599b72a92ff0b2ac)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191595
Reviewed-by: Xisco Fauli <[email protected]>
Signed-off-by: Xisco Fauli <[email protected]>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191638
diff --git a/basic/qa/basic_coverage/test_format_function.bas
b/basic/qa/basic_coverage/test_format_function.bas
index 75b7c37ee3bf..3a8ba67aa921 100644
--- a/basic/qa/basic_coverage/test_format_function.bas
+++ b/basic/qa/basic_coverage/test_format_function.bas
@@ -26,6 +26,7 @@ Sub verify_testFormat
TestUtil.AssertEqual(Format(" "), " ", "Format("" "")")
TestUtil.AssertEqual(Format(" 00 "), "0", "Format("" 00 "")")
TestUtil.AssertEqual(Format(CDate("2025-09-26")), "09/26/2025",
"Format(CDate(""2025-09-26""))")
+ TestUtil.AssertEqual(Format(#2025-09-26#), "09/26/2025",
"Format(#2025-09-26#)")
Exit Sub
errorHandler:
diff --git a/basic/qa/basic_coverage/test_str_method.bas
b/basic/qa/basic_coverage/test_str_method.bas
index 2ce10952ee04..9ce67ff1dec3 100644
--- a/basic/qa/basic_coverage/test_str_method.bas
+++ b/basic/qa/basic_coverage/test_str_method.bas
@@ -32,6 +32,7 @@ Sub verify_testStr
' Dates are converted into locale-dependent strings (test uses en-US)
TestUtil.AssertEqualStrict(Str(CDate("2025-09-26")), "09/26/2025",
"Str(CDate(""2025-09-26""))")
+ TestUtil.AssertEqualStrict(Str(#2025-09-26#), "09/26/2025",
"Str(#2025-09-26#)")
TestUtil.AssertEqualStrict(Str(true), "True", "Str(true)")
diff --git a/basic/qa/basic_coverage/test_typename_method.bas
b/basic/qa/basic_coverage/test_typename_method.bas
index 028f57f0e8db..f6fb90c2df79 100644
--- a/basic/qa/basic_coverage/test_typename_method.bas
+++ b/basic/qa/basic_coverage/test_typename_method.bas
@@ -43,6 +43,8 @@ Function doUnitTest ' TypeName()
assert( TypeName(myUDF) = "Object" , "TypeName(myUDF) is not ""Object""" )
assert( TypeName(var) = "Empty" , "TypeName(var) is not ""Empty""" )
+ assert( TypeName(#2025-09-26#) = "Date" , "TypeName(#2025-09-26#) is not
""Date""" )
+
assert( TypeName(int_) = "Integer" , "TypeName(int_) is not
""Integer""" )
assert( TypeName(long_) = "Long" , "TypeName(long_) is not
""Long""" )
assert( TypeName(single_) = "Single" , "TypeName(single_) is not
""Single""" )
diff --git a/basic/source/classes/image.cxx b/basic/source/classes/image.cxx
index 336666300fd2..19c0d518417f 100644
--- a/basic/source/classes/image.cxx
+++ b/basic/source/classes/image.cxx
@@ -615,6 +615,7 @@ void SbiImage::AddEnum(SbxObject* pObject) // Register enum
type
rEnums->Insert(pObject, rEnums->Count());
}
+// See also: SbiRuntime::StepLOADNC
// Note: IDs start with 1
OUString SbiImage::GetString( sal_uInt32 nId, SbxDataType *eType ) const
{
@@ -654,6 +655,8 @@ OUString SbiImage::GetString( sal_uInt32 nId, SbxDataType
*eType ) const
case '@': *eType = SbxCURRENCY; break;
// tdf#142460 - properly handle boolean values in
string pool
case 'b': *eType = SbxBOOL; break;
+ // tdf#168569 - support date values in string pool
+ case 'd': *eType = SbxDATE; break; // Not in
GetSuffixType
}
}
}
diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx
index 820951889ad7..5aac70b833fe 100644
--- a/basic/source/comp/scanner.cxx
+++ b/basic/source/comp/scanner.cxx
@@ -648,7 +648,7 @@ bool SbiScanner::NextSym()
GenError( ERRCODE_BASIC_CONVERSION );
bNumber = true;
- eScanType = SbxDOUBLE;
+ eScanType = SbxDATE;
}
else
{
diff --git a/basic/source/comp/symtbl.cxx b/basic/source/comp/symtbl.cxx
index 6f8b53ed0d5a..d28d5fde5e7c 100644
--- a/basic/source/comp/symtbl.cxx
+++ b/basic/source/comp/symtbl.cxx
@@ -100,6 +100,11 @@ short SbiStringPool::Add(double n, SbxDataType t)
size = snprintf(buf, sizeof(buf), "%.16g", n) + 1;
buf[size++] = '@';
break;
+ case SbxDATE:
+ // tdf#168569 - support date values in string pool
+ size = snprintf(buf, sizeof(buf), "%.16g", n) + 1;
+ buf[size++] = 'd'; // Not in GetSuffixType
+ break;
default: assert(false); break; // should not happen
}
diff --git a/basic/source/inc/filefmt.hxx b/basic/source/inc/filefmt.hxx
index 38dfa95754f3..5f29d6cdf56d 100644
--- a/basic/source/inc/filefmt.hxx
+++ b/basic/source/inc/filefmt.hxx
@@ -43,6 +43,8 @@
// tdf#142460: properly handle boolean values in string pool (no
// version number bump for backward compatibility;
relies on
// new integer type suffix 'b')
+// tdf#168569: support date values in string pool (no version
number bump
+// for backward compatibility; relies on new integer
type suffix 'd')
//
#define B_IMG_VERSION_12 0x00000012
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index 2fcbfb7372cb..833e3af6a5a9 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -2817,7 +2817,7 @@ void SbiRuntime::StepERROR()
}
// loading a numeric constant (+ID)
-
+// See also: SbiImage::GetString
void SbiRuntime::StepLOADNC( sal_uInt32 nOp1 )
{
// tdf#143707 - check if the data type character was added after the
string termination symbol
@@ -2849,6 +2849,8 @@ void SbiRuntime::StepLOADNC( sal_uInt32 nOp1 )
case '@': eType = SbxCURRENCY; break;
// tdf#142460 - properly handle boolean values in string pool
case 'b': eType = SbxBOOL; break;
+ // tdf#168569 - support date values in string pool
+ case 'd': eType = SbxDATE; break; // Not in GetSuffixType
}
}
// tdf#143707 - if the data type character is different from the default
value, it was added
commit 07af353cfcf9bc599ea466aefcb9f40494b23d91
Author: Mike Kaganski <[email protected]>
AuthorDate: Fri Sep 26 21:14:33 2025 +0500
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:50 2025 +0200
tdf#168561: fix Str function implementation
1. If a string is passed as argument, it is returned without any changes.
For that, SbRtl_Str checks argument type, skipping processing for string.
2. Non-negative numbers are preceded by a blank space.
That already was implemented.
3. Negative numbers are preceded by a minus sign.
That was done incorrectly - a space was added for any number.
4. Dates are converted into locale-dependent strings.
That wasn't done at all - dates were converted to strings representing
the serial date. A check is implemented SbxValue::Format, to handle this.
Additionally, Format function was improved to handle such input without
format string (taking into account that it handles strings that can be
converted to numbers differently).
Change-Id: I5ac0429950e4ea8bf69b0091502b4e6dc1f4957d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191549
Reviewed-by: Mike Kaganski <[email protected]>
Tested-by: Jenkins
(cherry picked from commit 92878d3216aeaf0e5131c0c3fa1f8dc9ce67b5b4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191582
Reviewed-by: Xisco Fauli <[email protected]>
Signed-off-by: Xisco Fauli <[email protected]>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191637
diff --git a/basic/qa/basic_coverage/test_format_function.bas
b/basic/qa/basic_coverage/test_format_function.bas
index d1c51fe791a5..75b7c37ee3bf 100644
--- a/basic/qa/basic_coverage/test_format_function.bas
+++ b/basic/qa/basic_coverage/test_format_function.bas
@@ -22,6 +22,11 @@ Sub verify_testFormat
TestUtil.AssertEqual(Format(d, "YYYY-MM-DD"), "2024-09-16", "Format(d,
""YYYY-MM-DD"")")
TestUtil.AssertEqual(Format("2024-09-16 05:03:30 PM", "hh-mm-ss"),
"17-03-30", "Format(""2024-09-16 05:03:30 PM"", ""hh-mm-ss"")")
+ TestUtil.AssertEqual(Format(""), "", "Format("""")")
+ TestUtil.AssertEqual(Format(" "), " ", "Format("" "")")
+ TestUtil.AssertEqual(Format(" 00 "), "0", "Format("" 00 "")")
+ TestUtil.AssertEqual(Format(CDate("2025-09-26")), "09/26/2025",
"Format(CDate(""2025-09-26""))")
+
Exit Sub
errorHandler:
TestUtil.ReportErrorHandler("verify_testFormat", Err, Error$, Erl)
diff --git a/basic/qa/basic_coverage/test_str_method.bas
b/basic/qa/basic_coverage/test_str_method.bas
new file mode 100644
index 000000000000..2ce10952ee04
--- /dev/null
+++ b/basic/qa/basic_coverage/test_str_method.bas
@@ -0,0 +1,41 @@
+' This file is part of the LibreOffice project.
+'
+' This Source Code Form is subject to the terms of the Mozilla Public
+' License, v. 2.0. If a copy of the MPL was not distributed with this
+' file, You can obtain one at http://mozilla.org/MPL/2.0/.
+'
+
+Option Explicit
+
+Function doUnitTest as String
+ TestUtil.TestInit
+ verify_testStr
+ doUnitTest = TestUtil.GetResult()
+End Function
+
+Dim failedAssertion As Boolean, messages As String
+
+Sub verify_testStr
+ On Error GoTo errorHandler
+
+ ' If a string is passed as argument, it is returned without any changes
+ TestUtil.AssertEqualStrict(Str(""), "", "Str("""")")
+ TestUtil.AssertEqualStrict(Str(" "), " ", "Str("" "")")
+ TestUtil.AssertEqualStrict(Str(" 00 "), " 00 ", "Str("" 00 "")")
+
+ ' Non-negative numbers are preceded by a blank space
+ TestUtil.AssertEqualStrict(Str(0), " 0", "Str(0)")
+ TestUtil.AssertEqualStrict(Str(1 / 10), " 0.1", "Str(1 / 10)")
+
+ ' Negative numbers are preceded by a minus sign
+ TestUtil.AssertEqualStrict(Str(-1 / 10), "-0.1", "Str(-1 / 10)")
+
+ ' Dates are converted into locale-dependent strings (test uses en-US)
+ TestUtil.AssertEqualStrict(Str(CDate("2025-09-26")), "09/26/2025",
"Str(CDate(""2025-09-26""))")
+
+ TestUtil.AssertEqualStrict(Str(true), "True", "Str(true)")
+
+ Exit Sub
+errorHandler:
+ TestUtil.ReportErrorHandler("verify_testStr", Err, Error$, Erl)
+End Sub
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index 160d9adafc4d..172090440a90 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -1354,12 +1354,21 @@ void SbRtl_Str(StarBASIC *, SbxArray & rPar, bool)
else
{
OUString aStr;
- OUString aStrNew(u""_ustr);
+ OUString aStrNew;
SbxVariableRef pArg = rPar.Get(1);
- pArg->Format( aStr );
+ const SbxDataType argType = pArg->GetType();
+ if (argType == SbxSTRING)
+ {
+ // From Help: "If a string is passed as argument, it is returned
without any changes"
+ aStr = pArg->GetOUString();
+ }
+ else
+ {
+ pArg->Format(aStr);
+ }
// Numbers start with a space
- if (pArg->GetType() != SbxBOOL && pArg->IsNumericRTL())
+ if (argType != SbxBOOL && argType != SbxSTRING && pArg->IsNumericRTL())
{
// replace commas by points so that it's symmetric to Val!
aStr = aStr.replaceFirst( ",", "." );
@@ -1395,7 +1404,9 @@ void SbRtl_Str(StarBASIC *, SbxArray & rPar, bool)
}
else
{
- aStrNew = " " + aStr;
+ if (!aStr.startsWith("-"))
+ aStrNew = " ";
+ aStrNew += aStr;
}
}
else
diff --git a/basic/source/sbx/sbxscan.cxx b/basic/source/sbx/sbxscan.cxx
index a2e80161b16a..3d71d7c14ace 100644
--- a/basic/source/sbx/sbxscan.cxx
+++ b/basic/source/sbx/sbxscan.cxx
@@ -476,7 +476,10 @@ std::optional<double> StrToNumberIntl(const OUString& s,
std::shared_ptr<SvNumberFormatter>&
rpFormatter)
{
double ret;
- if (SbxValue::ScanNumIntnl(s, ret) == ERRCODE_NONE)
+ sal_uInt16 nLen = 0;
+ bool bHasNumber = false;
+ if (ImpScan(s, ret, o3tl::temporary(SbxDataType()), &nLen, &bHasNumber,
true) == ERRCODE_NONE
+ && bHasNumber && nLen == s.getLength())
return ret;
// We couldn't detect a Basic-formatted number (including type characters
& specific exponents).
@@ -551,6 +554,11 @@ void SbxValue::Format( OUString& rRes, const OUString*
pFmt ) const
rRes = SbxBasicFormater::BasicFormatNull(pFmt ? *pFmt :
std::u16string_view{});
return;
}
+ if (eType == SbxDATE && !pFmt)
+ {
+ rRes = GetOUString();
+ return;
+ }
std::shared_ptr<SvNumberFormatter> pFormatter;
std::optional<double> number = GetNumberIntl(*this, rRes, pFormatter, pFmt
!= nullptr);
commit 468f470221efa3b704770641517bd008e22666e7
Author: Khaled Hosny <[email protected]>
AuthorDate: Thu Sep 25 16:33:09 2025 +0300
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:50 2025 +0200
tdf#168371: Disable ligatures in Impress/Draw with character spacing
This is follow up to commit:
commit b9f0caad5d9e628f82d5148dfc7d2436d32817e2
Author: Khaled Hosny <[email protected]>
Date: Tue Aug 23 04:13:28 2022 +0200
tdf#66819: Disable ligatures with character spacing
Even though editengine was applying letter spacing, when drawing with
drawinglayer, letter spacing was not propagated which caused VCL to not
disable the ligature features.
Change-Id: Ia8bf2231478720262484a757e16fe5afec3cd28e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191512
Reviewed-by: Khaled Hosny <[email protected]>
Tested-by: Jenkins
Signed-off-by: Xisco Fauli <[email protected]>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191627
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191635
diff --git a/drawinglayer/source/primitive2d/textbreakuphelper.cxx
b/drawinglayer/source/primitive2d/textbreakuphelper.cxx
index 121e44ec8759..be3887d18363 100644
--- a/drawinglayer/source/primitive2d/textbreakuphelper.cxx
+++ b/drawinglayer/source/primitive2d/textbreakuphelper.cxx
@@ -150,6 +150,7 @@ namespace drawinglayer::primitive2d
mrSource.getLocale(),
mrSource.getFontColor(),
mrSource.getTextFillColor(),
+ mrSource.getLetterSpacing(),
pTextDecoratedPortionPrimitive2D->getOverlineColor(),
pTextDecoratedPortionPrimitive2D->getTextlineColor(),
@@ -180,7 +181,9 @@ namespace drawinglayer::primitive2d
std::move(aNewKashidaArray),
mrSource.getFontAttribute(),
mrSource.getLocale(),
- mrSource.getFontColor()));
+ mrSource.getFontColor(),
+ mrSource.getTextFillColor(),
+ mrSource.getLetterSpacing()));
}
}
diff --git a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
index bfa5ebbb7eea..f3abbe41f4a2 100644
--- a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx
@@ -463,6 +463,7 @@ namespace drawinglayer::primitive2d
const css::lang::Locale& rLocale,
const basegfx::BColor& rFontColor,
const Color& rFillColor,
+ short nLetterSpacing,
// local parameters
const basegfx::BColor& rOverlineColor,
@@ -487,7 +488,8 @@ namespace drawinglayer::primitive2d
rFontAttribute,
rLocale,
rFontColor,
- rFillColor),
+ rFillColor,
+ nLetterSpacing),
maBufferedBrokenUpText(),
maBufferedDecorationGeometry(),
maOverlineColor(rOverlineColor),
diff --git a/drawinglayer/source/primitive2d/textprimitive2d.cxx
b/drawinglayer/source/primitive2d/textprimitive2d.cxx
index d08f729e3abf..09c4243a4ee5 100644
--- a/drawinglayer/source/primitive2d/textprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/textprimitive2d.cxx
@@ -206,7 +206,7 @@ TextSimplePortionPrimitive2D::TextSimplePortionPrimitive2D(
basegfx::B2DHomMatrix rNewTransform, OUString rText, sal_Int32
nTextPosition,
sal_Int32 nTextLength, std::vector<double>&& rDXArray,
std::vector<sal_Bool>&& rKashidaArray,
attribute::FontAttribute aFontAttribute, css::lang::Locale aLocale,
- const basegfx::BColor& rFontColor, const Color& rTextFillColor)
+ const basegfx::BColor& rFontColor, const Color& rTextFillColor, short
nLetterSpacing)
: maTextTransform(std::move(rNewTransform))
, maText(std::move(rText))
, mnTextPosition(nTextPosition)
@@ -217,6 +217,7 @@ TextSimplePortionPrimitive2D::TextSimplePortionPrimitive2D(
, maLocale(std::move(aLocale))
, maFontColor(rFontColor)
, maTextFillColor(rTextFillColor)
+ , mnLetterSpacing(nLetterSpacing)
{
#if OSL_DEBUG_LEVEL > 0
const sal_Int32 aStringLength(getText().getLength());
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx
b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 73e3d8adbac9..cdefe9095ad4 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -445,6 +445,9 @@ void
VclProcessor2D::RenderTextSimpleOrDecoratedPortionPrimitive2D(
basegfx::fround<tools::Long>(aPointY));
}
+ // tdf#168371 set letter spacing so that VCL knows it has to
disable ligatures
+ aFont.SetFixKerning(rTextCandidate.getLetterSpacing());
+
// tdf#152990 set the font after the MapMode is (potentially) set
so canvas uses the desired
// font size
mpOutputDevice->SetFont(aFont);
diff --git a/drawinglayer/source/tools/emfphelperdata.cxx
b/drawinglayer/source/tools/emfphelperdata.cxx
index 3d9bef482860..6346777c67e8 100644
--- a/drawinglayer/source/tools/emfphelperdata.cxx
+++ b/drawinglayer/source/tools/emfphelperdata.cxx
@@ -1707,6 +1707,7 @@ namespace emfplushelper
locale,
color.getBColor(), // Font Color
COL_TRANSPARENT, // Fill Color
+ 0,
color.getBColor(), // OverlineColor
color.getBColor(), // TextlineColor
drawinglayer::primitive2d::TEXT_LINE_NONE,
@@ -2221,6 +2222,7 @@ namespace emfplushelper
Application::GetSettings().GetLanguageTag().getLocale(),
color.getBColor(),
COL_TRANSPARENT,
+ 0,
color.getBColor(),
color.getBColor(),
drawinglayer::primitive2d::TEXT_LINE_NONE,
diff --git a/drawinglayer/source/tools/wmfemfhelper.cxx
b/drawinglayer/source/tools/wmfemfhelper.cxx
index c77c653d4ebd..00aff7114203 100644
--- a/drawinglayer/source/tools/wmfemfhelper.cxx
+++ b/drawinglayer/source/tools/wmfemfhelper.cxx
@@ -1128,6 +1128,7 @@ namespace wmfemfhelper
aLocale,
aFontColor,
aFillColor,
+ rFont.GetFixKerning(),
// attributes for TextDecoratedPortionPrimitive2D
rProperty.getOverlineColorActive() ?
rProperty.getOverlineColor() : aFontColor,
@@ -1155,7 +1156,9 @@ namespace wmfemfhelper
std::move(rKashidaArray),
std::move(aFontAttribute),
std::move(aLocale),
- aFontColor);
+ aFontColor,
+ aFillColor,
+ rFont.GetFixKerning());
}
}
diff --git a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
index 07b780b24922..c635dc93ecfe 100644
--- a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx
@@ -89,6 +89,7 @@ namespace drawinglayer::primitive2d
const css::lang::Locale& rLocale,
const basegfx::BColor& rFontColor,
const Color& rFillColor,
+ short nLetterSpacing,
/// local parameters
const basegfx::BColor& rOverlineColor,
diff --git a/include/drawinglayer/primitive2d/textprimitive2d.hxx
b/include/drawinglayer/primitive2d/textprimitive2d.hxx
index 878ef9d8291c..60ae7a2723d3 100644
--- a/include/drawinglayer/primitive2d/textprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/textprimitive2d.hxx
@@ -136,6 +136,9 @@ private:
/// #i96669# internal: add simple range buffering for this primitive
basegfx::B2DRange maB2DRange;
+ /// Letter spacing
+ short mnLetterSpacing;
+
protected:
/// local decomposition.
virtual Primitive2DReference
@@ -155,7 +158,8 @@ public:
std::vector<sal_Bool>&& rKashidaArray,
attribute::FontAttribute aFontAttribute,
css::lang::Locale aLocale,
const basegfx::BColor& rFontColor,
- const Color& rTextFillColor =
COL_TRANSPARENT);
+ const Color& rTextFillColor = COL_TRANSPARENT,
+ short nLetterSpacing = 0);
/** get text outlines as polygons and their according
ObjectTransformation. Handles all
the necessary VCL outline extractions, scaling adaptations and other
stuff.
@@ -174,6 +178,7 @@ public:
const css::lang::Locale& getLocale() const { return maLocale; }
const basegfx::BColor& getFontColor() const { return maFontColor; }
const Color& getTextFillColor() const { return maTextFillColor; }
+ short getLetterSpacing() const { return mnLetterSpacing; }
/// helpers for determining various decoration states
virtual bool hasTextRelief() const;
diff --git a/svgio/source/svgreader/svgcharacternode.cxx
b/svgio/source/svgreader/svgcharacternode.cxx
index 4e7c8e4794c5..4e24576158b7 100644
--- a/svgio/source/svgreader/svgcharacternode.cxx
+++ b/svgio/source/svgreader/svgcharacternode.cxx
@@ -408,6 +408,7 @@ namespace svgio::svgreader
std::move(aLocale),
aFill,
COL_TRANSPARENT,
+ 0,
// extra props for decorated
aDecoColor,
diff --git a/svx/source/svdraw/svdotextdecomposition.cxx
b/svx/source/svdraw/svdotextdecomposition.cxx
index d5870e4cf7f6..45bd4a7ad43b 100644
--- a/svx/source/svdraw/svdotextdecomposition.cxx
+++ b/svx/source/svdraw/svdotextdecomposition.cxx
@@ -564,6 +564,7 @@ namespace
rInfo.mpLocale ? *rInfo.mpLocale : css::lang::Locale(),
aBFontColor,
aTextFillColor,
+ rInfo.mrFont.GetFixKerning(),
// attributes for TextDecoratedPortionPrimitive2D
aBOverlineColor,
@@ -592,7 +593,8 @@ namespace
rFontAttribute,
rInfo.mpLocale ? *rInfo.mpLocale : css::lang::Locale(),
aBFontColor,
- aTextFillColor);
+ aTextFillColor,
+ rInfo.mrFont.GetFixKerning());
}
return pNewPrimitive;
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index 3e9f1eb76d3a..0713269c8f20 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -4131,9 +4131,9 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf145873)
int nPageObjectCount = pPdfPage->getObjectCount();
// tdf#145873: Without the fix #1 in place, this test would have failed
with
- // - Expected: 66
+ // - Expected: 107
// - Actual : 3
- CPPUNIT_ASSERT_EQUAL(66, nPageObjectCount);
+ CPPUNIT_ASSERT_EQUAL(107, nPageObjectCount);
auto pObject = pPdfPage->getObject(4);
CPPUNIT_ASSERT_MESSAGE("no object", pObject != nullptr);
commit be282ef591b91b952368e08e02592aecc6fb21ef
Author: Balazs Varga <[email protected]>
AuthorDate: Fri Sep 26 17:03:06 2025 +0200
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:50 2025 +0200
tdf#140866 - sc fix cell comments disappear after ods saving
They disappeared because before saving the file to ods
some other drawing objects very copied and pasted on the sheet
which caused a recalculation of all the cell anchored drawing object's
anchor position with SetCellAnchoredFromPosition since commit:
545737df40880875304bffc3f49800d1d2e99723
No need to recalculate the cell anchor position of Caption objects
since their anchor position is handled differently.
Change-Id: I83d54075974d9a7c2676af23f285e621afe0d523
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191548
Tested-by: Gabor Kelemen <[email protected]>
Tested-by: Jenkins
Reviewed-by: Balazs Varga <[email protected]>
(cherry picked from commit d932a383766b6133ffe9ebf077f95cc328807b1b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191608
Reviewed-by: Xisco Fauli <[email protected]>
(cherry picked from commit 161311deff7d1efaa7cca1f06b74df4d1b5f7efb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191620
diff --git a/sc/qa/unit/data/ods/tdf140866.ods
b/sc/qa/unit/data/ods/tdf140866.ods
new file mode 100644
index 000000000000..5b3c73161782
Binary files /dev/null and b/sc/qa/unit/data/ods/tdf140866.ods differ
diff --git a/sc/qa/unit/scshapetest.cxx b/sc/qa/unit/scshapetest.cxx
index fbea25178581..7431f13a9f1e 100644
--- a/sc/qa/unit/scshapetest.cxx
+++ b/sc/qa/unit/scshapetest.cxx
@@ -25,6 +25,7 @@
#include <drwlayer.hxx>
#include <fuconcustomshape.hxx>
#include <fuconuno.hxx>
+#include <postit.hxx>
#include <tabvwsh.hxx>
#include <userdat.hxx>
@@ -78,6 +79,17 @@ static SdrObject* lcl_getSdrObjectbyName(ScDocument& rDoc,
std::u16string_view r
return pObj;
}
+static void lcl_SelectObjectByName(ScTabViewShell& rViewShell,
std::u16string_view rObjName)
+{
+ bool bFound = rViewShell.SelectObject(rObjName);
+ CPPUNIT_ASSERT_MESSAGE(
+ OString(OUStringToOString(rObjName, RTL_TEXTENCODING_UTF8) + " not
found.").getStr(),
+ bFound);
+
+
CPPUNIT_ASSERT(rViewShell.GetViewData().GetScDrawView()->GetMarkedObjectList().GetMarkCount()
+ != 0);
+}
+
CPPUNIT_TEST_FIXTURE(ScShapeTest, testTdf144242_OpenBezier_noSwapWH)
{
// Shapes, which have rotation incorporated in their points, got
erroneously width-height
@@ -1373,6 +1385,44 @@ CPPUNIT_TEST_FIXTURE(ScShapeTest,
testTdf167450_copySheet)
CPPUNIT_ASSERT_RECTANGLE_EQUAL_WITH_TOLERANCE(aRectSource,
pObjTarget->GetLogicRect(), 1);
}
+CPPUNIT_TEST_FIXTURE(ScShapeTest, testTdf140866)
+{
+ // Load a document, which has a comment in cell $sheet2.$A$1, and a custom
shape in cell
+ // $sheet2.$B$11. When the shape from $sheet2.$B$11 was copied and pasted
to $sheet2.$D$9,
+ // the anchor position of comment is changed and after saved to ods the
comment was gone.
+ createScDoc("ods/tdf140866.ods");
+ ScDocument* pDoc = getScDoc();
+
+ // Check that we have the comment on A1
+ ScPostIt* pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+ CPPUNIT_ASSERT(pNote);
+ CPPUNIT_ASSERT_EQUAL(u"Test 1"_ustr, pNote->GetText());
+
+ goToCell(u"$Sheet2.$B$11"_ustr);
+ lcl_SelectObjectByName(*getViewShell(), u"Shape 1");
+
+ // Copy and paste
+ dispatchCommand(mxComponent, u".uno:Copy"_ustr, {});
+ goToCell(u"$Sheet2.$D$9"_ustr);
+ dispatchCommand(mxComponent, u".uno:Paste"_ustr, {});
+
+ // Check that we still have the comment on A1
+ pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+ CPPUNIT_ASSERT(pNote);
+ CPPUNIT_ASSERT_EQUAL(u"Test 1"_ustr, pNote->GetText());
+
+ // Save, reload
+ saveAndReload(u"calc8"_ustr);
+ pDoc = getScDoc();
+ // Check that we still have the comment on A1 after save&reload
+ pNote = pDoc->GetNote(ScAddress(0, 0, 0));
+ // Without the fix in place the comment was gone and test would have
failed with:
+ // assertion failed
+ // - Expression : pNote
+ CPPUNIT_ASSERT(pNote);
+ CPPUNIT_ASSERT_EQUAL(u"Test 1"_ustr, pNote->GetText());
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index d41f21e86d71..b5355bf0b0f0 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -2693,7 +2693,9 @@ bool ScDrawLayer::IsCellAnchored( const SdrObject& rObj )
{
// Cell anchored object always has a user data, to store the anchor cell
// info. If it doesn't then it's page-anchored.
- return GetFirstUserDataOfType(&rObj, SC_UD_OBJDATA) != nullptr;
+ // tdf#140866: Caption objects anchor position are handled differently.
+ return GetFirstUserDataOfType(&rObj, SC_UD_OBJDATA) != nullptr
+ && rObj.GetObjIdentifier() != SdrObjKind::Caption;
}
bool ScDrawLayer::IsResizeWithCell( const SdrObject& rObj )
commit 3b82515a9bb564bb7f9c27586635a741004ed3fd
Author: Oliver Specht <[email protected]>
AuthorDate: Thu Sep 25 07:23:05 2025 +0200
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:50 2025 +0200
tdf#167973 Fixes case rotation in selection in multiple paragraphs
Broken in commit b1170251fbca5b6b243902cf10695ab4c4c5642b because it checked
the selection in a single paragraph only.
Change-Id: If84aca87c9fee5750751cd91cb08372714f17eba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191472
Tested-by: Jenkins
Reviewed-by: Oliver Specht <[email protected]>
(cherry picked from commit bb496f5494a23c247c86fdf5ae65054908df44ce)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191601
Reviewed-by: Xisco Fauli <[email protected]>
(cherry picked from commit fd25b527b3c03f20050aad763b8eb18982f018c0)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191614
diff --git a/sw/source/uibase/shells/textsh.cxx
b/sw/source/uibase/shells/textsh.cxx
index cfd2d3a8ac45..ca3ad0f88fe7 100644
--- a/sw/source/uibase/shells/textsh.cxx
+++ b/sw/source/uibase/shells/textsh.cxx
@@ -896,7 +896,9 @@ void SwTextShell::ExecRotateTransliteration( SfxRequest&
rReq )
{
if (bSentenceCase)
{
- OUString aSelection = rSh.GetSelText().trim();
+ OUString aSelection;
+ rSh.GetSelectedText(aSelection);
+ aSelection = aSelection.trim();
if (aSelection.getLength() <= 2 || (aSelection.indexOf(' ') <
0 && aSelection.indexOf(' ') < 0))
transFlags = m_aRotateCase.getNextMode();
}
commit 0fe4c7040f6f2ccbbfe618be5d85f0104d895376
Author: Xisco Fauli <[email protected]>
AuthorDate: Thu Sep 11 10:06:08 2025 +0200
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:50 2025 +0200
mariadb-connector-c: upgrade to 3.3.17
c23.patch.0 has been fixed upstream
Downloaded from
https://dlm.mariadb.com/4441363/Connectors/c/connector-c-3.3.17/mariadb-connector-c-3.3.17-src.tar.gz
Change-Id: Idf813aa383f22b8ae22ac92e23fc0ffa78050f38
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190795
Reviewed-by: Xisco Fauli <[email protected]>
Tested-by: Jenkins
Signed-off-by: Xisco Fauli <[email protected]>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190809
Reviewed-by: Taichi Haradaguchi <[email protected]>
diff --git a/download.lst b/download.lst
index 0a54265cb57b..8c36f6e296e1 100644
--- a/download.lst
+++ b/download.lst
@@ -549,8 +549,8 @@ LXML_TARBALL := lxml-5.4.0.tar.gz
# three static lines
# so that git cherry-pick
# will not run into conflicts
-MARIADB_CONNECTOR_C_SHA256SUM :=
b593fdd3d5b8964a9feec2bf57a13e6cc8f178a4fe948e89f60ede9c53d621fe
-MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.15-src.tar.gz
+MARIADB_CONNECTOR_C_SHA256SUM :=
a5abb7331508988f7287b481c1839bd929261ce38352cd0fde6c002c300e0c01
+MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.17-src.tar.gz
# three static lines
# so that git cherry-pick
# will not run into conflicts
diff --git
a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
index 2cbce8b00032..36b44dde8871 100644
--- a/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
+++ b/external/mariadb-connector-c/UnpackedTarball_mariadb-connector-c.mk
@@ -31,7 +31,6 @@ $(eval $(call
gb_UnpackedTarball_set_patchlevel,mariadb-connector-c,1))
$(eval $(call gb_UnpackedTarball_add_patches,mariadb-connector-c,\
external/mariadb-connector-c/clang-cl.patch.0 \
- external/mariadb-connector-c/c23.patch.0 \
external/mariadb-connector-c/0001-const-up-my_uca1400_collation_definitions.patch
\
external/mariadb-connector-c/0001-const-up-mariadb_defaults-and-MADB_OS_CHARSET.patch
\
))
diff --git a/external/mariadb-connector-c/c23.patch.0
b/external/mariadb-connector-c/c23.patch.0
deleted file mode 100644
index d19d6be4cdae..000000000000
--- a/external/mariadb-connector-c/c23.patch.0
+++ /dev/null
@@ -1,11 +0,0 @@
---- include/ma_global.h
-+++ include/ma_global.h
-@@ -683,7 +683,7 @@
- typedef int myf; /* Type of MyFlags in my_funcs */
- typedef char my_bool; /* Small bool */
- typedef unsigned long long my_ulonglong;
--#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) ||
!defined(__cplusplus))
-+#if !defined(bool) && !defined(bool_defined) && !(defined(__cplusplus) ||
__STDC_VERSION__ >= 202311L)
- typedef char bool; /* Ordinary boolean values 0 1 */
- #endif
- /* Macros for converting *constants* to the right type */
commit a0759871a22d0e6c89187daf75046a8f00b9a184
Author: Laurent Balland <[email protected]>
AuthorDate: Sat Sep 27 13:25:54 2025 +0200
Commit: Andras Timar <[email protected]>
CommitDate: Tue Sep 30 12:54:50 2025 +0200
tdf#168571 Restore gradient in Candy template
draw:fill-gradient-name requires draw:fill="gradient"
Change-Id: I3646b683486317e804adccb9faf994742fe1fb0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191562
Reviewed-by: Laurent Balland <[email protected]>
Tested-by: Jenkins
(cherry picked from commit 771a93e3be34dfbd77b4dbba407caa9677090488)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191569
Reviewed-by: Adolfo Jayme Barrientos <[email protected]>
(cherry picked from commit a5dc5761eedf7dc8e33fc9cd2a0817c682c7270d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191581
Reviewed-by: Xisco Fauli <[email protected]>
diff --git a/extras/source/templates/presnt/Candy/styles.xml
b/extras/source/templates/presnt/Candy/styles.xml
index 1873988c52d7..199fc77a5207 100644
--- a/extras/source/templates/presnt/Candy/styles.xml
+++ b/extras/source/templates/presnt/Candy/styles.xml
@@ -185,19 +185,19 @@
<style:text-properties fo:color="#000000" loext:opacity="100%"/>
</style:style>
<style:style style:name="Filled_20_Blue_20_Cyan"
style:display-name="Filled Blue Cyan" style:family="graphic"
style:parent-style-name="Filled">
- <style:graphic-properties
draw:fill-gradient-name="Filled_20_Blue_20_Cyan"/>
+ <style:graphic-properties draw:fill="gradient"
draw:fill-gradient-name="Filled_20_Blue_20_Cyan"/>
<style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
</style:style>
<style:style style:name="Filled_20_Cyan_20_Red" style:display-name="Filled
Cyan Red" style:family="graphic" style:parent-style-name="Filled">
- <style:graphic-properties
draw:fill-gradient-name="Filled_20_Cyan_20_Red"/>
+ <style:graphic-properties draw:fill="gradient"
draw:fill-gradient-name="Filled_20_Cyan_20_Red"/>
<style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
</style:style>
<style:style style:name="Filled_20_Red_20_Orange"
style:display-name="Filled Red Orange" style:family="graphic"
style:parent-style-name="Filled">
- <style:graphic-properties
draw:fill-gradient-name="Filled_20_Red_20_Orange"/>
+ <style:graphic-properties draw:fill="gradient"
draw:fill-gradient-name="Filled_20_Red_20_Orange"/>
<style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
</style:style>
<style:style style:name="Filled_20_Orange_20_Yellow"
style:display-name="Filled Orange Yellow" style:family="graphic"
style:parent-style-name="Filled">
- <style:graphic-properties
draw:fill-gradient-name="Filled_20_Orange_20_Yellow"/>
+ <style:graphic-properties draw:fill="gradient"
draw:fill-gradient-name="Filled_20_Orange_20_Yellow"/>
<style:text-properties fo:color="#ffffff" loext:opacity="100%"/>
</style:style>
<style:style style:name="Outlined" style:family="graphic"
style:parent-style-name="Shapes">