core.git: download.lst external/libgpg-error

2024-04-26 Thread Xisco Fauli (via logerrit)
 download.lst  |4 ++--
 external/libgpg-error/ExternalPackage_libgpg-error.mk |2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit a5d75f487592d17c02fccbf21a0edef437067f30
Author: Xisco Fauli 
AuthorDate: Fri Apr 26 09:50:09 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri Apr 26 12:47:24 2024 +0200

libgpg-error: Upgrade to 1.49

Change-Id: I1bd83294e58952ebdbaaf0362bd8675c1911b9be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166697
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index df1a213bbb95..28538879f5ec 100644
--- a/download.lst
+++ b/download.lst
@@ -394,8 +394,8 @@ LIBFFI_TARBALL := libffi-3.4.4.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBGPGERROR_SHA256SUM := 
89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f
-LIBGPGERROR_TARBALL := libgpg-error-1.48.tar.bz2
+LIBGPGERROR_SHA256SUM := 
8b79d54639dbf4abc08b5406fb2f37e669a2dec091dd024fb87dd367131c63a9
+LIBGPGERROR_TARBALL := libgpg-error-1.49.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libgpg-error/ExternalPackage_libgpg-error.mk 
b/external/libgpg-error/ExternalPackage_libgpg-error.mk
index 2c64ba3b5cc6..262675acf6e6 100644
--- a/external/libgpg-error/ExternalPackage_libgpg-error.mk
+++ b/external/libgpg-error/ExternalPackage_libgpg-error.mk
@@ -15,7 +15,7 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
 
 ifeq ($(OS),LINUX)
 
-$(eval $(call 
gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.35.0))
+$(eval $(call 
gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.36.0))
 
 else ifeq ($(OS),MACOSX)
 


core.git: sw/source

2024-04-26 Thread Xisco Fauli (via logerrit)
 sw/source/core/access/accfrmobj.cxx  |   15 ++-
 sw/source/core/doc/docdraw.cxx   |   12 +++
 sw/source/core/draw/dview.cxx|  108 ---
 sw/source/core/frmedt/fecopy.cxx |   25 +++---
 sw/source/core/frmedt/fefly1.cxx |   13 ++-
 sw/source/core/frmedt/feshview.cxx   |   37 ++---
 sw/source/core/layout/anchoreddrawobject.cxx |4 +
 sw/source/core/layout/anchoredobject.cxx |   11 +-
 sw/source/core/layout/fly.cxx|4 -
 sw/source/core/layout/flylay.cxx |   41 +-
 sw/source/core/layout/frmtool.cxx|   40 ++
 sw/source/core/layout/pagechg.cxx|   19 ++--
 sw/source/core/layout/trvlfrm.cxx|   39 +
 sw/source/core/txtnode/atrflyin.cxx  |3 
 sw/source/core/undo/undraw.cxx   |   31 ---
 15 files changed, 242 insertions(+), 160 deletions(-)

New commits:
commit 495b5db74f0db59395ff68bacc8d8ca67595b66e
Author: Xisco Fauli 
AuthorDate: Thu Apr 25 18:15:12 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri Apr 26 09:25:23 2024 +0200

sw: check GetUserCall

It might return nullptr
See 
https://crashreport.libreoffice.org/stats/signature/SwFEShell::ShouldObjectBeSelected(Point%20const%20&)

Change-Id: Ia0ed355a7eb9084b9f57163ffbfe6b549c8bdb3f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166642
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sw/source/core/access/accfrmobj.cxx 
b/sw/source/core/access/accfrmobj.cxx
index f78dc2d155db..004ca4ab94e0 100644
--- a/sw/source/core/access/accfrmobj.cxx
+++ b/sw/source/core/access/accfrmobj.cxx
@@ -240,13 +240,16 @@ SwRect SwAccessibleChild::GetBox( const SwAccessibleMap& 
rAccMap ) const
 // by the mpFrame case above b) for genuine SdrObject this must be set
 // if it's connected to layout
 assert(dynamic_cast(pContact));
-SwPageFrame const*const pPage(const_cast(
-pContact->GetAnchoredObj(mpDrawObj))->FindPageFrameOfAnchor());
-if (pPage) // may end up here with partial layout -> not visible
+if (pContact)
 {
-aBox = SwRect( mpDrawObj->GetCurrentBoundRect() );
-// tdf#91260 drawing object may be partially off-page
-aBox.Intersection(pPage->getFrameArea());
+SwPageFrame const*const pPage(const_cast(
+pContact->GetAnchoredObj(mpDrawObj))->FindPageFrameOfAnchor());
+if (pPage) // may end up here with partial layout -> not visible
+{
+aBox = SwRect( mpDrawObj->GetCurrentBoundRect() );
+// tdf#91260 drawing object may be partially off-page
+aBox.Intersection(pPage->getFrameArea());
+}
 }
 }
 else if ( mpWindow )
diff --git a/sw/source/core/doc/docdraw.cxx b/sw/source/core/doc/docdraw.cxx
index f5a37d00ab21..1a3bed4e4c0c 100644
--- a/sw/source/core/doc/docdraw.cxx
+++ b/sw/source/core/doc/docdraw.cxx
@@ -67,6 +67,9 @@ static void lcl_AdjustPositioningAttr( SwDrawFrameFormat* 
_pFrameFormat,
 const SwContact* pContact = GetUserCall( &_rSdrObj );
 OSL_ENSURE( pContact, " - missing contact 
object." );
 
+if (!pContact)
+return;
+
 // determine position of new group object relative to its anchor frame 
position
 SwTwips nHoriRelPos = 0;
 SwTwips nVertRelPos = 0;
@@ -194,6 +197,9 @@ SwDrawContact* SwDoc::GroupSelection( SdrView& rDrawView )
 
 // Revoke anchor attribute.
 SwDrawContact *pMyContact = 
static_cast(GetUserCall(pObj));
+if (!pMyContact)
+return pNewContact;
+
 const SwFormatAnchor aAnch( pMyContact->GetFormat()->GetAnchor() );
 
 std::unique_ptr pUndo;
@@ -215,6 +221,9 @@ SwDrawContact* SwDoc::GroupSelection( SdrView& rDrawView )
 pObj = rMrkList.GetMark( i )->GetMarkedSdrObj();
 SwDrawContact *pContact = 
static_cast(GetUserCall(pObj));
 
+if (!pContact)
+continue;
+
 // #i53320#
 #if OSL_DEBUG_LEVEL > 0
 SwAnchoredDrawObject* pAnchoredDrawObj =
@@ -351,6 +360,9 @@ void SwDoc::UnGroupSelection( SdrView& rDrawView )
 {
 SwDrawContact *pContact = 
static_cast(GetUserCall(pObj));
 
+if (!pContact)
+continue;
+
 std::shared_ptr pTextBoxNode;
 if (auto pGroupFormat = pContact->GetFormat())
 pTextBoxNode = pGroupFormat->GetOtherTextBoxFormats();
diff --git a/sw/source/core/draw/dview.cxx b/sw/source/core/draw/dview.cxx
index 21e557b886e4..d95dc0d17af9 100644
--- a/sw/source/core/draw/dview.cxx
+++ b/sw/source/core/draw/dview.cxx
@@ -212,10 +212,14 @@ void SwDrawView::AddCustomHdl()
 {
 const SdrMarkList  = GetMarkedObjectList();
 
-if(rMrkList.GetMarkCount() != 1 || 

core.git: Branch 'libreoffice-24-2' - download.lst

2024-04-26 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 2dd760424554d597eb93fb6bc96ffddc9c5f1b18
Author: Xisco Fauli 
AuthorDate: Wed Apr 24 18:26:20 2024 +0200
Commit: Adolfo Jayme Barrientos 
CommitDate: Fri Apr 26 09:13:13 2024 +0200

NotoSansHebrew: upgrade to v2.004

Change-Id: I5f58bc02b35c5995ba8af3f24f448f45dbb378bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166522
Reviewed-by: Adolfo Jayme Barrientos 
Tested-by: Jenkins

diff --git a/download.lst b/download.lst
index a84796bd26e0..40384de2b66d 100644
--- a/download.lst
+++ b/download.lst
@@ -192,8 +192,8 @@ FONT_NOTO_NASKH_ARABIC_TARBALL := NotoNaskhArabic-v2.016.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-FONT_NOTO_SANS_HEBREW_SHA256SUM := 
ded809309ff924bc45834bf19afaa5693cadf17580972468f6041f5e599ddb8a
-FONT_NOTO_SANS_HEBREW_TARBALL := NotoSansHebrew-v2.003.zip
+FONT_NOTO_SANS_HEBREW_SHA256SUM := 
54b5b06b466f4de8ec8e8f988877e297ead271419f6646527046638e434815fe
+FONT_NOTO_SANS_HEBREW_TARBALL := NotoSansHebrew-v2.004.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: svx/source

2024-04-25 Thread Xisco Fauli (via logerrit)
 svx/source/dialog/svxruler.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 90548039f09d4bc773bf6879a62d544adfa175db
Author: Xisco Fauli 
AuthorDate: Thu Apr 25 15:52:29 2024 +0200
Commit: Caolán McNamara 
CommitDate: Thu Apr 25 20:47:41 2024 +0200

svx: Avoid divide by 0

See 
https://crashreport.libreoffice.org/stats/signature/SvxRuler::UpdateTabs()

Change-Id: Ie08c54d1a1b40bcc42da9f81c893f496fff433a8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166626
Tested-by: Jenkins
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/svx/source/dialog/svxruler.cxx b/svx/source/dialog/svxruler.cxx
index 6323583fd271..17c4edaa930d 100644
--- a/svx/source/dialog/svxruler.cxx
+++ b/svx/source/dialog/svxruler.cxx
@@ -1033,7 +1033,7 @@ void SvxRuler::UpdateTabs()
 lCurrentDefTabDist = mxTabStopItem->GetDefaultDistance();
 tools::Long nDefTabDist = ConvertHPosPixel(lCurrentDefTabDist);
 
-const sal_uInt16 nDefTabBuf = lPosPixel > lRightIndent || lLastTab > 
lRightIndent
+const sal_uInt16 nDefTabBuf = lPosPixel > lRightIndent || lLastTab > 
lRightIndent || nDefTabDist == 0
 ? 0
 : static_cast( (lRightIndent - lPosPixel) / 
nDefTabDist );
 


core.git: 2 commits - download.lst svgio/qa

2024-04-25 Thread Xisco Fauli (via logerrit)
 download.lst   |4 ++--
 svgio/qa/cppunit/SvgImportTest.cxx |   18 +++---
 2 files changed, 9 insertions(+), 13 deletions(-)

New commits:
commit 0669ab8167fdbe759061d5f8a230560392b53811
Author: Xisco Fauli 
AuthorDate: Wed Apr 24 18:26:20 2024 +0200
Commit: Xisco Fauli 
CommitDate: Thu Apr 25 09:21:09 2024 +0200

NotoSansHebrew: upgrade to v2.004

Change-Id: I5f58bc02b35c5995ba8af3f24f448f45dbb378bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166603
Reviewed-by: Xisco Fauli 
Tested-by: Jenkins

diff --git a/download.lst b/download.lst
index cf984726c09e..9989521f9094 100644
--- a/download.lst
+++ b/download.lst
@@ -192,8 +192,8 @@ FONT_NOTO_NASKH_ARABIC_TARBALL := NotoNaskhArabic-v2.018.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-FONT_NOTO_SANS_HEBREW_SHA256SUM := 
ded809309ff924bc45834bf19afaa5693cadf17580972468f6041f5e599ddb8a
-FONT_NOTO_SANS_HEBREW_TARBALL := NotoSansHebrew-v2.003.zip
+FONT_NOTO_SANS_HEBREW_SHA256SUM := 
54b5b06b466f4de8ec8e8f988877e297ead271419f6646527046638e434815fe
+FONT_NOTO_SANS_HEBREW_TARBALL := NotoSansHebrew-v2.004.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit 99757f5e3a0a56370e035c14f38f5ccde3902e2c
Author: Xisco Fauli 
AuthorDate: Wed Apr 24 17:50:23 2024 +0200
Commit: Xisco Fauli 
CommitDate: Thu Apr 25 09:21:03 2024 +0200

CppunitTest_svgio: fix mid-air collision

it was caused by 98935eef13c7d755221d79fe7d3c5869a40a7c37
"tdf#159661, tdf#160773: svgio: Add unittest"
and 7f64148507a360825e9c28ddb7077996df9fa092
"Fix a thinko in 8a97f1ba8d9ccb65b2c89106de20666311d90c30"

This partially reverts d984836834e67b5bcd618ebd5d1633138985a881
"Fix unit test after commit 98935eef13c7d755221d79fe7d3c5869a40a7c37"

Kudos to Mike for keeping Jenkins happy

Change-Id: I034759b2cd95cbaaeb84ec1b528bf5b61487a1e0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166591
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 080580fd8589..01463a894dd5 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -1585,20 +1585,16 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf160773)
 {
 xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf160773.svg");
 
-const bool hasMask = countXPathNodes(pDocument, 
"/primitive2D/transform/mask"_ostr) > 0;
-const OString aXPath = hasMask ? 
"/primitive2D/transform/mask/transform"_ostr
-   : "/primitive2D/transform/transform"_ostr;
-
 // tdf#160773 Check there is a rectangle
-assertXPath(pDocument, aXPath + "/polypolygoncolor", "color"_ostr, 
"#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/polypolygoncolor"_ostr, "color"_ostr, 
"#ff");
 
 // tdf#159661 Check there is text in the right position
-assertXPath(pDocument, aXPath + "/textsimpleportion"_ostr, 1);
-assertXPath(pDocument, aXPath + "/textsimpleportion"_ostr, "x"_ostr, "0");
-assertXPath(pDocument, aXPath + "/textsimpleportion"_ostr, "y"_ostr, "1");
-assertXPath(pDocument, aXPath + "/textsimpleportion"_ostr, "height"_ostr, 
"0");
-assertXPath(pDocument, aXPath + "/textsimpleportion"_ostr, "width"_ostr, 
"0");
-assertXPath(pDocument, aXPath + "/textsimpleportion"_ostr, "text"_ostr, 
"Red");
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/textsimpleportion"_ostr, 1);
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/textsimpleportion"_ostr, "x"_ostr, "0");
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/textsimpleportion"_ostr, "y"_ostr, "1");
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/textsimpleportion"_ostr, "height"_ostr, 
"0");
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/textsimpleportion"_ostr, "width"_ostr, 
"0");
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/textsimpleportion"_ostr, "text"_ostr, 
"Red");
 }
 
 CPPUNIT_TEST_FIXTURE(Test, testTdf156271)


core.git: Branch 'libreoffice-24-2' - download.lst

2024-04-25 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 644450951361025398cc8a4aeaab670eb33b0131
Author: Xisco Fauli 
AuthorDate: Wed Apr 24 17:43:27 2024 +0200
Commit: Adolfo Jayme Barrientos 
CommitDate: Thu Apr 25 08:59:42 2024 +0200

NotoSerifHebrew: upgrade to v2.004

Change-Id: I857889598ad68902635e2dd349118c503a4fa70f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166590
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit e835642a93b6e63f168333dea1b4bc8c26275218)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166521
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/download.lst b/download.lst
index 0f16c450c5cd..a84796bd26e0 100644
--- a/download.lst
+++ b/download.lst
@@ -177,8 +177,8 @@ FONT_NOTO_SERIF_TARBALL := NotoSerif-v2.012.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-FONT_NOTO_SERIF_HEBREW_SHA256SUM := 
e45c149d6c29b38b8981401f875ab4304e73a366312783c41c082eb5366d3921
-FONT_NOTO_SERIF_HEBREW_TARBALL := NotoSerifHebrew-v2.003.zip
+FONT_NOTO_SERIF_HEBREW_SHA256SUM := 
99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da
+FONT_NOTO_SERIF_HEBREW_TARBALL := NotoSerifHebrew-v2.004.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-04-24 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit e835642a93b6e63f168333dea1b4bc8c26275218
Author: Xisco Fauli 
AuthorDate: Wed Apr 24 17:43:27 2024 +0200
Commit: Xisco Fauli 
CommitDate: Wed Apr 24 19:07:28 2024 +0200

NotoSerifHebrew: upgrade to v2.004

Change-Id: I857889598ad68902635e2dd349118c503a4fa70f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166590
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index f3086c5cc3cb..cf984726c09e 100644
--- a/download.lst
+++ b/download.lst
@@ -177,8 +177,8 @@ FONT_NOTO_SERIF_TARBALL := NotoSerif-v2.013.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-FONT_NOTO_SERIF_HEBREW_SHA256SUM := 
e45c149d6c29b38b8981401f875ab4304e73a366312783c41c082eb5366d3921
-FONT_NOTO_SERIF_HEBREW_TARBALL := NotoSerifHebrew-v2.003.zip
+FONT_NOTO_SERIF_HEBREW_SHA256SUM := 
99523f4f21051495f18cbd5169ed0d1e9b395eefe770fece1844a4a7a00c46da
+FONT_NOTO_SERIF_HEBREW_TARBALL := NotoSerifHebrew-v2.004.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: include/vcl vcl/source

2024-04-24 Thread Xisco Fauli (via logerrit)
 include/vcl/BitmapTools.hxx   |3 
 vcl/source/bitmap/BitmapArithmeticBlendFilter.cxx |   71 ++---
 vcl/source/bitmap/BitmapDarkenBlendFilter.cxx |   73 ++
 vcl/source/bitmap/BitmapLightenBlendFilter.cxx|   73 ++
 vcl/source/bitmap/BitmapMultiplyBlendFilter.cxx   |   73 ++
 vcl/source/bitmap/BitmapNormalBlendFilter.cxx |   69 ++--
 vcl/source/bitmap/BitmapScreenBlendFilter.cxx |   69 ++--
 vcl/source/bitmap/BitmapTools.cxx |   14 
 8 files changed, 138 insertions(+), 307 deletions(-)

New commits:
commit 9c079eec689c9df295d8eb1770e90cca2060b98b
Author: Xisco Fauli 
AuthorDate: Wed Apr 24 13:23:11 2024 +0200
Commit: Xisco Fauli 
CommitDate: Wed Apr 24 15:28:45 2024 +0200

vcl: Factor out common code and simplify

Change-Id: I836c8f85474dc564efa3ca781f47a25e1d8c55fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166582
Reviewed-by: Xisco Fauli 
Tested-by: Jenkins

diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx
index d321d2be79a3..4582f7305ee9 100644
--- a/include/vcl/BitmapTools.hxx
+++ b/include/vcl/BitmapTools.hxx
@@ -97,6 +97,9 @@ VCL_DLLPUBLIC bool convertBitmap32To24Plus8(BitmapEx const & 
rInput, BitmapEx &
 VCL_DLLPUBLIC Bitmap GetDownsampledBitmap(Size const& rDstSizeTwip, Point 
const& rSrcPt, Size const& rSrcSz,
 Bitmap const& rBmp, tools::Long nMaxBmpDPIX, 
tools::Long nMaxBmpDPIY);
 
+BitmapColor premultiply(const BitmapColor c);
+BitmapColor unpremultiply(const BitmapColor c);
+
 } // end vcl::bitmap
 
 #endif // INCLUDED_VCL_BITMAP_TOOLS_HXX
diff --git a/vcl/source/bitmap/BitmapArithmeticBlendFilter.cxx 
b/vcl/source/bitmap/BitmapArithmeticBlendFilter.cxx
index da52a436b6f6..d46b7bc9bd74 100644
--- a/vcl/source/bitmap/BitmapArithmeticBlendFilter.cxx
+++ b/vcl/source/bitmap/BitmapArithmeticBlendFilter.cxx
@@ -32,20 +32,6 @@ static sal_uInt8 lcl_calculate(sal_uInt8 aColor, sal_uInt8 
aColor2, double aK1,
 return std::clamp(result, 0.0, 1.0) * 255.0;
 }
 
-static BitmapColor premultiply(const BitmapColor c)
-{
-return BitmapColor(ColorAlpha, vcl::bitmap::premultiply(c.GetRed(), 
c.GetAlpha()),
-   vcl::bitmap::premultiply(c.GetGreen(), c.GetAlpha()),
-   vcl::bitmap::premultiply(c.GetBlue(), c.GetAlpha()), 
c.GetAlpha());
-}
-
-static BitmapColor unpremultiply(const BitmapColor c)
-{
-return BitmapColor(ColorAlpha, vcl::bitmap::unpremultiply(c.GetRed(), 
c.GetAlpha()),
-   vcl::bitmap::unpremultiply(c.GetGreen(), c.GetAlpha()),
-   vcl::bitmap::unpremultiply(c.GetBlue(), c.GetAlpha()), 
c.GetAlpha());
-}
-
 BitmapEx BitmapArithmeticBlendFilter::execute(double aK1, double aK2, double 
aK3, double aK4)
 {
 if (maBitmapEx.IsEmpty() || maBitmapEx2.IsEmpty())
@@ -56,49 +42,34 @@ BitmapEx BitmapArithmeticBlendFilter::execute(double aK1, 
double aK2, double aK3
 sal_Int32 nHeight = std::min(aSize.getHeight(), aSize2.getHeight());
 sal_Int32 nWidth = std::min(aSize.getWidth(), aSize2.getWidth());
 
-BitmapScopedReadAccess pReadAccess(maBitmapEx.GetBitmap());
-Bitmap aDstBitmap(Size(nWidth, nHeight), 
maBitmapEx.GetBitmap().getPixelFormat(),
-  >GetPalette());
+Bitmap aDstBitmap(Size(nWidth, nHeight), vcl::PixelFormat::N24_BPP);
 Bitmap aDstAlpha(AlphaMask(Size(nWidth, nHeight)).GetBitmap());
 
-{
-// just to be on the safe side: let the
-// ScopedAccessors get destructed before
-// copy-constructing the resulting bitmap. This will
-// rule out the possibility that cached accessor data
-// is not yet written back.
+BitmapScopedWriteAccess pWriteAccess(aDstBitmap);
+BitmapScopedWriteAccess pAlphaWriteAccess(aDstAlpha);
 
-BitmapScopedWriteAccess pWriteAccess(aDstBitmap);
-BitmapScopedWriteAccess pAlphaWriteAccess(aDstAlpha);
-
-if (pWriteAccess.get() != nullptr && pAlphaWriteAccess.get() != 
nullptr)
-{
-for (tools::Long y(0); y < nHeight; ++y)
-{
-Scanline pScanline = pWriteAccess->GetScanline(y);
-Scanline pScanAlpha = pAlphaWriteAccess->GetScanline(y);
-for (tools::Long x(0); x < nWidth; ++x)
-{
-BitmapColor i1 = premultiply(maBitmapEx.GetPixelColor(x, 
y));
-BitmapColor i2 = premultiply(maBitmapEx2.GetPixelColor(x, 
y));
-sal_uInt8 r(lcl_calculate(i1.GetRed(), i2.GetRed(), aK1, 
aK2, aK3, aK4));
-sal_uInt8 g(lcl_calculate(i1.GetGreen(), i2.GetGreen(), 
aK1, aK2, aK3, aK4));
-sal_uInt8 b(lcl_calculate(i1.GetBlue(), i2.GetBlue(), aK1, 
aK2, aK3, aK4));
-sal_uInt8 a(lcl_calculate(i1.GetAlpha(), i2.GetAlpha(), 
aK1, aK2, aK3, 

core.git: svgio/qa

2024-04-23 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx  |   16 
 svgio/qa/cppunit/data/tdf160773.svg |5 +
 2 files changed, 21 insertions(+)

New commits:
commit 98935eef13c7d755221d79fe7d3c5869a40a7c37
Author: Xisco Fauli 
AuthorDate: Tue Apr 23 11:54:47 2024 +0200
Commit: Xisco Fauli 
CommitDate: Tue Apr 23 14:05:04 2024 +0200

tdf#159661, tdf#160773: svgio: Add unittest

Change-Id: I2d0b96f13e02ac81b97ea347889c76770c22a989
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166509
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 817980d00421..ee9a61deebc3 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -1581,6 +1581,22 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156837)
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[2]"_ostr, 
"text"_ostr, "3");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf160773)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf160773.svg");
+
+// tdf#160773 Check there is a rectangle
+assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor"_ostr, "color"_ostr, 
"#ff");
+
+// tdf#159661 Check there is text in the right position
+assertXPath(pDocument, 
"/primitive2D/transform/transform/textsimpleportion"_ostr, 1);
+assertXPath(pDocument, 
"/primitive2D/transform/transform/textsimpleportion"_ostr, "x"_ostr, "0");
+assertXPath(pDocument, 
"/primitive2D/transform/transform/textsimpleportion"_ostr, "y"_ostr, "1");
+assertXPath(pDocument, 
"/primitive2D/transform/transform/textsimpleportion"_ostr, "height"_ostr, "0");
+assertXPath(pDocument, 
"/primitive2D/transform/transform/textsimpleportion"_ostr, "width"_ostr, "0");
+assertXPath(pDocument, 
"/primitive2D/transform/transform/textsimpleportion"_ostr, "text"_ostr, "Red");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf156271)
 {
 xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf156271.svg");
diff --git a/svgio/qa/cppunit/data/tdf160773.svg 
b/svgio/qa/cppunit/data/tdf160773.svg
new file mode 100644
index ..812c0824862c
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf160773.svg
@@ -0,0 +1,5 @@
+
+http://www.w3.org/2000/svg;>
+   Red
+   
+


core.git: include/vcl svgio/qa svgio/source vcl/Library_vcl.mk vcl/qa vcl/source

2024-04-22 Thread Xisco Fauli (via logerrit)
 include/vcl/BitmapNormalBlendFilter.hxx   |   29 ++
 svgio/qa/cppunit/SvgImportTest.cxx|   60 
 svgio/source/svgreader/svgfeblendnode.cxx |  124 --
 vcl/Library_vcl.mk|1 
 vcl/qa/cppunit/BitmapFilterTest.cxx   |   57 +++
 vcl/source/bitmap/BitmapNormalBlendFilter.cxx |  104 +
 6 files changed, 294 insertions(+), 81 deletions(-)

New commits:
commit 851f60697d32849454528e5f14ed80446b330e0c
Author: Xisco Fauli 
AuthorDate: Mon Apr 22 16:38:35 2024 +0200
Commit: Xisco Fauli 
CommitDate: Mon Apr 22 18:43:08 2024 +0200

tdf#159660: also add normal blend filter

Change-Id: I3edc7495975618357f002536857a11dcc72cc0b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166460
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/include/vcl/BitmapNormalBlendFilter.hxx 
b/include/vcl/BitmapNormalBlendFilter.hxx
new file mode 100644
index ..f89ea848d5cc
--- /dev/null
+++ b/include/vcl/BitmapNormalBlendFilter.hxx
@@ -0,0 +1,29 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+
+#ifndef INCLUDED_VCL_BITMAPNORMALBLENDFILTER_HXX
+#define INCLUDED_VCL_BITMAPNORMALBLENDFILTER_HXX
+
+#include 
+
+class VCL_DLLPUBLIC BitmapNormalBlendFilter
+{
+private:
+BitmapEx maBitmapEx;
+BitmapEx maBitmapEx2;
+
+public:
+BitmapNormalBlendFilter(BitmapEx const& rBmpEx, BitmapEx const& rBmpEx2);
+
+virtual ~BitmapNormalBlendFilter();
+BitmapEx execute();
+};
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 31eb63c6075b..817980d00421 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -176,24 +176,48 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf155819)
 assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 4);
 }
 
-CPPUNIT_TEST_FIXTURE(Test, testFilterFeBlend)
-{
-xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/filterFeBlend.svg");
-
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]"_ostr, "color"_ostr, 
"#8a2be2");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"height"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"width"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"minx"_ostr, "70");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"miny"_ostr, "70");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"maxx"_ostr, "170");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"maxy"_ostr, "170");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]"_ostr, "color"_ostr, 
"#ffd700");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"height"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"width"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"minx"_ostr, "30");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"miny"_ostr, "30");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"maxx"_ostr, "130");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"maxy"_ostr, "130");
+CPPUNIT_TEST_FIXTURE(Test, testNormalBlend)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/normalBlend.svg");
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "height"_ostr, 
"170");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "width"_ostr, 
"170");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap/data"_ostr, 170);
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy11"_ostr, 
"170");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy12"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy13"_ostr, "0");
+assertXPath(pDocument,
+

core.git: drawinglayer/source include/drawinglayer svgio/qa svgio/source

2024-04-22 Thread Xisco Fauli (via logerrit)
 drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx |3 
 drawinglayer/source/primitive2d/glowprimitive2d.cxx  |3 
 drawinglayer/source/primitive2d/patternfillprimitive2d.cxx   |6 
 drawinglayer/source/primitive2d/shadowprimitive2d.cxx|3 
 drawinglayer/source/primitive2d/softedgeprimitive2d.cxx  |3 
 drawinglayer/source/processor2d/d2dpixelprocessor2d.cxx  |5 
 drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx   |8 -
 drawinglayer/source/tools/converters.cxx |   24 +--
 include/drawinglayer/converters.hxx  |8 -
 svgio/qa/cppunit/SvgImportTest.cxx   |   76 ---
 svgio/qa/cppunit/data/tdf160782.svg  |   43 ++
 svgio/source/svgreader/svgfeblendnode.cxx|   24 +--
 svgio/source/svgreader/svgfecompositenode.cxx|   24 +--
 13 files changed, 151 insertions(+), 79 deletions(-)

New commits:
commit 1097686ebddd48b78816d87524caadd17b788c23
Author: Xisco Fauli 
AuthorDate: Mon Apr 22 15:30:05 2024 +0200
Commit: Xisco Fauli 
CommitDate: Mon Apr 22 17:38:15 2024 +0200

tdf#160782: convert to bitmapEx from 0,0 to width,height

This is the way it's done everywhere.
Partially revert 4b6e0f2c88debaedb514c868e061c21e15215b6e
"tdf#160726, tdf#48062: Simplify how BitmapExs are created"

Change-Id: I15fea0b6855a65da7cb48b24fc00ba303e33dcf8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166456
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx 
b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
index e50e59a1d76d..22a20f095d24 100644
--- a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
+++ b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
@@ -147,7 +147,8 @@ namespace drawinglayer::unorenderer
 convertToBitmapEx(
 std::move(xEmbedSeq),
 aViewInformation2D,
-basegfx::B2DRange(0, 0, nDiscreteWidth, 
nDiscreteHeight),
+nDiscreteWidth,
+nDiscreteHeight,
 MaximumQuadraticPixels));
 
 if(!aBitmapEx.IsEmpty())
diff --git a/drawinglayer/source/primitive2d/glowprimitive2d.cxx 
b/drawinglayer/source/primitive2d/glowprimitive2d.cxx
index 5cec7a46f532..6bf9dea8af83 100644
--- a/drawinglayer/source/primitive2d/glowprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/glowprimitive2d.cxx
@@ -176,8 +176,7 @@ void GlowPrimitive2D::create2DDecomposition(
 // I have now added a helper that just creates the mask without having
 // to render the content, use it, it's faster
 const AlphaMask aAlpha(::drawinglayer::createAlphaMask(
-std::move(xEmbedSeq), aViewInformation2D,
-basegfx::B2DRange(0, 0, nDiscreteClippedWidth, nDiscreteClippedHeight),
+std::move(xEmbedSeq), aViewInformation2D, nDiscreteClippedWidth, 
nDiscreteClippedHeight,
 nMaximumQuadraticPixels));
 
 if (aAlpha.IsEmpty())
diff --git a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx 
b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx
index 8068a386970c..516b0042d960 100644
--- a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx
@@ -136,7 +136,8 @@ namespace drawinglayer::primitive2d
 convertToBitmapEx(
 std::move(xEmbedSeq),
 aViewInformation2D,
-basegfx::B2DRange(0, 0, mnDiscreteWidth, 
mnDiscreteHeight),
+mnDiscreteWidth,
+mnDiscreteHeight,
 mnDiscreteWidth * mnDiscreteHeight));
 
 if(!aBitmapEx.IsEmpty())
@@ -196,7 +197,8 @@ namespace drawinglayer::primitive2d
 return convertToBitmapEx(
 std::move(xEmbedSeq),
 aViewInformation2D,
-basegfx::B2DRange(0, 0, nWidth, nHeight),
+nWidth,
+nHeight,
 nWidth * nHeight);
 }
 
diff --git a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx 
b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
index c32f37bd9e8e..5de34c5440b6 100644
--- a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx
@@ -217,8 +217,7 @@ void ShadowPrimitive2D::create2DDecomposition(
 // I have now added a helper that just creates the mask without having
 // to render the content, use it, it's faster
 const AlphaMask aAlpha(::drawinglayer::createAlphaMask(
-std::move(xEmbedSeq), aViewInformation2D,
-basegfx::B2DRange(0, 0, 

core.git: include/vcl svgio/inc svgio/qa svgio/source vcl/Library_vcl.mk vcl/qa vcl/source

2024-04-22 Thread Xisco Fauli (via logerrit)
 include/vcl/BitmapLightenBlendFilter.hxx   |   29 ++
 svgio/inc/svgfeblendnode.hxx   |1 
 svgio/qa/cppunit/SvgImportTest.cxx |   44 ++
 svgio/qa/cppunit/data/lightenBlend.svg |8 +
 svgio/source/svgreader/svgfeblendnode.cxx  |   10 ++
 vcl/Library_vcl.mk |1 
 vcl/qa/cppunit/BitmapFilterTest.cxx|   57 +
 vcl/source/bitmap/BitmapLightenBlendFilter.cxx |  109 +
 8 files changed, 259 insertions(+)

New commits:
commit 41368edc6e2b16d4e0ea89b822064bb75dfadc01
Author: Xisco Fauli 
AuthorDate: Mon Apr 22 13:49:45 2024 +0200
Commit: Xisco Fauli 
CommitDate: Mon Apr 22 15:20:16 2024 +0200

tdf#159660: Add support for lighten mode in feBlend

Change-Id: I17471a9c70a38d05de5ad476f817285fb2438e5a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166429
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/include/vcl/BitmapLightenBlendFilter.hxx 
b/include/vcl/BitmapLightenBlendFilter.hxx
new file mode 100644
index ..e17a34dc8efd
--- /dev/null
+++ b/include/vcl/BitmapLightenBlendFilter.hxx
@@ -0,0 +1,29 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+
+#ifndef INCLUDED_VCL_BITMAPLIGHTENBLENDFILTER_HXX
+#define INCLUDED_VCL_BITMAPLIGHTENBLENDFILTER_HXX
+
+#include 
+
+class VCL_DLLPUBLIC BitmapLightenBlendFilter
+{
+private:
+BitmapEx maBitmapEx;
+BitmapEx maBitmapEx2;
+
+public:
+BitmapLightenBlendFilter(BitmapEx const& rBmpEx, BitmapEx const& rBmpEx2);
+
+virtual ~BitmapLightenBlendFilter();
+BitmapEx execute();
+};
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/inc/svgfeblendnode.hxx b/svgio/inc/svgfeblendnode.hxx
index 7e6a6c747ea4..ef0a1952b1e6 100644
--- a/svgio/inc/svgfeblendnode.hxx
+++ b/svgio/inc/svgfeblendnode.hxx
@@ -27,6 +27,7 @@ namespace svgio::svgreader
 enum class Mode
 {
 Darken,
+Lighten,
 Multiply,
 Normal,
 Screen
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 87aa04887d2f..abf7f58c848b 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -1909,6 +1909,50 @@ CPPUNIT_TEST_FIXTURE(Test, testDarkenBlend)
 CPPUNIT_ASSERT_EQUAL(OUString("008000"), aPixels[125]);
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testLightenBlend)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/lightenBlend.svg");
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "height"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "width"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap/data"_ostr, 150);
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy11"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy12"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy13"_ostr, "20");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy21"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy22"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy23"_ostr, "20");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy31"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy32"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy33"_ostr, "1");
+
+// Check the colors in the diagonal
+OUString sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[25]"_ostr, "row"_ostr);
+std::vector aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("ff"), aPixels[25]);
+
+sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[75]"_ostr, "row"_ostr);
+aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("ff8000"), aPixels[75]);
+
+sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[125]"_ostr, "row"_ostr);
+aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("008000"), aPixels[125]);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf149880)
 {
 xmlDocUniquePtr pDocument = 

core.git: 2 commits - include/vcl svgio/inc svgio/qa svgio/source vcl/Library_vcl.mk vcl/qa vcl/source

2024-04-22 Thread Xisco Fauli (via logerrit)
 include/vcl/BitmapDarkenBlendFilter.hxx |   29 ++
 include/vcl/BitmapMultiplyBlendFilter.hxx   |   29 ++
 svgio/inc/svgfeblendnode.hxx|2 
 svgio/qa/cppunit/SvgImportTest.cxx  |   88 ++
 svgio/qa/cppunit/data/darkenBlend.svg   |8 +
 svgio/qa/cppunit/data/multiplyBlend.svg |8 +
 svgio/source/svgreader/svgfeblendnode.cxx   |   30 +-
 vcl/Library_vcl.mk  |2 
 vcl/qa/cppunit/BitmapFilterTest.cxx |  114 
 vcl/source/bitmap/BitmapDarkenBlendFilter.cxx   |  109 ++
 vcl/source/bitmap/BitmapMultiplyBlendFilter.cxx |  109 ++
 11 files changed, 525 insertions(+), 3 deletions(-)

New commits:
commit a9f1b705275ef9abbcf17366d8f3713235dd4675
Author: Xisco Fauli 
AuthorDate: Mon Apr 22 13:32:15 2024 +0200
Commit: Xisco Fauli 
CommitDate: Mon Apr 22 14:55:44 2024 +0200

tdf#159660: Add support for darken mode in feBlend

Change-Id: I56862163b7bf1177120081c95ab7851a5fc4019b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166428
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/include/vcl/BitmapDarkenBlendFilter.hxx 
b/include/vcl/BitmapDarkenBlendFilter.hxx
new file mode 100644
index ..ea017e13e0fa
--- /dev/null
+++ b/include/vcl/BitmapDarkenBlendFilter.hxx
@@ -0,0 +1,29 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+
+#ifndef INCLUDED_VCL_BITMAPDARKENBLENDFILTER_HXX
+#define INCLUDED_VCL_BITMAPDARKENBLENDFILTER_HXX
+
+#include 
+
+class VCL_DLLPUBLIC BitmapDarkenBlendFilter
+{
+private:
+BitmapEx maBitmapEx;
+BitmapEx maBitmapEx2;
+
+public:
+BitmapDarkenBlendFilter(BitmapEx const& rBmpEx, BitmapEx const& rBmpEx2);
+
+virtual ~BitmapDarkenBlendFilter();
+BitmapEx execute();
+};
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/inc/svgfeblendnode.hxx b/svgio/inc/svgfeblendnode.hxx
index 86c79a4d353a..7e6a6c747ea4 100644
--- a/svgio/inc/svgfeblendnode.hxx
+++ b/svgio/inc/svgfeblendnode.hxx
@@ -26,6 +26,7 @@ namespace svgio::svgreader
 {
 enum class Mode
 {
+Darken,
 Multiply,
 Normal,
 Screen
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 8a97d5b93302..87aa04887d2f 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -1865,6 +1865,50 @@ CPPUNIT_TEST_FIXTURE(Test, testMultiplyBlend)
 CPPUNIT_ASSERT_EQUAL(OUString("008000"), aPixels[125]);
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testDarkenBlend)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/darkenBlend.svg");
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "height"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "width"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap/data"_ostr, 150);
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy11"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy12"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy13"_ostr, "20");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy21"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy22"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy23"_ostr, "20");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy31"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy32"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy33"_ostr, "1");
+
+// Check the colors in the diagonal
+OUString sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[25]"_ostr, "row"_ostr);
+std::vector aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("ff"), aPixels[25]);
+
+sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[75]"_ostr, "row"_ostr);
+aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("00"), aPixels[75]);
+
+sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[125]"_ostr, "row"_ostr);
+aPixels = 

core.git: Branch 'libreoffice-7-6' - 2 commits - download.lst framework/source

2024-04-22 Thread Xisco Fauli (via logerrit)
 download.lst  |4 ++--
 framework/source/uielement/menubarmanager.cxx |   11 ++-
 2 files changed, 12 insertions(+), 3 deletions(-)

New commits:
commit 6c8e7c60bd2b213ba3021eeacfb93f08a86d660c
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 11:23:27 2024 +0100
Commit: Christian Lohmaier 
CommitDate: Mon Apr 22 14:09:08 2024 +0200

postgresql: upgrade to release 13.14

Change-Id: Ia9607fd9c8dad9d5936e867ad76b18a476f1057f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165278
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit e311a6a09d753fb566f248d653434f10a4645e63)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165238
Reviewed-by: Christian Lohmaier 

diff --git a/download.lst b/download.lst
index 5294f74dc6aa..b50ccbe3ebb2 100644
--- a/download.lst
+++ b/download.lst
@@ -465,8 +465,8 @@ POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POSTGRESQL_SHA256SUM := 
4992ff647203566b670d4e54dc5317499a26856c93576d0ea951bdf6bee50bfb
-POSTGRESQL_TARBALL := postgresql-13.11.tar.bz2
+POSTGRESQL_SHA256SUM := 
b8df078551898960bd500dc5d38a177e9905376df81fe7f2b660a1407fa6a5ed
+POSTGRESQL_TARBALL := postgresql-13.14.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
commit 83ac63d00243467ddaa9ed8031a8fa8ada20d1fb
Author: Michael Stahl 
AuthorDate: Wed Mar 20 21:42:50 2024 +0100
Commit: Christian Lohmaier 
CommitDate: Mon Apr 22 14:08:56 2024 +0200

framework: MenuBarManager: fix WNT crash if queryDispatch() throws

a Java extension throws RuntimeException from queryDispatch(), which is
translated to a C++ exception and thrown by the mscx_uno bridge, and this
is apparently not handled anywhere (Visual Studio says "Unhandled
Exception"), and what happens then apparently is the exception goes poof
and vanishes, and normal return from the mscx_uno bridge code happens,
but the out parameter used for the return value is never initialised, and
then the uno::Reference move assignment operator crashes.

Change-Id: I21535fcf0ab4ec30a712d01b5039b7e2fb7b09d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165081
Tested-by: Michael Stahl 
Reviewed-by: Michael Stahl 
(cherry picked from commit 447a15f4772bcbc9366cfa43b92c55ae644e9b03)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165114
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier 

diff --git a/framework/source/uielement/menubarmanager.cxx 
b/framework/source/uielement/menubarmanager.cxx
index edbd88d2250c..fce1929d28e7 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -664,7 +664,16 @@ IMPL_LINK( MenuBarManager, Activate, Menu *, pMenu, bool )
 if ( aTargetURL.Complete.startsWith( ".uno:StyleApply?" ) )
 xMenuItemDispatch = new StyleDispatcher( m_xFrame, 
m_xURLTransformer, aTargetURL );
 else
-xMenuItemDispatch = xDispatchProvider->queryDispatch( 
aTargetURL, menuItemHandler->aTargetFrame, 0 );
+{
+try
+{
+xMenuItemDispatch = xDispatchProvider->queryDispatch( 
aTargetURL, menuItemHandler->aTargetFrame, 0 );
+}
+catch (uno::Exception const&)
+{
+TOOLS_WARN_EXCEPTION("fwk.uielement", 
"MenuBarManager::Activate(): exception from queryDispatch()");
+}
+}
 
 bool bPopupMenu( false );
 if ( !menuItemHandler->xPopupMenuController.is() &&


core.git: svgio/qa vcl/source

2024-04-22 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx|   44 ++
 svgio/qa/cppunit/data/screenBlend.svg |8 
 vcl/source/bitmap/BitmapScreenBlendFilter.cxx |   21 ++--
 3 files changed, 70 insertions(+), 3 deletions(-)

New commits:
commit 357e390be47f774aab8ffb09015aaf312abff06b
Author: Xisco Fauli 
AuthorDate: Mon Apr 22 12:00:55 2024 +0200
Commit: Xisco Fauli 
CommitDate: Mon Apr 22 13:31:44 2024 +0200

tdf#159660: premultiply colors for screen blend

This is needed after 4b6e0f2c88debaedb514c868e061c21e15215b6e
"tdf#160726, tdf#48062: Simplify how BitmapExs are created"
Otherwise, only the common area is displayed

Change-Id: I40c798380049e62df8729c4acdb5db50d988d8e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166426
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 93d43fae85e2..c336458df004 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -1777,6 +1777,50 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf160726)
 CPPUNIT_ASSERT_EQUAL(OUString("00"), aPixels[200]);
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testScreenBlend)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/screenBlend.svg");
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "height"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "width"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap/data"_ostr, 150);
+
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy11"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy12"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy13"_ostr, "20");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy21"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy22"_ostr, 
"150");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy23"_ostr, "20");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy31"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy32"_ostr, "0");
+assertXPath(pDocument,
+"/primitive2D/transform/transform/bitmap"_ostr, "xy33"_ostr, "1");
+
+// Check the colors in the diagonal
+OUString sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[25]"_ostr, "row"_ostr);
+std::vector aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("ff"), aPixels[25]);
+
+sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[75]"_ostr, "row"_ostr);
+aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("ff8000"), aPixels[75]);
+
+sDataRow = getXPath(pDocument, 
"/primitive2D/transform/transform/bitmap/data[125]"_ostr, "row"_ostr);
+aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("008000"), aPixels[125]);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf149880)
 {
 xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf149880.svg");
diff --git a/svgio/qa/cppunit/data/screenBlend.svg 
b/svgio/qa/cppunit/data/screenBlend.svg
new file mode 100644
index ..6f1490983f68
--- /dev/null
+++ b/svgio/qa/cppunit/data/screenBlend.svg
@@ -0,0 +1,8 @@
+http://www.w3.org/2000/svg;>
+  
+
+
+
+  
+  
+
diff --git a/vcl/source/bitmap/BitmapScreenBlendFilter.cxx 
b/vcl/source/bitmap/BitmapScreenBlendFilter.cxx
index 67525a24cdf9..0964c519571d 100644
--- a/vcl/source/bitmap/BitmapScreenBlendFilter.cxx
+++ b/vcl/source/bitmap/BitmapScreenBlendFilter.cxx
@@ -30,6 +30,20 @@ static sal_uInt8 lcl_calculate(const sal_uInt8 aColor, const 
sal_uInt8 aColor2)
 return result * 255.0;
 }
 
+static BitmapColor premultiply(const BitmapColor c)
+{
+return BitmapColor(ColorAlpha, vcl::bitmap::premultiply(c.GetRed(), 
c.GetAlpha()),
+   vcl::bitmap::premultiply(c.GetGreen(), c.GetAlpha()),
+   vcl::bitmap::premultiply(c.GetBlue(), c.GetAlpha()), 
c.GetAlpha());
+}
+
+static BitmapColor unpremultiply(const BitmapColor c)
+{
+return BitmapColor(ColorAlpha, vcl::bitmap::unpremultiply(c.GetRed(), 
c.GetAlpha()),
+   vcl::bitmap::unpremultiply(c.GetGreen(), c.GetAlpha()),
+   vcl::bitmap::unpremultiply(c.GetBlue(), c.GetAlpha()), 
c.GetAlpha());
+}
+
 BitmapEx BitmapScreenBlendFilter::execute()
 {
 if (maBitmapEx.IsEmpty() || maBitmapEx2.IsEmpty())
@@ -63,14 +77,15 @@ BitmapEx 

core.git: drawinglayer/source include/drawinglayer include/vcl svgio/inc svgio/qa svgio/source vcl/source

2024-04-22 Thread Xisco Fauli (via logerrit)
 drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx |3 
 drawinglayer/source/primitive2d/glowprimitive2d.cxx  |3 
 drawinglayer/source/primitive2d/patternfillprimitive2d.cxx   |6 
 drawinglayer/source/primitive2d/shadowprimitive2d.cxx|3 
 drawinglayer/source/primitive2d/softedgeprimitive2d.cxx  |3 
 drawinglayer/source/processor2d/d2dpixelprocessor2d.cxx  |5 
 drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx   |8 
 drawinglayer/source/tools/converters.cxx |   24 -
 include/drawinglayer/converters.hxx  |8 
 include/vcl/BitmapTools.hxx  |4 
 svgio/inc/svgfilternode.hxx  |3 
 svgio/qa/cppunit/SvgImportTest.cxx   |  161 ++-
 svgio/qa/cppunit/data/arithmetic.svg |8 
 svgio/qa/cppunit/data/arithmetic2.svg|8 
 svgio/qa/cppunit/data/tdf160726.svg  |   43 ++
 svgio/source/svgreader/svgfeblendnode.cxx|   72 +++-
 svgio/source/svgreader/svgfecompositenode.cxx|   67 +++-
 svgio/source/svgreader/svgfilternode.cxx |   21 -
 vcl/source/bitmap/BitmapTools.cxx|  114 ---
 19 files changed, 345 insertions(+), 219 deletions(-)

New commits:
commit 4b6e0f2c88debaedb514c868e061c21e15215b6e
Author: Xisco Fauli 
AuthorDate: Sun Apr 21 20:41:55 2024 +0200
Commit: Xisco Fauli 
CommitDate: Mon Apr 22 11:53:41 2024 +0200

tdf#160726, tdf#48062: Simplify how BitmapExs are created

In my initial approach, I tranformed the primitive2DContainers
before converting them to BitmapEx. This caused circles like
https://bugs.documentfoundation.org/attachment.cgi?id=193790
not to be displayed.
Simplify how BitmapExs are created by just using the range both
primitive2DContainers have in common. This way, DrawBitmapInRect
can be dropped now

Change-Id: I2401dc87b98e04b9cf9f5ebade2b5622d884fc3a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166391
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx 
b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
index 22a20f095d24..e50e59a1d76d 100644
--- a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
+++ b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
@@ -147,8 +147,7 @@ namespace drawinglayer::unorenderer
 convertToBitmapEx(
 std::move(xEmbedSeq),
 aViewInformation2D,
-nDiscreteWidth,
-nDiscreteHeight,
+basegfx::B2DRange(0, 0, nDiscreteWidth, 
nDiscreteHeight),
 MaximumQuadraticPixels));
 
 if(!aBitmapEx.IsEmpty())
diff --git a/drawinglayer/source/primitive2d/glowprimitive2d.cxx 
b/drawinglayer/source/primitive2d/glowprimitive2d.cxx
index 6bf9dea8af83..5cec7a46f532 100644
--- a/drawinglayer/source/primitive2d/glowprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/glowprimitive2d.cxx
@@ -176,7 +176,8 @@ void GlowPrimitive2D::create2DDecomposition(
 // I have now added a helper that just creates the mask without having
 // to render the content, use it, it's faster
 const AlphaMask aAlpha(::drawinglayer::createAlphaMask(
-std::move(xEmbedSeq), aViewInformation2D, nDiscreteClippedWidth, 
nDiscreteClippedHeight,
+std::move(xEmbedSeq), aViewInformation2D,
+basegfx::B2DRange(0, 0, nDiscreteClippedWidth, nDiscreteClippedHeight),
 nMaximumQuadraticPixels));
 
 if (aAlpha.IsEmpty())
diff --git a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx 
b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx
index 516b0042d960..8068a386970c 100644
--- a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx
@@ -136,8 +136,7 @@ namespace drawinglayer::primitive2d
 convertToBitmapEx(
 std::move(xEmbedSeq),
 aViewInformation2D,
-mnDiscreteWidth,
-mnDiscreteHeight,
+basegfx::B2DRange(0, 0, mnDiscreteWidth, 
mnDiscreteHeight),
 mnDiscreteWidth * mnDiscreteHeight));
 
 if(!aBitmapEx.IsEmpty())
@@ -197,8 +196,7 @@ namespace drawinglayer::primitive2d
 return convertToBitmapEx(
 std::move(xEmbedSeq),
 aViewInformation2D,
-nWidth,
-nHeight,
+basegfx::B2DRange(0, 0, nWidth, nHeight),
 nWidth * 

core.git: svgio/inc svgio/source

2024-04-21 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgfefloodnode.hxx  |1 -
 svgio/inc/svgfeimagenode.hxx  |1 -
 svgio/source/svgreader/svgfefloodnode.cxx |   11 ---
 svgio/source/svgreader/svgfeimagenode.cxx |   11 ---
 4 files changed, 24 deletions(-)

New commits:
commit ae5e743f90fbb4e7016d6d9f4c22bce971a5f5cb
Author: Xisco Fauli 
AuthorDate: Sun Apr 21 19:04:08 2024 +0200
Commit: Xisco Fauli 
CommitDate: Sun Apr 21 22:34:44 2024 +0200

svgio: feImage and feFlood don't support the in attribute

Added by mistake in b22039cff8380b158307e75762bd3e4ca045d77b
"related: tdf#159947: only parse in/result if the element supports them"

See https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/in

Change-Id: Ie8b5591349eff710d1edc7f413790ac9d31df99d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166389
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgfefloodnode.hxx b/svgio/inc/svgfefloodnode.hxx
index 8aba2c3b0340..39e5cb6b1890 100644
--- a/svgio/inc/svgfefloodnode.hxx
+++ b/svgio/inc/svgfefloodnode.hxx
@@ -27,7 +27,6 @@ namespace svgio::svgreader
 class SvgFeFloodNode final : public SvgFilterNode
 {
 private:
-OUString maIn;
 OUString maResult;
 SvgNumber maX;
 SvgNumber maY;
diff --git a/svgio/inc/svgfeimagenode.hxx b/svgio/inc/svgfeimagenode.hxx
index ab303fdc92fe..743568fa65ce 100644
--- a/svgio/inc/svgfeimagenode.hxx
+++ b/svgio/inc/svgfeimagenode.hxx
@@ -27,7 +27,6 @@ namespace svgio::svgreader
 class SvgFeImageNode final : public SvgFilterNode
 {
 private:
-OUString maIn;
 OUString maResult;
 OUString maUrl; // external link
 OUString maData; // base64 data
diff --git a/svgio/source/svgreader/svgfefloodnode.cxx 
b/svgio/source/svgreader/svgfefloodnode.cxx
index ede285b6d756..8ac62d79c8d9 100644
--- a/svgio/source/svgreader/svgfefloodnode.cxx
+++ b/svgio/source/svgreader/svgfefloodnode.cxx
@@ -49,11 +49,6 @@ void SvgFeFloodNode::parseAttribute(SVGToken aSVGToken, 
const OUString& aContent
 readLocalCssStyle(aContent);
 break;
 }
-case SVGToken::In:
-{
-maIn = aContent.trim();
-break;
-}
 case SVGToken::Result:
 {
 maResult = aContent.trim();
@@ -145,12 +140,6 @@ void 
SvgFeFloodNode::apply(drawinglayer::primitive2d::Primitive2DContainer& rTar
 if (fWidth <= 0.0 || fHeight <= 0.0)
 return;
 
-if (const drawinglayer::primitive2d::Primitive2DContainer* rSource
-= pParent->findGraphicSource(maIn))
-{
-rTarget = *rSource;
-}
-
 const double fX(maX.solve(*this, NumberType::xcoordinate));
 const double fY(maY.solve(*this, NumberType::ycoordinate));
 const basegfx::B2DRange aRange(fX, fY, fX + fWidth, fY + fHeight);
diff --git a/svgio/source/svgreader/svgfeimagenode.cxx 
b/svgio/source/svgreader/svgfeimagenode.cxx
index c7b1f65b8f2d..6a7e5dd9d9c3 100644
--- a/svgio/source/svgreader/svgfeimagenode.cxx
+++ b/svgio/source/svgreader/svgfeimagenode.cxx
@@ -46,11 +46,6 @@ void SvgFeImageNode::parseAttribute(SVGToken aSVGToken, 
const OUString& aContent
 readLocalCssStyle(aContent);
 break;
 }
-case SVGToken::In:
-{
-maIn = aContent.trim();
-break;
-}
 case SVGToken::Result:
 {
 maResult = aContent.trim();
@@ -79,12 +74,6 @@ void SvgFeImageNode::parseAttribute(SVGToken aSVGToken, 
const OUString& aContent
 void SvgFeImageNode::apply(drawinglayer::primitive2d::Primitive2DContainer& 
rTarget,
const SvgFilterNode* pParent) const
 {
-if (const drawinglayer::primitive2d::Primitive2DContainer* rSource
-= pParent->findGraphicSource(maIn))
-{
-rTarget = *rSource;
-}
-
 BitmapEx aBitmapEx;
 
 if (!maData.isEmpty())


core.git: svgio/qa

2024-04-20 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx |   11 +--
 1 file changed, 1 insertion(+), 10 deletions(-)

New commits:
commit 7e0b8e74dd6de7a337ab08a8be2921aeef765117
Author: Xisco Fauli 
AuthorDate: Fri Apr 19 17:59:33 2024 +0200
Commit: Mike Kaganski 
CommitDate: Sat Apr 20 08:55:18 2024 +0200

svgio: remove duplicated assertXPathDouble

Change-Id: I82c4abc6883d292114b4239efee60aee082357fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166307
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 8831dc5c9058..03daa49ff9b1 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -41,8 +41,6 @@ protected:
 
 Primitive2DSequence parseSvg(std::u16string_view aSource);
 xmlDocUniquePtr dumpAndParseSvg(std::u16string_view aSource);
-void assertXPathDouble(const xmlDocUniquePtr& pXmlDoc, const OString& 
rXPath,
-   const OString& rAttribute, double nExpectedValue, 
double delta);
 };
 
 Primitive2DSequence Test::parseSvg(std::u16string_view aSource)
@@ -93,13 +91,6 @@ void Test::checkRectPrimitive(Primitive2DSequence const & 
rPrimitive)
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/line"_ostr, "width"_ostr, "3"); // 
rect stroke width
 }
 
-void Test::assertXPathDouble(const xmlDocUniquePtr& pXmlDoc, const OString& 
rXPath,
- const OString& rAttribute, double nExpectedValue, 
double delta)
-{
-auto sVal = getXPath(pXmlDoc, rXPath, rAttribute);
-CPPUNIT_ASSERT_DOUBLES_EQUAL(nExpectedValue, sVal.toDouble(), delta);
-}
-
 namespace
 {
 bool arePrimitive2DSequencesEqual(const Primitive2DSequence& rA, const 
Primitive2DSequence& rB)
@@ -735,7 +726,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156834)
 
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]"_ostr, 
"text"_ostr, "Hanging");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[3]"_ostr, 
"x"_ostr, "30");
-assertXPathDouble(pDocument, 
"/primitive2D/transform/textsimpleportion[3]"_ostr, "y"_ostr, 93.5, 0.5);
+assertXPathDoubleValue(pDocument, 
"/primitive2D/transform/textsimpleportion[3]"_ostr, "y"_ostr, 93.5, 0.5);
 
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, 
"text"_ostr, "Central");
 assertXPath(pDocument, "/primitive2D/transform/textsimpleportion[4]"_ostr, 
"x"_ostr, "30");


core.git: 2 commits - svgio/qa sw/qa vcl/source

2024-04-19 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx   |   18 ++
 svgio/qa/cppunit/data/tdf160517.svg  |   11 +++
 sw/qa/extras/ooxmlexport/data/tdf158451.docx |binary
 sw/qa/extras/ooxmlexport/ooxmlexport20.cxx   |   12 
 vcl/source/bitmap/BitmapTools.cxx|   11 ++-
 5 files changed, 43 insertions(+), 9 deletions(-)

New commits:
commit 01479c742f2680d004ea8e133e56133870023b43
Author: Xisco Fauli 
AuthorDate: Thu Apr 18 22:10:43 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri Apr 19 09:08:25 2024 +0200

tdf#160721: nothing is displayed in case of wrong 'in' reference

Change-Id: I746ec8a12dba7832241693dac7f20788a2fa85bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166267
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 3d6ef34d5857..8831dc5c9058 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -14,6 +14,7 @@
 #include 
 
 #include 
+#include 
 
 #include 
 #include 
@@ -1617,6 +1618,23 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf159968)
 
"/primitive2D/transform/transform/transform/transform/polypolygoncolor/polypolygon/polygon/point"_ostr,
 5);
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf160517)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf160517.svg");
+
+assertXPath(pDocument,
+"/primitive2D/transform/bitmap"_ostr, "height"_ostr, "100");
+assertXPath(pDocument,
+"/primitive2D/transform/bitmap"_ostr, "width"_ostr, "100");
+assertXPath(pDocument,
+"/primitive2D/transform/bitmap/data"_ostr, 100);
+
+// Check the color of a pixel in the middle
+const OUString sDataRow = getXPath(pDocument, 
"/primitive2D/transform/bitmap/data[50]"_ostr, "row"_ostr);
+std::vector aPixels = comphelper::string::split(sDataRow, ',');
+CPPUNIT_ASSERT_EQUAL(OUString("008100"), aPixels[50]);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf149880)
 {
 xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf149880.svg");
diff --git a/svgio/qa/cppunit/data/tdf160517.svg 
b/svgio/qa/cppunit/data/tdf160517.svg
new file mode 100644
index ..ea0750c8af48
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf160517.svg
@@ -0,0 +1,11 @@
+http://www.w3.org/2000/svg; 
xmlns:xlink="http://www.w3.org/1999/xlink;>
+  
+
+  
+  
+
+
diff --git a/vcl/source/bitmap/BitmapTools.cxx 
b/vcl/source/bitmap/BitmapTools.cxx
index 204e61b57073..b5186616bb5c 100644
--- a/vcl/source/bitmap/BitmapTools.cxx
+++ b/vcl/source/bitmap/BitmapTools.cxx
@@ -516,7 +516,7 @@ BitmapEx DrawBitmapInRect( const BitmapEx& rBitmap,
 ::basegfx::B2DRectangle const & rBitmapRect,
 ::basegfx::B2DRectangle const & rDestRect )
 {
-if( rBitmapRect.isEmpty() || rDestRect.isEmpty() )
+if( rDestRect.isEmpty() )
 return BitmapEx();
 
 const Size aDestBmpSize( ::basegfx::fround( 
rDestRect.getWidth() ),
@@ -537,13 +537,6 @@ BitmapEx DrawBitmapInRect( const BitmapEx& rBitmap,
 if (rBitmap.IsAlpha())
 pAlphaReadAccess = aSrcAlpha;
 
-if( !pReadAccess || (!pAlphaReadAccess && rBitmap.IsAlpha()) )
-{
-// TODO(E2): Error handling!
-ENSURE_OR_THROW( false,
-  "DrawBitmapInRect(): could not access source bitmap" 
);
-}
-
 // mapping table, to translate pAlphaReadAccess' pixel
 // values into destination alpha values (needed e.g. for
 // paletted 1-bit masks).
@@ -561,7 +554,7 @@ BitmapEx DrawBitmapInRect( const BitmapEx& rBitmap,
 }
 // else: mapping table is not used
 
-Bitmap aDstBitmap(aDestBmpSize, aSrcBitmap.getPixelFormat(), 
>GetPalette());
+Bitmap aDstBitmap(aDestBmpSize, vcl::PixelFormat::N24_BPP);
 Bitmap aDstAlpha( AlphaMask( aDestBmpSize ).GetBitmap() );
 
 {
commit e75899a25921aa8fc7857c154326a9aca4648c27
Author: Kira Tubo 
AuthorDate: Wed Apr 3 21:17:11 2024 -0700
Commit: Xisco Fauli 
CommitDate: Fri Apr 19 09:08:14 2024 +0200

tdf#158451 - sw unit test - FILEOPEN DOCX crash

Unit text checks if DOCX file crashes when opened. Document contains grouped
shapes that is anchored "As character".

Change-Id: I7df17de0e1f1bf252593548883ba7959f2002023
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165776
Tested-by: Xisco Fauli 
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/extras/ooxmlexport/data/tdf158451.docx 
b/sw/qa/extras/ooxmlexport/data/tdf158451.docx
new file mode 100755
index ..e206cecd556c
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf158451.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport20.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport20.cxx
index be378107df04..94f8872f263a 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport20.cxx
+++ 

core.git: svgio/inc svgio/source

2024-04-18 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgfilternode.hxx   |3 ++
 svgio/source/svgreader/svgfeblendnode.cxx |   21 +---
 svgio/source/svgreader/svgfecompositenode.cxx |   27 +-
 svgio/source/svgreader/svgfilternode.cxx  |   21 
 4 files changed, 28 insertions(+), 44 deletions(-)

New commits:
commit 176406a07edc29f59a67464c7812358f46421f4d
Author: Xisco Fauli 
AuthorDate: Wed Apr 17 22:08:31 2024 +0200
Commit: Xisco Fauli 
CommitDate: Thu Apr 18 17:24:10 2024 +0200

svgio: factor out common code

Change-Id: Ib86f04364593546f53419b37d35469c561561aa1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166188
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgfilternode.hxx b/svgio/inc/svgfilternode.hxx
index 7aa522173a87..ec42d3c52df4 100644
--- a/svgio/inc/svgfilternode.hxx
+++ b/svgio/inc/svgfilternode.hxx
@@ -23,6 +23,7 @@
 #include "svgnode.hxx"
 #include "svgstyleattributes.hxx"
 #include 
+#include 
 
 typedef std::unordered_map
 IdGraphicSourceMapper;
@@ -46,6 +47,8 @@ public:
  drawinglayer::primitive2d::Primitive2DContainer 
pGraphicSource) const;
 const drawinglayer::primitive2d::Primitive2DContainer*
 findGraphicSource(const OUString& rStr) const;
+
+static BitmapEx convertToBitmapEx(const 
drawinglayer::primitive2d::Primitive2DContainer* pSeq);
 };
 
 } // end of namespace svgio::svgreader
diff --git a/svgio/source/svgreader/svgfeblendnode.cxx 
b/svgio/source/svgreader/svgfeblendnode.cxx
index d106ea6e643b..e1440185ff23 100644
--- a/svgio/source/svgreader/svgfeblendnode.cxx
+++ b/svgio/source/svgreader/svgfeblendnode.cxx
@@ -111,15 +111,7 @@ void 
SvgFeBlendNode::apply(drawinglayer::primitive2d::Primitive2DContainer& rTar
 {
 const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
 aRange = pSource->getB2DRange(aViewInformation2D);
-basegfx::B2DHomMatrix aEmbedding(
-basegfx::utils::createTranslateB2DHomMatrix(-aRange.getMinX(), 
-aRange.getMinY()));
-aEmbedding.scale(aRange.getWidth(), aRange.getHeight());
-const drawinglayer::primitive2d::Primitive2DReference xEmbedRef(
-new drawinglayer::primitive2d::TransformPrimitive2D(
-aEmbedding, 
drawinglayer::primitive2d::Primitive2DContainer(*pSource)));
-drawinglayer::primitive2d::Primitive2DContainer xEmbedSeq{ 
xEmbedRef };
-aBmpEx = drawinglayer::convertToBitmapEx(std::move(xEmbedSeq), 
aViewInformation2D,
- aRange.getWidth(), 
aRange.getHeight(), 50);
+aBmpEx = convertToBitmapEx(pSource);
 }
 
 if (const drawinglayer::primitive2d::Primitive2DContainer* pSource2
@@ -127,16 +119,7 @@ void 
SvgFeBlendNode::apply(drawinglayer::primitive2d::Primitive2DContainer& rTar
 {
 const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
 aRange2 = pSource2->getB2DRange(aViewInformation2D);
-basegfx::B2DHomMatrix 
aEmbedding(basegfx::utils::createTranslateB2DHomMatrix(
--aRange2.getMinX(), -aRange2.getMinY()));
-aEmbedding.scale(aRange2.getWidth(), aRange2.getHeight());
-const drawinglayer::primitive2d::Primitive2DReference xEmbedRef(
-new drawinglayer::primitive2d::TransformPrimitive2D(
-aEmbedding, 
drawinglayer::primitive2d::Primitive2DContainer(*pSource2)));
-drawinglayer::primitive2d::Primitive2DContainer xEmbedSeq{ 
xEmbedRef };
-aBmpEx2
-= drawinglayer::convertToBitmapEx(std::move(xEmbedSeq), 
aViewInformation2D,
-  aRange2.getWidth(), 
aRange2.getHeight(), 50);
+aBmpEx2 = convertToBitmapEx(pSource2);
 }
 
 basegfx::B2DRectangle aBaseRect(std::min(aRange.getMinX(), 
aRange2.getMinX()),
diff --git a/svgio/source/svgreader/svgfecompositenode.cxx 
b/svgio/source/svgreader/svgfecompositenode.cxx
index 28f161d7b6ce..c396eec78c0a 100644
--- a/svgio/source/svgreader/svgfecompositenode.cxx
+++ b/svgio/source/svgreader/svgfecompositenode.cxx
@@ -216,18 +216,7 @@ void 
SvgFeCompositeNode::apply(drawinglayer::primitive2d::Primitive2DContainer&
 {
 const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
 aRange = pSource->getB2DRange(aViewInformation2D);
-basegfx::B2DHomMatrix aEmbedding(
-basegfx::utils::createTranslateB2DHomMatrix(-aRange.getMinX(), 
-aRange.getMinY()));
-
-aEmbedding.scale(aRange.getWidth(), aRange.getHeight());
-
-const drawinglayer::primitive2d::Primitive2DReference xEmbedRef(
-new drawinglayer::primitive2d::TransformPrimitive2D(
-aEmbedding, 

core.git: download.lst external/libwebp

2024-04-18 Thread Xisco Fauli (via logerrit)
 download.lst   |4 ++--
 external/libwebp/Makefile.vc.patch |   21 -
 2 files changed, 14 insertions(+), 11 deletions(-)

New commits:
commit f1c880463666149bcb82a2f76a1f27db71b2ae52
Author: Xisco Fauli 
AuthorDate: Wed Apr 17 16:54:13 2024 +0200
Commit: Xisco Fauli 
CommitDate: Thu Apr 18 09:47:21 2024 +0200

libwebp: Upgrade to 1.4.0

Change-Id: I196316b0c7efbe27c06b8dfed90db5248db6dce4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166185
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index f36b5fe0da10..48e1cbde01a4 100644
--- a/download.lst
+++ b/download.lst
@@ -414,8 +414,8 @@ LIBTOMMATH_TARBALL := ltm-1.3.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBWEBP_SHA256SUM := 
2a499607df669e40258e53d0ade8035ba4ec0175244869d1025d460562aa09b4
-LIBWEBP_TARBALL := libwebp-1.3.2.tar.gz
+LIBWEBP_SHA256SUM := 
61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5
+LIBWEBP_TARBALL := libwebp-1.4.0.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libwebp/Makefile.vc.patch 
b/external/libwebp/Makefile.vc.patch
index 41c899921a1c..412ccf60b901 100644
--- a/external/libwebp/Makefile.vc.patch
+++ b/external/libwebp/Makefile.vc.patch
@@ -1,6 +1,6 @@
 --- Makefile.vc.sav2021-07-30 00:55:37.0 +0200
 +++ Makefile.vc2022-01-25 17:35:30.206117700 +0100
-@@ -8,11 +8,11 @@
+@@ -8,13 +8,13 @@
  LIBSHARPYUV_BASENAME = libsharpyuv
  
  !IFNDEF ARCH
@@ -10,12 +10,15 @@
 -!ELSE IF ! [ cl 2>&1 | find "x64" > NUL ]
 +!ELSE IF ! [ $(CC) 2>&1 | grep -q "x64" > NUL ]
  ARCH = x64
+-!ELSE IF ! [ cl 2>&1 | find "ARM64" > NUL ]
++!ELSE IF ! [ $(CC) 2>&1 | grep -q "ARM64" > NUL ]
+ ARCH = ARM64
 -!ELSE IF ! [ cl 2>&1 | find "ARM" > NUL ]
 +!ELSE IF ! [ $(CC) 2>&1 | grep -q "ARM" > NUL ]
  ARCH = ARM
  !ELSE
  !ERROR Unable to auto-detect toolchain architecture! \
-@@ -28,8 +28,8 @@
+@@ -30,8 +30,8 @@
  ## Nothing more to do below this line!
  
  NOLOGO = /nologo
@@ -26,7 +29,7 @@
  CFLAGS = /I. /Isrc $(NOLOGO) /W3 /EHsc /c
  CFLAGS = $(CFLAGS) /DWIN32 /D_CRT_SECURE_NO_WARNINGS /DWIN32_LEAN_AND_MEAN
  LDFLAGS= /LARGEADDRESSAWARE /MANIFEST:EMBED /NXCOMPAT /DYNAMICBASE
-@@ -67,7 +67,7 @@
+@@ -69,7 +69,7 @@
  RTLIB   = /MD
  RTLIBD  = /MDd
  !ENDIF
@@ -35,7 +38,7 @@
  DIROBJ = $(DIRBASE)\obj
  DIRLIB = $(DIRBASE)\lib
  DIRINC = $(DIRBASE)\include
-@@ -87,10 +87,10 @@
+@@ -89,10 +89,10 @@
  
  # Target configuration
  !IF "$(CFG)" == "release-static"
@@ -48,7 +51,7 @@
  RTLIB  = $(RTLIBD)
  STATICLIBBUILD = TRUE
  LIBWEBPDECODER_BASENAME = $(LIBWEBPDECODER_BASENAME)_debug
-@@ -99,11 +99,11 @@
+@@ -101,11 +101,11 @@
  LIBWEBPDEMUX_BASENAME = $(LIBWEBPDEMUX_BASENAME)_debug
  LIBSHARPYUV_BASENAME = $(LIBSHARPYUV_BASENAME)_debug
  !ELSE IF "$(CFG)" == "release-dynamic"
@@ -62,7 +65,7 @@
  RC= $(RCDEBUG)
  RTLIB = $(RTLIBD)
  DLLBUILD  = TRUE
-@@ -115,7 +115,7 @@
+@@ -117,7 +117,7 @@
  !ENDIF
  
  !IF "$(STATICLIBBUILD)" == "TRUE"
@@ -71,7 +74,7 @@
  CFGSET = TRUE
  LIBWEBPDECODER = $(DIRLIB)\$(LIBWEBPDECODER_BASENAME).lib
  LIBWEBP = $(DIRLIB)\$(LIBWEBP_BASENAME).lib
-@@ -123,7 +123,7 @@
+@@ -125,7 +125,7 @@
  LIBWEBPDEMUX = $(DIRLIB)\$(LIBWEBPDEMUX_BASENAME).lib
  LIBSHARPYUV = $(DIRLIB)\$(LIBSHARPYUV_BASENAME).lib
  !ELSE IF "$(DLLBUILD)" == "TRUE"
@@ -80,7 +83,7 @@
  LIBWEBPDECODER = $(DIRLIB)\$(LIBWEBPDECODER_BASENAME)_dll.lib
  LIBWEBP = $(DIRLIB)\$(LIBWEBP_BASENAME)_dll.lib
  LIBWEBPMUX = $(DIRLIB)\$(LIBWEBPMUX_BASENAME)_dll.lib
-@@ -434,7 +434,7 @@
+@@ -438,7 +438,7 @@
  
  !IF "$(DLLBUILD)" == "TRUE"
  {$(DIROBJ)}.c{$(DIROBJ)}.obj:
@@ -89,7 +92,7 @@
  
  {src}.rc{$(DIROBJ)}.res:
$(RC) /fo$@ $<
-@@ -467,41 +467,41 @@
+@@ -471,41 +471,41 @@
  # File-specific flag builds. Note batch rules take precedence over wildcards,
  # so for now name each file individually.
  $(DIROBJ)xamplesnim_diff.obj: examplesnim_diff.c


core.git: svgio/source

2024-04-17 Thread Xisco Fauli (via logerrit)
 svgio/source/svgreader/svgfilternode.cxx |   10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

New commits:
commit c61aeb5b87d1a69745617b1368a86b70d798ba30
Author: Xisco Fauli 
AuthorDate: Tue Apr 16 12:31:29 2024 +0200
Commit: Xisco Fauli 
CommitDate: Wed Apr 17 09:22:44 2024 +0200

svgio: map all 'in' keywords to target for now

Change-Id: I18d6c839c4005e4052397c4f6682d78c664d25ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166145
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/svgio/source/svgreader/svgfilternode.cxx 
b/svgio/source/svgreader/svgfilternode.cxx
index 168d7c50d608..5b2f7e867523 100644
--- a/svgio/source/svgreader/svgfilternode.cxx
+++ b/svgio/source/svgreader/svgfilternode.cxx
@@ -44,7 +44,15 @@ void 
SvgFilterNode::apply(drawinglayer::primitive2d::Primitive2DContainer& rTarg
 const sal_uInt32 nCount(rChildren.size());
 
 addGraphicSourceToMapper("SourceGraphic", rTarget);
-//TODO: Add SourceAlpha, BackgroundImage, BackgroundAlpha, FillPaint, 
StrokePaint ??
+
+// TODO: For now, map SourceAlpha, BackgroundImage,
+// BackgroundAlpha, FillPaint and StrokePaint to rTarget
+// so at least something is displayed
+addGraphicSourceToMapper("SourceAlpha", rTarget);
+addGraphicSourceToMapper("BackgroundImage", rTarget);
+addGraphicSourceToMapper("BackgroundAlpha", rTarget);
+addGraphicSourceToMapper("FillPaint", rTarget);
+addGraphicSourceToMapper("StrokePaint", rTarget);
 
 // apply children's filters
 for (sal_uInt32 a(0); a < nCount; a++)


core.git: include/vcl svgio/inc svgio/source vcl/Library_vcl.mk vcl/qa vcl/source

2024-04-16 Thread Xisco Fauli (via logerrit)
 include/vcl/BitmapArithmeticBlendFilter.hxx   |   31 +++
 svgio/inc/svgfecompositenode.hxx  |6 
 svgio/inc/svgtoken.hxx|4 
 svgio/source/svgreader/svgfecompositenode.cxx |  214 +-
 svgio/source/svgreader/svgtoken.cxx   |4 
 vcl/Library_vcl.mk|1 
 vcl/qa/cppunit/BitmapFilterTest.cxx   |  122 
 vcl/source/bitmap/BitmapArithmeticBlendFilter.cxx |  105 ++
 8 files changed, 439 insertions(+), 48 deletions(-)

New commits:
commit cb4698626f17e005c820a7138c63a03c21120ecd
Author: Xisco Fauli 
AuthorDate: Fri Apr 5 10:08:36 2024 +0200
Commit: Xisco Fauli 
CommitDate: Tue Apr 16 09:36:37 2024 +0200

tdf#48062: Add support for arithmetic in feComposite

Took https://github.com/w3c/csswg-drafts/issues/3831
as a reference

Change-Id: I42039c481ec114c3faeae51526a5f29b86960146
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165828
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/include/vcl/BitmapArithmeticBlendFilter.hxx 
b/include/vcl/BitmapArithmeticBlendFilter.hxx
new file mode 100644
index ..a2de3ae28c19
--- /dev/null
+++ b/include/vcl/BitmapArithmeticBlendFilter.hxx
@@ -0,0 +1,31 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+
+#ifndef INCLUDED_VCL_BITMAPARITHMETICBLENDFILTER_HXX
+#define INCLUDED_VCL_BITMAPARITHMETICBLENDFILTER_HXX
+
+#include 
+
+class VCL_DLLPUBLIC BitmapArithmeticBlendFilter
+{
+private:
+BitmapEx maBitmapEx;
+BitmapEx maBitmapEx2;
+
+public:
+BitmapArithmeticBlendFilter(BitmapEx const& rBmpEx, BitmapEx const& 
rBmpEx2);
+virtual ~BitmapArithmeticBlendFilter();
+
+BitmapEx execute(double aK1, double aK2, double aK3, double aK4);
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/inc/svgfecompositenode.hxx b/svgio/inc/svgfecompositenode.hxx
index fcbc24ecc8ff..8a34851c08d0 100644
--- a/svgio/inc/svgfecompositenode.hxx
+++ b/svgio/inc/svgfecompositenode.hxx
@@ -31,6 +31,7 @@ enum class Operator
 Out,
 Xor,
 Atop,
+Arithmetic
 };
 
 class SvgFeCompositeNode : public SvgFilterNode
@@ -41,6 +42,11 @@ private:
 OUString maResult;
 Operator maOperator;
 
+SvgNumber maK1;
+SvgNumber maK2;
+SvgNumber maK3;
+SvgNumber maK4;
+
 public:
 SvgFeCompositeNode(SvgDocument& rDocument, SvgNode* pParent);
 virtual ~SvgFeCompositeNode() override;
diff --git a/svgio/inc/svgtoken.hxx b/svgio/inc/svgtoken.hxx
index 9e6945859cd4..401a4667154e 100644
--- a/svgio/inc/svgtoken.hxx
+++ b/svgio/inc/svgtoken.hxx
@@ -122,6 +122,10 @@ namespace svgio::svgreader
 Title,
 Desc,
 Overflow,
+K1,
+K2,
+K3,
+K4,
 
 // AspectRatio and params
 PreserveAspectRatio,
diff --git a/svgio/source/svgreader/svgfecompositenode.cxx 
b/svgio/source/svgreader/svgfecompositenode.cxx
index 88ba5c62df68..28f161d7b6ce 100644
--- a/svgio/source/svgreader/svgfecompositenode.cxx
+++ b/svgio/source/svgreader/svgfecompositenode.cxx
@@ -23,6 +23,14 @@
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
 
 namespace svgio::svgreader
 {
@@ -83,6 +91,50 @@ void SvgFeCompositeNode::parseAttribute(SVGToken aSVGToken, 
const OUString& aCon
 {
 maOperator = Operator::Atop;
 }
+else if (o3tl::equalsIgnoreAsciiCase(o3tl::trim(aContent), 
u"arithmetic"))
+{
+maOperator = Operator::Arithmetic;
+}
+}
+break;
+}
+case SVGToken::K1:
+{
+SvgNumber aNum;
+
+if (readSingleNumber(aContent, aNum))
+{
+maK1 = aNum;
+}
+break;
+}
+case SVGToken::K2:
+{
+SvgNumber aNum;
+
+if (readSingleNumber(aContent, aNum))
+{
+maK2 = aNum;
+}
+break;
+}
+case SVGToken::K3:
+{
+SvgNumber aNum;
+
+if (readSingleNumber(aContent, aNum))
+{
+maK3 = aNum;
+}
+break;
+}
+case SVGToken::K4:
+{
+SvgNumber aNum;
+
+if (readSingleNumber(aContent, aNum))
+{
+maK4 = aNum;
 }
 break;
 }
@@ -96,61 +148,127 @@ void 

core.git: Branch 'feature/cib_contract49' - sw/qa

2024-04-15 Thread Xisco Fauli (via logerrit)
Rebased ref, commits from common ancestor:
commit e7eb2ff2f1f9ec2699a7222ad4e12dd1bdfc9b9f
Author: Xisco Fauli 
AuthorDate: Wed Feb 21 15:49:56 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Mon Apr 15 18:20:36 2024 +0200

tdf#159797: sw_uiwriter6: Add unittest

Change-Id: I69b8ea673f676f1106e257cef507937cbd5ebd2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163695
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/extras/uiwriter/uiwriter6.cxx 
b/sw/qa/extras/uiwriter/uiwriter6.cxx
index db63836f67cf..bb51b96d8137 100644
--- a/sw/qa/extras/uiwriter/uiwriter6.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter6.cxx
@@ -2880,6 +2880,19 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testTdf146178)
 CPPUNIT_ASSERT_EQUAL(sal_Int32(0), pCursor->GetPoint()->GetContentIndex());
 }
 
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testTdf159797)
+{
+createSwDoc();
+SwXTextDocument& rTextDoc = dynamic_cast(*mxComponent);
+
+emulateTyping(rTextDoc, u"This - is replaced. - But this is not 
replaced.");
+// Without the fix in place, this would fail with
+// - Expected: This – is replaced. – But this is not replaced.
+// - Actual  : This – is replaced. - But this is not replaced.
+CPPUNIT_ASSERT_EQUAL(OUString(u"This – is replaced. – But this is not 
replaced."),
+ getParagraph(1)->getString());
+}
+
 CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testTdf155407)
 {
 createSwDoc();


core.git: Branch 'feature/cib_contract49' - sw/qa

2024-04-15 Thread Xisco Fauli (via logerrit)
 sw/qa/extras/uiwriter/uiwriter6.cxx |   13 +
 1 file changed, 13 insertions(+)

New commits:
commit cca5ad01548485db7b0dcbbaa5b0d9a0184d42fb
Author: Xisco Fauli 
AuthorDate: Wed Feb 21 15:49:56 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Mon Apr 15 17:45:49 2024 +0200

tdf#159797: sw_uiwriter6: Add unittest

Change-Id: I69b8ea673f676f1106e257cef507937cbd5ebd2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163695
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/extras/uiwriter/uiwriter6.cxx 
b/sw/qa/extras/uiwriter/uiwriter6.cxx
index db63836f67cf..c7b92dca5362 100644
--- a/sw/qa/extras/uiwriter/uiwriter6.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter6.cxx
@@ -2880,6 +2880,19 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testTdf146178)
 CPPUNIT_ASSERT_EQUAL(sal_Int32(0), pCursor->GetPoint()->GetContentIndex());
 }
 
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testTdf159797)
+{
+createSwDoc();
+SwXTextDocument& rTextDoc = dynamic_cast(*mxComponent);
+
+emulateTyping(rTextDoc, u"This - is replaced. - But this is not 
replaced.");
+// Without the fix in place, this would fail with
+// - Expected: This – is replaced. – But this is not replaced.
+// - Actual  : This – is replaced. - But this is not replaced.
+CPPUNIT_ASSERT_EQUAL(u"This – is replaced. – But this is not 
replaced."_ustr,
+ getParagraph(1)->getString());
+}
+
 CPPUNIT_TEST_FIXTURE(SwUiWriterTest6, testTdf155407)
 {
 createSwDoc();


core.git: include/vcl svgio/inc svgio/source vcl/Library_vcl.mk vcl/qa vcl/source

2024-04-12 Thread Xisco Fauli (via logerrit)
 include/vcl/BitmapScreenBlendFilter.hxx   |   29 ++
 include/vcl/BitmapTools.hxx   |4 
 svgio/inc/svgfeblendnode.hxx  |7 +
 svgio/inc/svgtoken.hxx|1 
 svgio/source/svgreader/svgfeblendnode.cxx |   96 +++-
 svgio/source/svgreader/svgtoken.cxx   |1 
 vcl/Library_vcl.mk|1 
 vcl/qa/cppunit/BitmapFilterTest.cxx   |   57 
 vcl/source/bitmap/BitmapScreenBlendFilter.cxx |   87 ++
 vcl/source/bitmap/BitmapTools.cxx |  121 +-
 10 files changed, 396 insertions(+), 8 deletions(-)

New commits:
commit 732ca4879b7e49b171c5930166e4dba7be451841
Author: Xisco Fauli 
AuthorDate: Wed Apr 10 18:05:00 2024 +0200
Commit: Xisco Fauli 
CommitDate: Fri Apr 12 10:47:56 2024 +0200

tdf#159660: Add support for screen mode in feBlend

Change-Id: Iefe655a370cca930319290baa2a25d791371f55c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165958
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/include/vcl/BitmapScreenBlendFilter.hxx 
b/include/vcl/BitmapScreenBlendFilter.hxx
new file mode 100644
index ..a8f816936f49
--- /dev/null
+++ b/include/vcl/BitmapScreenBlendFilter.hxx
@@ -0,0 +1,29 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ */
+
+#ifndef INCLUDED_VCL_BITMAPSCREENBLENDFILTER_HXX
+#define INCLUDED_VCL_BITMAPSCREENBLENDFILTER_HXX
+
+#include 
+
+class VCL_DLLPUBLIC BitmapScreenBlendFilter
+{
+private:
+BitmapEx maBitmapEx;
+BitmapEx maBitmapEx2;
+
+public:
+BitmapScreenBlendFilter(BitmapEx const& rBmpEx, BitmapEx const& rBmpEx2);
+
+virtual ~BitmapScreenBlendFilter();
+BitmapEx execute();
+};
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx
index d321d2be79a3..de0ad84ea3da 100644
--- a/include/vcl/BitmapTools.hxx
+++ b/include/vcl/BitmapTools.hxx
@@ -66,6 +66,10 @@ VCL_DLLPUBLIC BitmapEx CanvasTransformBitmap( const 
BitmapEx& rBitmap,
   ::basegfx::B2DRectangle const & rDestRect,
   ::basegfx::B2DHomMatrix const & 
rLocalTransform );
 
+VCL_DLLPUBLIC BitmapEx DrawBitmapInRect( const BitmapEx& rBitmap,
+::basegfx::B2DRectangle const & rBitmapRect,
+::basegfx::B2DRectangle const & rDestRect );
+
 VCL_DLLPUBLIC void DrawAlphaBitmapAndAlphaGradient(BitmapEx & rBitmapEx, bool 
bFixedTransparence, float fTransparence, AlphaMask & rNewMask);
 
 VCL_DLLPUBLIC void DrawAndClipBitmap(const Point& rPos, const Size& rSize, 
const BitmapEx& rBitmap, BitmapEx & aBmpEx, basegfx::B2DPolyPolygon const & 
rClipPath);
diff --git a/svgio/inc/svgfeblendnode.hxx b/svgio/inc/svgfeblendnode.hxx
index 8ff46adf15ff..5881959ad418 100644
--- a/svgio/inc/svgfeblendnode.hxx
+++ b/svgio/inc/svgfeblendnode.hxx
@@ -24,12 +24,19 @@
 
 namespace svgio::svgreader
 {
+enum class Mode
+{
+Normal,
+Screen
+};
+
 class SvgFeBlendNode : public SvgFilterNode
 {
 private:
 OUString maIn;
 OUString maIn2;
 OUString maResult;
+Mode maMode;
 
 public:
 SvgFeBlendNode(SvgDocument& rDocument, SvgNode* pParent);
diff --git a/svgio/inc/svgtoken.hxx b/svgio/inc/svgtoken.hxx
index d988f4b2d993..9e6945859cd4 100644
--- a/svgio/inc/svgtoken.hxx
+++ b/svgio/inc/svgtoken.hxx
@@ -97,6 +97,7 @@ namespace svgio::svgreader
 FloodOpacity,
 Operator,
 Mask,
+Mode,
 ClipPathUnits,
 MaskUnits,
 MaskContentUnits,
diff --git a/svgio/source/svgreader/svgfeblendnode.cxx 
b/svgio/source/svgreader/svgfeblendnode.cxx
index 6adc0e8e139e..918912fa54d8 100644
--- a/svgio/source/svgreader/svgfeblendnode.cxx
+++ b/svgio/source/svgreader/svgfeblendnode.cxx
@@ -19,10 +19,19 @@
 #include 
 #include 
 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
 namespace svgio::svgreader
 {
 SvgFeBlendNode::SvgFeBlendNode(SvgDocument& rDocument, SvgNode* pParent)
 : SvgFilterNode(SVGToken::FeBlend, rDocument, pParent)
+, maMode(Mode::Normal)
 {
 }
 
@@ -53,6 +62,21 @@ void SvgFeBlendNode::parseAttribute(SVGToken aSVGToken, 
const OUString& aContent
 maResult = aContent.trim();
 break;
 }
+case SVGToken::Mode:
+{
+if (!aContent.isEmpty())
+{
+if (o3tl::equalsIgnoreAsciiCase(o3tl::trim(aContent), 
u"normal"))
+{
+maMode = Mode::Normal;
+}
+   

core.git: vcl/source

2024-04-10 Thread Xisco Fauli (via logerrit)
 vcl/source/bitmap/BitmapTools.cxx |   12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

New commits:
commit e1f3120ce83c113d7dc91b60f50344f63f1c41f0
Author: Xisco Fauli 
AuthorDate: Wed Apr 10 16:20:09 2024 +0200
Commit: Xisco Fauli 
CommitDate: Wed Apr 10 17:42:03 2024 +0200

vcl: return earlier if size is empty

Change-Id: I96bcd47d93e0e4d05e33d3ad3eca86c6edcf87ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165950
Reviewed-by: Noel Grandin 
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/vcl/source/bitmap/BitmapTools.cxx 
b/vcl/source/bitmap/BitmapTools.cxx
index ee0134a90010..2330483bb98b 100644
--- a/vcl/source/bitmap/BitmapTools.cxx
+++ b/vcl/source/bitmap/BitmapTools.cxx
@@ -376,6 +376,12 @@ BitmapEx CanvasTransformBitmap( const BitmapEx&
 rBitmap,
 ::basegfx::B2DRectangle const & rDestRect,
 ::basegfx::B2DHomMatrix const & 
rLocalTransform )
 {
+const Size aDestBmpSize( ::basegfx::fround( rDestRect.getWidth() ),
+ ::basegfx::fround( rDestRect.getHeight() ) );
+
+if( aDestBmpSize.IsEmpty() )
+return BitmapEx();
+
 const Size aBmpSize( rBitmap.GetSizePixel() );
 Bitmap aSrcBitmap( rBitmap.GetBitmap() );
 Bitmap aSrcAlpha;
@@ -416,12 +422,6 @@ BitmapEx CanvasTransformBitmap( const BitmapEx&
 rBitmap,
 }
 // else: mapping table is not used
 
-const Size aDestBmpSize( ::basegfx::fround( rDestRect.getWidth() ),
- ::basegfx::fround( rDestRect.getHeight() ) );
-
-if( aDestBmpSize.IsEmpty() )
-return BitmapEx();
-
 Bitmap aDstBitmap(aDestBmpSize, aSrcBitmap.getPixelFormat(), 
>GetPalette());
 Bitmap aDstAlpha( AlphaMask( aDestBmpSize ).GetBitmap() );
 


core.git: Branch 'libreoffice-24-2' - download.lst

2024-04-04 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit ae8ee986617832ae7ffd853279d6b898386a51dd
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 13:45:24 2024 +0100
Commit: Michael Stahl 
CommitDate: Thu Apr 4 11:17:25 2024 +0200

mariadb connector: upgrade to release 3.3.8

Change-Id: I21cf511a2b6c040d4a64ca720606af9312130045
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165284
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit e201b8916decefe4e5ad62718d33eb1ec1de4306)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165244
Reviewed-by: Michael Stahl 

diff --git a/download.lst b/download.lst
index 9eb6e0e56d99..0f16c450c5cd 100644
--- a/download.lst
+++ b/download.lst
@@ -446,8 +446,8 @@ LXML_TARBALL := lxml-4.9.2.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-MARIADB_CONNECTOR_C_SHA256SUM := 
975a9a862fed80f84e0206373f7ef05537aada5b65d99b71b36ab892b44240bf
-MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.7-src.tar.gz
+MARIADB_CONNECTOR_C_SHA256SUM := 
f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8
+MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.8-src.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: desktop/source

2024-04-03 Thread Xisco Fauli (via logerrit)
 desktop/source/app/app.cxx |4 
 1 file changed, 4 insertions(+)

New commits:
commit 374ac88c2cab8065eca3b9479c0039f6893fedf0
Author: Xisco Fauli 
AuthorDate: Wed Apr 3 10:50:11 2024 +0200
Commit: Xisco Fauli 
CommitDate: Wed Apr 3 18:51:18 2024 +0200

desktop: fix build with enable-online-update

Regression from 75706c003c3e224047e2f5b079aebde4e3d40d74
"tdf#146619 Remove unused #includes from C/C++ files"

See https://ci.libreoffice.org/job/lo_daily_tb_win/1718/console

Change-Id: I32f406aa44dfe37c472cf4de7805141daf37ab66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165738
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen 

diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index d02041c220a2..0e529e071427 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -127,6 +127,10 @@
 #include "langselect.hxx"
 #include 
 
+#if HAVE_FEATURE_UPDATE_MAR
+#include 
+#endif
+
 #if defined MACOSX
 #include 
 #include 


core.git: Branch 'libreoffice-24-2' - download.lst

2024-04-02 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 26b1dadc3f254cef8c7b9e12e8c7c58f8ee9118a
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 11:23:27 2024 +0100
Commit: Michael Stahl 
CommitDate: Tue Apr 2 15:00:21 2024 +0200

postgresql: upgrade to release 13.14

Change-Id: Ia9607fd9c8dad9d5936e867ad76b18a476f1057f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165278
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit e311a6a09d753fb566f248d653434f10a4645e63)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165237
Reviewed-by: Michael Stahl 

diff --git a/download.lst b/download.lst
index f6cbeec85530..7759ea2c73d8 100644
--- a/download.lst
+++ b/download.lst
@@ -550,8 +550,8 @@ POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POSTGRESQL_SHA256SUM := 
4992ff647203566b670d4e54dc5317499a26856c93576d0ea951bdf6bee50bfb
-POSTGRESQL_TARBALL := postgresql-13.11.tar.bz2
+POSTGRESQL_SHA256SUM := 
b8df078551898960bd500dc5d38a177e9905376df81fe7f2b660a1407fa6a5ed
+POSTGRESQL_TARBALL := postgresql-13.14.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-04-01 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 6027c219444ade7274841a5ba45e62bdc1ea3238
Author: Xisco Fauli 
AuthorDate: Mon Apr 1 21:16:19 2024 +0200
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Tue Apr 2 02:27:46 2024 +0200

harfbuzz: upgrade to 8.4.0

Change-Id: Ie9b5e2fc85c3be588217a166f4230c87c3cb122e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165652
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 705d349ea566..f0ab55c21f1c 100644
--- a/download.lst
+++ b/download.lst
@@ -292,8 +292,8 @@ GRAPHITE_TARBALL := graphite2-minimal-1.3.14.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-HARFBUZZ_SHA256SUM := 
f73e1eacd7e2ffae687bc3f056bb0c705b7a05aee86337686e09da8fc1c2030c
-HARFBUZZ_TARBALL := harfbuzz-8.3.1.tar.xz
+HARFBUZZ_SHA256SUM := 
af4ea73e25ab748c8c063b78c2f88e48833db9b2ac369e29bd115702e789755e
+HARFBUZZ_TARBALL := harfbuzz-8.4.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: Branch 'libreoffice-24-2' - download.lst

2024-04-01 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 46906884b5eefb551d7d3d00420709475962df92
Author: Xisco Fauli 
AuthorDate: Mon Apr 1 12:59:17 2024 +0200
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Tue Apr 2 01:28:11 2024 +0200

libtommath: upgrade to 1.3.0

Change-Id: Ica9e2520c7c70a21721f7f389fd3cd8138bf550c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165609
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 45f7af713b303643f524ac9ae7fd41ac56d96bf2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165624
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 95ae9c41f3d4..f6cbeec85530 100644
--- a/download.lst
+++ b/download.lst
@@ -409,8 +409,8 @@ LIBNUMBERTEXT_TARBALL := libnumbertext-1.0.11.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBTOMMATH_SHA256SUM := 
986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f
-LIBTOMMATH_TARBALL := ltm-1.2.1.tar.xz
+LIBTOMMATH_SHA256SUM := 
296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08
+LIBTOMMATH_TARBALL := ltm-1.3.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-04-01 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 3227466e7dc8bb247618a1d27126b4ab02f45672
Author: Xisco Fauli 
AuthorDate: Mon Apr 1 12:59:17 2024 +0200
Commit: Xisco Fauli 
CommitDate: Mon Apr 1 19:30:26 2024 +0200

libtommath: upgrade to 1.3.0

Change-Id: Ica9e2520c7c70a21721f7f389fd3cd8138bf550c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165609
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index c872b55c92df..705d349ea566 100644
--- a/download.lst
+++ b/download.lst
@@ -409,8 +409,8 @@ LIBNUMBERTEXT_TARBALL := libnumbertext-1.0.11.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBTOMMATH_SHA256SUM := 
986025d7b374276fee2e30e99f3649e4ac0db8a02257a37ee10eae72abed0d1f
-LIBTOMMATH_TARBALL := ltm-1.2.1.tar.xz
+LIBTOMMATH_SHA256SUM := 
296272d93435991308eb73607600c034b558807a07e829e751142e65ccfa9d08
+LIBTOMMATH_TARBALL := ltm-1.3.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: Branch 'libreoffice-24-2' - download.lst

2024-03-31 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit c3020e41cf95e974f0ff12c78ca841eb8cc4e9f3
Author: Xisco Fauli 
AuthorDate: Thu Mar 28 11:40:25 2024 +0100
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Mon Apr 1 00:59:23 2024 +0200

curl: upgrade to release 8.7.1

Change-Id: I0064b4cf6baf1ccd951c95945539961fe72c2a28
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165455
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 2c1a7cb13629177f824ed35138907aef10714e89)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165489
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 245cc68d424b..95ae9c41f3d4 100644
--- a/download.lst
+++ b/download.lst
@@ -80,8 +80,8 @@ CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-CURL_SHA256SUM := 
3ccd55d91af9516539df80625f818c734dc6f2ecf9bada33c76765e99121db15
-CURL_TARBALL := curl-8.6.0.tar.xz
+CURL_SHA256SUM := 
6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd
+CURL_TARBALL := curl-8.7.1.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: Branch 'libreoffice-24-2' - download.lst

2024-03-29 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 9e3b18de8d948782438ae9cc095b3aa07767b1ff
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 10:56:38 2024 +0100
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Sat Mar 30 04:45:11 2024 +0100

nss: upgrade to release 3.99

Change-Id: I77ccc45854b2d0aecc288f471d94c81ad9089f85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165273
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
(cherry picked from commit c6d791e3d2577498affec491876a0afa441be002)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165245
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 584efc99baca..245cc68d424b 100644
--- a/download.lst
+++ b/download.lst
@@ -477,8 +477,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-NSS_SHA256SUM := 
59bb55a59b02e4004fc26ad0aa1a13fe8d73c6c90c447dd2f2efb73fb81083ed
-NSS_TARBALL := nss-3.98-with-nspr-4.35.tar.gz
+NSS_SHA256SUM := 
5f29fea64b3234b33a615b6df40469e239a4168ac0909106bd00e6490b274c31
+NSS_TARBALL := nss-3.99-with-nspr-4.35.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: Branch 'libreoffice-24-2' - download.lst external/libgpg-error

2024-03-29 Thread Xisco Fauli (via logerrit)
 download.lst  |4 ++--
 external/libgpg-error/ExternalPackage_libgpg-error.mk |2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit efa4104726496c10c1a23b24cbf26edf3f25a6c5
Author: Xisco Fauli 
AuthorDate: Thu Mar 28 12:10:17 2024 +0100
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Sat Mar 30 02:46:50 2024 +0100

libgpg-error: upgrade to release 1.48

Change-Id: I3920d10657a91b56f484a5a61017d2e2ba3291b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165457
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 65bee6317eafd4d0e449c779c160e9b3017b57ce)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165471
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 48e6bc72b088..584efc99baca 100644
--- a/download.lst
+++ b/download.lst
@@ -394,8 +394,8 @@ LIBFFI_TARBALL := libffi-3.4.4.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBGPGERROR_SHA256SUM := 
9e3c670966b96ecc746c28c2c419541e3bcb787d1a73930f5e5f5e1bcbbb9bdb
-LIBGPGERROR_TARBALL := libgpg-error-1.47.tar.bz2
+LIBGPGERROR_SHA256SUM := 
89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f
+LIBGPGERROR_TARBALL := libgpg-error-1.48.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libgpg-error/ExternalPackage_libgpg-error.mk 
b/external/libgpg-error/ExternalPackage_libgpg-error.mk
index fd887fb5776d..2c64ba3b5cc6 100644
--- a/external/libgpg-error/ExternalPackage_libgpg-error.mk
+++ b/external/libgpg-error/ExternalPackage_libgpg-error.mk
@@ -15,7 +15,7 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
 
 ifeq ($(OS),LINUX)
 
-$(eval $(call 
gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.34.0))
+$(eval $(call 
gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.35.0))
 
 else ifeq ($(OS),MACOSX)
 


core.git: Branch 'libreoffice-24-2' - download.lst external/libassuan

2024-03-29 Thread Xisco Fauli (via logerrit)
 download.lst|4 ++--
 external/libassuan/ExternalPackage_libassuan.mk |2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 904501114d8b6754ab65bb11c08c145f02fab8fe
Author: Xisco Fauli 
AuthorDate: Thu Mar 28 11:49:58 2024 +0100
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Fri Mar 29 14:23:23 2024 +0100

libassuan: upgrade to 2.5.7

Change-Id: I6114c7a77395f14e83d2315ac6f9b6829ddb1c6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165456
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
(cherry picked from commit 0343d7153e77ba79a59bc5f6c51159af9010813e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165472
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 19286d1d0e32..48e6bc72b088 100644
--- a/download.lst
+++ b/download.lst
@@ -369,8 +369,8 @@ LCMS2_TARBALL := lcms2-2.15.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBASSUAN_SHA256SUM := 
e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426
-LIBASSUAN_TARBALL := libassuan-2.5.6.tar.bz2
+LIBASSUAN_SHA256SUM := 
0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76
+LIBASSUAN_TARBALL := libassuan-2.5.7.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libassuan/ExternalPackage_libassuan.mk 
b/external/libassuan/ExternalPackage_libassuan.mk
index 2df7b562d584..77dc05a665f1 100644
--- a/external/libassuan/ExternalPackage_libassuan.mk
+++ b/external/libassuan/ExternalPackage_libassuan.mk
@@ -15,7 +15,7 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
 
 ifeq ($(OS),LINUX)
 
-$(eval $(call 
gb_ExternalPackage_add_file,libassuan,$(LIBO_LIB_FOLDER)/libassuan.so.0,src/.libs/libassuan.so.0.8.6))
+$(eval $(call 
gb_ExternalPackage_add_file,libassuan,$(LIBO_LIB_FOLDER)/libassuan.so.0,src/.libs/libassuan.so.0.8.7))
 
 else ifeq ($(OS),MACOSX)
 


core.git: svgio/inc svgio/source

2024-03-28 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgnode.hxx |4 +--
 svgio/inc/svgtools.hxx|2 -
 svgio/source/svgreader/svgnode.cxx|   34 +++---
 svgio/source/svgreader/svgstyleattributes.cxx |2 -
 svgio/source/svgreader/svgstylenode.cxx   |   31 +--
 svgio/source/svgreader/svgtools.cxx   |6 ++--
 6 files changed, 13 insertions(+), 66 deletions(-)

New commits:
commit 128274d59847288d4c3463fea42b6f57ec089ec0
Author: Xisco Fauli 
AuthorDate: Thu Mar 28 11:02:50 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 28 19:42:54 2024 +0100

svgio: simplify code

Change-Id: Ieead2322e74829f187abf84dacbe8b107ea5130e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165450
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgnode.hxx b/svgio/inc/svgnode.hxx
index 16c1f50bc3db..073b011c5f6c 100644
--- a/svgio/inc/svgnode.hxx
+++ b/svgio/inc/svgnode.hxx
@@ -21,6 +21,7 @@
 
 #include "SvgNumber.hxx"
 #include "svgtoken.hxx"
+#include "svgtools.hxx"
 #include 
 #include 
 #include 
@@ -96,7 +97,7 @@ namespace svgio::svgreader
 std::optional   mpClass;
 
 /// systemLanguage values
-std::vector  maSystemLanguage;
+SvgStringVector  maSystemLanguage;
 
 /// XmlSpace value
 XmlSpacemaXmlSpace;
@@ -179,7 +180,6 @@ namespace svgio::svgreader
 
 /// SystemLanguage access
 std::vector const & getSystemLanguage() const { return 
maSystemLanguage; }
-void setSystemLanguage(OUString const &);
 
 /// XmlSpace access
 XmlSpace getXmlSpace() const;
diff --git a/svgio/inc/svgtools.hxx b/svgio/inc/svgtools.hxx
index 6dc882b6afb2..dfeb12d9ea49 100644
--- a/svgio/inc/svgtools.hxx
+++ b/svgio/inc/svgtools.hxx
@@ -122,7 +122,7 @@ namespace svgio::svgreader
 SvgAspectRatio readSvgAspectRatio(std::u16string_view rCandidate);
 
 typedef ::std::vector< OUString > SvgStringVector;
-bool readSvgStringVector(std::u16string_view rCandidate, 
SvgStringVector& rSvgStringVector);
+bool readSvgStringVector(std::u16string_view rCandidate, 
SvgStringVector& rSvgStringVector, sal_Unicode nSeparator);
 
 void readImageLink(const OUString& rCandidate, OUString& rXLink, 
OUString& rUrl, OUString& rData);
 
diff --git a/svgio/source/svgreader/svgnode.cxx 
b/svgio/source/svgreader/svgnode.cxx
index 20a48de25977..781faaf4b2a7 100644
--- a/svgio/source/svgreader/svgnode.cxx
+++ b/svgio/source/svgreader/svgnode.cxx
@@ -525,9 +525,11 @@ namespace {
 }
 case SVGToken::SystemLanguage:
 {
-if(!aContent.isEmpty())
+SvgStringVector aSvgStringVector;
+
+if(readSvgStringVector(aContent, aSvgStringVector, ','))
 {
-setSystemLanguage(aContent);
+maSystemLanguage = aSvgStringVector;
 }
 break;
 }
@@ -755,34 +757,6 @@ namespace {
 mrDocument.addSvgNodeToMapper(*mpClass, *this);
 }
 
-void SvgNode::setSystemLanguage(OUString const & rSystemClass)
-{
-const sal_Int32 nLen(rSystemClass.getLength());
-sal_Int32 nPos(0);
-OUStringBuffer aToken;
-
-// split into single tokens (currently only comma separator)
-while(nPos < nLen)
-{
-const sal_Int32 nInitPos(nPos);
-copyToLimiter(rSystemClass, u',', nPos, aToken, nLen);
-skip_char(rSystemClass, u',', nPos, nLen);
-const OUString aLang(o3tl::trim(aToken));
-aToken.setLength(0);
-
-if(!aLang.isEmpty())
-{
-maSystemLanguage.push_back(aLang);
-}
-
-if(nInitPos == nPos)
-{
-OSL_ENSURE(false, "Could not interpret on current position 
(!)");
-nPos++;
-}
-}
-}
-
 XmlSpace SvgNode::getXmlSpace() const
 {
 if(maXmlSpace != XmlSpace::NotSet)
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 0ae986f010cd..63be6afe270c 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1513,7 +1513,7 @@ namespace svgio::svgreader
 {
 SvgStringVector aSvgStringVector;
 
-if(readSvgStringVector(aContent, aSvgStringVector))
+if(readSvgStringVector(aContent, aSvgStringVector, ','))
 {
 maFontFamily = aSvgStringVector;
 }
diff --git 

core.git: download.lst external/libgpg-error

2024-03-28 Thread Xisco Fauli (via logerrit)
 download.lst  |4 ++--
 external/libgpg-error/ExternalPackage_libgpg-error.mk |2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 65bee6317eafd4d0e449c779c160e9b3017b57ce
Author: Xisco Fauli 
AuthorDate: Thu Mar 28 12:10:17 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 28 16:31:03 2024 +0100

libgpg-error: upgrade to release 1.48

Change-Id: I3920d10657a91b56f484a5a61017d2e2ba3291b0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165457
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index b9cc043b434e..6e60d5f53234 100644
--- a/download.lst
+++ b/download.lst
@@ -394,8 +394,8 @@ LIBFFI_TARBALL := libffi-3.4.4.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBGPGERROR_SHA256SUM := 
9e3c670966b96ecc746c28c2c419541e3bcb787d1a73930f5e5f5e1bcbbb9bdb
-LIBGPGERROR_TARBALL := libgpg-error-1.47.tar.bz2
+LIBGPGERROR_SHA256SUM := 
89ce1ae893e122924b858de84dc4f67aae29ffa610ebf668d5aa539045663d6f
+LIBGPGERROR_TARBALL := libgpg-error-1.48.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libgpg-error/ExternalPackage_libgpg-error.mk 
b/external/libgpg-error/ExternalPackage_libgpg-error.mk
index fd887fb5776d..2c64ba3b5cc6 100644
--- a/external/libgpg-error/ExternalPackage_libgpg-error.mk
+++ b/external/libgpg-error/ExternalPackage_libgpg-error.mk
@@ -15,7 +15,7 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
 
 ifeq ($(OS),LINUX)
 
-$(eval $(call 
gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.34.0))
+$(eval $(call 
gb_ExternalPackage_add_file,libgpg-error,$(LIBO_LIB_FOLDER)/libgpg-error-lo.so.0,src/.libs/libgpg-error-lo.so.0.35.0))
 
 else ifeq ($(OS),MACOSX)
 


core.git: download.lst external/libassuan

2024-03-28 Thread Xisco Fauli (via logerrit)
 download.lst|4 ++--
 external/libassuan/ExternalPackage_libassuan.mk |2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 0343d7153e77ba79a59bc5f6c51159af9010813e
Author: Xisco Fauli 
AuthorDate: Thu Mar 28 11:49:58 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 28 15:44:42 2024 +0100

libassuan: upgrade to 2.5.7

Change-Id: I6114c7a77395f14e83d2315ac6f9b6829ddb1c6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165456
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 67021f67c762..b9cc043b434e 100644
--- a/download.lst
+++ b/download.lst
@@ -369,8 +369,8 @@ LCMS2_TARBALL := lcms2-2.15.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBASSUAN_SHA256SUM := 
e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426
-LIBASSUAN_TARBALL := libassuan-2.5.6.tar.bz2
+LIBASSUAN_SHA256SUM := 
0103081ffc27838a2e50479153ca105e873d3d65d8a9593282e9c94c7e6afb76
+LIBASSUAN_TARBALL := libassuan-2.5.7.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
diff --git a/external/libassuan/ExternalPackage_libassuan.mk 
b/external/libassuan/ExternalPackage_libassuan.mk
index 2df7b562d584..77dc05a665f1 100644
--- a/external/libassuan/ExternalPackage_libassuan.mk
+++ b/external/libassuan/ExternalPackage_libassuan.mk
@@ -15,7 +15,7 @@ ifneq ($(DISABLE_DYNLOADING),TRUE)
 
 ifeq ($(OS),LINUX)
 
-$(eval $(call 
gb_ExternalPackage_add_file,libassuan,$(LIBO_LIB_FOLDER)/libassuan.so.0,src/.libs/libassuan.so.0.8.6))
+$(eval $(call 
gb_ExternalPackage_add_file,libassuan,$(LIBO_LIB_FOLDER)/libassuan.so.0,src/.libs/libassuan.so.0.8.7))
 
 else ifeq ($(OS),MACOSX)
 


core.git: download.lst

2024-03-28 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 2c1a7cb13629177f824ed35138907aef10714e89
Author: Xisco Fauli 
AuthorDate: Thu Mar 28 11:40:25 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 28 15:44:01 2024 +0100

curl: upgrade to release 8.7.1

Change-Id: I0064b4cf6baf1ccd951c95945539961fe72c2a28
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165455
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 4f1f4ffe97bb..67021f67c762 100644
--- a/download.lst
+++ b/download.lst
@@ -80,8 +80,8 @@ CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-CURL_SHA256SUM := 
3ccd55d91af9516539df80625f818c734dc6f2ecf9bada33c76765e99121db15
-CURL_TARBALL := curl-8.6.0.tar.xz
+CURL_SHA256SUM := 
6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd
+CURL_TARBALL := curl-8.7.1.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: svgio/CppunitTest_svgio.mk svgio/CppunitTest_svgio_tools.mk svgio/inc svgio/Library_svgio.mk svgio/qa svgio/source

2024-03-27 Thread Xisco Fauli (via logerrit)
 svgio/CppunitTest_svgio.mk|1 
 svgio/CppunitTest_svgio_tools.mk  |1 
 svgio/Library_svgio.mk|2 
 svgio/inc/svgdocument.hxx |6 -
 svgio/inc/svgnode.hxx |7 +
 svgio/inc/svgswitchnode.hxx   |   55 +++
 svgio/inc/svgtoken.hxx|1 
 svgio/qa/cppunit/SvgImportTest.cxx|   11 ++
 svgio/qa/cppunit/data/tdf160386.svg   |   16 +++
 svgio/source/svgreader/svgdocumenthandler.cxx |9 +
 svgio/source/svgreader/svgnode.cxx|   44 +++-
 svgio/source/svgreader/svgswitchnode.cxx  |  129 ++
 svgio/source/svgreader/svgtoken.cxx   |1 
 13 files changed, 270 insertions(+), 13 deletions(-)

New commits:
commit 0a2535ceb06bb9233bc29158d4c9d2513abd
Author: Xisco Fauli 
AuthorDate: Wed Mar 27 11:38:44 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 27 23:44:40 2024 +0100

tdf#160386: Add support for switch element

For now, only use language tag, meaning if
there is a file like in the unittest with

Howdy!
Wotcha!
G'day!
Hello!

"Hello!" with be displayed in a en_AU system locale

This patch partially reverts 13a41e7a12598c7896d6dc8d34aba6af5b80b83c
"tdf#150124: do nothing when parent is of unkown type"
making 0dfd8288a87b58e503bb3a41be6137485fbf3f68
"ofz#60384 Direct-leak" no longer necessary

Change-Id: Ifc73bc69aa997088dc0a2b11d7d30446303fa3b3

Change-Id: I885ef0f2c44b86196881fe55a963db2e5c7eb1be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165394
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/CppunitTest_svgio.mk b/svgio/CppunitTest_svgio.mk
index 9309f5dcb9b8..a179d6af30fa 100644
--- a/svgio/CppunitTest_svgio.mk
+++ b/svgio/CppunitTest_svgio.mk
@@ -34,6 +34,7 @@ $(eval $(call gb_CppunitTest_use_libraries,svgio,\
 cppu \
 cppuhelper \
 comphelper \
+i18nlangtag \
 sal \
 salhelper \
 sax \
diff --git a/svgio/CppunitTest_svgio_tools.mk b/svgio/CppunitTest_svgio_tools.mk
index abb6bb6e0fc7..5f4d7adbe523 100644
--- a/svgio/CppunitTest_svgio_tools.mk
+++ b/svgio/CppunitTest_svgio_tools.mk
@@ -33,6 +33,7 @@ $(eval $(call gb_CppunitTest_use_libraries,svgio_tools,\
 comphelper \
 cppu \
 cppuhelper \
+i18nlangtag \
 sal \
 salhelper \
 sax \
diff --git a/svgio/Library_svgio.mk b/svgio/Library_svgio.mk
index 7bc518c71b93..8686792ca52a 100644
--- a/svgio/Library_svgio.mk
+++ b/svgio/Library_svgio.mk
@@ -41,6 +41,7 @@ $(eval $(call gb_Library_use_libraries,svgio,\
 comphelper \
 cppu \
 cppuhelper \
+i18nlangtag \
 sal \
 salhelper \
 tk \
@@ -87,6 +88,7 @@ $(eval $(call gb_Library_add_exception_objects,svgio,\
 svgio/source/svgreader/svgstyleattributes \
 svgio/source/svgreader/svgstylenode \
 svgio/source/svgreader/svgsvgnode \
+svgio/source/svgreader/svgswitchnode \
 svgio/source/svgreader/svgsymbolnode \
 svgio/source/svgreader/svgtextnode \
 svgio/source/svgreader/svgtextposition \
diff --git a/svgio/inc/svgdocument.hxx b/svgio/inc/svgdocument.hxx
index 77b4d3891179..9f79342c0c55 100644
--- a/svgio/inc/svgdocument.hxx
+++ b/svgio/inc/svgdocument.hxx
@@ -34,9 +34,6 @@ namespace svgio::svgreader
 /// the document hierarchy with all root nodes
 SvgNodeVector   maNodes;
 
-/// invalid nodes that have no parent
-SvgNodeVector   maOrphanNodes;
-
 /// the absolute path of the Svg file in progress (if available)
 const OUString maAbsolutePath;
 
@@ -75,9 +72,6 @@ namespace svgio::svgreader
 /// data read access
 const SvgNodeVector& getSvgNodeVector() const { return maNodes; }
 const OUString& getAbsolutePath() const { return maAbsolutePath; }
-
-/// invalid nodes that have no parent
-void addOrphanNode(SvgNode* pOrphan) { 
maOrphanNodes.emplace_back(pOrphan); }
 };
 
 } // end of namespace svgio::svgreader
diff --git a/svgio/inc/svgnode.hxx b/svgio/inc/svgnode.hxx
index 63abc4f8cb0a..16c1f50bc3db 100644
--- a/svgio/inc/svgnode.hxx
+++ b/svgio/inc/svgnode.hxx
@@ -95,6 +95,9 @@ namespace svgio::svgreader
 /// Class svan value
 std::optional   mpClass;
 
+/// systemLanguage values
+std::vector  maSystemLanguage;
+
 /// XmlSpace value
 XmlSpacemaXmlSpace;
 
@@ -174,6 +177,10 @@ namespace svgio::svgreader
 std::optional const & getClass() const { return mpClass; 
}
 void setClass(OUString const &);
 
+/// SystemLanguage access
+std::vector const & getSystemLanguage() const { return 
maSystemLanguage; }
+void setSystemLanguage(OUString const &);
+
   

core.git: svgio/qa

2024-03-27 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx  |8 
 svgio/qa/cppunit/data/tdf156579.svg |8 
 2 files changed, 16 insertions(+)

New commits:
commit 6b15374d1850de13e977cf4bb2106d38e74a030a
Author: Xisco Fauli 
AuthorDate: Wed Mar 27 16:12:41 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 27 22:03:09 2024 +0100

tdf#156579: svgio: Add unittest

Change-Id: I77ab0c72209fa02c6e463351e8cda09213d47ac3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165399
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 8256f6392725..4cab973b5003 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -434,6 +434,14 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf145896)
 assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor[3]"_ostr, 
"color"_ostr, "#ff");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf156579)
+{
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf156579.svg");
+
+// Without the fix in place, nothing would be displayed
+assertXPath(pDocument, 
"/primitive2D/transform/mask/transform/polypolygoncolor[1]"_ostr, "color"_ostr, 
"#ff");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf156168)
 {
 xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf156168.svg");
diff --git a/svgio/qa/cppunit/data/tdf156579.svg 
b/svgio/qa/cppunit/data/tdf156579.svg
new file mode 100644
index ..27610784dd87
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf156579.svg
@@ -0,0 +1,8 @@
+
+
+   
+   
+   
+   
+   
+


core.git: svgio/qa

2024-03-27 Thread Xisco Fauli (via logerrit)
 svgio/qa/cppunit/SvgImportTest.cxx |  753 +
 1 file changed, 107 insertions(+), 646 deletions(-)

New commits:
commit 7fa2a81f2f00fdad570a98f33acc45cd95af5ae6
Author: Xisco Fauli 
AuthorDate: Wed Mar 27 17:41:53 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 27 20:46:03 2024 +0100

CppunitTest_svgio: factor out common code

Change-Id: I5171a07d9015706a89f25b0c2805ebed8444260d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165401
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index b0dd84706207..8256f6392725 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -39,6 +39,7 @@ protected:
 void checkRectPrimitive(Primitive2DSequence const & rPrimitive);
 
 Primitive2DSequence parseSvg(std::u16string_view aSource);
+xmlDocUniquePtr dumpAndParseSvg(std::u16string_view aSource);
 };
 
 Primitive2DSequence Test::parseSvg(std::u16string_view aSource)
@@ -60,6 +61,17 @@ Primitive2DSequence Test::parseSvg(std::u16string_view 
aSource)
 return xSvgParser->getDecomposition(aInputStream, aPath);
 }
 
+xmlDocUniquePtr Test::dumpAndParseSvg(std::u16string_view aSource)
+{
+Primitive2DSequence aSequence = parseSvg(aSource);
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+return pDocument;
+}
+
 void Test::checkRectPrimitive(Primitive2DSequence const & rPrimitive)
 {
 drawinglayer::Primitive2dXmlDump dumper;
@@ -76,8 +88,6 @@ void Test::checkRectPrimitive(Primitive2DSequence const & 
rPrimitive)
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygoncolor/polypolygon"_ostr, "maxy"_ostr, "110");
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/line"_ostr, "color"_ostr, "#ff"); 
// rect stroke color
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/line"_ostr, "width"_ostr, "3"); // 
rect stroke width
-
-
 }
 
 namespace
@@ -136,13 +146,7 @@ CPPUNIT_TEST_FIXTURE(Test, testStyles)
 
 CPPUNIT_TEST_FIXTURE(Test, testSymbol)
 {
-Primitive2DSequence aSequenceTdf87309 = 
parseSvg(u"/svgio/qa/cppunit/data/symbol.svg");
-CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequenceTdf87309.getLength()));
-
-drawinglayer::Primitive2dXmlDump dumper;
-xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequenceTdf87309);
-
-CPPUNIT_ASSERT (pDocument);
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/symbol.svg");
 
 // tdf#126330: Without the fix in place, this test would have failed with
 // - Expected: 1
@@ -153,13 +157,7 @@ CPPUNIT_TEST_FIXTURE(Test, testSymbol)
 
 CPPUNIT_TEST_FIXTURE(Test, testTdf150124)
 {
-Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf150124.svg");
-CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
-
-drawinglayer::Primitive2dXmlDump dumper;
-xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
-
-CPPUNIT_ASSERT (pDocument);
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf150124.svg");
 
 assertXPathChildren(pDocument, "/primitive2D"_ostr, 1);
 assertXPath(pDocument, "/primitive2D/hiddengeometry"_ostr, 1);
@@ -167,13 +165,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf150124)
 
 CPPUNIT_TEST_FIXTURE(Test, testTdf155819)
 {
-Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg");
-CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
-
-drawinglayer::Primitive2dXmlDump dumper;
-xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
-
-CPPUNIT_ASSERT (pDocument);
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/tdf155819.svg");
 
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/line"_ostr, 1);
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke/polypolygon"_ostr, 1);
@@ -185,13 +177,7 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf155819)
 
 CPPUNIT_TEST_FIXTURE(Test, testFilterFeBlend)
 {
-Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/filterFeBlend.svg");
-CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
-
-drawinglayer::Primitive2dXmlDump dumper;
-xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
-
-CPPUNIT_ASSERT (pDocument);
+xmlDocUniquePtr pDocument = 
dumpAndParseSvg(u"/svgio/qa/cppunit/data/filterFeBlend.svg");
 
 assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]"_ostr, "color"_ostr, 
"#8a2be2");
 assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"height"_ostr, "100");
@@ -211,13 +197,7 @@ CPPUNIT_TEST_FIXTURE(Test, testFilterFeBlend)
 
 CPPUNIT_TEST_FIXTURE(Test, testFeColorMatrix)
 {
-Primitive2DSequence aSequence = 

core.git: Branch 'libreoffice-7-6' - svgio/inc svgio/qa svgio/source

2024-03-27 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgstyleattributes.hxx  |9 +++---
 svgio/qa/cppunit/SvgImportTest.cxx|   14 ++
 svgio/qa/cppunit/data/tdf160373.svg   |   14 ++
 svgio/source/svgreader/svgstyleattributes.cxx |   36 +++---
 4 files changed, 55 insertions(+), 18 deletions(-)

New commits:
commit d6d502f41346b021d369c27c9ed969d75d680986
Author: Xisco Fauli 
AuthorDate: Tue Mar 26 14:13:21 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 27 08:51:49 2024 +0100

tdf#160373: Iterate over all parents to check whether it's a clipPath 
content

Change-Id: I383ec264e4c88ebcee2ae6a839b762bba8abfc12
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165347
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 261985b6936ede212852e806c4b140ea634a5af3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165318
Reviewed-by: Stéphane Guillou 

diff --git a/svgio/inc/svgstyleattributes.hxx b/svgio/inc/svgstyleattributes.hxx
index 4e55ab3fc644..1b5db09eb687 100644
--- a/svgio/inc/svgstyleattributes.hxx
+++ b/svgio/inc/svgstyleattributes.hxx
@@ -241,10 +241,6 @@ namespace svgio::svgreader
 
 mutable std::vector maResolvingParent;
 
-// defines if this attributes are part of a ClipPath. If yes,
-// rough geometry will be created on decomposition by patching
-// values for fill, stroke, strokeWidth and others
-boolmbIsClipPathContent : 1;
 
 // #121221# Defines if evtl. an empty array *is* set
 boolmbStrokeDasharraySet : 1;
@@ -316,6 +312,11 @@ namespace svgio::svgreader
 SvgStyleAttributes(SvgNode& rOwner);
 ~SvgStyleAttributes();
 
+// Check if this attribute is part of a ClipPath.
+// If so, rough geometry will be created on decomposition by 
patching
+// values for fill, stroke, strokeWidth and others
+bool isClipPathContent() const;
+
 /// fill content
 bool isFillSet() const; // #i125258# ask if fill is a direct hard 
attribute (no hierarchy)
 const basegfx::BColor* getFill() const;
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 90b62bcce7ff..262c5cadcc68 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -441,6 +441,20 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156168)
 assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke[4]/line", 
"color", "#00ff00");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf160373)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf160373.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+// Without the fix in place, nothing would be displayed
+assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor", "color", "#ff");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf129356)
 {
 Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf129356.svg");
diff --git a/svgio/qa/cppunit/data/tdf160373.svg 
b/svgio/qa/cppunit/data/tdf160373.svg
new file mode 100644
index ..73b18bb2ea61
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf160373.svg
@@ -0,0 +1,14 @@
+
+
+
+  
+
+  
+
+  
+
+
+
+
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index b0fd42303976..826f00b6687a 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1292,18 +1292,9 @@ namespace svgio::svgreader
 maBaselineShift(BaselineShift::Baseline),
 maBaselineShiftNumber(0),
 maDominantBaseline(DominantBaseline::Auto),
-maResolvingParent(31, 0),
-mbIsClipPathContent(SVGToken::ClipPathNode == mrOwner.getType()),
+maResolvingParent(32, 0),
 mbStrokeDasharraySet(false)
 {
-const SvgStyleAttributes* pParentStyle = getParentStyle();
-if(!mbIsClipPathContent)
-{
-if(pParentStyle)
-{
-mbIsClipPathContent = pParentStyle->mbIsClipPathContent;
-}
-}
 }
 
 SvgStyleAttributes::~SvgStyleAttributes()
@@ -1995,10 +1986,27 @@ namespace svgio::svgreader
 }
 }
 
+bool SvgStyleAttributes::isClipPathContent() const
+{
+if (SVGToken::ClipPathNode == mrOwner.getType())
+return true;
+
+const SvgStyleAttributes* pSvgStyleAttributes = getParentStyle();
+if (pSvgStyleAttributes && maResolvingParent[31] < 

core.git: Branch 'libreoffice-24-2' - svgio/inc svgio/qa svgio/source

2024-03-27 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgstyleattributes.hxx  |9 +++---
 svgio/qa/cppunit/SvgImportTest.cxx|   14 ++
 svgio/qa/cppunit/data/tdf160373.svg   |   14 ++
 svgio/source/svgreader/svgstyleattributes.cxx |   36 +++---
 4 files changed, 55 insertions(+), 18 deletions(-)

New commits:
commit ea3d61886a2b420b985bed162c28b94698283c76
Author: Xisco Fauli 
AuthorDate: Tue Mar 26 14:13:21 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 27 08:51:39 2024 +0100

tdf#160373: Iterate over all parents to check whether it's a clipPath 
content

Change-Id: I383ec264e4c88ebcee2ae6a839b762bba8abfc12
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165347
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 261985b6936ede212852e806c4b140ea634a5af3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165317
Reviewed-by: Stéphane Guillou 

diff --git a/svgio/inc/svgstyleattributes.hxx b/svgio/inc/svgstyleattributes.hxx
index bf921f8b1bb0..c5c095462f3d 100644
--- a/svgio/inc/svgstyleattributes.hxx
+++ b/svgio/inc/svgstyleattributes.hxx
@@ -243,10 +243,6 @@ namespace svgio::svgreader
 
 mutable std::vector maResolvingParent;
 
-// defines if this attributes are part of a ClipPath. If yes,
-// rough geometry will be created on decomposition by patching
-// values for fill, stroke, strokeWidth and others
-boolmbIsClipPathContent : 1;
 
 // #121221# Defines if evtl. an empty array *is* set
 boolmbStrokeDasharraySet : 1;
@@ -318,6 +314,11 @@ namespace svgio::svgreader
 SvgStyleAttributes(SvgNode& rOwner);
 ~SvgStyleAttributes();
 
+// Check if this attribute is part of a ClipPath.
+// If so, rough geometry will be created on decomposition by 
patching
+// values for fill, stroke, strokeWidth and others
+bool isClipPathContent() const;
+
 /// fill content
 bool isFillSet() const; // #i125258# ask if fill is a direct hard 
attribute (no hierarchy)
 const basegfx::BColor* getFill() const;
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 326e8f38ffb6..c7188dedd7c0 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -441,6 +441,20 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156168)
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke[4]/line"_ostr, "color"_ostr, 
"#00ff00");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf160373)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf160373.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+// Without the fix in place, nothing would be displayed
+assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor"_ostr, "color"_ostr, 
"#ff");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf129356)
 {
 Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf129356.svg");
diff --git a/svgio/qa/cppunit/data/tdf160373.svg 
b/svgio/qa/cppunit/data/tdf160373.svg
new file mode 100644
index ..73b18bb2ea61
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf160373.svg
@@ -0,0 +1,14 @@
+
+
+
+  
+
+  
+
+  
+
+
+
+
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 19070989bb55..58bdb9add84b 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1287,18 +1287,9 @@ namespace svgio::svgreader
 maBaselineShift(BaselineShift::Baseline),
 maBaselineShiftNumber(0),
 maDominantBaseline(DominantBaseline::Auto),
-maResolvingParent(31, 0),
-mbIsClipPathContent(SVGToken::ClipPathNode == mrOwner.getType()),
+maResolvingParent(32, 0),
 mbStrokeDasharraySet(false)
 {
-const SvgStyleAttributes* pParentStyle = getParentStyle();
-if(!mbIsClipPathContent)
-{
-if(pParentStyle)
-{
-mbIsClipPathContent = pParentStyle->mbIsClipPathContent;
-}
-}
 }
 
 SvgStyleAttributes::~SvgStyleAttributes()
@@ -2005,10 +1996,27 @@ namespace svgio::svgreader
 }
 }
 
+bool SvgStyleAttributes::isClipPathContent() const
+{
+if (SVGToken::ClipPathNode == mrOwner.getType())
+return true;
+
+const SvgStyleAttributes* pSvgStyleAttributes = getParentStyle();
+if (pSvgStyleAttributes && 

core.git: svgio/inc svgio/qa svgio/source

2024-03-26 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgstyleattributes.hxx  |9 +++---
 svgio/qa/cppunit/SvgImportTest.cxx|   14 ++
 svgio/qa/cppunit/data/tdf160373.svg   |   14 ++
 svgio/source/svgreader/svgstyleattributes.cxx |   36 +++---
 4 files changed, 55 insertions(+), 18 deletions(-)

New commits:
commit feb4e0890b883940ec6964375293727ac6229f1c
Author: Xisco Fauli 
AuthorDate: Tue Mar 26 14:13:21 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 26 18:38:59 2024 +0100

tdf#160373: Iterate over all parents to check whether it's a clipPath 
content

Change-Id: I383ec264e4c88ebcee2ae6a839b762bba8abfc12
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165347
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgstyleattributes.hxx b/svgio/inc/svgstyleattributes.hxx
index bf921f8b1bb0..c5c095462f3d 100644
--- a/svgio/inc/svgstyleattributes.hxx
+++ b/svgio/inc/svgstyleattributes.hxx
@@ -243,10 +243,6 @@ namespace svgio::svgreader
 
 mutable std::vector maResolvingParent;
 
-// defines if this attributes are part of a ClipPath. If yes,
-// rough geometry will be created on decomposition by patching
-// values for fill, stroke, strokeWidth and others
-boolmbIsClipPathContent : 1;
 
 // #121221# Defines if evtl. an empty array *is* set
 boolmbStrokeDasharraySet : 1;
@@ -318,6 +314,11 @@ namespace svgio::svgreader
 SvgStyleAttributes(SvgNode& rOwner);
 ~SvgStyleAttributes();
 
+// Check if this attribute is part of a ClipPath.
+// If so, rough geometry will be created on decomposition by 
patching
+// values for fill, stroke, strokeWidth and others
+bool isClipPathContent() const;
+
 /// fill content
 bool isFillSet() const; // #i125258# ask if fill is a direct hard 
attribute (no hierarchy)
 const basegfx::BColor* getFill() const;
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 88bf4bc1a4e7..b0dd84706207 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -576,6 +576,20 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156168)
 assertXPath(pDocument, 
"/primitive2D/transform/polypolygonstroke[4]/line"_ostr, "color"_ostr, 
"#00ff00");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf160373)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf160373.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+// Without the fix in place, nothing would be displayed
+assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor"_ostr, "color"_ostr, 
"#ff");
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf129356)
 {
 Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf129356.svg");
diff --git a/svgio/qa/cppunit/data/tdf160373.svg 
b/svgio/qa/cppunit/data/tdf160373.svg
new file mode 100644
index ..73b18bb2ea61
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf160373.svg
@@ -0,0 +1,14 @@
+
+
+
+  
+
+  
+
+  
+
+
+
+
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index d5e3ad33209e..0ae986f010cd 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -1287,18 +1287,9 @@ namespace svgio::svgreader
 maBaselineShift(BaselineShift::Baseline),
 maBaselineShiftNumber(0),
 maDominantBaseline(DominantBaseline::Auto),
-maResolvingParent(31, 0),
-mbIsClipPathContent(SVGToken::ClipPathNode == mrOwner.getType()),
+maResolvingParent(32, 0),
 mbStrokeDasharraySet(false)
 {
-const SvgStyleAttributes* pParentStyle = getParentStyle();
-if(!mbIsClipPathContent)
-{
-if(pParentStyle)
-{
-mbIsClipPathContent = pParentStyle->mbIsClipPathContent;
-}
-}
 }
 
 SvgStyleAttributes::~SvgStyleAttributes()
@@ -2005,10 +1996,27 @@ namespace svgio::svgreader
 }
 }
 
+bool SvgStyleAttributes::isClipPathContent() const
+{
+if (SVGToken::ClipPathNode == mrOwner.getType())
+return true;
+
+const SvgStyleAttributes* pSvgStyleAttributes = getParentStyle();
+if (pSvgStyleAttributes && maResolvingParent[31] < 
nStyleDepthLimit)
+{
+++maResolvingParent[31];
+bool ret = pSvgStyleAttributes->isClipPathContent();
+   

core.git: download.lst external/poppler

2024-03-26 Thread Xisco Fauli (via logerrit)
 download.lst |4 +-
 external/poppler/disable-nss-and-gpgmepp.patch.1 |   36 ---
 2 files changed, 21 insertions(+), 19 deletions(-)

New commits:
commit a3eefc0fbe7d9a9ed946979c97a41181cd043593
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 20:59:08 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 26 09:25:55 2024 +0100

poppler: upgrade to release 24.03.0

Change-Id: Icd063dcc9a034e88283ddf16be64091a32f3453f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165292
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 2b033727c322..4f1f4ffe97bb 100644
--- a/download.lst
+++ b/download.lst
@@ -543,8 +543,8 @@ LIBTIFF_TARBALL := tiff-4.6.0.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POPPLER_SHA256SUM := 
80d1d44dd8bdf4ac1a47d56c5065075eb9991790974b1ed7d14b972acde88e55
-POPPLER_TARBALL := poppler-23.09.0.tar.xz
+POPPLER_SHA256SUM := 
bafbf0db5713dec25b5d16eb2cd87e4a62351cdc40f050c3937cd8dd6882d446
+POPPLER_TARBALL := poppler-24.03.0.tar.xz
 POPPLER_DATA_SHA256SUM := 
c835b640a40ce357e1b83666aabd95edffa24d49b8daff63adb851cdab74
 POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz
 # three static lines
diff --git a/external/poppler/disable-nss-and-gpgmepp.patch.1 
b/external/poppler/disable-nss-and-gpgmepp.patch.1
index 01b442f53a1c..1d7f7f933433 100644
--- a/external/poppler/disable-nss-and-gpgmepp.patch.1
+++ b/external/poppler/disable-nss-and-gpgmepp.patch.1
@@ -11,7 +11,7 @@ disable NSS/GPGMEPP dependent code.
  #include "SignatureInfo.h"
  #include "CertificateInfo.h"
  #include "XRef.h"
-@@ -577,7 +577,7 @@
+@@ -578,7 +578,7 @@
  {
  return static_cast(field)->validateSignature(doVerifyCert, forceRevalidation, validationTime, 
ocspRevocationCheck, enableAIA);
  }
@@ -20,12 +20,12 @@ disable NSS/GPGMEPP dependent code.
  // update hash with the specified range of data from the file
  static bool hashFileRange(FILE *f, CryptoSign::SigningInterface *handler, 
Goffset start, Goffset end)
  {
-@@ -607,10 +607,12 @@
+@@ -608,10 +608,12 @@
  delete[] buf;
  return true;
  }
 +#endif
- 
+
  bool FormWidgetSignature::signDocument(const std::string , const 
std::string , const std::string , const GooString 
*reason, const GooString *location, const std::optional 
,
 const std::optional 
)
  {
@@ -33,44 +33,46 @@ disable NSS/GPGMEPP dependent code.
  auto backend = CryptoSign::Factory::createActive();
  if (!backend) {
  return false;
-@@ -698,6 +700,8 @@
+@@ -697,8 +699,8 @@
+ signatureField->setSignature(*signature);
+
  fclose(file);
- 
- return true;
+-
+-return true;
 +#endif
 +return false;
  }
- 
- bool FormWidgetSignature::signDocumentWithAppearance(const std::string 
, const std::string , const std::string , 
const GooString *reason, const GooString *location,
-@@ -2316,6 +2320,7 @@
- 
+
+ static std::tuple calculateDxDy(int rot, const PDFRectangle 
*rect)
+@@ -2355,6 +2357,7 @@
+
  void 
FormFieldSignature::hashSignedDataBlock(CryptoSign::VerificationInterface 
*handler, Goffset block_len)
  {
 +#if 0
  if (!handler) {
  return;
  }
-@@ -2335,6 +2340,7 @@
+@@ -2374,6 +2377,7 @@
  i += BLOCK_SIZE;
  }
  }
 +#endif
  }
- 
+
  FormSignatureType FormWidgetSignature::signatureType() const
-@@ -2349,6 +2355,7 @@
- 
+@@ -2388,6 +2392,7 @@
+
  SignatureInfo *FormFieldSignature::validateSignature(bool doVerifyCert, bool 
forceRevalidation, time_t validationTime, bool ocspRevocationCheck, bool 
enableAIA)
  {
 +#if 0
  auto backend = CryptoSign::Factory::createActive();
  if (!backend) {
  return signature_info;
-@@ -2425,6 +2432,7 @@
+@@ -2464,6 +2469,7 @@
  const CertificateValidationStatus cert_val_state = 
signature_handler->validateCertificate(std::chrono::system_clock::from_time_t(validationTime),
 ocspRevocationCheck, enableAIA);
  signature_info->setCertificateValStatus(cert_val_state);
- 
+
 +#endif
  return signature_info;
  }
- 
+


core.git: Branch 'libreoffice-24-2' - download.lst

2024-03-26 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 999d14c0e4dc8063d7afd5a6c216b1842ef5a171
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 12:14:07 2024 +0100
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Tue Mar 26 09:14:16 2024 +0100

openldap: upgrade to release 2.6.7

Change-Id: I7716a41114442ba7a57d81192b01cbeaaeca08b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165280
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 9a0b37a5337faee5634cc9fce4955da204b95bf4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165247
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 6b38df3ce30b..19286d1d0e32 100644
--- a/download.lst
+++ b/download.lst
@@ -503,8 +503,8 @@ ONLINEUPDATE_TARBALL := 
onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-OPENLDAP_SHA256SUM := 
082e998cf542984d43634442dbe11da860759e510907152ea579bdc42fe39ea0
-OPENLDAP_TARBALL := openldap-2.6.6.tgz
+OPENLDAP_SHA256SUM := 
cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930
+OPENLDAP_TARBALL := openldap-2.6.7.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-03-25 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit a80258e11282c78ab3867c96e4c2575e83c5482b
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 13:45:24 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 25 20:43:29 2024 +0100

mariadb connector: upgrade to release 3.3.8

Change-Id: I21cf511a2b6c040d4a64ca720606af9312130045
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165284
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index d35bd6300748..2b033727c322 100644
--- a/download.lst
+++ b/download.lst
@@ -446,8 +446,8 @@ LXML_TARBALL := lxml-4.9.2.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-MARIADB_CONNECTOR_C_SHA256SUM := 
975a9a862fed80f84e0206373f7ef05537aada5b65d99b71b36ab892b44240bf
-MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.7-src.tar.gz
+MARIADB_CONNECTOR_C_SHA256SUM := 
f9f076b4aa9fb22cc94b24f82c80f9ef063805ecd6533a2eb5d5060cf93833e8
+MARIADB_CONNECTOR_C_TARBALL := mariadb-connector-c-3.3.8-src.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-03-25 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit c6d791e3d2577498affec491876a0afa441be002
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 10:56:38 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 25 20:42:40 2024 +0100

nss: upgrade to release 3.99

Change-Id: I77ccc45854b2d0aecc288f471d94c81ad9089f85
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165273
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index f7cacf0c43aa..d35bd6300748 100644
--- a/download.lst
+++ b/download.lst
@@ -477,8 +477,8 @@ MYTHES_TARBALL := mythes-1.2.5.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-NSS_SHA256SUM := 
59bb55a59b02e4004fc26ad0aa1a13fe8d73c6c90c447dd2f2efb73fb81083ed
-NSS_TARBALL := nss-3.98-with-nspr-4.35.tar.gz
+NSS_SHA256SUM := 
5f29fea64b3234b33a615b6df40469e239a4168ac0909106bd00e6490b274c31
+NSS_TARBALL := nss-3.99-with-nspr-4.35.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-03-25 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 9a0b37a5337faee5634cc9fce4955da204b95bf4
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 12:14:07 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 25 15:54:36 2024 +0100

openldap: upgrade to release 2.6.7

Change-Id: I7716a41114442ba7a57d81192b01cbeaaeca08b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165280
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 7064bd39bef3..f7cacf0c43aa 100644
--- a/download.lst
+++ b/download.lst
@@ -503,8 +503,8 @@ ONLINEUPDATE_TARBALL := 
onlineupdate-c003be8b9727672e7d30972983b375f4c200233f-2.
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-OPENLDAP_SHA256SUM := 
082e998cf542984d43634442dbe11da860759e510907152ea579bdc42fe39ea0
-OPENLDAP_TARBALL := openldap-2.6.6.tgz
+OPENLDAP_SHA256SUM := 
cd775f625c944ed78a3da18a03b03b08eea73c8aabc97b41bb336e9a10954930
+OPENLDAP_TARBALL := openldap-2.6.7.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-03-25 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit e6f000c64fa986a9539f68fe5fff096b0b4b7c48
Author: Xisco Fauli 
AuthorDate: Mon Mar 25 11:23:27 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 25 15:13:19 2024 +0100

postgresql: upgrade to release 13.14

Change-Id: Ia9607fd9c8dad9d5936e867ad76b18a476f1057f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165278
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 643e9cc7f3f3..7064bd39bef3 100644
--- a/download.lst
+++ b/download.lst
@@ -550,8 +550,8 @@ POPPLER_DATA_TARBALL := poppler-data-0.4.12.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-POSTGRESQL_SHA256SUM := 
4992ff647203566b670d4e54dc5317499a26856c93576d0ea951bdf6bee50bfb
-POSTGRESQL_TARBALL := postgresql-13.11.tar.bz2
+POSTGRESQL_SHA256SUM := 
b8df078551898960bd500dc5d38a177e9905376df81fe7f2b660a1407fa6a5ed
+POSTGRESQL_TARBALL := postgresql-13.14.tar.bz2
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: Branch 'libreoffice-24-2' - download.lst

2024-03-22 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 319966df55dda429202f12eba678eeb461eef5ed
Author: Xisco Fauli 
AuthorDate: Wed Mar 20 10:26:11 2024 +0100
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Sat Mar 23 01:05:13 2024 +0100

libxml2: upgrade to release 2.12.6

Change-Id: I7372b276f74bc760c99580ffc509fde1031cb3a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165049
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 832b98cedda2cd1631651f9397a871fb50d9cb1f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165183
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index bc1f68ce8385..6b38df3ce30b 100644
--- a/download.lst
+++ b/download.lst
@@ -424,8 +424,8 @@ XMLSEC_TARBALL := xmlsec1-1.3.2.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBXML_SHA256SUM := 
a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21
-LIBXML_VERSION_MICRO := 5
+LIBXML_SHA256SUM := 
889c593a881a3db5fdd96cc9318c87df34eb648edfc458272ad46fd607353fbb
+LIBXML_VERSION_MICRO := 6
 LIBXML_TARBALL := libxml2-2.12.$(LIBXML_VERSION_MICRO).tar.xz
 # three static lines
 # so that git cherry-pick


core.git: Branch 'libreoffice-24-2' - download.lst

2024-03-22 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 78f0fa2f7e408cbc75ffe99f61f6a556bed2a032
Author: Xisco Fauli 
AuthorDate: Wed Mar 20 10:49:53 2024 +0100
Commit: Taichi Haradaguchi <20001...@ymail.ne.jp>
CommitDate: Sat Mar 23 01:04:45 2024 +0100

libpng: upgrade to 1.6.43

Change-Id: Ia1ddc21dc521cf97b75a64d806417cbfe5dec623
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165050
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
(cherry picked from commit f29222eaf385891620d4868827b27e734752018e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165182
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001...@ymail.ne.jp>

diff --git a/download.lst b/download.lst
index 438359f38b65..bc1f68ce8385 100644
--- a/download.lst
+++ b/download.lst
@@ -533,8 +533,8 @@ PIXMAN_TARBALL := pixman-0.42.2.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBPNG_SHA256SUM := 
c919dbc11f4c03b05aba3f8884d8eb7adfe3572ad228af972bb60057bdb48450
-LIBPNG_TARBALL := libpng-1.6.42.tar.xz
+LIBPNG_SHA256SUM := 
6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c
+LIBPNG_TARBALL := libpng-1.6.43.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: vcl/qa

2024-03-22 Thread Xisco Fauli (via logerrit)
 vcl/qa/cppunit/pdfexport/data/tdf160117.ods |binary
 vcl/qa/cppunit/pdfexport/pdfexport2.cxx |   42 
 2 files changed, 42 insertions(+)

New commits:
commit c6518dc58f76ad9b59a61dd3736abd62acc5fc57
Author: Xisco Fauli 
AuthorDate: Thu Mar 21 12:36:24 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 22 10:10:33 2024 +0100

tdf#160117: vcl_pdfexport2: Add unittest

Change-Id: I5b10d92d1ba4d62a8a0b4e2d8b0f023b58225fb0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165098
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/vcl/qa/cppunit/pdfexport/data/tdf160117.ods 
b/vcl/qa/cppunit/pdfexport/data/tdf160117.ods
new file mode 100644
index ..ed18444e7b8d
Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf160117.ods differ
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index 061b79e488cb..525f1d91a449 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -1047,6 +1047,48 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testReexportPDF)
 #endif
 }
 
+CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf160117)
+{
+vcl::filter::PDFDocument aDocument;
+load(u"tdf160117.ods", aDocument);
+
+// The document has one page.
+std::vector aPages = aDocument.GetPages();
+CPPUNIT_ASSERT_EQUAL(static_cast(1), aPages.size());
+
+int nCount = 0;
+bool bFound1 = false;
+bool bFound2 = false;
+bool bFound3 = false;
+for (const auto& rDocElement : aDocument.GetElements())
+{
+auto pObject = 
dynamic_cast(rDocElement.get());
+if (!pObject)
+continue;
+auto pType = 
dynamic_cast(pObject->Lookup("Type"_ostr));
+if (pType && pType->GetValue() == "FontDescriptor")
+{
+auto pFontName
+= 
dynamic_cast(pObject->Lookup("FontName"_ostr));
+CPPUNIT_ASSERT(pFontName);
+if ("CA+LiberationSans-Bold"_ostr == pFontName->GetValue())
+bFound1 = true;
+else if ("DA+LiberationSans-Italic"_ostr == 
pFontName->GetValue())
+bFound2 = true;
+else if ("BA+LiberationSans"_ostr == pFontName->GetValue())
+bFound3 = true;
+++nCount;
+}
+}
+// Without the fix in place, this test would have failed with
+// - Expected: 3
+// - Actual  : 2
+CPPUNIT_ASSERT_EQUAL(3, nCount);
+CPPUNIT_ASSERT(bFound1);
+CPPUNIT_ASSERT(bFound2);
+CPPUNIT_ASSERT(bFound3);
+}
+
 // Check we correctly copy more complex resources (Fonts describing
 // glyphs in recursive arrays) to the target PDF
 CPPUNIT_TEST_FIXTURE(PdfExportTest2, testReexportDocumentWithComplexResources)


core.git: download.lst

2024-03-21 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 832b98cedda2cd1631651f9397a871fb50d9cb1f
Author: Xisco Fauli 
AuthorDate: Wed Mar 20 10:26:11 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 21 13:06:47 2024 +0100

libxml2: upgrade to release 2.12.6

Change-Id: I7372b276f74bc760c99580ffc509fde1031cb3a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165049
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 27391725e6a5..276d67276c07 100644
--- a/download.lst
+++ b/download.lst
@@ -424,8 +424,8 @@ XMLSEC_TARBALL := xmlsec1-1.3.3.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBXML_SHA256SUM := 
a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21
-LIBXML_VERSION_MICRO := 5
+LIBXML_SHA256SUM := 
889c593a881a3db5fdd96cc9318c87df34eb648edfc458272ad46fd607353fbb
+LIBXML_VERSION_MICRO := 6
 LIBXML_TARBALL := libxml2-2.12.$(LIBXML_VERSION_MICRO).tar.xz
 # three static lines
 # so that git cherry-pick


core.git: sw/qa

2024-03-21 Thread Xisco Fauli (via logerrit)
 sw/qa/uitest/data/tdf159418.odt |binary
 sw/qa/uitest/writer_tests4/tdf159418.py |   49 
 2 files changed, 49 insertions(+)

New commits:
commit b54dbc842491349ea1fd144988feb7e25ea5f106
Author: Xisco Fauli 
AuthorDate: Wed Mar 20 16:48:58 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 21 08:52:26 2024 +0100

tdf#159418: sw: Add UItest

Change-Id: Ic41eac4909e85544f5c195cebb59e32745c09f40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165070
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/uitest/data/tdf159418.odt b/sw/qa/uitest/data/tdf159418.odt
new file mode 100644
index ..730b36fff3b0
Binary files /dev/null and b/sw/qa/uitest/data/tdf159418.odt differ
diff --git a/sw/qa/uitest/writer_tests4/tdf159418.py 
b/sw/qa/uitest/writer_tests4/tdf159418.py
new file mode 100644
index ..76143a5dce71
--- /dev/null
+++ b/sw/qa/uitest/writer_tests4/tdf159418.py
@@ -0,0 +1,49 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# 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/.
+#
+
+from uitest.framework import UITestCase
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
+
+class tdf159418(UITestCase):
+
+def test_tdf159418(self):
+with self.ui_test.load_file(get_url_for_data_file("tdf159418.odt")):
+
+with 
self.ui_test.execute_dialog_through_command(".uno:IndexEntryDialog", 
close_button="close") as xDialog:
+
+xEntry = xDialog.getChild("entryed")
+xNext = xDialog.getChild("next")
+xPrevious = xDialog.getChild("previous")
+
+# Without the fix in place, this test would have failed with
+# AssertionError: 'true' != 'false'
+self.assertEqual("true", get_state_as_dict(xNext)["Visible"])
+self.assertEqual("true", get_state_as_dict(xNext)["Enabled"])
+self.assertEqual("true", 
get_state_as_dict(xPrevious)["Visible"])
+self.assertEqual("false", 
get_state_as_dict(xPrevious)["Enabled"])
+self.assertEqual("Function", get_state_as_dict(xEntry)["Text"])
+
+xNext.executeAction("CLICK", tuple())
+
+self.assertEqual("true", get_state_as_dict(xNext)["Visible"])
+self.assertEqual("true", 
get_state_as_dict(xPrevious)["Visible"])
+self.assertEqual("true", 
get_state_as_dict(xPrevious)["Visible"])
+self.assertEqual("true", 
get_state_as_dict(xPrevious)["Enabled"])
+self.assertEqual("vector", get_state_as_dict(xEntry)["Text"])
+
+xPrevious.executeAction("CLICK", tuple())
+
+self.assertEqual("true", get_state_as_dict(xNext)["Visible"])
+self.assertEqual("true", get_state_as_dict(xNext)["Enabled"])
+self.assertEqual("true", 
get_state_as_dict(xPrevious)["Visible"])
+self.assertEqual("false", 
get_state_as_dict(xPrevious)["Enabled"])
+self.assertEqual("Function", get_state_as_dict(xEntry)["Text"])
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:


core.git: download.lst

2024-03-20 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit c87f46492a41ebb2f9ac61ee8e1f0dd6d3dc90c7
Author: Xisco Fauli 
AuthorDate: Wed Mar 20 11:07:34 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 20 19:30:26 2024 +0100

harfbuzz: upgrade to 8.3.1

Change-Id: I3dee68e397dc1c6dafa604e84bfcb619f2a33590
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165051
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 003d7b3929a5..8589b1fc 100644
--- a/download.lst
+++ b/download.lst
@@ -292,8 +292,8 @@ GRAPHITE_TARBALL := graphite2-minimal-1.3.14.tgz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-HARFBUZZ_SHA256SUM := 
109501eaeb8bde3eadb25fab4164e993fbace29c3d775bcaa1c1e58e2f15f847
-HARFBUZZ_TARBALL := harfbuzz-8.3.0.tar.xz
+HARFBUZZ_SHA256SUM := 
f73e1eacd7e2ffae687bc3f056bb0c705b7a05aee86337686e09da8fc1c2030c
+HARFBUZZ_TARBALL := harfbuzz-8.3.1.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: download.lst

2024-03-20 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit f29222eaf385891620d4868827b27e734752018e
Author: Xisco Fauli 
AuthorDate: Wed Mar 20 10:49:53 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 20 17:44:02 2024 +0100

libpng: upgrade to 1.6.43

Change-Id: Ia1ddc21dc521cf97b75a64d806417cbfe5dec623
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165050
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 682ec1a0f256..003d7b3929a5 100644
--- a/download.lst
+++ b/download.lst
@@ -533,8 +533,8 @@ PIXMAN_TARBALL := pixman-0.42.2.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-LIBPNG_SHA256SUM := 
c919dbc11f4c03b05aba3f8884d8eb7adfe3572ad228af972bb60057bdb48450
-LIBPNG_TARBALL := libpng-1.6.42.tar.xz
+LIBPNG_SHA256SUM := 
6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c
+LIBPNG_TARBALL := libpng-1.6.43.tar.xz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: Branch 'libreoffice-7-6' - vcl/qa writerfilter/source

2024-03-19 Thread Xisco Fauli (via logerrit)
 vcl/qa/cppunit/pdfexport/data/tdf142133.docx  |binary
 vcl/qa/cppunit/pdfexport/pdfexport.cxx|   35 ++
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |   23 --
 writerfilter/source/dmapper/DomainMapper_Impl.hxx |3 +
 4 files changed, 52 insertions(+), 9 deletions(-)

New commits:
commit 5f025f9bab12d0f08c23cca08d12c15cca95e9ed
Author: Xisco Fauli 
AuthorDate: Fri Mar 8 14:23:08 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 19 18:48:11 2024 +0100

tdf#142133: partially revert 576611895e5

if 'Internet Link' character style doens't exist then
apply the hyperlink style
This also reverts 023285158bde72dcd73b965ce205cf8550e7a5e2
"tdf#128504 save DOCX as ODT: don't color not highlighted hyperlinks"
which is no longer necessary

Change-Id: Id100af5fddb10745af9d56c0ba75cb2366ecbe55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164576
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 03ca7031f3bf4c2a3e841b18c8f9e4046098)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164509
Reviewed-by: Stéphane Guillou 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164711

diff --git a/vcl/qa/cppunit/pdfexport/data/tdf142133.docx 
b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx
new file mode 100644
index ..fa1e155b873e
Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx differ
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index 4113e160f1e7..d6ae5f527ab8 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -2706,6 +2706,41 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816Link)
 CPPUNIT_ASSERT_EQUAL(static_cast(4), 
pAnnots->GetElements().size());
 }
 
+CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142133)
+{
+vcl::filter::PDFDocument aDocument;
+load(u"tdf142133.docx", aDocument);
+
+// The document has one page.
+std::vector aPages = aDocument.GetPages();
+CPPUNIT_ASSERT_EQUAL(static_cast(1), aPages.size());
+
+auto pAnnots = 
dynamic_cast(aPages[0]->Lookup("Annots"));
+CPPUNIT_ASSERT(pAnnots);
+
+// There should be one annotation
+CPPUNIT_ASSERT_EQUAL(static_cast(1), 
pAnnots->GetElements().size());
+auto pAnnotReference
+= 
dynamic_cast(pAnnots->GetElements()[0]);
+CPPUNIT_ASSERT(pAnnotReference);
+vcl::filter::PDFObjectElement* pAnnot = pAnnotReference->LookupObject();
+CPPUNIT_ASSERT(pAnnot);
+// We're expecting something like /Type /Annot /A << /Type /Action /S /URI 
/URI (path)
+CPPUNIT_ASSERT_EQUAL(
+OString("Annot"),
+
static_cast(pAnnot->Lookup("Type"))->GetValue());
+CPPUNIT_ASSERT_EQUAL(
+OString("Link"),
+
static_cast(pAnnot->Lookup("Subtype"))->GetValue());
+auto pAction = 
dynamic_cast(pAnnot->Lookup("A"));
+CPPUNIT_ASSERT(pAction);
+auto pURIElem
+= 
dynamic_cast(pAction->LookupElement("URI"));
+CPPUNIT_ASSERT(pURIElem);
+// Check it matches
+CPPUNIT_ASSERT_EQUAL(OString("https://google.com/;), pURIElem->GetValue());
+}
+
 CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142806)
 {
 aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx 
b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index bbdbb117556b..8997fc72637d 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -3245,6 +3245,15 @@ void DomainMapper_Impl::applyToggleAttributes(const 
PropertyMapPtr& pPropertyMap
 }
 else
 {
+if (IsOpenField() && GetTopFieldContext()->GetFieldId() == 
FIELD_HYPERLINK)
+{
+// It is content of hyperlink field. We need to create and 
remember
+// character style for later applying to hyperlink
+PropertyValueVector_t aProps = 
comphelper::sequenceToContainer< PropertyValueVector_t 
>(GetTopContext()->GetPropertyValues());
+OUString sHyperlinkStyleName = 
GetStyleSheetTable()->getOrCreateCharStyle(aProps, /*bAlwaysCreate=*/false);
+
GetTopFieldContext()->SetHyperlinkStyle(sHyperlinkStyleName);
+}
+
 #if !defined(MACOSX) // TODO: check layout differences and support all 
platforms, if needed
 sal_Int32 nPos = 0;
 OUString sFontName;
@@ -8460,25 +8469,21 @@ void DomainMapper_Impl::PopFieldContext()
 
xCrsrProperties->setPropertyValue("VisitedCharStyleName",uno::Any(sDisplayName));
 
xCrsrProperties->setPropertyValue("UnvisitedCharStyleName",uno::Any(sDisplayName));
 }
-

core.git: svgio/source

2024-03-15 Thread Xisco Fauli (via logerrit)
 svgio/source/svgreader/svgfecompositenode.cxx |   19 +++
 1 file changed, 11 insertions(+), 8 deletions(-)

New commits:
commit 485ae0bc7e1a1d615dd1d4133d3e42d655dec029
Author: Xisco Fauli 
AuthorDate: Fri Mar 15 11:15:08 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 15 14:54:45 2024 +0100

tdf#48062: use mergeToSinglePolyPolygon instead of createPolygonFromRect

Otherwise, in files like
https://bug-attachments.documentfoundation.org/attachment.cgi?id=193126
where no rectangles are used the mask is displayed
as a rectangle

Change-Id: I8cafb22bd6055db729d0d56b4756119d7989abb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164863
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/source/svgreader/svgfecompositenode.cxx 
b/svgio/source/svgreader/svgfecompositenode.cxx
index 1e20a0ef00f2..88ba5c62df68 100644
--- a/svgio/source/svgreader/svgfecompositenode.cxx
+++ b/svgio/source/svgreader/svgfecompositenode.cxx
@@ -22,6 +22,7 @@
 #include 
 #include 
 #include 
+#include 
 
 namespace svgio::svgreader
 {
@@ -102,20 +103,22 @@ void 
SvgFeCompositeNode::apply(drawinglayer::primitive2d::Primitive2DContainer&
 = pParent->findGraphicSource(maIn2))
 {
 rTarget.append(*pSource2);
-const basegfx::B2DRange aRange2(
-
pSource2->getB2DRange(drawinglayer::geometry::ViewInformation2D()));
-
-aPolyPolygon2 = 
basegfx::B2DPolyPolygon(basegfx::utils::createPolygonFromRect(aRange2));
+drawinglayer::processor2d::ContourExtractor2D aExtractor(
+drawinglayer::geometry::ViewInformation2D(), true);
+aExtractor.process(*pSource2);
+const basegfx::B2DPolyPolygonVector& 
rResult(aExtractor.getExtractedContour());
+aPolyPolygon2 = basegfx::utils::mergeToSinglePolyPolygon(rResult);
 }
 
 if (const drawinglayer::primitive2d::Primitive2DContainer* pSource
 = pParent->findGraphicSource(maIn))
 {
 rTarget.append(*pSource);
-const basegfx::B2DRange aRange(
-pSource->getB2DRange(drawinglayer::geometry::ViewInformation2D()));
-
-aPolyPolygon = 
basegfx::B2DPolyPolygon(basegfx::utils::createPolygonFromRect(aRange));
+drawinglayer::processor2d::ContourExtractor2D aExtractor(
+drawinglayer::geometry::ViewInformation2D(), true);
+aExtractor.process(*pSource);
+const basegfx::B2DPolyPolygonVector& 
rResult(aExtractor.getExtractedContour());
+aPolyPolygon = basegfx::utils::mergeToSinglePolyPolygon(rResult);
 }
 
 basegfx::B2DPolyPolygon aResult;


core.git: svgio/inc svgio/qa svgio/source

2024-03-15 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgfecompositenode.hxx  |1 +
 svgio/qa/cppunit/SvgImportTest.cxx|4 
 svgio/source/svgreader/svgfecompositenode.cxx |   11 +++
 3 files changed, 16 insertions(+)

New commits:
commit 4e9b39aefb5bdf02b965f75fcf08bfe92ece27d0
Author: Xisco Fauli 
AuthorDate: Fri Mar 15 10:41:15 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 15 13:30:40 2024 +0100

tdf#48062: Add support for atop operator in feComposite

Change-Id: Ifb83b4361d37566d189a7c5b11835f2a5e0eecc2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164862
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgfecompositenode.hxx b/svgio/inc/svgfecompositenode.hxx
index 2fa321cc6700..fcbc24ecc8ff 100644
--- a/svgio/inc/svgfecompositenode.hxx
+++ b/svgio/inc/svgfecompositenode.hxx
@@ -30,6 +30,7 @@ enum class Operator
 In,
 Out,
 Xor,
+Atop,
 };
 
 class SvgFeCompositeNode : public SvgFilterNode
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index dc933c9693dc..88bf4bc1a4e7 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -249,6 +249,10 @@ CPPUNIT_TEST_FIXTURE(Test, testFilterFeComposite)
 // out operator
 assertXPath(pDocument, 
"/primitive2D/transform/mask[4]/polypolygoncolor"_ostr, 3);
 assertXPath(pDocument, 
"/primitive2D/transform/mask[4]/polypolygon/polygon/point"_ostr, 6);
+// atop operator
+assertXPath(pDocument, 
"/primitive2D/transform/mask[5]/polypolygoncolor"_ostr, 3);
+assertXPath(pDocument, 
"/primitive2D/transform/mask[5]/polypolygon/polygon[1]/point"_ostr, 6);
+assertXPath(pDocument, 
"/primitive2D/transform/mask[5]/polypolygon/polygon[2]/point"_ostr, 4);
 }
 
 CPPUNIT_TEST_FIXTURE(Test, testFilterFeGaussianBlur)
diff --git a/svgio/source/svgreader/svgfecompositenode.cxx 
b/svgio/source/svgreader/svgfecompositenode.cxx
index 95ec021969d8..1e20a0ef00f2 100644
--- a/svgio/source/svgreader/svgfecompositenode.cxx
+++ b/svgio/source/svgreader/svgfecompositenode.cxx
@@ -78,6 +78,10 @@ void SvgFeCompositeNode::parseAttribute(SVGToken aSVGToken, 
const OUString& aCon
 {
 maOperator = Operator::Xor;
 }
+else if (o3tl::equalsIgnoreAsciiCase(o3tl::trim(aContent), 
u"atop"))
+{
+maOperator = Operator::Atop;
+}
 }
 break;
 }
@@ -131,6 +135,13 @@ void 
SvgFeCompositeNode::apply(drawinglayer::primitive2d::Primitive2DContainer&
 {
 aResult = basegfx::utils::solvePolygonOperationXor(aPolyPolygon, 
aPolyPolygon2);
 }
+else if (maOperator == Operator::Atop)
+{
+// Atop is the union of In and Out.
+// The parts of in2 graphic that do not overlap with the in graphic 
stay untouched.
+aResult = basegfx::utils::solvePolygonOperationDiff(aPolyPolygon2, 
aPolyPolygon);
+aResult.append(basegfx::utils::solvePolygonOperationAnd(aPolyPolygon, 
aPolyPolygon2));
+}
 
 rTarget = drawinglayer::primitive2d::Primitive2DContainer{
 new drawinglayer::primitive2d::MaskPrimitive2D(std::move(aResult), 
std::move(rTarget))


core.git: bin/crashreportScraper.py

2024-03-15 Thread Xisco Fauli (via logerrit)
 bin/crashreportScraper.py |   16 +++-
 1 file changed, 7 insertions(+), 9 deletions(-)

New commits:
commit 8ca321f9e52a43acf36a8f8184f81240bd946653
Author: Xisco Fauli 
AuthorDate: Thu Mar 14 22:49:19 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 15 12:58:57 2024 +0100

crashreportScraper: fix version comparison

And remove version column, it's not very relevant anyway

Change-Id: I9101d5f63aec237cdcbfc6eb3759714cca7c5328
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164849
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/bin/crashreportScraper.py b/bin/crashreportScraper.py
index 78b2f6cb5eb2..6ce91bcba189 100755
--- a/bin/crashreportScraper.py
+++ b/bin/crashreportScraper.py
@@ -18,6 +18,7 @@ import os
 import math
 from datetime import datetime
 import urllib.parse
+import re
 
 def convert_str_to_date(value):
 value = value.replace('.', '')
@@ -73,7 +74,7 @@ def 
parse_reports_and_get_most_recent_report_from_last_page(url):
 
 reports = soup.find("div", {"id": "reports"}).tbody
 ID, currentID = "", ""
-version, currentVersion = "", ""
+version, currentVersion = 0, 0
 OS, currentOS = "", ""
 
 tr_list = reports.find_all("tr")
@@ -81,7 +82,7 @@ def 
parse_reports_and_get_most_recent_report_from_last_page(url):
 td_list = tr.find_all("td")
 
 currentID = td_list[0].a.text.strip()
-currentVersion = td_list[2].text.strip().split(': ')[1]
+currentVersion = int(''.join(re.findall("\d+", td_list[2].text)))
 currentOS = td_list[3].text.strip()
 
 # get most recent version
@@ -91,16 +92,13 @@ def 
parse_reports_and_get_most_recent_report_from_last_page(url):
 ID = currentID
 OS = currentOS
 
-if not version:
-version = currentVersion
-
 if not ID:
 ID = currentID
 
 if not OS:
 OS = currentOS
 
-return count, ID, version, OS
+return count, ID, OS
 
 def parse_details_and_get_info(url, gitRepo):
 try:
@@ -187,7 +185,7 @@ if __name__ == '__main__':
 with open(fileName, "a") as f:
 if bInsertHeader:
 line = '   '.join(["Name", "Ratio", "Count", "First report", "Last 
Report",
-"ID", "Version", "Reason", "OS", "Stack", "Code Lines", "Last 
4 UNO Commands", '
'])
+"ID", "Reason", "OS", "Stack", "Code Lines", "Last 4 UNO 
Commands", '
'])
 f.write(line)
 f.flush()
 
@@ -195,13 +193,13 @@ if __name__ == '__main__':
 if k not in crashesInFile:
 print("Parsing " + k)
 try:
-crashCount, crashID, crashVersion, crashOS = 
parse_reports_and_get_most_recent_report_from_last_page(
+crashCount, crashID, crashOS = 
parse_reports_and_get_most_recent_report_from_last_page(
 
"https://crashreport.libreoffice.org/stats/signature/; + urllib.parse.quote(k))
 crashReason, crashStack, codeLine, unoCommands = 
parse_details_and_get_info(
 
"https://crashreport.libreoffice.org/stats/crash_details/; + crashID, 
args.repository)
 ratio = round(crashCount / ((lDate[2] - lDate[1]).days + 
1), 2)
 line = '   '.join([k, str(ratio), str(crashCount) , 
lDate[1].strftime('%y/%m/%d'), lDate[2].strftime('%y/%m/%d'),
-crashID, crashVersion, crashReason, crashOS, 
crashStack, codeLine, unoCommands, '
'])
+crashID, crashReason, crashOS, crashStack, 
codeLine, unoCommands, '
'])
 f.write(line)
 f.flush()
 except (requests.exceptions.Timeout, AttributeError):


core.git: svgio/inc svgio/qa svgio/source

2024-03-14 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgfecompositenode.hxx  |9 +++
 svgio/inc/svgtoken.hxx|1 
 svgio/qa/cppunit/SvgImportTest.cxx|   28 +-
 svgio/qa/cppunit/data/filterFeComposite.svg   |   44 ++--
 svgio/source/svgreader/svgfecompositenode.cxx |   69 --
 svgio/source/svgreader/svgtoken.cxx   |1 
 6 files changed, 129 insertions(+), 23 deletions(-)

New commits:
commit b240f6198fae7221b7cd3e4678403ad99827b53d
Author: Xisco Fauli 
AuthorDate: Thu Mar 14 23:53:49 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 15 01:06:22 2024 +0100

tdf#48062: Add support for xor, in and out operators in feComposite

atop and arithmetic are still missing

Change-Id: I9b5bfeaa87b48071708ca4cb082916ea5f260adb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164852
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgfecompositenode.hxx b/svgio/inc/svgfecompositenode.hxx
index 44cef845c07f..2fa321cc6700 100644
--- a/svgio/inc/svgfecompositenode.hxx
+++ b/svgio/inc/svgfecompositenode.hxx
@@ -24,12 +24,21 @@
 
 namespace svgio::svgreader
 {
+enum class Operator
+{
+Over,
+In,
+Out,
+Xor,
+};
+
 class SvgFeCompositeNode : public SvgFilterNode
 {
 private:
 OUString maIn;
 OUString maIn2;
 OUString maResult;
+Operator maOperator;
 
 public:
 SvgFeCompositeNode(SvgDocument& rDocument, SvgNode* pParent);
diff --git a/svgio/inc/svgtoken.hxx b/svgio/inc/svgtoken.hxx
index aa2d2a74e6c3..203e7f0996c0 100644
--- a/svgio/inc/svgtoken.hxx
+++ b/svgio/inc/svgtoken.hxx
@@ -95,6 +95,7 @@ namespace svgio::svgreader
 Filter,
 FloodColor,
 FloodOpacity,
+Operator,
 Mask,
 ClipPathUnits,
 MaskUnits,
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 1d875e2b74a7..dc933c9693dc 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -235,20 +235,20 @@ CPPUNIT_TEST_FIXTURE(Test, testFilterFeComposite)
 
 CPPUNIT_ASSERT (pDocument);
 
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]"_ostr, "color"_ostr, 
"#ff");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"height"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"width"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"minx"_ostr, "70");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"miny"_ostr, "70");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"maxx"_ostr, "170");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"maxy"_ostr, "170");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]"_ostr, "color"_ostr, 
"#6ab150");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"height"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"width"_ostr, "100");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"minx"_ostr, "30");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"miny"_ostr, "30");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"maxx"_ostr, "130");
-assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[2]/polypolygon"_ostr, 
"maxy"_ostr, "130");
+assertXPath(pDocument, "/primitive2D/transform/mask"_ostr, 5);
+// over operator
+assertXPath(pDocument, 
"/primitive2D/transform/mask[1]/polypolygoncolor"_ostr, 3);
+assertXPath(pDocument, 
"/primitive2D/transform/mask[1]/polypolygon/polygon/point"_ostr, 8);
+// xor operator
+assertXPath(pDocument, 
"/primitive2D/transform/mask[2]/polypolygoncolor"_ostr, 3);
+assertXPath(pDocument, 
"/primitive2D/transform/mask[2]/polypolygon/polygon[1]/point"_ostr, 8);
+assertXPath(pDocument, 
"/primitive2D/transform/mask[2]/polypolygon/polygon[2]/point"_ostr, 4);
+// in operator
+assertXPath(pDocument, 
"/primitive2D/transform/mask[3]/polypolygoncolor"_ostr, 3);
+assertXPath(pDocument, 
"/primitive2D/transform/mask[3]/polypolygon/polygon/point"_ostr, 4);
+// out operator
+assertXPath(pDocument, 
"/primitive2D/transform/mask[4]/polypolygoncolor"_ostr, 3);
+assertXPath(pDocument, 
"/primitive2D/transform/mask[4]/polypolygon/polygon/point"_ostr, 6);
 }
 
 CPPUNIT_TEST_FIXTURE(Test, testFilterFeGaussianBlur)
diff --git 

core.git: 2 commits - svgio/inc svgio/Library_svgio.mk svgio/qa svgio/source

2024-03-13 Thread Xisco Fauli (via logerrit)
 svgio/Library_svgio.mk|2 
 svgio/inc/svgfeblendnode.hxx  |   46 ++
 svgio/inc/svgfecompositenode.hxx  |   46 ++
 svgio/inc/svgtoken.hxx|3 
 svgio/qa/cppunit/SvgImportTest.cxx|   52 
 svgio/qa/cppunit/data/filterFeBlend.svg   |   10 +++
 svgio/qa/cppunit/data/filterFeComposite.svg   |   10 +++
 svgio/source/svgreader/svgdocumenthandler.cxx |   16 +
 svgio/source/svgreader/svgfeblendnode.cxx |   83 ++
 svgio/source/svgreader/svgfecompositenode.cxx |   83 ++
 svgio/source/svgreader/svgtoken.cxx   |3 
 11 files changed, 354 insertions(+)

New commits:
commit 626047bababf3a84b05103fbed9ecabed33a359f
Author: Xisco Fauli 
AuthorDate: Wed Mar 13 11:39:26 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 13 19:02:38 2024 +0100

tdf#48062: Add support for feComposite filter

At the moment, only 'over' operator is supported

Change-Id: If21c9ba39b3cd0b772ea27165cda7ae40fb42d60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164765
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/Library_svgio.mk b/svgio/Library_svgio.mk
index e1b0e55a7a9e..7bc518c71b93 100644
--- a/svgio/Library_svgio.mk
+++ b/svgio/Library_svgio.mk
@@ -62,6 +62,7 @@ $(eval $(call gb_Library_add_exception_objects,svgio,\
 svgio/source/svgreader/svganode \
 svgio/source/svgreader/svgfeblendnode \
 svgio/source/svgreader/svgfecolormatrixnode \
+svgio/source/svgreader/svgfecompositenode \
 svgio/source/svgreader/svgfedropshadownode \
 svgio/source/svgreader/svgfefloodnode \
 svgio/source/svgreader/svgfeimagenode \
diff --git a/svgio/inc/svgfecompositenode.hxx b/svgio/inc/svgfecompositenode.hxx
new file mode 100644
index ..44cef845c07f
--- /dev/null
+++ b/svgio/inc/svgfecompositenode.hxx
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include "svgfilternode.hxx"
+#include "svgstyleattributes.hxx"
+
+namespace svgio::svgreader
+{
+class SvgFeCompositeNode : public SvgFilterNode
+{
+private:
+OUString maIn;
+OUString maIn2;
+OUString maResult;
+
+public:
+SvgFeCompositeNode(SvgDocument& rDocument, SvgNode* pParent);
+virtual ~SvgFeCompositeNode() override;
+
+virtual void parseAttribute(SVGToken aSVGToken, const OUString& aContent) 
override;
+
+void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget,
+   const SvgFilterNode* pParent) const override;
+};
+
+} // end of namespace svgio::svgreader
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/inc/svgtoken.hxx b/svgio/inc/svgtoken.hxx
index 5bc79f6f1b19..aa2d2a74e6c3 100644
--- a/svgio/inc/svgtoken.hxx
+++ b/svgio/inc/svgtoken.hxx
@@ -84,6 +84,7 @@ namespace svgio::svgreader
 ClipPathProperty,
 FeBlend,
 FeColorMatrix,
+FeComposite,
 FeDropShadow,
 FeFlood,
 FeImage,
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 05bf498d358f..1d875e2b74a7 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -225,6 +225,32 @@ CPPUNIT_TEST_FIXTURE(Test, testFeColorMatrix)
 assertXPath(pDocument, 
"/primitive2D/transform/mask/modifiedColor[4]"_ostr, "modifier"_ostr, 
"luminance_to_alpha");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testFilterFeComposite)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/filterFeComposite.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]"_ostr, "color"_ostr, 
"#ff");
+assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor[1]/polypolygon"_ostr, 
"height"_ostr, 

core.git: svgio/inc svgio/Library_svgio.mk svgio/qa svgio/source

2024-03-12 Thread Xisco Fauli (via logerrit)
 svgio/Library_svgio.mk|2 
 svgio/inc/svgfemergenode.hxx  |   44 +++
 svgio/inc/svgfemergenodenode.hxx  |   44 +++
 svgio/inc/svgtoken.hxx|2 
 svgio/qa/cppunit/SvgImportTest.cxx|   16 +
 svgio/qa/cppunit/data/filterFeMerge.svg   |   18 ++
 svgio/source/svgreader/svgdocumenthandler.cxx |   16 +
 svgio/source/svgreader/svgfemergenode.cxx |   74 ++
 svgio/source/svgreader/svgfemergenodenode.cxx |   60 +
 svgio/source/svgreader/svgtoken.cxx   |2 
 10 files changed, 278 insertions(+)

New commits:
commit 73e5b6667cad47d462ac1bce4f96c53b31315d18
Author: Xisco Fauli 
AuthorDate: Tue Mar 12 18:15:38 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 12 23:03:33 2024 +0100

tdf#159660: Add support for feMerge and feMergeNode

Change-Id: I52e35f6eb5efc7b064145486aa4e6fb2366b143c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164722
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/Library_svgio.mk b/svgio/Library_svgio.mk
index edd83ed57251..f1e43ced6ac1 100644
--- a/svgio/Library_svgio.mk
+++ b/svgio/Library_svgio.mk
@@ -65,6 +65,8 @@ $(eval $(call gb_Library_add_exception_objects,svgio,\
 svgio/source/svgreader/svgfefloodnode \
 svgio/source/svgreader/svgfeimagenode \
 svgio/source/svgreader/svgfegaussianblurnode \
+svgio/source/svgreader/svgfemergenode \
+svgio/source/svgreader/svgfemergenodenode \
 svgio/source/svgreader/svgfeoffsetnode \
 svgio/source/svgreader/svgfilternode \
 svgio/source/svgreader/svggradientnode \
diff --git a/svgio/inc/svgfemergenode.hxx b/svgio/inc/svgfemergenode.hxx
new file mode 100644
index ..ec407f4e2274
--- /dev/null
+++ b/svgio/inc/svgfemergenode.hxx
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include "svgfilternode.hxx"
+#include "svgstyleattributes.hxx"
+
+namespace svgio::svgreader
+{
+class SvgFeMergeNode : public SvgFilterNode
+{
+private:
+OUString maResult;
+
+public:
+SvgFeMergeNode(SVGToken aType, SvgDocument& rDocument, SvgNode* pParent);
+virtual ~SvgFeMergeNode() override;
+
+virtual void parseAttribute(SVGToken aSVGToken, const OUString& aContent) 
override;
+
+void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget,
+   const SvgFilterNode* pParent) const override;
+};
+
+} // end of namespace svgio::svgreader
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/inc/svgfemergenodenode.hxx b/svgio/inc/svgfemergenodenode.hxx
new file mode 100644
index ..5ae77c586c56
--- /dev/null
+++ b/svgio/inc/svgfemergenodenode.hxx
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include "svgfemergenode.hxx"
+#include "svgstyleattributes.hxx"
+
+namespace svgio::svgreader
+{
+class SvgFeMergeNodeNode final : public SvgFeMergeNode
+{
+private:
+OUString maIn;
+
+public:
+SvgFeMergeNodeNode(SvgDocument& rDocument, SvgNode* pParent);
+virtual ~SvgFeMergeNodeNode() override;
+
+virtual void parseAttribute(SVGToken aSVGToken, const 

core.git: svgio/inc svgio/source

2024-03-12 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgfecolormatrixnode.hxx   |5 +
 svgio/inc/svgfedropshadownode.hxx|5 +
 svgio/inc/svgfefloodnode.hxx |5 +
 svgio/inc/svgfegaussianblurnode.hxx  |5 +
 svgio/inc/svgfeimagenode.hxx |5 +
 svgio/inc/svgfeoffsetnode.hxx|5 +
 svgio/inc/svgfilternode.hxx  |   19 +++--
 svgio/source/svgreader/svgfecolormatrixnode.cxx  |   24 ++-
 svgio/source/svgreader/svgfedropshadownode.cxx   |   24 ++-
 svgio/source/svgreader/svgfefloodnode.cxx|   24 ++-
 svgio/source/svgreader/svgfegaussianblurnode.cxx |   24 ++-
 svgio/source/svgreader/svgfeimagenode.cxx|   24 ++-
 svgio/source/svgreader/svgfeoffsetnode.cxx   |   24 ++-
 svgio/source/svgreader/svgfilternode.cxx |   76 ---
 svgio/source/svgreader/svgstyleattributes.cxx|2 
 15 files changed, 185 insertions(+), 86 deletions(-)

New commits:
commit b22039cff8380b158307e75762bd3e4ca045d77b
Author: Xisco Fauli 
AuthorDate: Tue Mar 12 17:19:45 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 12 22:39:20 2024 +0100

related: tdf#159947: only parse in/result if the element supports them

There are some filters ( e.g. feMerge ) that do not support
in or result attributes

Change-Id: I4072dc481557557733e55cc5fcbd80cb11a7ddb5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164718
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgfecolormatrixnode.hxx 
b/svgio/inc/svgfecolormatrixnode.hxx
index e2c74a03748f..4e0ad7d2aa3c 100644
--- a/svgio/inc/svgfecolormatrixnode.hxx
+++ b/svgio/inc/svgfecolormatrixnode.hxx
@@ -36,6 +36,8 @@ enum class ColorType
 class SvgFeColorMatrixNode final : public SvgFilterNode
 {
 private:
+OUString maIn;
+OUString maResult;
 ColorType maType;
 OUString maValuesContent;
 
@@ -45,7 +47,8 @@ public:
 
 virtual void parseAttribute(SVGToken aSVGToken, const OUString& aContent) 
override;
 
-void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget) const 
override;
+void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget,
+   const SvgFilterNode* pParent) const override;
 };
 
 } // end of namespace svgio::svgreader
diff --git a/svgio/inc/svgfedropshadownode.hxx 
b/svgio/inc/svgfedropshadownode.hxx
index 04b3190f1dea..c68cdf655567 100644
--- a/svgio/inc/svgfedropshadownode.hxx
+++ b/svgio/inc/svgfedropshadownode.hxx
@@ -27,6 +27,8 @@ namespace svgio::svgreader
 class SvgFeDropShadowNode final : public SvgFilterNode
 {
 private:
+OUString maIn;
+OUString maResult;
 SvgNumber maDx;
 SvgNumber maDy;
 SvgNumber maStdDeviation;
@@ -39,7 +41,8 @@ public:
 
 virtual void parseAttribute(SVGToken aSVGToken, const OUString& aContent) 
override;
 
-void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget) const 
override;
+void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget,
+   const SvgFilterNode* pParent) const override;
 };
 
 } // end of namespace svgio::svgreader
diff --git a/svgio/inc/svgfefloodnode.hxx b/svgio/inc/svgfefloodnode.hxx
index e74794b97237..8aba2c3b0340 100644
--- a/svgio/inc/svgfefloodnode.hxx
+++ b/svgio/inc/svgfefloodnode.hxx
@@ -27,6 +27,8 @@ namespace svgio::svgreader
 class SvgFeFloodNode final : public SvgFilterNode
 {
 private:
+OUString maIn;
+OUString maResult;
 SvgNumber maX;
 SvgNumber maY;
 SvgNumber maWidth;
@@ -40,7 +42,8 @@ public:
 
 virtual void parseAttribute(SVGToken aSVGToken, const OUString& aContent) 
override;
 
-void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget) const 
override;
+void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget,
+   const SvgFilterNode* pParent) const override;
 };
 
 } // end of namespace svgio::svgreader
diff --git a/svgio/inc/svgfegaussianblurnode.hxx 
b/svgio/inc/svgfegaussianblurnode.hxx
index 14732a968e2d..10e6a16b1ce3 100644
--- a/svgio/inc/svgfegaussianblurnode.hxx
+++ b/svgio/inc/svgfegaussianblurnode.hxx
@@ -28,6 +28,8 @@ namespace svgio::svgreader
 class SvgFeGaussianBlurNode final : public SvgFilterNode
 {
 private:
+OUString maIn;
+OUString maResult;
 SvgNumber maStdDeviation;
 
 public:
@@ -36,7 +38,8 @@ public:
 
 virtual void parseAttribute(SVGToken aSVGToken, const OUString& aContent) 
override;
 
-void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget) const 
override;
+void apply(drawinglayer::primitive2d::Primitive2DContainer& rTarget,
+   const SvgFilterNode* pParent) const override;
 };
 
 } // end of namespace svgio::svgreader
diff --git a/svgio/inc/svgfeimagenode.hxx b/svgio/inc/svgfeimagenode.hxx
index 0b05173494d0..ab303fdc92fe 100644
--- a/svgio/inc/svgfeimagenode.hxx
+++ b/svgio/inc/svgfeimagenode.hxx
@@ -27,6 +27,8 @@ 

core.git: Branch 'libreoffice-24-2' - vcl/qa writerfilter/source

2024-03-12 Thread Xisco Fauli (via logerrit)
 vcl/qa/cppunit/pdfexport/data/tdf142133.docx  |binary
 vcl/qa/cppunit/pdfexport/pdfexport.cxx|   35 ++
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |   23 --
 writerfilter/source/dmapper/DomainMapper_Impl.hxx |3 +
 4 files changed, 52 insertions(+), 9 deletions(-)

New commits:
commit b6a2a101797543be6cf6e1ef1c72390451d137d9
Author: Xisco Fauli 
AuthorDate: Fri Mar 8 14:23:08 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 12 13:56:35 2024 +0100

tdf#142133: partially revert 576611895e5

if 'Internet Link' character style doens't exist then
apply the hyperlink style
This also reverts 023285158bde72dcd73b965ce205cf8550e7a5e2
"tdf#128504 save DOCX as ODT: don't color not highlighted hyperlinks"
which is no longer necessary

Change-Id: Id100af5fddb10745af9d56c0ba75cb2366ecbe55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164576
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit 03ca7031f3bf4c2a3e841b18c8f9e4046098)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164509
Reviewed-by: Stéphane Guillou 

diff --git a/vcl/qa/cppunit/pdfexport/data/tdf142133.docx 
b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx
new file mode 100644
index ..fa1e155b873e
Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx differ
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index d362a3855303..e9a8530c3cce 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -2740,6 +2740,41 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816Link)
 CPPUNIT_ASSERT_EQUAL(static_cast(4), 
pAnnots->GetElements().size());
 }
 
+CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142133)
+{
+vcl::filter::PDFDocument aDocument;
+load(u"tdf142133.docx", aDocument);
+
+// The document has one page.
+std::vector aPages = aDocument.GetPages();
+CPPUNIT_ASSERT_EQUAL(static_cast(1), aPages.size());
+
+auto pAnnots = 
dynamic_cast(aPages[0]->Lookup("Annots"_ostr));
+CPPUNIT_ASSERT(pAnnots);
+
+// There should be one annotation
+CPPUNIT_ASSERT_EQUAL(static_cast(1), 
pAnnots->GetElements().size());
+auto pAnnotReference
+= 
dynamic_cast(pAnnots->GetElements()[0]);
+CPPUNIT_ASSERT(pAnnotReference);
+vcl::filter::PDFObjectElement* pAnnot = pAnnotReference->LookupObject();
+CPPUNIT_ASSERT(pAnnot);
+// We're expecting something like /Type /Annot /A << /Type /Action /S /URI 
/URI (path)
+CPPUNIT_ASSERT_EQUAL(
+"Annot"_ostr,
+
static_cast(pAnnot->Lookup("Type"_ostr))->GetValue());
+CPPUNIT_ASSERT_EQUAL(
+"Link"_ostr,
+
static_cast(pAnnot->Lookup("Subtype"_ostr))->GetValue());
+auto pAction = 
dynamic_cast(pAnnot->Lookup("A"_ostr));
+CPPUNIT_ASSERT(pAction);
+auto pURIElem
+= 
dynamic_cast(pAction->LookupElement("URI"_ostr));
+CPPUNIT_ASSERT(pURIElem);
+// Check it matches
+CPPUNIT_ASSERT_EQUAL("https://google.com/"_ostr, pURIElem->GetValue());
+}
+
 CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142806)
 {
 aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx 
b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 05f3fae6751f..2b9091452dde 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -3314,6 +3314,15 @@ void 
DomainMapper_Impl::MergeAtContentImageRedlineWithNext(const css::uno::Refer
 }
 else
 {
+if (IsOpenField() && GetTopFieldContext()->GetFieldId() == 
FIELD_HYPERLINK)
+{
+// It is content of hyperlink field. We need to create and 
remember
+// character style for later applying to hyperlink
+PropertyValueVector_t aProps = 
comphelper::sequenceToContainer< PropertyValueVector_t 
>(GetTopContext()->GetPropertyValues());
+OUString sHyperlinkStyleName = 
GetStyleSheetTable()->getOrCreateCharStyle(aProps, /*bAlwaysCreate=*/false);
+
GetTopFieldContext()->SetHyperlinkStyle(sHyperlinkStyleName);
+}
+
 #if !defined(MACOSX) // TODO: check layout differences and support all 
platforms, if needed
 sal_Int32 nPos = 0;
 OUString sFontName;
@@ -8793,25 +8802,21 @@ void DomainMapper_Impl::PopFieldContext()
 
xCrsrProperties->setPropertyValue("VisitedCharStyleName",uno::Any(sDisplayName));
 
xCrsrProperties->setPropertyValue("UnvisitedCharStyleName",uno::Any(sDisplayName));
 }
-else
+else if 

core.git: sc/qa

2024-03-11 Thread Xisco Fauli (via logerrit)
 sc/qa/unit/uicalc/data/tdf159373.ods |binary
 sc/qa/unit/uicalc/uicalc.cxx |   20 
 2 files changed, 20 insertions(+)

New commits:
commit 36a169c10f0457c30a0d327fda585c4decb33532
Author: Xisco Fauli 
AuthorDate: Mon Mar 11 12:26:46 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 11 13:32:26 2024 +0100

tdf#159373: sc_uicalc: Add unittest

Change-Id: I30e452534e09aa349a85f0862ed09291506203dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164654
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sc/qa/unit/uicalc/data/tdf159373.ods 
b/sc/qa/unit/uicalc/data/tdf159373.ods
new file mode 100644
index ..6dc7a110e3fa
Binary files /dev/null and b/sc/qa/unit/uicalc/data/tdf159373.ods differ
diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index 1bf9dfc12883..f792cc0dcd1f 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -1684,6 +1684,26 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf117706)
 CPPUNIT_ASSERT_EQUAL(OUString(""), pDoc->GetString(ScAddress(0, 2, 0)));
 }
 
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf159373)
+{
+createScDoc("tdf159373.ods");
+ScDocument* pDoc = getScDoc();
+
+CPPUNIT_ASSERT_EQUAL(static_cast(2), pDoc->GetTableCount());
+
+uno::Sequence aArgs(
+comphelper::InitPropertySequence({ { "Index", uno::Any(sal_uInt16(0)) 
} }));
+
+// Without the fix in place, this test would have crashed here
+dispatchCommand(mxComponent, ".uno:Remove", aArgs);
+
+CPPUNIT_ASSERT_EQUAL(static_cast(1), pDoc->GetTableCount());
+
+dispatchCommand(mxComponent, ".uno:Undo", aArgs);
+
+CPPUNIT_ASSERT_EQUAL(static_cast(2), pDoc->GetTableCount());
+}
+
 CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf86166)
 {
 createScDoc("tdf86166.ods");


core.git: sw/qa

2024-03-11 Thread Xisco Fauli (via logerrit)
 sw/qa/extras/uiwriter/uiwriter8.cxx |6 ++
 1 file changed, 6 insertions(+)

New commits:
commit 4c382515069d1ccf9ffc3f647ab3acc26c2aba6f
Author: Xisco Fauli 
AuthorDate: Mon Mar 11 10:00:39 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 11 12:57:06 2024 +0100

tdf#160095: sw_uiwriter8: Add unittest

Change-Id: Id7d35511fbbc6a0d11f521bff9ad7469ae068ec7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164649
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/extras/uiwriter/uiwriter8.cxx 
b/sw/qa/extras/uiwriter/uiwriter8.cxx
index 21fb637e0157..278c593b754d 100644
--- a/sw/qa/extras/uiwriter/uiwriter8.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter8.cxx
@@ -1287,6 +1287,12 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, testTdf146356)
 // - Expected: Some Text
 // - Actual  : Table of Contents
 CPPUNIT_ASSERT_EQUAL(OUString("Some Text"), getParagraph(1)->getString());
+
+// tdf#160095: Without the fix in place, this test would have crashed here
+pTextDoc->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_MOD2 | 
awt::Key::RETURN);
+Scheduler::ProcessEventsToIdle();
+
+CPPUNIT_ASSERT_EQUAL(OUString("Some Text"), getParagraph(1)->getString());
 }
 
 CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, testTdf121546)


core.git: vcl/qa writerfilter/source

2024-03-08 Thread Xisco Fauli (via logerrit)
 vcl/qa/cppunit/pdfexport/data/tdf142133.docx  |binary
 vcl/qa/cppunit/pdfexport/pdfexport.cxx|   35 ++
 writerfilter/source/dmapper/DomainMapper_Impl.cxx |   23 --
 writerfilter/source/dmapper/DomainMapper_Impl.hxx |3 +
 4 files changed, 52 insertions(+), 9 deletions(-)

New commits:
commit b56678ae967bb1e09b52930a0b1d59a5e68bb7be
Author: Xisco Fauli 
AuthorDate: Fri Mar 8 14:23:08 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 8 21:09:31 2024 +0100

tdf#142133: partially revert 576611895e5

if 'Internet Link' character style doens't exist then
apply the hyperlink style
This also reverts 023285158bde72dcd73b965ce205cf8550e7a5e2
"tdf#128504 save DOCX as ODT: don't color not highlighted hyperlinks"
which is no longer necessary

Change-Id: Id100af5fddb10745af9d56c0ba75cb2366ecbe55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164576
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/vcl/qa/cppunit/pdfexport/data/tdf142133.docx 
b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx
new file mode 100644
index ..fa1e155b873e
Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf142133.docx differ
diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
index d362a3855303..e9a8530c3cce 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx
@@ -2740,6 +2740,41 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816Link)
 CPPUNIT_ASSERT_EQUAL(static_cast(4), 
pAnnots->GetElements().size());
 }
 
+CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142133)
+{
+vcl::filter::PDFDocument aDocument;
+load(u"tdf142133.docx", aDocument);
+
+// The document has one page.
+std::vector aPages = aDocument.GetPages();
+CPPUNIT_ASSERT_EQUAL(static_cast(1), aPages.size());
+
+auto pAnnots = 
dynamic_cast(aPages[0]->Lookup("Annots"_ostr));
+CPPUNIT_ASSERT(pAnnots);
+
+// There should be one annotation
+CPPUNIT_ASSERT_EQUAL(static_cast(1), 
pAnnots->GetElements().size());
+auto pAnnotReference
+= 
dynamic_cast(pAnnots->GetElements()[0]);
+CPPUNIT_ASSERT(pAnnotReference);
+vcl::filter::PDFObjectElement* pAnnot = pAnnotReference->LookupObject();
+CPPUNIT_ASSERT(pAnnot);
+// We're expecting something like /Type /Annot /A << /Type /Action /S /URI 
/URI (path)
+CPPUNIT_ASSERT_EQUAL(
+"Annot"_ostr,
+
static_cast(pAnnot->Lookup("Type"_ostr))->GetValue());
+CPPUNIT_ASSERT_EQUAL(
+"Link"_ostr,
+
static_cast(pAnnot->Lookup("Subtype"_ostr))->GetValue());
+auto pAction = 
dynamic_cast(pAnnot->Lookup("A"_ostr));
+CPPUNIT_ASSERT(pAction);
+auto pURIElem
+= 
dynamic_cast(pAction->LookupElement("URI"_ostr));
+CPPUNIT_ASSERT(pURIElem);
+// Check it matches
+CPPUNIT_ASSERT_EQUAL("https://google.com/"_ostr, pURIElem->GetValue());
+}
+
 CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142806)
 {
 aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx 
b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index bbdfbd35c34a..f4943c60c88c 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -3304,6 +3304,15 @@ void 
DomainMapper_Impl::MergeAtContentImageRedlineWithNext(const css::uno::Refer
 }
 else
 {
+if (IsOpenField() && GetTopFieldContext()->GetFieldId() == 
FIELD_HYPERLINK)
+{
+// It is content of hyperlink field. We need to create and 
remember
+// character style for later applying to hyperlink
+PropertyValueVector_t aProps = 
comphelper::sequenceToContainer< PropertyValueVector_t 
>(GetTopContext()->GetPropertyValues());
+OUString sHyperlinkStyleName = 
GetStyleSheetTable()->getOrCreateCharStyle(aProps, /*bAlwaysCreate=*/false);
+
GetTopFieldContext()->SetHyperlinkStyle(sHyperlinkStyleName);
+}
+
 #if !defined(MACOSX) // TODO: check layout differences and support all 
platforms, if needed
 sal_Int32 nPos = 0;
 OUString sFontName;
@@ -8787,25 +8796,21 @@ void DomainMapper_Impl::PopFieldContext()
 
xCrsrProperties->setPropertyValue("VisitedCharStyleName",uno::Any(sDisplayName));
 
xCrsrProperties->setPropertyValue("UnvisitedCharStyleName",uno::Any(sDisplayName));
 }
-else
+else if 
(!pContext->GetHyperlinkStyle().isEmpty())
 {
 uno::Any aAny = 
xCrsrProperties->getPropertyValue("CharStyleName");
 

core.git: sw/qa

2024-03-08 Thread Xisco Fauli (via logerrit)
 sw/qa/extras/uiwriter/uiwriter8.cxx |   17 +
 sw/qa/uitest/writer_tests8/tdf146356.py |   24 
 2 files changed, 17 insertions(+), 24 deletions(-)

New commits:
commit 4206cdaa3621cd95b81496ade829112db9e6a935
Author: Xisco Fauli 
AuthorDate: Fri Mar 8 10:11:02 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 8 14:43:48 2024 +0100

tdf#146356: sw: move UItest to CppUnittest

Change-Id: Ic1cd24dabf58e2aea2ed7c6e4a6c62f4fbc4f094
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164565
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/uitest/data/tdf146356.odt 
b/sw/qa/extras/uiwriter/data/tdf146356.odt
old mode 100644
new mode 100755
similarity index 100%
rename from sw/qa/uitest/data/tdf146356.odt
rename to sw/qa/extras/uiwriter/data/tdf146356.odt
diff --git a/sw/qa/extras/uiwriter/uiwriter8.cxx 
b/sw/qa/extras/uiwriter/uiwriter8.cxx
index e0c97099e1b7..21fb637e0157 100644
--- a/sw/qa/extras/uiwriter/uiwriter8.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter8.cxx
@@ -1272,6 +1272,23 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, 
TestTextBoxCrashAfterLineDel)
 xCursor->setString(OUString());
 }
 
+CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, testTdf146356)
+{
+createSwDoc("tdf146356.odt");
+
+SwXTextDocument* pTextDoc = 
dynamic_cast(mxComponent.get());
+
+pTextDoc->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_MOD2 | 
awt::Key::RETURN);
+Scheduler::ProcessEventsToIdle();
+
+emulateTyping(*pTextDoc, u"Some Text");
+
+// Without the fix in place, this test would have failed with
+// - Expected: Some Text
+// - Actual  : Table of Contents
+CPPUNIT_ASSERT_EQUAL(OUString("Some Text"), getParagraph(1)->getString());
+}
+
 CPPUNIT_TEST_FIXTURE(SwUiWriterTest8, testTdf121546)
 {
 createSwDoc("tdf121546.odt");
diff --git a/sw/qa/uitest/writer_tests8/tdf146356.py 
b/sw/qa/uitest/writer_tests8/tdf146356.py
deleted file mode 100755
index 9fd9631d4794..
--- a/sw/qa/uitest/writer_tests8/tdf146356.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
-#
-# 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/.
-#
-from uitest.framework import UITestCase
-from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
-from libreoffice.uno.propertyvalue import mkPropertyValues
-from libreoffice.linguistic.linguservice import get_lingu_service_manager
-from com.sun.star.lang import Locale
-import time
-
-# insert paragraph in front of a protected table of contents
-# and insert text into this new paragraph
-class tdf146356(UITestCase):
-def test_tdf146356_insert_para_before_TOX(self):
-with self.ui_test.load_file(get_url_for_data_file("tdf146356.odt")) as 
writer_doc:
-xWriterDoc = self.xUITest.getTopFocusWindow()
-xWriterEdit = xWriterDoc.getChild("writer_edit")
-xWriterEdit.executeAction("TYPE", mkPropertyValues({"KEYCODE": 
"ALT+RETURN"}))
-xWriterEdit.executeAction("TYPE", mkPropertyValues({"TEXT": "Some 
text"}))


core.git: bin/replace_missing_fonts.sh sw/CppunitTest_sw_ooxmlexport5.mk sw/qa

2024-03-07 Thread Xisco Fauli (via logerrit)
 bin/replace_missing_fonts.sh |7 +++
 sw/CppunitTest_sw_ooxmlexport5.mk|4 
 sw/qa/extras/ooxmlexport/data/fdo77727.docx  |binary
 sw/qa/extras/ooxmlexport/data/fdo77887.docx  |binary
 sw/qa/extras/ooxmlexport/data/fdo78420.docx  |binary
 sw/qa/extras/ooxmlexport/data/fdo79822.docx  |binary
 sw/qa/extras/ooxmlexport/data/ooo96040-2.odt |binary
 7 files changed, 11 insertions(+)

New commits:
commit 8f75226dd99cb02e349abf476eeaeb7b9f6022ae
Author: Xisco Fauli 
AuthorDate: Thu Mar 7 18:52:48 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 21:03:23 2024 +0100

CppunitTest_sw_ooxmlexport5: turn on set_non_application_font_use

From bin/replace_missing_fonts.sh:
Replacing 'Tahoma' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo77887.docx
Replacing 'Thorndale' with 'Liberation Serif' in 
sw/qa/extras/ooxmlexport/data//ooo96040-2.odt
Replacing 'Tahoma' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//ooo96040-2.odt
Replacing 'Albany' with 'Liberation Sans' in 
sw/qa/extras/ooxmlexport/data//ooo96040-2.odt
Replacing 'Trebuchet MS' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo77727.docx
Replacing 'Times' with 'Liberation Serif' in 
sw/qa/extras/ooxmlexport/data//fdo77727.docx
Replacing 'Tahoma' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo77727.docx
Replacing 'Century Gothic' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo77727.docx
Replacing 'Lucida Sans Unicode' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo77727.docx
Replacing 'Candara' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo77727.docx
Replacing 'Tahoma' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo78420.docx
Replacing 'Verdana' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo78420.docx
Replacing 'Gill Sans MT' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo79822.docx
Replacing 'Tahoma' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//fdo79822.docx

Change-Id: I298d9007ae6bd59a8a804902524b59ac524618c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164548
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/bin/replace_missing_fonts.sh b/bin/replace_missing_fonts.sh
index 7c676d30052a..f06e6b7a6c72 100755
--- a/bin/replace_missing_fonts.sh
+++ b/bin/replace_missing_fonts.sh
@@ -24,6 +24,13 @@ replacements["FreeSans"]="Noto Sans"
 replacements["DINPro-Medium"]="Noto Sans"
 replacements["Open Sans Light"]="Noto Sans"
 replacements["Lora - regular"]="Noto Sans"
+replacements["Tahoma"]="Noto Sans"
+replacements["Thorndale"]="Liberation Serif"
+replacements["Albany"]="Liberation Sans"
+replacements["Lucida Sans Unicode"]="Noto Sans"
+replacements["Candara"]="Noto Sans"
+replacements["Verdana"]="Noto Sans"
+replacements["Gill Sans MT"]="Noto Sans"
 
 extracted_folder=".temp_extracted"
 
diff --git a/sw/CppunitTest_sw_ooxmlexport5.mk 
b/sw/CppunitTest_sw_ooxmlexport5.mk
index 71eea4a09b69..cbb21cb34039 100644
--- a/sw/CppunitTest_sw_ooxmlexport5.mk
+++ b/sw/CppunitTest_sw_ooxmlexport5.mk
@@ -16,4 +16,8 @@ $(eval $(call gb_CppunitTest_use_uiconfigs,sw_ooxmlexport5, \
 svx \
 ))
 
+ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),)
+$(eval $(call 
gb_CppunitTest_set_non_application_font_use,sw_ooxmlexport5,abort))
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/sw/qa/extras/ooxmlexport/data/fdo77727.docx 
b/sw/qa/extras/ooxmlexport/data/fdo77727.docx
index 9f553e210df6..db172b10bd26 100644
Binary files a/sw/qa/extras/ooxmlexport/data/fdo77727.docx and 
b/sw/qa/extras/ooxmlexport/data/fdo77727.docx differ
diff --git a/sw/qa/extras/ooxmlexport/data/fdo77887.docx 
b/sw/qa/extras/ooxmlexport/data/fdo77887.docx
index cb3f4537dd86..c77ddb6fc07a 100644
Binary files a/sw/qa/extras/ooxmlexport/data/fdo77887.docx and 
b/sw/qa/extras/ooxmlexport/data/fdo77887.docx differ
diff --git a/sw/qa/extras/ooxmlexport/data/fdo78420.docx 
b/sw/qa/extras/ooxmlexport/data/fdo78420.docx
index 6b253b189f5c..b81aa8bae0be 100644
Binary files a/sw/qa/extras/ooxmlexport/data/fdo78420.docx and 
b/sw/qa/extras/ooxmlexport/data/fdo78420.docx differ
diff --git a/sw/qa/extras/ooxmlexport/data/fdo79822.docx 
b/sw/qa/extras/ooxmlexport/data/fdo79822.docx
index 2844671d607d..ee3966cabc52 100644
Binary files a/sw/qa/extras/ooxmlexport/data/fdo79822.docx and 
b/sw/qa/extras/ooxmlexport/data/fdo79822.docx differ
diff --git a/sw/qa/extras/ooxmlexport/data/ooo96040-2.odt 
b/sw/qa/extras/ooxmlexport/data/ooo96040-2.odt
index 35a1858e533e..55bc2f1c19d8 100644
Binary files a/sw/qa/extras/ooxmlexport/data/ooo96040-2.odt and 
b/sw/qa/extras/ooxmlexport/data/ooo96040-2.odt differ


core.git: bin/replace_missing_fonts.sh sw/CppunitTest_sw_ooxmlexport6.mk sw/qa

2024-03-07 Thread Xisco Fauli (via logerrit)
 bin/replace_missing_fonts.sh  |   20 +-
 sw/CppunitTest_sw_ooxmlexport6.mk |4 ++
 sw/qa/extras/ooxmlexport/data/TestVMLData.docx|binary
 sw/qa/extras/ooxmlexport/data/fdo74110.docx   |binary
 sw/qa/extras/ooxmlexport/data/gradient-fill-preservation.docx |binary
 sw/qa/extras/ooxmlexport/data/image_data.docx |binary
 sw/qa/extras/ooxmlexport/data/tdf119054.docx  |binary
 sw/qa/extras/ooxmlexport/data/tdf128752.docx  |binary
 sw/qa/extras/ooxmlexport/data/tdf132514.docx  |binary
 sw/qa/extras/ooxmlexport/data/tdf153891.docx  |binary
 sw/qa/extras/ooxmlexport/data/tdf93676-1.odt  |binary
 sw/qa/extras/ooxmlexport/data/testOuterShdw.docx  |binary
 12 files changed, 14 insertions(+), 10 deletions(-)

New commits:
commit e97c77dd12f4fd6babaf29057c59f5ddc38e38fd
Author: Xisco Fauli 
AuthorDate: Thu Mar 7 13:50:31 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 21:03:06 2024 +0100

CppunitTest_sw_ooxmlexport6: turn on set_non_application_font_use

From bin/replace_missing_fonts.sh:
Replacing 'Kings Caslon Text' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/TestVMLData.docx
Replacing 'Impact' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/fdo74110.docx
Replacing 'Century Gothic' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/gradient-fill-preservation.docx
Replacing 'Kings Caslon Text' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/image_data.docx
Replacing 'Segoe UI' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf119054.docx
Replacing 'DINPro-Medium' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf128752.docx
Replacing 'Open Sans Light' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf153891.docx
Replacing 'Lora - regular' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf153891.docx
Replacing 'Century Gothic' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf153891.docx
Replacing 'Segoe UI' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf153891.docx
Replacing 'Times' with 'Liberation Serif' in 
sw/qa/extras/ooxmlexport/data/tdf93676-1.odt
Replacing 'FreeSans' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf93676-1.odt
Replacing 'Times' with 'Liberation Serif' in 
sw/qa/extras/ooxmlexport/data/testOuterShdw.docx
Replacing 'Jokerman' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/testOuterShdw.docx
Replacing 'Century Gothic' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/testOuterShdw.docx
Replacing 'Calibri Light' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//tdf119054.docx
Replacing 'Calibri Light' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data//tdf132514.docx

Also remove some replacements in replace_missing_fonts.sh
which are not needed

Change-Id: Ife0e4a6852907e658b2f2ed42c91b26b5eb06572
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164536
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/bin/replace_missing_fonts.sh b/bin/replace_missing_fonts.sh
index 3dd078dc89e5..7c676d30052a 100755
--- a/bin/replace_missing_fonts.sh
+++ b/bin/replace_missing_fonts.sh
@@ -2,28 +2,28 @@
 
 declare -A replacements
 replacements["Agency FB"]="Noto Sans"
-replacements["Noto Sans Light"]="Noto Sans"
 replacements["Segoe UI"]="Noto Sans"
 replacements["Univers 45 Light"]="Noto Sans"
 replacements["Trebuchet MS"]="Noto Sans"
-replacements["Georgia"]="Noto Serif"
 replacements["Perpetua"]="Noto Sans"
-replacements["Garamond"]="Noto Serif"
 replacements["Calibri Light"]="Noto Sans"
-replacements["Consolas"]="DejaVu Sans Mono"
-replacements["Verdana"]="Noto Sans"
 replacements["Rockwell"]="Noto Sans"
-replacements["Tms Rmn"]="DejaVu Sans"
-replacements["Tahoma"]="Noto Sans"
 replacements["DFKai-SB"]="Noto Sans"
 replacements["Gill Sans MT"]="Noto Sans"
-replacements["Helvetica"]="Liberation Sans"
-replacements["Liberation Serif"]="DejaVu Sans"
 replacements["BentonSans Medium"]="Noto Sans"
 replacements["BentonSans"]="Noto Sans"
 replacements["AdvPS88D1"]="Noto Sans"
 replacements["NexusSansOT"]="Noto Sans"
 replacements["Segoe Script"]="Noto Sans"
+replacements["Impact"]="Noto Sans"
+replacements["Century Gothic"]="Noto Sans"
+replacements["Kings Caslon Text"]="Noto Sans"
+replacements["Times"]="Liberation Serif"
+replacements["Jokerman"]="Noto Sans"
+replacements["FreeSans"]="Noto Sans"
+replacements["DINPro-Medium"]="Noto Sans"
+replacements["Open Sans Light"]="Noto Sans"
+replacements["Lora - regular"]="Noto Sans"
 
 extracted_folder=".temp_extracted"
 
@@ -31,7 +31,7 @@ for file in $(find "$1" -type f); do
 file_name=$(basename "$file")
 current_extension="${file_name##*.}"
 
-if [[ $current_extension == "docx" || $current_extension == "xlsx" || 
$current_extension == "pptx" ]]; then
+if [[ 

core.git: sw/CppunitTest_sw_ooxmlexport21.mk sw/qa

2024-03-07 Thread Xisco Fauli (via logerrit)
 sw/CppunitTest_sw_ooxmlexport21.mk   |4 
 sw/qa/extras/ooxmlexport/data/tdf159207_footerFramePrBorder.docx |binary
 2 files changed, 4 insertions(+)

New commits:
commit e35e76924d6e08e5eb5a0742ab6a6c567dce71b8
Author: Xisco Fauli 
AuthorDate: Thu Mar 7 10:47:58 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 16:55:13 2024 +0100

CppunitTest_sw_ooxmlexport21:  turn on set_non_application_font_use

Using bin/replace_missing_fonts.sh
Replacing 'Garamond' with 'Noto Serif' in 
sw/qa/extras/ooxmlexport/data/tdf159207_footerFramePrBorder.docx
Replacing 'Segoe UI' with 'Noto Sans' in 
sw/qa/extras/ooxmlexport/data/tdf159207_footerFramePrBorder.docx

Change-Id: I222a6f2683d616b1f3e6bf1beca83df5dd03e8f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164524
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/sw/CppunitTest_sw_ooxmlexport21.mk 
b/sw/CppunitTest_sw_ooxmlexport21.mk
index ba3d2c441f17..0ee06975f512 100644
--- a/sw/CppunitTest_sw_ooxmlexport21.mk
+++ b/sw/CppunitTest_sw_ooxmlexport21.mk
@@ -15,4 +15,8 @@ $(eval $(call 
gb_CppunitTest_use_custom_headers,sw_ooxmlexport21,\
 officecfg/registry \
 ))
 
+ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),)
+$(eval $(call 
gb_CppunitTest_set_non_application_font_use,sw_ooxmlexport21,abort))
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/sw/qa/extras/ooxmlexport/data/tdf159207_footerFramePrBorder.docx 
b/sw/qa/extras/ooxmlexport/data/tdf159207_footerFramePrBorder.docx
index 7a4c54cc5c75..f5c5027c9987 100644
Binary files a/sw/qa/extras/ooxmlexport/data/tdf159207_footerFramePrBorder.docx 
and b/sw/qa/extras/ooxmlexport/data/tdf159207_footerFramePrBorder.docx differ


core.git: bin/replace_missing_fonts.sh

2024-03-07 Thread Xisco Fauli (via logerrit)
 bin/replace_missing_fonts.sh |   10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

New commits:
commit 5c3ac53ec31d2b33ad7197c2d20c38c5035b3ba6
Author: Xisco Fauli 
AuthorDate: Thu Mar 7 13:08:24 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 15:29:30 2024 +0100

replace_missing_fonts: Only replace string if between quotes

Change-Id: Id7d1b4326cf37250c3ae6d163223e1a492fbfde4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164535
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/bin/replace_missing_fonts.sh b/bin/replace_missing_fonts.sh
index 5fcee528edc3..3dd078dc89e5 100755
--- a/bin/replace_missing_fonts.sh
+++ b/bin/replace_missing_fonts.sh
@@ -45,9 +45,13 @@ for file in $(find "$1" -type f); do
 file_changed=false
 value=${replacements[$key]}
 for subfile in $(find "$extracted_folder" -type f); do
-if grep -q "$key" "$subfile"; then
-# use sed to replace the string in the file if it exists
-sed -i "s/$key/$value/g" "$subfile"
+# Replace only if it's between quotes
+if grep -q "\"$key\"" "$subfile"; then
+sed -i "s/\"$key\"/\"$value\"/g" "$subfile"
+file_changed=true
+# or between ''
+elif grep -q "$key" "$subfile"; then
+sed -i "s/$key/\$value\/g" 
"$subfile"
 file_changed=true
 fi
 done


core.git: bin/replace_missing_fonts.sh bin/replace_string_in_zip.sh

2024-03-07 Thread Xisco Fauli (via logerrit)
 0 files changed

New commits:
commit 59fab21d4ef6a9a6e151aab2e4ab637386dc7b7c
Author: Xisco Fauli 
AuthorDate: Thu Mar 7 12:42:05 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 15:28:58 2024 +0100

bin: rename script to replace_missing_fonts

Change-Id: Ib88141919484f363825e0d242b42e9a0e8ab18a1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164534
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/bin/replace_string_in_zip.sh b/bin/replace_missing_fonts.sh
similarity index 100%
rename from bin/replace_string_in_zip.sh
rename to bin/replace_missing_fonts.sh


core.git: bin/replace_string_in_zip.sh sw/CppunitTest_sw_ooxmlw14export.mk sw/qa

2024-03-07 Thread Xisco Fauli (via logerrit)
 bin/replace_string_in_zip.sh   |1 +
 sw/CppunitTest_sw_ooxmlw14export.mk|4 

 sw/qa/extras/ooxmlexport/data/TextEffects_StylisticSets_CntxtAlts.docx |binary
 3 files changed, 5 insertions(+)

New commits:
commit c5980ce30fada189f3ce51bea9d4e25f05c69634
Author: Xisco Fauli 
AuthorDate: Thu Mar 7 11:00:31 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 12:28:41 2024 +0100

CppunitTest_sw_ooxmlw14export: turn on set_non_application_font_use

Using bin/replace_string_in_zip.sh:
Replacing 'Calibri Light' with 'Noto Sans' in 
/home/xisco/libreoffice//sw/qa/extras/ooxmlexport/data//TextEffects_StylisticSets_CntxtAlts.docx
Replacing 'Segoe Script' with 'Noto Sans' in 
/home/xisco/libreoffice//sw/qa/extras/ooxmlexport/data//TextEffects_StylisticSets_CntxtAlts.docx

Change-Id: I482bfad110e546d0d9a9a0d0bbcca2c9ad63033e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164525
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/bin/replace_string_in_zip.sh b/bin/replace_string_in_zip.sh
index 184f37835bc7..5fcee528edc3 100755
--- a/bin/replace_string_in_zip.sh
+++ b/bin/replace_string_in_zip.sh
@@ -23,6 +23,7 @@ replacements["BentonSans Medium"]="Noto Sans"
 replacements["BentonSans"]="Noto Sans"
 replacements["AdvPS88D1"]="Noto Sans"
 replacements["NexusSansOT"]="Noto Sans"
+replacements["Segoe Script"]="Noto Sans"
 
 extracted_folder=".temp_extracted"
 
diff --git a/sw/CppunitTest_sw_ooxmlw14export.mk 
b/sw/CppunitTest_sw_ooxmlw14export.mk
index b228ef1d0625..5d47c6ba0345 100644
--- a/sw/CppunitTest_sw_ooxmlw14export.mk
+++ b/sw/CppunitTest_sw_ooxmlw14export.mk
@@ -46,4 +46,8 @@ $(eval $(call 
gb_CppunitTest_use_rdb,sw_ooxmlw14export,services))
 
 $(eval $(call gb_CppunitTest_use_configuration,sw_ooxmlw14export))
 
+ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),)
+$(eval $(call 
gb_CppunitTest_set_non_application_font_use,sw_ooxmlw14export,abort))
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git 
a/sw/qa/extras/ooxmlexport/data/TextEffects_StylisticSets_CntxtAlts.docx 
b/sw/qa/extras/ooxmlexport/data/TextEffects_StylisticSets_CntxtAlts.docx
index 7233104764bc..b1952d41b910 100644
Binary files 
a/sw/qa/extras/ooxmlexport/data/TextEffects_StylisticSets_CntxtAlts.docx and 
b/sw/qa/extras/ooxmlexport/data/TextEffects_StylisticSets_CntxtAlts.docx differ


core.git: 2 commits - sc/qa sw/qa uitest/uitest

2024-03-06 Thread Xisco Fauli (via logerrit)
 sc/qa/uitest/calc_dialogs/openDialogs.py   |4 
 sc/qa/uitest/chart/chartAxes.py|2 
 sc/qa/uitest/chart/chartDataLabels.py  |2 
 sc/qa/uitest/chart/chartGrid.py|2 
 sc/qa/uitest/chart/chartGrids.py   |2 
 sc/qa/uitest/chart/chartLegend.py  |2 
 sc/qa/uitest/chart/chartTitles.py  |2 
 sc/qa/uitest/chart/openDialogs.py  |  125 +
 sw/qa/uitest/writer_dialogs/openDialogs.py |4 
 uitest/uitest/uihelper/testDialog.py   |   41 -
 10 files changed, 173 insertions(+), 13 deletions(-)

New commits:
commit 22e97c90cb6334fd58bc856ab025291cb32b48d1
Author: Xisco Fauli 
AuthorDate: Wed Mar 6 13:06:45 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Mar 6 16:50:25 2024 +0100

related: tdf#159879: test chart dialogs

Change-Id: I91d5f4572edff99deb21dd2507c3216ef0d9e4c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164465
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sc/qa/uitest/calc_dialogs/openDialogs.py 
b/sc/qa/uitest/calc_dialogs/openDialogs.py
index f559ceec6a2e..9f26dc91f50b 100644
--- a/sc/qa/uitest/calc_dialogs/openDialogs.py
+++ b/sc/qa/uitest/calc_dialogs/openDialogs.py
@@ -9,7 +9,7 @@
 
 from uitest.framework import UITestCase
 import unittest
-from uitest.uihelper.testDialog import testDialog
+from uitest.uihelper.testDialog import testAppDialog
 
 dialogs = [
 {"command": ".uno:OpenRemote", "closeButton": "cancel"},
@@ -177,7 +177,7 @@ def load_tests(loader, tests, pattern):
 # the test only checks if calc crashes by opening the dialog, see e.g. 
tdf#120227, tdf#125985, tdf#125982
 class openDialogs(UITestCase):
 def check(self, dialog):
-testDialog(self, "calc", dialog)
+testAppDialog(self, "calc", dialog)
 
 dialogCount = 0
 for dialog in dialogs:
diff --git a/sc/qa/uitest/chart/openDialogs.py 
b/sc/qa/uitest/chart/openDialogs.py
new file mode 100644
index ..923564072405
--- /dev/null
+++ b/sc/qa/uitest/chart/openDialogs.py
@@ -0,0 +1,125 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# 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/.
+#
+
+from uitest.framework import UITestCase
+import unittest
+from uitest.uihelper.testDialog import testChartDialog
+
+dialogs = [
+{"command": "AllTitles", "closeButton": "cancel"},
+# {"command": "DataRanges", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/tdf99069.py
+# {"command": "DiagramArea", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartArea.py
+# {"command": "DiagramAxisA", "closeButton": "cancel"},
+{"command": "DiagramAxisAll", "closeButton": "cancel"},
+# {"command": "DiagramAxisB", "closeButton": "cancel"},
+#{"command": "DiagramAxisX", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartXAxis.py
+#{"command": "DiagramAxisY", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartYAxis.py
+# {"command": "DiagramAxisZ", "closeButton": "cancel"},
+{"command": "DiagramData", "closeButton": "close", "skipTestOK": True},
+{"command": "DiagramFloor", "closeButton": "cancel"},
+# {"command": "DiagramGridAll", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartGrid.py
+# {"command": "DiagramGridXHelp", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartGrid.py
+# {"command": "DiagramGridXMain", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartGrid.py
+# {"command": "DiagramGridYHelp", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartGrid.py
+# {"command": "DiagramGridYMain", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartGrid.py
+# {"command": "DiagramGridZHelp", "closeButton": "cancel"},
+# {"command": "DiagramGridZMain", "closeButton": "cancel"},
+{"command": "DiagramType", "closeButton": "cancel"},
+# {"command": "DiagramWall", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartWall.py
+# {"command": "FormatAxis", "closeButton": "cancel"},
+{"command": "FormatChartArea", "closeButton": "cancel"},
+# {"command": "FormatDataLabel", "closeButton": "cancel"},
+# {"command": "FormatDataLabels", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/chartDataLabels.py
+{"command": "FormatDataPoint", "closeButton": "cancel"},
+# {"command": "FormatDataSeries", "closeButton": "cancel"},
+# Tested in sc/qa/uitest/chart/formatDataSeries.py
+{"command": "FormatFloor", "closeButton": "cancel"},
+{"command": "FormatLegend", "closeButton": "cancel"},
+# {"command": "FormatMajorGrid", "closeButton": 

core.git: chart2/qa

2024-03-05 Thread Xisco Fauli (via logerrit)
 chart2/qa/extras/data/ods/tdf99969.ods |binary
 chart2/qa/extras/uichart.cxx   |   75 +
 2 files changed, 75 insertions(+)

New commits:
commit f03cb8214a2b1b3de8d93c1a19319ecc82e4b21d
Author: Xisco Fauli 
AuthorDate: Tue Mar 5 12:46:42 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 5 14:15:19 2024 +0100

tdf#99969: chart2_uichart: Add unittest

Change-Id: Iddf64e07b4f6ee6913965b294d8a41904d2fc558
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164418
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/chart2/qa/extras/data/ods/tdf99969.ods 
b/chart2/qa/extras/data/ods/tdf99969.ods
new file mode 100644
index ..f30212ec73b4
Binary files /dev/null and b/chart2/qa/extras/data/ods/tdf99969.ods differ
diff --git a/chart2/qa/extras/uichart.cxx b/chart2/qa/extras/uichart.cxx
index 2638367c8506..e2f3d9a9d0b3 100644
--- a/chart2/qa/extras/uichart.cxx
+++ b/chart2/qa/extras/uichart.cxx
@@ -104,6 +104,81 @@ void 
Chart2UiChartTest::testCopyPasteToNewSheet(uno::Reference xChartDoc(getChartCompFromSheet(0, 
0, mxComponent),
+uno::UNO_QUERY_THROW);
+sal_Int32 nColumns = 2;
+sal_Int32 nRows = 6;
+CPPUNIT_ASSERT(xChartDoc.is());
+uno::Reference xChartData(xChartDoc->getData(), 
uno::UNO_QUERY_THROW);
+
+uno::Sequence aExpectedColumnDescriptions = 
xChartData->getColumnDescriptions();
+CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect number of columns in origin file", 
nColumns,
+ aExpectedColumnDescriptions.getLength());
+
+uno::Sequence aExpectedRowDescriptions = 
xChartData->getRowDescriptions();
+CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect number of rows in origin file", 
nRows,
+ aExpectedRowDescriptions.getLength());
+
+Sequence> aExpectedData = xChartData->getData();
+
+dispatchCommand(mxComponent, ".uno:GoToCell",
+{ comphelper::makePropertyValue("ToPoint", 
uno::Any(OUString("C2:L25"))) });
+
+dispatchCommand(mxComponent, ".uno:Copy", {});
+
+// create a new document
+load("private:factory/scalc");
+
+dispatchCommand(mxComponent, ".uno:Paste", {});
+
+uno::Reference xChartDoc2 = 
getChartDocFromSheet(0, mxComponent);
+CPPUNIT_ASSERT(xChartDoc2.is());
+
+uno::Reference 
xDataArray(xChartDoc2->getDataProvider(),
+  UNO_QUERY_THROW);
+
+Sequence aColumnDesc = xDataArray->getColumnDescriptions();
+CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect number of columns in destination 
file", nColumns,
+ aColumnDesc.getLength());
+for (sal_Int32 i = 0; i < nColumns; ++i)
+{
+// Without the fix in place, this test would have failed with
+// - Expected: ABC
+// - Actual  :
+// - Incorrect description in column: 0
+OString sMessage("Incorrect description in column: " + 
OString::number(i));
+CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), 
aExpectedColumnDescriptions[i],
+ aColumnDesc[i]);
+}
+
+Sequence aRowDesc = xDataArray->getRowDescriptions();
+CPPUNIT_ASSERT_EQUAL_MESSAGE("Incorrect number of rows in destination 
file", nRows,
+ aRowDesc.getLength());
+for (sal_Int32 i = 0; i < nRows; ++i)
+{
+OString sMessage("Incorrect description in row: " + 
OString::number(i));
+CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), 
aExpectedRowDescriptions[i], aRowDesc[i]);
+}
+
+Sequence> aData = xDataArray->getData();
+
+for (sal_Int32 nRowIdx = 0; nRowIdx < nRows; ++nRowIdx)
+{
+for (sal_Int32 nColIdx = 0; nColIdx < nColumns; ++nColIdx)
+{
+double nValue = aData[nRowIdx][nColIdx];
+double nExpected = aExpectedData[nRowIdx][nColIdx];
+OString sMessage("Incorrect value in Col: " + 
OString::number(nColIdx)
+ + " Row: " + OString::number(nRowIdx));
+
+CPPUNIT_ASSERT_EQUAL_MESSAGE(sMessage.getStr(), nExpected, nValue);
+}
+}
+}
+
 CPPUNIT_TEST_FIXTURE(Chart2UiChartTest, testTdf120348)
 {
 loadFromFile(u"ods/tdf120348.ods");


core.git: download.lst

2024-03-05 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit ace72e8c606aa5f32a425b4afa965a68a854bc85
Author: Xisco Fauli 
AuthorDate: Tue Mar 5 10:11:04 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 5 13:38:28 2024 +0100

liberation-fonts-ttf: upgrade to 2.1.5

Change-Id: Ib9cb2b735bac16f8d2385914b660a83e55060e89
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164411
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index 2a275d2618b2..682ec1a0f256 100644
--- a/download.lst
+++ b/download.lst
@@ -152,8 +152,8 @@ FONT_GENTIUM_TARBALL := 
1725634df4bb3dcb1b2c91a6175f8789-GentiumBasic_1102.zip
 # will not run into conflicts
 FONT_LIBERATION_NARROW_SHA256SUM := 
8879d89b5ff7b506c9fc28efc31a5c0b954bbe9333e66e5283d27d20a8519ea3
 FONT_LIBERATION_NARROW_TARBALL := liberation-narrow-fonts-ttf-1.07.6.tar.gz
-FONT_LIBERATION_SHA256SUM := 
26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef
-FONT_LIBERATION_TARBALL := liberation-fonts-ttf-2.1.4.tar.gz
+FONT_LIBERATION_SHA256SUM := 
7191c669bf38899f73a2094ed00f7b800553364f90e2637010a69c0e268f25d0
+FONT_LIBERATION_TARBALL := liberation-fonts-ttf-2.1.5.tar.gz
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: Branch 'libreoffice-24-2' - sw/qa

2024-03-05 Thread Xisco Fauli (via logerrit)
 sw/qa/uitest/data/tdf150443.docx |binary
 1 file changed

New commits:
commit 49cf2346861791b519f97b07a5973c1410e15a6a
Author: Xisco Fauli 
AuthorDate: Mon Mar 4 17:40:48 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 5 12:56:49 2024 +0100

tdf#150443: replace missing fonts in testfile

This commit reverts 0b21e2a404c114529376dc50764dc0286dafc745
"sw: UITest_writer_tests8 test_tdf150443 more tolerant"

Change-Id: If83a7b0a8dc2289aba3201edfdf19d0ca839459a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164392
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
Tested-by: Jenkins
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164410
Reviewed-by: Michael Stahl 

diff --git a/sw/qa/uitest/data/tdf150443.docx b/sw/qa/uitest/data/tdf150443.docx
index 162aec01f928..f1897c4712aa 100644
Binary files a/sw/qa/uitest/data/tdf150443.docx and 
b/sw/qa/uitest/data/tdf150443.docx differ


core.git: download.lst

2024-03-05 Thread Xisco Fauli (via logerrit)
 download.lst |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 2b50db5e7c822943599f9914f60b95328f2a1389
Author: Xisco Fauli 
AuthorDate: Tue Mar 5 10:25:04 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 5 12:34:50 2024 +0100

ReemKufi: upgrade to 1.7

Change-Id: I3ca9e6f973e642a6fade0ad0f9d4c902f8e8e2cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164412
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/download.lst b/download.lst
index f7ba383080b7..2a275d2618b2 100644
--- a/download.lst
+++ b/download.lst
@@ -252,8 +252,8 @@ FONT_AMIRI_TARBALL := Amiri-1.000.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts
-FONT_REEM_SHA256SUM := 
c4fd68a23c0ea471cc084ae7efe888da372b925cb208eeb0322c26792d2ef413
-FONT_REEM_TARBALL := ReemKufi-1.2.zip
+FONT_REEM_SHA256SUM := 
2359f036c7bddeb4d5529d7b3c9139c3288c920cc26053d417cdbb563eafe0a4
+FONT_REEM_TARBALL := ReemKufi-1.7.zip
 # three static lines
 # so that git cherry-pick
 # will not run into conflicts


core.git: bin/replace_string_in_zip.sh

2024-03-05 Thread Xisco Fauli (via logerrit)
 bin/replace_string_in_zip.sh |   68 +++
 1 file changed, 68 insertions(+)

New commits:
commit 4a3412a34a15e5f5653329da8f073f013ca0c9dc
Author: Xisco Fauli 
AuthorDate: Mon Mar 4 17:55:52 2024 +0100
Commit: Xisco Fauli 
CommitDate: Tue Mar 5 09:33:05 2024 +0100

bin: Add initial script to replace missing fonts

It already contains some replacements I found along the way
For now it works with docx, xlsx and pptx files.
I have to test it with odf formats.

Change-Id: Ia68bc7561f0e41580ad1834a1a345b618f3e688c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164393
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/bin/replace_string_in_zip.sh b/bin/replace_string_in_zip.sh
new file mode 100755
index ..184f37835bc7
--- /dev/null
+++ b/bin/replace_string_in_zip.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+declare -A replacements
+replacements["Agency FB"]="Noto Sans"
+replacements["Noto Sans Light"]="Noto Sans"
+replacements["Segoe UI"]="Noto Sans"
+replacements["Univers 45 Light"]="Noto Sans"
+replacements["Trebuchet MS"]="Noto Sans"
+replacements["Georgia"]="Noto Serif"
+replacements["Perpetua"]="Noto Sans"
+replacements["Garamond"]="Noto Serif"
+replacements["Calibri Light"]="Noto Sans"
+replacements["Consolas"]="DejaVu Sans Mono"
+replacements["Verdana"]="Noto Sans"
+replacements["Rockwell"]="Noto Sans"
+replacements["Tms Rmn"]="DejaVu Sans"
+replacements["Tahoma"]="Noto Sans"
+replacements["DFKai-SB"]="Noto Sans"
+replacements["Gill Sans MT"]="Noto Sans"
+replacements["Helvetica"]="Liberation Sans"
+replacements["Liberation Serif"]="DejaVu Sans"
+replacements["BentonSans Medium"]="Noto Sans"
+replacements["BentonSans"]="Noto Sans"
+replacements["AdvPS88D1"]="Noto Sans"
+replacements["NexusSansOT"]="Noto Sans"
+
+extracted_folder=".temp_extracted"
+
+for file in $(find "$1" -type f); do
+file_name=$(basename "$file")
+current_extension="${file_name##*.}"
+
+if [[ $current_extension == "docx" || $current_extension == "xlsx" || 
$current_extension == "pptx" ]]; then
+base_name="${file_name%.*}"
+
+# move the file to a new .zip file
+cp "$file" "${base_name}.zip"
+
+# extract the zip file to a temporary folder
+unzip -qq ./"${base_name}.zip"  -d "$extracted_folder" > /dev/null
+
+for key in "${!replacements[@]}"
+do
+file_changed=false
+value=${replacements[$key]}
+for subfile in $(find "$extracted_folder" -type f); do
+if grep -q "$key" "$subfile"; then
+# use sed to replace the string in the file if it exists
+sed -i "s/$key/$value/g" "$subfile"
+file_changed=true
+fi
+done
+
+if [ "$file_changed" = true ]; then
+# Create a new zip file with the modified files
+cd "$extracted_folder"; zip -r ../"${base_name}.zip" . > 
/dev/null; cd ..
+
+mv "${base_name}.zip" "$file"
+
+echo "Replacing '$key' with '$value' in $file"
+fi
+done
+
+# Clean up the temporary extracted folder
+rm -rf "$extracted_folder"
+fi
+done
+


core.git: sw/qa

2024-03-04 Thread Xisco Fauli (via logerrit)
 sw/qa/uitest/data/tdf150443.docx|binary
 sw/qa/uitest/writer_tests8/tdf150443.py |4 +---
 2 files changed, 1 insertion(+), 3 deletions(-)

New commits:
commit 2eba8bb8d43d39eb229a81947907e70f50859a76
Author: Xisco Fauli 
AuthorDate: Mon Mar 4 17:40:48 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 4 22:46:36 2024 +0100

tdf#150443: replace missing fonts in testfile

This commit reverts 0b21e2a404c114529376dc50764dc0286dafc745
"sw: UITest_writer_tests8 test_tdf150443 more tolerant"

Change-Id: If83a7b0a8dc2289aba3201edfdf19d0ca839459a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164392
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 
Tested-by: Jenkins

diff --git a/sw/qa/uitest/data/tdf150443.docx b/sw/qa/uitest/data/tdf150443.docx
index 162aec01f928..f1897c4712aa 100644
Binary files a/sw/qa/uitest/data/tdf150443.docx and 
b/sw/qa/uitest/data/tdf150443.docx differ
diff --git a/sw/qa/uitest/writer_tests8/tdf150443.py 
b/sw/qa/uitest/writer_tests8/tdf150443.py
index 1dbb74b58918..fb39bd8a0375 100644
--- a/sw/qa/uitest/writer_tests8/tdf150443.py
+++ b/sw/qa/uitest/writer_tests8/tdf150443.py
@@ -26,9 +26,7 @@ class tdf150443(UITestCase):
 xsearch = xDialog.getChild("search")
 xsearch.executeAction("CLICK", tuple())  #first search
 xToolkit.processEventsToIdle()
-page = get_state_as_dict(xWriterEdit)["CurrentPage"]
-# page may depend on font substitution, just check it moved
-self.assertTrue(page == "4" or page == "5")
+
self.assertEqual(get_state_as_dict(xWriterEdit)["CurrentPage"], "4")
 
 # reject the tracked table row in Manage Changes dialog window
 with 
self.ui_test.execute_modeless_dialog_through_command(".uno:AcceptTrackedChanges",
 close_button="close") as xTrackDlg:


core.git: sc/qa

2024-03-04 Thread Xisco Fauli (via logerrit)
 sc/qa/unit/uicalc/data/tdf158802.xlsx |binary
 sc/qa/unit/uicalc/uicalc.cxx  |   20 
 2 files changed, 20 insertions(+)

New commits:
commit a08cc309529c7bded0e4898ef638ca7bdc8c140f
Author: Xisco Fauli 
AuthorDate: Mon Mar 4 11:51:40 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 4 19:57:04 2024 +0100

tdf#158802: sc_uicalc: Add unittest

Change-Id: Ic9460d36ef1df18a05126bc06a5214c1d87317db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164331
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sc/qa/unit/uicalc/data/tdf158802.xlsx 
b/sc/qa/unit/uicalc/data/tdf158802.xlsx
new file mode 100644
index ..82f9c9fe14a3
Binary files /dev/null and b/sc/qa/unit/uicalc/data/tdf158802.xlsx differ
diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx
index af9fb5511d5e..1bf9dfc12883 100644
--- a/sc/qa/unit/uicalc/uicalc.cxx
+++ b/sc/qa/unit/uicalc/uicalc.cxx
@@ -1700,6 +1700,26 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf86166)
 CPPUNIT_ASSERT_EQUAL(static_cast(1), pDoc->GetTableCount());
 }
 
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf158802)
+{
+createScDoc("tdf158802.xlsx");
+ScDocument* pDoc = getScDoc();
+
+CPPUNIT_ASSERT_EQUAL(static_cast(2), pDoc->GetTableCount());
+
+uno::Sequence aArgs(
+comphelper::InitPropertySequence({ { "Index", uno::Any(sal_uInt16(0)) 
} }));
+
+dispatchCommand(mxComponent, ".uno:Remove", aArgs);
+
+CPPUNIT_ASSERT_EQUAL(static_cast(1), pDoc->GetTableCount());
+
+// Without the fix in place, this test would have crashed here
+dispatchCommand(mxComponent, ".uno:Undo", aArgs);
+
+CPPUNIT_ASSERT_EQUAL(static_cast(2), pDoc->GetTableCount());
+}
+
 CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf149502_HangOnDeletingSheet1)
 {
 createScDoc("tdf149502_HangOnDeletingSheet1.ods");


core.git: officecfg/registry

2024-03-04 Thread Xisco Fauli (via logerrit)
 officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit d6f80ddb3f05a3b55239866e6e4d470f6903aaae
Author: Xisco Fauli 
AuthorDate: Mon Mar 4 12:14:27 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Mar 4 14:20:03 2024 +0100

tdf#159808: fix -> fixed

Change-Id: Ib4a1460b6d92a6e140748294d752967dd8cfa89d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164351
Reviewed-by: Stéphane Guillou 
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git 
a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
index 5612705b04f1..0747863958fc 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu
@@ -1084,7 +1084,7 @@
   
   
 
-  ~Date (fix)
+  ~Date (fixed)
 
 
   1
@@ -1108,7 +1108,7 @@
   
   
 
-  ~Time (fix)
+  ~Time (fixed)
 
 
   1


core.git: Branch 'libreoffice-24-2' - svgio/inc svgio/qa svgio/source

2024-03-04 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgstyleattributes.hxx  |   12 
 svgio/inc/svgtoken.hxx|1 
 svgio/qa/cppunit/SvgImportTest.cxx|   17 +++
 svgio/qa/cppunit/data/tdf159968.svg   |   37 +
 svgio/source/svgreader/svgstyleattributes.cxx |   38 +-
 svgio/source/svgreader/svgtoken.cxx   |1 
 6 files changed, 105 insertions(+), 1 deletion(-)

New commits:
commit 6eb331934f27993db83a2175d22bdd554a775ad8
Author: Xisco Fauli 
AuthorDate: Fri Mar 1 16:42:27 2024 +0100
Commit: Caolán McNamara 
CommitDate: Mon Mar 4 09:38:39 2024 +0100

tdf#159968: Support overflow:visible in marker element

Change-Id: I4ea648cf94a4bb321a78843a9898769a69c5630d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164224
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit eaf9befee8073916f6b22dd600e54073504154b7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164198
Reviewed-by: Caolán McNamara 

diff --git a/svgio/inc/svgstyleattributes.hxx b/svgio/inc/svgstyleattributes.hxx
index 4516773e83a6..bf921f8b1bb0 100644
--- a/svgio/inc/svgstyleattributes.hxx
+++ b/svgio/inc/svgstyleattributes.hxx
@@ -170,6 +170,13 @@ namespace svgio::svgreader
 Central
 };
 
+enum class Overflow
+{
+notset,
+hidden,
+visible
+};
+
 enum class Visibility
 {
 notset,
@@ -207,6 +214,7 @@ namespace svgio::svgreader
 TextAnchor  maTextAnchor;
 SvgPaintmaColor;
 SvgNumber   maOpacity;
+OverflowmaOverflow;
 Visibility  maVisibility;
 OUString   maTitle;
 OUString   maDesc;
@@ -410,6 +418,10 @@ namespace svgio::svgreader
 SvgNumber getOpacity() const;
 void setOpacity(const SvgNumber& rOpacity) { maOpacity = rOpacity; 
}
 
+/// Overflow
+Overflow getOverflow() const;
+void setOverflow(const Overflow aOverflow) { maOverflow = 
aOverflow; }
+
 /// Visibility
 Visibility getVisibility() const;
 void setVisibility(const Visibility aVisibility) { maVisibility = 
aVisibility; }
diff --git a/svgio/inc/svgtoken.hxx b/svgio/inc/svgtoken.hxx
index 3927a27d1db5..26a5d8f5f423 100644
--- a/svgio/inc/svgtoken.hxx
+++ b/svgio/inc/svgtoken.hxx
@@ -112,6 +112,7 @@ namespace svgio::svgreader
 Visibility,
 Title,
 Desc,
+Overflow,
 
 // AspectRatio and params
 PreserveAspectRatio,
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 0ba32d8cb9f3..326e8f38ffb6 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -1950,6 +1950,23 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156271)
 assertXPath(pDocument, 
"/primitive2D/transform/mask/textsimpleportion[4]"_ostr, "dx1"_ostr, "23");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf159968)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf159968.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = 
dumper.dumpAndParse(Primitive2DContainer(aSequence));
+
+CPPUNIT_ASSERT (pDocument);
+
+// Check no mask is applied to the marker
+assertXPath(pDocument,
+
"/primitive2D/transform/transform/transform/transform/polypolygoncolor"_ostr, 
"color"_ostr, "#00");
+assertXPath(pDocument,
+
"/primitive2D/transform/transform/transform/transform/polypolygoncolor/polypolygon/polygon/point"_ostr,
 5);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf149880)
 {
 Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf149880.svg");
diff --git a/svgio/qa/cppunit/data/tdf159968.svg 
b/svgio/qa/cppunit/data/tdf159968.svg
new file mode 100644
index ..8c13f0864901
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf159968.svg
@@ -0,0 +1,37 @@
+
+
+http://www.w3.org/2000/svg;
+   xmlns:svg="http://www.w3.org/2000/svg;>
+  
+
+  
+
+  
+  
+
+  
+
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index 731df59aeebf..19070989bb55 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -850,7 +850,8 @@ namespace svgio::svgreader
 const basegfx::B2DRange aTargetRange(0.0, 0.0, 
fTargetWidth, fTargetHeight);
 const SvgAspectRatio& rRatio = 
rMarker.getSvgAspectRatio();
 
-if(rRatio.isSet())
+
+if(rRatio.isSet() && Overflow::visible != 

core.git: Branch 'libreoffice-7-6' - sc/inc sc/qa sc/source

2024-03-02 Thread Xisco Fauli (via logerrit)
 sc/inc/filterentries.hxx  |7 +
 sc/qa/uitest/autofilter2/tdf159420.py |  126 ++
 sc/source/core/data/column3.cxx   |   17 +++-
 3 files changed, 145 insertions(+), 5 deletions(-)

New commits:
commit 2b4a485493add72ec474a3eb175069af6fbeac8b
Author: Xisco Fauli 
AuthorDate: Tue Jan 30 13:57:18 2024 +0100
Commit: Adolfo Jayme Barrientos 
CommitDate: Sat Mar 2 10:09:56 2024 +0100

tdf#159420: Show empty option even if empty is filtered out

in other columns

Regression from 89e032e9c4c51f52680c7d8bacf59ab2a34f2180
"tdf#158314: show Empty and Error entries as non-selected and inactive...
...when hidden by autofilter."

The mbHasEmpties variable was added in
9c1826d98065c30411cbf2e731560165ca2b7668
"sc-perf: do not add a million empty filter entries just to sort and
discard"

Change-Id: Ie0d81fd57f68038fac62cb6a3442e93ed547167a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162752
Tested-by: Jenkins
Reviewed-by: Kevin Suo 
(cherry picked from commit 98b4ba33a0a698e738db46d5916063de6e74fb96)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164121
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/sc/inc/filterentries.hxx b/sc/inc/filterentries.hxx
index 02110c879b03..1ec3f22a324b 100644
--- a/sc/inc/filterentries.hxx
+++ b/sc/inc/filterentries.hxx
@@ -18,11 +18,14 @@ struct ScFilterEntries
 {
 std::vector maStrData;
 boolmbHasDates;
-boolmbHasEmpties;
+boolmbHasHiddenEmpties;
+boolmbHasUnHiddenEmpties;
 std::set maTextColors;
 std::set maBackgroundColors;
 
-ScFilterEntries() : mbHasDates(false), mbHasEmpties(false) {}
+ScFilterEntries() : mbHasDates(false),
+mbHasHiddenEmpties(false),
+mbHasUnHiddenEmpties(false) {}
 
 std::vector::iterator   begin() { return 
maStrData.begin(); }
 std::vector::iterator   end()   { return 
maStrData.end(); }
diff --git a/sc/qa/uitest/autofilter2/tdf159420.py 
b/sc/qa/uitest/autofilter2/tdf159420.py
new file mode 100644
index ..87ee159d2223
--- /dev/null
+++ b/sc/qa/uitest/autofilter2/tdf159420.py
@@ -0,0 +1,126 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# 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/.
+#
+from uitest.framework import UITestCase
+from uitest.uihelper.calc import enter_text_to_cell
+from uitest.uihelper.common import get_state_as_dict
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from libreoffice.calc.document import is_row_hidden
+
+class tdf159420(UITestCase):
+
+def testTdf159420(self):
+with self.ui_test.create_doc_in_start_center("calc") as calcDoc:
+xCalcDoc = self.xUITest.getTopFocusWindow()
+xGridWin = xCalcDoc.getChild("grid_window")
+
+# Fill the sheet with test data
+enter_text_to_cell(xGridWin, "A1", "a")
+enter_text_to_cell(xGridWin, "A2", "2")
+enter_text_to_cell(xGridWin, "A3", "2")
+enter_text_to_cell(xGridWin, "A4", "2")
+enter_text_to_cell(xGridWin, "A5", "4")
+
+enter_text_to_cell(xGridWin, "B1", "b")
+enter_text_to_cell(xGridWin, "B2", "")
+enter_text_to_cell(xGridWin, "B3", "")
+enter_text_to_cell(xGridWin, "B4", "8")
+enter_text_to_cell(xGridWin, "B5", "8")
+
+enter_text_to_cell(xGridWin, "C1", "c")
+
+# Select the data range and set autofilter
+xGridWin.executeAction("SELECT", mkPropertyValues({"RANGE": 
"A1:C5"}))
+self.xUITest.executeCommand(".uno:DataFilterAutoFilter")
+
+# Click the autofilter dropdown in column A
+xGridWin.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": 
"", "COL": "0", "ROW": "0"}))
+xFloatWindow = self.xUITest.getFloatWindow()
+xCheckListMenu = xFloatWindow.getChild("FilterDropDown")
+xTreeList = xCheckListMenu.getChild("check_list_box")
+
+self.assertEqual(2, len(xTreeList.getChildren()))
+
+xEntry1 = xTreeList.getChild(0)
+self.assertEqual("2", get_state_as_dict(xEntry1)['Text'])
+self.assertEqual("true", get_state_as_dict(xEntry1)['IsChecked'])
+self.assertEqual("false", 
get_state_as_dict(xEntry1)['IsSemiTransparent'])
+
+xEntry2 = xTreeList.getChild(1)
+self.assertEqual("4", get_state_as_dict(xEntry2)['Text'])
+self.assertEqual("true", get_state_as_dict(xEntry2)['IsChecked'])
+

core.git: svgio/inc svgio/qa svgio/source

2024-03-01 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgstyleattributes.hxx  |   12 
 svgio/inc/svgtoken.hxx|1 
 svgio/qa/cppunit/SvgImportTest.cxx|   17 +++
 svgio/qa/cppunit/data/tdf159968.svg   |   37 +
 svgio/source/svgreader/svgstyleattributes.cxx |   38 +-
 svgio/source/svgreader/svgtoken.cxx   |1 
 6 files changed, 105 insertions(+), 1 deletion(-)

New commits:
commit a661f9a2e0a05de1705a8e9d930c148a1416be29
Author: Xisco Fauli 
AuthorDate: Fri Mar 1 16:42:27 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 1 21:46:01 2024 +0100

tdf#159968: Support overflow:visible in marker element

Change-Id: I4ea648cf94a4bb321a78843a9898769a69c5630d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164224
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgstyleattributes.hxx b/svgio/inc/svgstyleattributes.hxx
index 4516773e83a6..bf921f8b1bb0 100644
--- a/svgio/inc/svgstyleattributes.hxx
+++ b/svgio/inc/svgstyleattributes.hxx
@@ -170,6 +170,13 @@ namespace svgio::svgreader
 Central
 };
 
+enum class Overflow
+{
+notset,
+hidden,
+visible
+};
+
 enum class Visibility
 {
 notset,
@@ -207,6 +214,7 @@ namespace svgio::svgreader
 TextAnchor  maTextAnchor;
 SvgPaintmaColor;
 SvgNumber   maOpacity;
+OverflowmaOverflow;
 Visibility  maVisibility;
 OUString   maTitle;
 OUString   maDesc;
@@ -410,6 +418,10 @@ namespace svgio::svgreader
 SvgNumber getOpacity() const;
 void setOpacity(const SvgNumber& rOpacity) { maOpacity = rOpacity; 
}
 
+/// Overflow
+Overflow getOverflow() const;
+void setOverflow(const Overflow aOverflow) { maOverflow = 
aOverflow; }
+
 /// Visibility
 Visibility getVisibility() const;
 void setVisibility(const Visibility aVisibility) { maVisibility = 
aVisibility; }
diff --git a/svgio/inc/svgtoken.hxx b/svgio/inc/svgtoken.hxx
index 8ad390f0b4a5..613b75049335 100644
--- a/svgio/inc/svgtoken.hxx
+++ b/svgio/inc/svgtoken.hxx
@@ -113,6 +113,7 @@ namespace svgio::svgreader
 Visibility,
 Title,
 Desc,
+Overflow,
 
 // AspectRatio and params
 PreserveAspectRatio,
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 99541f0b63b7..708ab7dcc970 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -2013,6 +2013,23 @@ CPPUNIT_TEST_FIXTURE(Test, testTdf156271)
 assertXPath(pDocument, 
"/primitive2D/transform/mask/textsimpleportion[4]"_ostr, "dx1"_ostr, "23");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testTdf159968)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf159968.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = 
dumper.dumpAndParse(Primitive2DContainer(aSequence));
+
+CPPUNIT_ASSERT (pDocument);
+
+// Check no mask is applied to the marker
+assertXPath(pDocument,
+
"/primitive2D/transform/transform/transform/transform/polypolygoncolor"_ostr, 
"color"_ostr, "#00");
+assertXPath(pDocument,
+
"/primitive2D/transform/transform/transform/transform/polypolygoncolor/polypolygon/polygon/point"_ostr,
 5);
+}
+
 CPPUNIT_TEST_FIXTURE(Test, testTdf149880)
 {
 Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/tdf149880.svg");
diff --git a/svgio/qa/cppunit/data/tdf159968.svg 
b/svgio/qa/cppunit/data/tdf159968.svg
new file mode 100644
index ..8c13f0864901
--- /dev/null
+++ b/svgio/qa/cppunit/data/tdf159968.svg
@@ -0,0 +1,37 @@
+
+
+http://www.w3.org/2000/svg;
+   xmlns:svg="http://www.w3.org/2000/svg;>
+  
+
+  
+
+  
+  
+
+  
+
diff --git a/svgio/source/svgreader/svgstyleattributes.cxx 
b/svgio/source/svgreader/svgstyleattributes.cxx
index e2088be449b3..cdebccbd2526 100644
--- a/svgio/source/svgreader/svgstyleattributes.cxx
+++ b/svgio/source/svgreader/svgstyleattributes.cxx
@@ -850,7 +850,8 @@ namespace svgio::svgreader
 const basegfx::B2DRange aTargetRange(0.0, 0.0, 
fTargetWidth, fTargetHeight);
 const SvgAspectRatio& rRatio = 
rMarker.getSvgAspectRatio();
 
-if(rRatio.isSet())
+
+if(rRatio.isSet() && Overflow::visible != 
rMarker.getSvgStyleAttributes()->getOverflow())
 {
 // let mapping be created from SvgAspectRatio
 rMarkerTransform 

core.git: sw/qa

2024-03-01 Thread Xisco Fauli (via logerrit)
 dev/null|binary
 sw/qa/uitest/writer_tests8/tdf159797.py |   29 -
 2 files changed, 29 deletions(-)

New commits:
commit f3d4328e6a0c7b9792883c3b3d49ea5468e9898f
Author: Xisco Fauli 
AuthorDate: Fri Mar 1 11:59:12 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 1 16:22:16 2024 +0100

Revert "Unit test to tdf159797"

This reverts commit 173a79365b110cf70f628a602a22049562a477f5.

Reason for revert: This is already covered in 
66b30842e86fb6041bd6a453c6e3a877a3c177c1 with a CppUnittest, which is
preferable to UItests

Change-Id: I80ddb4f3d1da047e0c994fd3137a78ab70081edb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164191
Reviewed-by: Michael Stahl 
Tested-by: Xisco Fauli 
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/uitest/data/tdf159797.odt b/sw/qa/uitest/data/tdf159797.odt
deleted file mode 100755
index 437b6fc0cf7a..
Binary files a/sw/qa/uitest/data/tdf159797.odt and /dev/null differ
diff --git a/sw/qa/uitest/writer_tests8/tdf159797.py 
b/sw/qa/uitest/writer_tests8/tdf159797.py
deleted file mode 100644
index a29a1f517890..
--- a/sw/qa/uitest/writer_tests8/tdf159797.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
-#
-# 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/.
-#
-from uitest.framework import UITestCase
-from uitest.uihelper.common import get_url_for_data_file
-from libreoffice.uno.propertyvalue import mkPropertyValues
-from com.sun.star.text.TextContentAnchorType import AT_PAGE, AT_PARAGRAPH
-
-class tdf159797(UITestCase):
-
-def test_tdf159797(self):
-
-with self.ui_test.load_file(get_url_for_data_file("tdf159797.odt")) as 
document:
-
-xWriterDoc = self.xUITest.getTopFocusWindow()
-xWriterEdit = xWriterDoc.getChild("writer_edit")
-xWriterEdit.executeAction("CLICK", mkPropertyValues({"START_POS": 
"26", "END_POS": "26"}))
-xWriterEdit.executeAction("TYPE", mkPropertyValues({"TEXT": " "}))
-xWriterEdit.executeAction("SELECT", mkPropertyValues({"START_POS": 
"0", "END_POS": "31"}))
-windowState = xWriterEdit.getState();
-self.assertEqual(windowState[14].Value, "This is a sentence. 
\u2013 Here")
-
-
-# vim: set shiftwidth=4 softtabstop=4 expandtab:


core.git: svgio/source

2024-03-01 Thread Xisco Fauli (via logerrit)
 svgio/source/svgreader/svgsvgnode.cxx|5 +
 svgio/source/svgreader/svgsymbolnode.cxx |5 +
 2 files changed, 2 insertions(+), 8 deletions(-)

New commits:
commit f0225de07ecac797cd7ceaf9edb7e1c36d1afc70
Author: Xisco Fauli 
AuthorDate: Fri Mar 1 11:54:23 2024 +0100
Commit: Xisco Fauli 
CommitDate: Fri Mar 1 16:10:39 2024 +0100

svgio: simplify a bit

By default, preserveAspectRatio is already xMidYMid meet

Change-Id: I37d85979728e9382c9b21b3219f3ad79eeec536c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164188
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/source/svgreader/svgsvgnode.cxx 
b/svgio/source/svgreader/svgsvgnode.cxx
index 09c081069859..7d2b935b544e 100644
--- a/svgio/source/svgreader/svgsvgnode.cxx
+++ b/svgio/source/svgreader/svgsvgnode.cxx
@@ -421,10 +421,7 @@ namespace svgio::svgreader
 else
 {
 // create mapping
-// #i122610 SVG 1.1 defines in section 5.1.2 
that if the attribute preserveAspectRatio is not specified,
-// then the effect is as if a value of 
'xMidYMid meet' were specified.
-SvgAspectRatio 
aRatioDefault(SvgAlign::xMidYMid,true);
-const SvgAspectRatio& rRatio = 
getSvgAspectRatio().isSet()? getSvgAspectRatio() : aRatioDefault;
+const SvgAspectRatio& rRatio = 
getSvgAspectRatio();
 
 // let mapping be created from SvgAspectRatio
 const basegfx::B2DHomMatrix 
aEmbeddingTransform(
diff --git a/svgio/source/svgreader/svgsymbolnode.cxx 
b/svgio/source/svgreader/svgsymbolnode.cxx
index 2f226b841e82..f2d25c330316 100644
--- a/svgio/source/svgreader/svgsymbolnode.cxx
+++ b/svgio/source/svgreader/svgsymbolnode.cxx
@@ -135,10 +135,7 @@ namespace svgio::svgreader
 if(getViewBox())
 {
 // create mapping
-// #i122610 SVG 1.1 defines in section 5.1.2 that if the 
attribute preserveAspectRatio is not specified,
-// then the effect is as if a value of 'xMidYMid meet' were 
specified.
-SvgAspectRatio aRatioDefault(SvgAlign::xMidYMid, true);
-const SvgAspectRatio& rRatio = getSvgAspectRatio().isSet()? 
getSvgAspectRatio() : aRatioDefault;
+const SvgAspectRatio& rRatio = getSvgAspectRatio();
 
 const double fX(maX.solve(*this, NumberType::xcoordinate));
 const double fY(maY.solve(*this, NumberType::ycoordinate));


core.git: Branch 'libreoffice-7-6' - 2 commits - external/libxml2 sw/source

2024-03-01 Thread Xisco Fauli (via logerrit)
 external/libxml2/UnpackedTarball_libxml2.mk |2 +-
 sw/source/uibase/docvw/AnnotationWin2.cxx   |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

New commits:
commit ffcdd3a72bcacce6c16dec9adc88556fcb83894f
Author: Xisco Fauli 
AuthorDate: Thu Feb 22 12:09:10 2024 +0100
Commit: Caolán McNamara 
CommitDate: Fri Mar 1 12:00:43 2024 +0100

tdf#157158: always paint the arrow black

The background doesn't change so do not change the arrow color either

Change-Id: I7a5f80e639570e94975b7e033619783d24c95a6f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163737
Reviewed-by: Caolán McNamara 
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 
(cherry picked from commit c4553ae6e06ce84c2f477ec85bc2056645eb4833)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163756

diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx 
b/sw/source/uibase/docvw/AnnotationWin2.cxx
index 3f8a1752e890..74310ba99125 100644
--- a/sw/source/uibase/docvw/AnnotationWin2.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin2.cxx
@@ -504,7 +504,7 @@ void SwAnnotationWin::SetMenuButtonColors()
 const tools::Long nBorderDistanceBottom = ((aSymbolRect.GetHeight() * 150) 
+ 500) / 1000;
 aSymbolRect.AdjustBottom( -nBorderDistanceBottom );
 DecorationView aDecoView(xVirDev.get());
-aDecoView.DrawSymbol(aSymbolRect, SymbolType::SPIN_DOWN, GetTextColor(),
+aDecoView.DrawSymbol(aSymbolRect, SymbolType::SPIN_DOWN, COL_BLACK,
  DrawSymbolFlags::NONE);
 mxMenuButton->set_image(xVirDev);
 mxMenuButton->set_size_request(aSize.Width() + 4, aSize.Height() + 4);
commit 1f8e5f673f7dd0cd531b3fb0a5cb5a7d2535b36f
Author: Michael Stahl 
AuthorDate: Thu Feb 15 18:51:27 2024 +0100
Commit: Caolán McNamara 
CommitDate: Fri Mar 1 12:00:33 2024 +0100

tdf#159502 libxml2: apply Solaris ld patch only on Solaris

Diverging from upstream by inventing a LIBXML2_GLOBAL_VARIABLES version
should only be done if actually required.

Change-Id: I1520ca5078dc24ffd83e927f9c857d625e71749b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163455
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit eebdda4e221327cae5a9177893394819ca510d5f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163492
Reviewed-by: Caolán McNamara 

diff --git a/external/libxml2/UnpackedTarball_libxml2.mk 
b/external/libxml2/UnpackedTarball_libxml2.mk
index d50d52cbeef8..489fb007572b 100644
--- a/external/libxml2/UnpackedTarball_libxml2.mk
+++ b/external/libxml2/UnpackedTarball_libxml2.mk
@@ -14,7 +14,7 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,libxml2,$(LIBXML_TARBALL),,libxml2)
 $(eval $(call gb_UnpackedTarball_update_autoconf_configs,libxml2))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libxml2,\
-   external/libxml2/libxml2-global-symbols.patch \
+   $(if $(filter 
SOLARIS,$(OS)),external/libxml2/libxml2-global-symbols.patch) \
external/libxml2/libxml2-vc10.patch \
external/libxml2/libxml2-XMLCALL-redefine.patch.0 \
$(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \


core.git: svgio/inc svgio/qa svgio/source

2024-02-29 Thread Xisco Fauli (via logerrit)
 svgio/inc/svgfilternode.hxx  |9 +++
 svgio/inc/svgtoken.hxx   |1 
 svgio/qa/cppunit/SvgImportTest.cxx   |   47 
 svgio/qa/cppunit/data/inFilterAttribute.svg  |   13 +
 svgio/qa/cppunit/data/resultFilterAttribute.svg  |   13 +
 svgio/source/svgreader/svgfecolormatrixnode.cxx  |3 +
 svgio/source/svgreader/svgfedropshadownode.cxx   |3 +
 svgio/source/svgreader/svgfefloodnode.cxx|3 +
 svgio/source/svgreader/svgfegaussianblurnode.cxx |3 +
 svgio/source/svgreader/svgfeimagenode.cxx|3 +
 svgio/source/svgreader/svgfeoffsetnode.cxx   |3 +
 svgio/source/svgreader/svgfilternode.cxx |   52 +++
 svgio/source/svgreader/svgtoken.cxx  |1 
 13 files changed, 154 insertions(+)

New commits:
commit c73f3491bedafef884196c761d8f3d89f4dcff75
Author: Xisco Fauli 
AuthorDate: Wed Feb 28 13:10:04 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Feb 29 17:52:05 2024 +0100

tdf#159947: Add support for in and result filter attributes

Change-Id: I8bc7e319a64c528893de8454c64545146ad4e9d8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164108
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/svgio/inc/svgfilternode.hxx b/svgio/inc/svgfilternode.hxx
index 0c87ba54b47b..c3aa068bd3eb 100644
--- a/svgio/inc/svgfilternode.hxx
+++ b/svgio/inc/svgfilternode.hxx
@@ -27,11 +27,20 @@ namespace svgio::svgreader
 {
 class SvgFilterNode : public SvgNode
 {
+private:
+OUString maIn;
+OUString maResult;
+
 public:
 SvgFilterNode(SVGToken aType, SvgDocument& rDocument, SvgNode* pParent);
 virtual ~SvgFilterNode() override;
 
+virtual void parseAttribute(SVGToken aSVGToken, const OUString& aContent) 
override;
+
 virtual void apply(drawinglayer::primitive2d::Primitive2DContainer& 
rTarget) const;
+
+const OUString& getIn() const { return maIn; }
+const OUString& getResult() const { return maResult; }
 };
 
 } // end of namespace svgio::svgreader
diff --git a/svgio/inc/svgtoken.hxx b/svgio/inc/svgtoken.hxx
index 3927a27d1db5..8ad390f0b4a5 100644
--- a/svgio/inc/svgtoken.hxx
+++ b/svgio/inc/svgtoken.hxx
@@ -42,6 +42,7 @@ namespace svgio::svgreader
 Version,
 Id,
 In,
+Result,
 Rx,
 Ry,
 Points,
diff --git a/svgio/qa/cppunit/SvgImportTest.cxx 
b/svgio/qa/cppunit/SvgImportTest.cxx
index 9eb8b37d70ca..99541f0b63b7 100644
--- a/svgio/qa/cppunit/SvgImportTest.cxx
+++ b/svgio/qa/cppunit/SvgImportTest.cxx
@@ -212,6 +212,53 @@ CPPUNIT_TEST_FIXTURE(Test, testFilterFeGaussianBlur)
 assertXPath(pDocument, "/primitive2D/transform/softedge"_ostr, 
"radius"_ostr, "5");
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testInFilterAttribute)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/inFilterAttribute.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+// Without the fix in place, the feGaussianBlur and feColorMatrix filter 
would have been applied
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy11"_ostr, "1");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy12"_ostr, "0");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy13"_ostr, "40");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy21"_ostr, "0");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy22"_ostr, "1");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy23"_ostr, "40");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy31"_ostr, "0");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy32"_ostr, "0");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy33"_ostr, "1");
+assertXPath(pDocument, 
"/primitive2D/transform/transform/polypolygoncolor"_ostr, "color"_ostr, 
"#ff");
+}
+
+CPPUNIT_TEST_FIXTURE(Test, testResultFilterAttribute)
+{
+Primitive2DSequence aSequence = 
parseSvg(u"/svgio/qa/cppunit/data/resultFilterAttribute.svg");
+CPPUNIT_ASSERT_EQUAL(1, static_cast(aSequence.getLength()));
+
+drawinglayer::Primitive2dXmlDump dumper;
+xmlDocUniquePtr pDocument = dumper.dumpAndParse(aSequence);
+
+CPPUNIT_ASSERT (pDocument);
+
+// Without the fix in place, the feColorMatrix filter would have been 
applied
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy11"_ostr, "1");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy12"_ostr, "0");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 
"xy13"_ostr, "40");
+assertXPath(pDocument, "/primitive2D/transform/transform"_ostr, 

core.git: sc/qa

2024-02-29 Thread Xisco Fauli (via logerrit)
 sc/qa/unit/uicalc/data/tdf159938.fods |   50 ++
 sc/qa/unit/uicalc/uicalc2.cxx |   29 +++
 2 files changed, 79 insertions(+)

New commits:
commit 91c37cdc9d779c6f1c956ffc78a688f08e6735d7
Author: Xisco Fauli 
AuthorDate: Thu Feb 29 13:55:35 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Feb 29 16:46:50 2024 +0100

tdf#159938: sc_uicalc2: Add unittest

Change-Id: Ib5bd28cf2d449924425e06bb22437af522443ed8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164145
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sc/qa/unit/uicalc/data/tdf159938.fods 
b/sc/qa/unit/uicalc/data/tdf159938.fods
new file mode 100644
index ..9da1be1377b1
--- /dev/null
+++ b/sc/qa/unit/uicalc/data/tdf159938.fods
@@ -0,0 +1,50 @@
+
+
+http://www.w3.org/TR/css3-text/; office:version="1.3" 
office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
+ 
+  
+ 
+ 
+  
+   
+  
+ 
+ 
+  
+   
+  
+  
+   
+  
+  
+   
+   
+  
+  
+   
+   
+  
+ 
+ 
+  
+   
+
+
+ foobar
+ 
+ 
+
+
+ 
+  Lorem ipsum dolor sit amet, consectetur adipiscing elit
+ 
+ 
+
+
+ 
+
+   
+   
+  
+ 
+
\ No newline at end of file
diff --git a/sc/qa/unit/uicalc/uicalc2.cxx b/sc/qa/unit/uicalc/uicalc2.cxx
index af1ff870e8a1..233555923816 100644
--- a/sc/qa/unit/uicalc/uicalc2.cxx
+++ b/sc/qa/unit/uicalc/uicalc2.cxx
@@ -471,6 +471,35 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest2, testTdf131073)
 CPPUNIT_ASSERT_EQUAL(nStdColWidth, pDoc->GetColWidth(2, 0));
 }
 
+CPPUNIT_TEST_FIXTURE(ScUiCalcTest2, testTdf159938)
+{
+createScDoc("tdf159938.fods");
+ScDocument* pDoc = getScDoc();
+
+const sal_uInt16 nCol1Width = pDoc->GetColWidth(0, 0);
+const sal_uInt16 nCol2Width = pDoc->GetColWidth(1, 0);
+const sal_uInt16 nRow1Height = pDoc->GetRowHeight(0, 0);
+const sal_uInt16 nRow2Height = pDoc->GetRowHeight(1, 0);
+const sal_uInt16 nRow3Height = pDoc->GetRowHeight(2, 0);
+
+goToCell("A1");
+dispatchCommand(mxComponent, ".uno:GoDown", {});
+dispatchCommand(mxComponent, ".uno:GoDown", {});
+dispatchCommand(mxComponent, ".uno:GoDown", {});
+
+ScDocShell* pDocSh = getScDocShell();
+lcl_AssertCurrentCursorPosition(*pDocSh, u"A4");
+CPPUNIT_ASSERT_EQUAL(nCol1Width, pDoc->GetColWidth(0, 0));
+CPPUNIT_ASSERT_EQUAL(nCol2Width, pDoc->GetColWidth(1, 0));
+CPPUNIT_ASSERT_EQUAL(nRow1Height, pDoc->GetRowHeight(0, 0));
+
+// Without the fix in place, this test would have failed with
+// - Expected: 283
+// - Actual  : 1552
+CPPUNIT_ASSERT_EQUAL(nRow2Height, pDoc->GetRowHeight(1, 0));
+CPPUNIT_ASSERT_EQUAL(nRow3Height, pDoc->GetRowHeight(2, 0));
+}
+
 CPPUNIT_TEST_FIXTURE(ScUiCalcTest2, testTdf83901)
 {
 createScDoc();


core.git: Branch 'libreoffice-24-2' - sc/inc sc/qa sc/source

2024-02-29 Thread Xisco Fauli (via logerrit)
 sc/inc/filterentries.hxx  |7 +
 sc/qa/uitest/autofilter2/tdf159420.py |  126 ++
 sc/source/core/data/column3.cxx   |   17 +++-
 3 files changed, 145 insertions(+), 5 deletions(-)

New commits:
commit 0ddfc1c31b7d9d2a3977e0e9cbf59b9dcf2044ee
Author: Xisco Fauli 
AuthorDate: Tue Jan 30 13:57:18 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Feb 29 15:47:53 2024 +0100

tdf#159420: Show empty option even if empty is filtered out

in other columns

Regression from 89e032e9c4c51f52680c7d8bacf59ab2a34f2180
"tdf#158314: show Empty and Error entries as non-selected and inactive...
...when hidden by autofilter."

The mbHasEmpties variable was added in
9c1826d98065c30411cbf2e731560165ca2b7668
"sc-perf: do not add a million empty filter entries just to sort and
discard"

Change-Id: Ie0d81fd57f68038fac62cb6a3442e93ed547167a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162752
Tested-by: Jenkins
Reviewed-by: Kevin Suo 
(cherry picked from commit 98b4ba33a0a698e738db46d5916063de6e74fb96)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164120

diff --git a/sc/inc/filterentries.hxx b/sc/inc/filterentries.hxx
index 02110c879b03..1ec3f22a324b 100644
--- a/sc/inc/filterentries.hxx
+++ b/sc/inc/filterentries.hxx
@@ -18,11 +18,14 @@ struct ScFilterEntries
 {
 std::vector maStrData;
 boolmbHasDates;
-boolmbHasEmpties;
+boolmbHasHiddenEmpties;
+boolmbHasUnHiddenEmpties;
 std::set maTextColors;
 std::set maBackgroundColors;
 
-ScFilterEntries() : mbHasDates(false), mbHasEmpties(false) {}
+ScFilterEntries() : mbHasDates(false),
+mbHasHiddenEmpties(false),
+mbHasUnHiddenEmpties(false) {}
 
 std::vector::iterator   begin() { return 
maStrData.begin(); }
 std::vector::iterator   end()   { return 
maStrData.end(); }
diff --git a/sc/qa/uitest/autofilter2/tdf159420.py 
b/sc/qa/uitest/autofilter2/tdf159420.py
new file mode 100644
index ..87ee159d2223
--- /dev/null
+++ b/sc/qa/uitest/autofilter2/tdf159420.py
@@ -0,0 +1,126 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# 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/.
+#
+from uitest.framework import UITestCase
+from uitest.uihelper.calc import enter_text_to_cell
+from uitest.uihelper.common import get_state_as_dict
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from libreoffice.calc.document import is_row_hidden
+
+class tdf159420(UITestCase):
+
+def testTdf159420(self):
+with self.ui_test.create_doc_in_start_center("calc") as calcDoc:
+xCalcDoc = self.xUITest.getTopFocusWindow()
+xGridWin = xCalcDoc.getChild("grid_window")
+
+# Fill the sheet with test data
+enter_text_to_cell(xGridWin, "A1", "a")
+enter_text_to_cell(xGridWin, "A2", "2")
+enter_text_to_cell(xGridWin, "A3", "2")
+enter_text_to_cell(xGridWin, "A4", "2")
+enter_text_to_cell(xGridWin, "A5", "4")
+
+enter_text_to_cell(xGridWin, "B1", "b")
+enter_text_to_cell(xGridWin, "B2", "")
+enter_text_to_cell(xGridWin, "B3", "")
+enter_text_to_cell(xGridWin, "B4", "8")
+enter_text_to_cell(xGridWin, "B5", "8")
+
+enter_text_to_cell(xGridWin, "C1", "c")
+
+# Select the data range and set autofilter
+xGridWin.executeAction("SELECT", mkPropertyValues({"RANGE": 
"A1:C5"}))
+self.xUITest.executeCommand(".uno:DataFilterAutoFilter")
+
+# Click the autofilter dropdown in column A
+xGridWin.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": 
"", "COL": "0", "ROW": "0"}))
+xFloatWindow = self.xUITest.getFloatWindow()
+xCheckListMenu = xFloatWindow.getChild("FilterDropDown")
+xTreeList = xCheckListMenu.getChild("check_list_box")
+
+self.assertEqual(2, len(xTreeList.getChildren()))
+
+xEntry1 = xTreeList.getChild(0)
+self.assertEqual("2", get_state_as_dict(xEntry1)['Text'])
+self.assertEqual("true", get_state_as_dict(xEntry1)['IsChecked'])
+self.assertEqual("false", 
get_state_as_dict(xEntry1)['IsSemiTransparent'])
+
+xEntry2 = xTreeList.getChild(1)
+self.assertEqual("4", get_state_as_dict(xEntry2)['Text'])
+self.assertEqual("true", get_state_as_dict(xEntry2)['IsChecked'])
+self.assertEqual("false", 

core.git: sc/inc sc/qa sc/source

2024-02-29 Thread Xisco Fauli (via logerrit)
 sc/inc/filterentries.hxx  |7 +
 sc/qa/uitest/autofilter2/tdf159420.py |  126 ++
 sc/source/core/data/column3.cxx   |   17 +++-
 3 files changed, 145 insertions(+), 5 deletions(-)

New commits:
commit e66f5cb353bc0ea1020061bab4981380f98499b9
Author: Xisco Fauli 
AuthorDate: Tue Jan 30 13:57:18 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Feb 29 12:59:36 2024 +0100

tdf#159420: Show empty option even if empty is filtered out

in other columns

Regression from 89e032e9c4c51f52680c7d8bacf59ab2a34f2180
"tdf#158314: show Empty and Error entries as non-selected and inactive...
...when hidden by autofilter."

The mbHasEmpties variable was added in
9c1826d98065c30411cbf2e731560165ca2b7668
"sc-perf: do not add a million empty filter entries just to sort and
discard"

Change-Id: Ie0d81fd57f68038fac62cb6a3442e93ed547167a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162752
Tested-by: Jenkins
Reviewed-by: Kevin Suo 

diff --git a/sc/inc/filterentries.hxx b/sc/inc/filterentries.hxx
index 02110c879b03..1ec3f22a324b 100644
--- a/sc/inc/filterentries.hxx
+++ b/sc/inc/filterentries.hxx
@@ -18,11 +18,14 @@ struct ScFilterEntries
 {
 std::vector maStrData;
 boolmbHasDates;
-boolmbHasEmpties;
+boolmbHasHiddenEmpties;
+boolmbHasUnHiddenEmpties;
 std::set maTextColors;
 std::set maBackgroundColors;
 
-ScFilterEntries() : mbHasDates(false), mbHasEmpties(false) {}
+ScFilterEntries() : mbHasDates(false),
+mbHasHiddenEmpties(false),
+mbHasUnHiddenEmpties(false) {}
 
 std::vector::iterator   begin() { return 
maStrData.begin(); }
 std::vector::iterator   end()   { return 
maStrData.end(); }
diff --git a/sc/qa/uitest/autofilter2/tdf159420.py 
b/sc/qa/uitest/autofilter2/tdf159420.py
new file mode 100644
index ..87ee159d2223
--- /dev/null
+++ b/sc/qa/uitest/autofilter2/tdf159420.py
@@ -0,0 +1,126 @@
+# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*-
+#
+# 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/.
+#
+from uitest.framework import UITestCase
+from uitest.uihelper.calc import enter_text_to_cell
+from uitest.uihelper.common import get_state_as_dict
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from libreoffice.calc.document import is_row_hidden
+
+class tdf159420(UITestCase):
+
+def testTdf159420(self):
+with self.ui_test.create_doc_in_start_center("calc") as calcDoc:
+xCalcDoc = self.xUITest.getTopFocusWindow()
+xGridWin = xCalcDoc.getChild("grid_window")
+
+# Fill the sheet with test data
+enter_text_to_cell(xGridWin, "A1", "a")
+enter_text_to_cell(xGridWin, "A2", "2")
+enter_text_to_cell(xGridWin, "A3", "2")
+enter_text_to_cell(xGridWin, "A4", "2")
+enter_text_to_cell(xGridWin, "A5", "4")
+
+enter_text_to_cell(xGridWin, "B1", "b")
+enter_text_to_cell(xGridWin, "B2", "")
+enter_text_to_cell(xGridWin, "B3", "")
+enter_text_to_cell(xGridWin, "B4", "8")
+enter_text_to_cell(xGridWin, "B5", "8")
+
+enter_text_to_cell(xGridWin, "C1", "c")
+
+# Select the data range and set autofilter
+xGridWin.executeAction("SELECT", mkPropertyValues({"RANGE": 
"A1:C5"}))
+self.xUITest.executeCommand(".uno:DataFilterAutoFilter")
+
+# Click the autofilter dropdown in column A
+xGridWin.executeAction("LAUNCH", mkPropertyValues({"AUTOFILTER": 
"", "COL": "0", "ROW": "0"}))
+xFloatWindow = self.xUITest.getFloatWindow()
+xCheckListMenu = xFloatWindow.getChild("FilterDropDown")
+xTreeList = xCheckListMenu.getChild("check_list_box")
+
+self.assertEqual(2, len(xTreeList.getChildren()))
+
+xEntry1 = xTreeList.getChild(0)
+self.assertEqual("2", get_state_as_dict(xEntry1)['Text'])
+self.assertEqual("true", get_state_as_dict(xEntry1)['IsChecked'])
+self.assertEqual("false", 
get_state_as_dict(xEntry1)['IsSemiTransparent'])
+
+xEntry2 = xTreeList.getChild(1)
+self.assertEqual("4", get_state_as_dict(xEntry2)['Text'])
+self.assertEqual("true", get_state_as_dict(xEntry2)['IsChecked'])
+self.assertEqual("false", 
get_state_as_dict(xEntry2)['IsSemiTransparent'])
+
+#  Uncheck the second entry
+xEntry2.executeAction("CLICK", tuple())
+
+xOkButton = 

core.git: sd/qa

2024-02-28 Thread Xisco Fauli (via logerrit)
 sd/qa/uitest/impress_tests/tdf159927_dateTime.py |4 
 1 file changed, 4 deletions(-)

New commits:
commit ac4916037790fe33b83f4e2dae412c8cf2835af4
Author: Xisco Fauli 
AuthorDate: Wed Feb 28 09:28:41 2024 +0100
Commit: Xisco Fauli 
CommitDate: Wed Feb 28 11:38:41 2024 +0100

uitest: drop commented-out code

Added in 0c643e8afdf8b0b929b603340979e771eeb9fc0b
"tdf#159927 unit test for impress date/time language detection"

Change-Id: I4711034f9a16eccc234298529e5d7b5c949c23af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164080
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/sd/qa/uitest/impress_tests/tdf159927_dateTime.py 
b/sd/qa/uitest/impress_tests/tdf159927_dateTime.py
index 1a72d1997b75..17c5f23caa3b 100644
--- a/sd/qa/uitest/impress_tests/tdf159927_dateTime.py
+++ b/sd/qa/uitest/impress_tests/tdf159927_dateTime.py
@@ -9,7 +9,6 @@
 
 from uitest.framework import UITestCase
 from uitest.uihelper.common import get_state_as_dict, get_url_for_data_file
-import time
 
 class tdf159927(UITestCase):
 
@@ -22,7 +21,4 @@ class tdf159927(UITestCase):
 # Actual without the fix: the user's locale as specified in 
tools - options.
 
self.assertEqual(get_state_as_dict(language_list)["SelectEntryText"], "Finnish")
 
-#time.sleep(2)
-
-
 # vim: set shiftwidth=4 softtabstop=4 expandtab:


core.git: test/CppunitTest_test_a11y.mk

2024-02-26 Thread Xisco Fauli (via logerrit)
 test/CppunitTest_test_a11y.mk |4 
 1 file changed, 4 insertions(+)

New commits:
commit 633e37e07e234b16c58b32c8beb88534e5fd658b
Author: Xisco Fauli 
AuthorDate: Mon Feb 26 09:41:20 2024 +0100
Commit: Xisco Fauli 
CommitDate: Mon Feb 26 16:00:38 2024 +0100

CppunitTest_test_a11y: Missing test dependency

Similar to 0249f00aacc008969eb9bca5905dc2fea99e27fe
"Missing test dependency"

Change-Id: I37813dab57abd589d1cd28f44c0e0940f871c14b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163932
Tested-by: Jenkins
Reviewed-by: Xisco Fauli 

diff --git a/test/CppunitTest_test_a11y.mk b/test/CppunitTest_test_a11y.mk
index 212e9059785b..3adcc2995718 100644
--- a/test/CppunitTest_test_a11y.mk
+++ b/test/CppunitTest_test_a11y.mk
@@ -29,4 +29,8 @@ $(eval $(call gb_CppunitTest_use_vcl,test_a11y))
 $(eval $(call gb_CppunitTest_use_instdir_configuration,test_a11y))
 $(eval $(call gb_CppunitTest_use_common_configuration,test_a11y))
 
+$(eval $(call gb_CppunitTest_use_packages,test_a11y, \
+postprocess_images \
+))
+
 # vim: set noet sw=4 ts=4:


  1   2   3   4   5   6   7   8   9   10   >