core.git: cppuhelper/source

2024-03-07 Thread Noel Grandin (via logerrit)
 cppuhelper/source/servicemanager.cxx |3 +++
 1 file changed, 3 insertions(+)

New commits:
commit 07ead0555088dff6fbea4159ee26d1aeda2df19a
Author: Noel Grandin 
AuthorDate: Wed Mar 6 18:47:28 2024 +0200
Commit: Miklos Vajna 
CommitDate: Thu Mar 7 09:00:00 2024 +0100

unlock mutex around lok_preload_hook

because it now instantiates some services

Change-Id: Ia4f7c2df9f8dca3334906f0b482853002666ddd8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164484
Tested-by: Jenkins
Reviewed-by: Miklos Vajna 

diff --git a/cppuhelper/source/servicemanager.cxx 
b/cppuhelper/source/servicemanager.cxx
index 1e9c2dbbc192..9085e208ee25 100644
--- a/cppuhelper/source/servicemanager.cxx
+++ b/cppuhelper/source/servicemanager.cxx
@@ -1981,7 +1981,10 @@ void 
cppuhelper::ServiceManager::preloadImplementations() {
 if (std::find(aPreloaded.begin(), aPreloaded.end(), fpPreload) == 
aPreloaded.end())
 {
 aPreloaded.push_back(fpPreload);
+// unlock because we may be instantiating some services here
+g.unlock();
 fpPreload();
+g.lock();
 }
 }
 


core.git: 2 commits - basctl/uiconfig cui/uiconfig sc/uiconfig sd/uiconfig

2024-03-07 Thread Caolán McNamara (via logerrit)
 basctl/uiconfig/basicide/ui/gotolinedialog.ui|1 +
 cui/uiconfig/ui/numberdialog.ui  |1 +
 sc/uiconfig/scalc/ui/conditionaleasydialog.ui|3 +++
 sc/uiconfig/scalc/ui/notebookbar.ui  |8 
 sd/uiconfig/simpress/ui/optimpressgeneralpage.ui |1 +
 5 files changed, 10 insertions(+), 4 deletions(-)

New commits:
commit 68fb3fe5aa439bae04aed63bbb7433810dc6f479
Author: Caolán McNamara 
AuthorDate: Wed Mar 6 20:47:50 2024 +
Commit: Caolán McNamara 
CommitDate: Thu Mar 7 09:26:41 2024 +0100

fix indent

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

diff --git a/sc/uiconfig/scalc/ui/notebookbar.ui 
b/sc/uiconfig/scalc/ui/notebookbar.ui
index cdbe495a3fd2..855719bb3946 100644
--- a/sc/uiconfig/scalc/ui/notebookbar.ui
+++ b/sc/uiconfig/scalc/ui/notebookbar.ui
@@ -3859,15 +3859,15 @@
   
 
 
-
+  
 False
 .uno:ParaLeftToRight
 True
-
-
+  
+  
 False
 True
-
+  
 
   
   
commit 429eb73aa8587a331f9303b674654c30ed513bc5
Author: Caolán McNamara 
AuthorDate: Wed Mar 6 20:46:54 2024 +
Commit: Caolán McNamara 
CommitDate: Thu Mar 7 09:26:34 2024 +0100

add truncate-multiline for consistency

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

diff --git a/basctl/uiconfig/basicide/ui/gotolinedialog.ui 
b/basctl/uiconfig/basicide/ui/gotolinedialog.ui
index 84960ce7d4e0..971d0187ba69 100644
--- a/basctl/uiconfig/basicide/ui/gotolinedialog.ui
+++ b/basctl/uiconfig/basicide/ui/gotolinedialog.ui
@@ -83,6 +83,7 @@
 
   
 True
+True
 True
   
   
diff --git a/cui/uiconfig/ui/numberdialog.ui b/cui/uiconfig/ui/numberdialog.ui
index 2db7699f0faf..a73c160efeec 100644
--- a/cui/uiconfig/ui/numberdialog.ui
+++ b/cui/uiconfig/ui/numberdialog.ui
@@ -102,6 +102,7 @@
   
 True
 True
+True
 adjustment1
   
   
diff --git a/sc/uiconfig/scalc/ui/conditionaleasydialog.ui 
b/sc/uiconfig/scalc/ui/conditionaleasydialog.ui
index 2440952dea4e..5cc325781dfc 100644
--- a/sc/uiconfig/scalc/ui/conditionaleasydialog.ui
+++ b/sc/uiconfig/scalc/ui/conditionaleasydialog.ui
@@ -93,6 +93,7 @@
   
 True
 True
+True
 
   
 
@@ -107,6 +108,7 @@
   
 True
 True
+True
 
   
 
@@ -204,6 +206,7 @@
   
 True
 True
+True
 
   
 
diff --git a/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui 
b/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui
index 77a97b7c67b0..2d56849ecf67 100644
--- a/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui
+++ b/sd/uiconfig/simpress/ui/optimpressgeneralpage.ui
@@ -724,6 +724,7 @@
 
   
 False
+True
 start
   
 


Re: VCL selection

2024-03-07 Thread Caolán McNamara
On Wed, 2024-03-06 at 21:58 +, Gwyn Ciesla wrote:
> Interesting. Would you recommend waiting to set gtk4 as default, or
> would doing so spur correction of extant issues?

I don't really know. I'm not actively working on it anymore. IMO the
a11y issues are more of an upstream gtk issue in the sense of a lack of
a route to complete a11y integration, Michael Weghorn has far more of a
grasp of the current state of that.

The font/style previews IIRC isn't a particularly difficult problem
IIRC, but needs someone to do it.


core.git: Branch 'distro/collabora/co-24.04' - sw/qa sw/source

2024-03-07 Thread Miklos Vajna (via logerrit)
 sw/qa/uibase/dochdl/dochdl.cxx   |   26 ++
 sw/source/uibase/dochdl/swdtflvr.cxx |9 +
 2 files changed, 35 insertions(+)

New commits:
commit 5e2e6b44e2496977397ca79b1599d07ffc4a969f
Author: Miklos Vajna 
AuthorDate: Wed Mar 6 11:03:20 2024 +0100
Commit: Caolán McNamara 
CommitDate: Thu Mar 7 09:36:56 2024 +0100

cool#8465 sw lok: classify anchored images as complex selection

Regression from commit 7a8dc25defee31edbb75a2f8c35f92ee2d3f3a83 (sw lok:
simplify SwTransferable::isComplex(), 2021-02-23), in case as-char
imagse were part of a selection, we considered that complex, but at-char
was considered as simple, which is inconsistent.

This was not intentional, simply the rework to avoid copying the
selection to a temporary document lost this functionality.

Fix the problem by using CollectFrameAtNode() to find at-char images,
which tries to use the layout, so is not meant to be too slow.

An alternative would be sw::GetFlysAnchoredAt(), but that doesn't try to
use the layout, so avoid that.

(cherry picked from commit 1bca99617ad54d966625caadd71e52134c70ae44)

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

diff --git a/sw/qa/uibase/dochdl/dochdl.cxx b/sw/qa/uibase/dochdl/dochdl.cxx
index 95314b48be1f..2c209a65d3d9 100644
--- a/sw/qa/uibase/dochdl/dochdl.cxx
+++ b/sw/qa/uibase/dochdl/dochdl.cxx
@@ -18,6 +18,7 @@
 #include 
 #include 
 #include 
+#include 
 
 /// Covers sw/source/uibase/dochdl/ fixes.
 class SwUibaseDochdlTest : public SwModelTestBase
@@ -76,6 +77,31 @@ CPPUNIT_TEST_FIXTURE(SwUibaseDochdlTest, 
testComplexSelection)
 CPPUNIT_ASSERT(!xTransfer->isComplex());
 }
 
+CPPUNIT_TEST_FIXTURE(SwUibaseDochdlTest, testComplexSelectionAtChar)
+{
+// Given a document with an at-char anchored image:
+createSwDoc();
+SwDoc* pDoc = getSwDoc();
+SwDocShell* pDocShell = pDoc->GetDocShell();
+SwWrtShell* pWrtShell = pDocShell->GetWrtShell();
+SfxItemSet aFrameSet(pDoc->GetAttrPool(), svl::Items);
+SwFormatAnchor aAnchor(RndStdIds::FLY_AT_CHAR);
+aFrameSet.Put(aAnchor);
+Graphic aGrf;
+pWrtShell->SwFEShell::Insert(OUString(), OUString(), &aGrf, &aFrameSet);
+pWrtShell->UnSelectFrame();
+
+// When checking if the selection is simple or complex:
+pWrtShell->SelAll();
+uno::Reference xTransfer = new 
SwTransferable(*pWrtShell);
+bool bComplex = xTransfer->isComplex();
+
+// Then make sure it's complex:
+// Without the accompanying fix in place, this test would have failed, a 
selection containing an
+// image was considered simple.
+CPPUNIT_ASSERT(bComplex);
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/uibase/dochdl/swdtflvr.cxx 
b/sw/source/uibase/dochdl/swdtflvr.cxx
index ea419d2326f7..65f68e27d8c3 100644
--- a/sw/source/uibase/dochdl/swdtflvr.cxx
+++ b/sw/source/uibase/dochdl/swdtflvr.cxx
@@ -122,6 +122,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 
@@ -459,6 +460,14 @@ sal_Bool SAL_CALL SwTransferable::isComplex()
 }
 }
 
+FrameClientSortList_t vFrames;
+::CollectFrameAtNode(rNd, vFrames, true);
+if (!vFrames.empty())
+{
+// There is an at-char anchored object to this node, 
that's complex.
+return true;
+}
+
 nTextLength += pTextNode->GetText().getLength();
 if (nTextLength >= 1024 * 512)
 return true; // Complex


core.git: sw/CppunitTest_sw_uibase_dochdl.mk

2024-03-07 Thread Miklos Vajna (via logerrit)
 sw/CppunitTest_sw_uibase_dochdl.mk |4 
 1 file changed, 4 insertions(+)

New commits:
commit 2221ca74ecec97f3266dcddd2f257cb7fbc132d0
Author: Miklos Vajna 
AuthorDate: Thu Mar 7 08:16:39 2024 +0100
Commit: Miklos Vajna 
CommitDate: Thu Mar 7 10:16:51 2024 +0100

CppunitTest_sw_uibase_dochdl: turn on set_non_application_font_use

Similar to commit dc4d7500c9d283e26d1553ce11366a217cf1f69d (Fix
CppunitTest_sd_import_tests-smartart non_application_font_use,
2023-10-23), though this didn't find anything.

Change-Id: I5e189764dd8a72d4eff021a2430b480db24f3341
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164519
Reviewed-by: Miklos Vajna 
Tested-by: Jenkins

diff --git a/sw/CppunitTest_sw_uibase_dochdl.mk 
b/sw/CppunitTest_sw_uibase_dochdl.mk
index 581eb1d68d7b..2b56f7a68ed4 100644
--- a/sw/CppunitTest_sw_uibase_dochdl.mk
+++ b/sw/CppunitTest_sw_uibase_dochdl.mk
@@ -73,4 +73,8 @@ $(eval $(call gb_CppunitTest_use_uiconfigs,sw_uibase_dochdl, \
 
 $(eval $(call gb_CppunitTest_use_more_fonts,sw_uibase_dochdl))
 
+ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),)
+$(eval $(call 
gb_CppunitTest_set_non_application_font_use,sw_uibase_dochdl,abort))
+endif
+
 # vim: set noet sw=4 ts=4:


core.git: sw/source

2024-03-07 Thread Stephan Bergmann (via logerrit)
 sw/source/core/text/porlay.hxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit f3c9adfbe50f3b74d5f6bbcf2f76132da1916751
Author: Stephan Bergmann 
AuthorDate: Thu Mar 7 08:27:06 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Thu Mar 7 10:38:50 2024 +0100

Fix UBSan build's RTTI needs

...after 0ed1cb5457a2106316f9d7fda10685360db4bc30 "make more symbols 
private in
writer" had caused CppunitTest_sw_core_text to fail with

> DynamicLibraryManagerException: "Failed to load dynamic library: 
workdir/LinkTarget/CppunitTest/libtest_sw_core_text.so
> workdir/LinkTarget/CppunitTest/libtest_sw_core_text.so: undefined symbol: 
_ZTI12SwLineLayout"

Change-Id: I3f1fb7d6bca2ec726851c39919dddeeabb618542
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164520
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann 

diff --git a/sw/source/core/text/porlay.hxx b/sw/source/core/text/porlay.hxx
index 6da1895d0161..fe8aeb861e50 100644
--- a/sw/source/core/text/porlay.hxx
+++ b/sw/source/core/text/porlay.hxx
@@ -75,7 +75,7 @@ public:
 
 /// Collection of SwLinePortion instances, representing one line of text.
 /// Typically owned by an SwParaPortion.
-class SwLineLayout : public SwTextPortion
+class SAL_DLLPUBLIC_RTTI SwLineLayout : public SwTextPortion
 {
 private:
 SwLineLayout *m_pNext;// The next Line


core.git: accessibility/source vcl/source

2024-03-07 Thread Michael Stahl (via logerrit)
 accessibility/source/standard/vclxaccessibletoolbox.cxx |   11 ---
 vcl/source/window/accessibility.cxx |2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

New commits:
commit 825dde03999a55d02e4d5bc88a4d5beacb65e67f
Author: Michael Stahl 
AuthorDate: Tue Mar 5 19:21:21 2024 +0100
Commit: Michael Stahl 
CommitDate: Thu Mar 7 10:52:12 2024 +0100

vcl,accessibility: try to fix a crash while disposing SvxFontNameBox_Impl

This happened in a 6.3 based branch, no idea how to reproduce it.
Clearly the SvxFontNameBox_Impl is being disposed and in its base class
Window::dispose() when a call to SvxFontNameBox_Impl::CreateAccessible()
happens, which seems very suspicious; try to prevent that.

mergedlo.dll!ImplListBox::InsertEntry(long nPos, const rtl::OUString & 
rStr) Zeile 2225
unter d:\lomergedlo.dll!ComboBox::InsertEntry(const 
rtl::OUString & rStr, long nPos) Zeile 886
unter d:\lomergedlo.dll!FontNameBox::Fill(const FontList * 
pList) Zeile 447
unter d:\lo[Inlineframe] 
mergedlo.dll!SvxFontNameBox_Impl::Fill(const FontList * pList) Zeile 236
unter d:\lomergedlo.dll!lcl_GetDocFontList(const FontList * * 
ppFontList, SvxFontNameBox_Impl * pBox) Zeile 1290
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::FillList() Zeile 
1331
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::CreateAccessible() 
Zeile 3739
unter d:\lomergedlo.dll!vcl::Window::GetAccessible(bool 
bCreate) Zeile 129
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::getAccessibleChild(long i) Zeile 733
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::GetItemWindowAccessible(const VclWindowEvent & 
rVclWindowEvent) Zeile 784
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::GetChildAccessible(const VclWindowEvent & 
rVclWindowEvent) Zeile 795
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::ProcessWindowChildEvent(const 
VclWindowEvent & rVclWindowEvent) Zeile 165
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::ProcessWindowChildEvent(const VclWindowEvent & 
rVclWindowEvent) Zeile 657
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::WindowChildEventListener(VclWindowEvent & 
rEvent) Zeile 129
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::LinkStubWindowChildEventListener(void * 
instance, VclWindowEvent & data) Zeile 118
unter d:\lo[Inlineframe] mergedlo.dll!Link::Call(VclWindowEvent &) Zeile 84
unter d:\lo
mergedlo.dll!vcl::Window::CallEventListeners(VclEventId nEvent, void * pData) 
Zeile 280
unter d:\lomergedlo.dll!vcl::Window::ImplResetReallyVisible() 
Zeile 735
unter d:\lomergedlo.dll!vcl::Window::ImplResetReallyVisible() 
Zeile 747
unter d:\lomergedlo.dll!vcl::Window::Show(bool bVisible, 
ShowFlags nFlags) Zeile 2198
unter d:\lomergedlo.dll!vcl::Window::Show(bool bVisible, 
ShowFlags nFlags) Zeile 2176
unter d:\lo[Inlineframe] mergedlo.dll!vcl::Window::Hide() Zeile 
925
unter d:\lomergedlo.dll!vcl::Window::dispose() Zeile 402
unter d:\lomergedlo.dll!Edit::dispose() Zeile 258
unter d:\lomergedlo.dll!ComboBox::dispose() Zeile 132
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::dispose() Zeile 
1322
unter d:\lo[Inlineframe] 
mergedlo.dll!VclPtr::disposeAndClear() Zeile 206
unter d:\lomergedlo.dll!SvxFontNameToolBoxControl::dispose() 
Zeile 3309
unter d:\lo
mergedlo.dll!framework::ToolBarManager::RemoveControllers() Zeile 651
unter d:\lomergedlo.dll!framework::ToolBarManager::dispose() 
Zeile 468
unter d:\lomergedlo.dll!framework::ToolBarWrapper::dispose() 
Zeile 105
unter d:\lo
mergedlo.dll!framework::ToolbarLayoutManager::destroyToolbars() Zeile 666
unter d:\lo
mergedlo.dll!framework::ToolbarLayoutManager::reset() Zeile 364
unter d:\lo
mergedlo.dll!framework::LayoutManager::implts_reset(bool bAttached) Zeile 458
unter d:\lo
mergedlo.dll!framework::LayoutManager::frameAction(const 
com::sun::star::frame::FrameActionEvent & aEvent) Zeile 2757
unter d:\lomergedlo.dll!`anonymous 
namespace'::XFrameImpl::implts_sendFrameActionEvent(const 
com::sun::star::frame::FrameAction & aAction) Zeile 2952
unter d:\lomergedlo.dll!`anonymous 
namespace'::XFrameImpl::setComponent(const 
com::sun::star::uno::Reference & 
xComponentWindow, const 
com::sun::star::uno::Reference & 
xController) Zeile 1470
unter d:\lomergedlo.dll!`anonymous 
namespace'::XFrameImpl::close(unsigned char bDeliverOwnership) Zeile 1701
unter d:\lo
mergedlo.dll!framework::pattern::frame::closeIt(const 
com::sun::star::uno::Reference & xResour

core.git: svx/source

2024-03-07 Thread Mike Kaganski (via logerrit)
 svx/source/sdr/contact/viewcontactofgraphic.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 860548e23e2ae737d7bd5840f71f776b1239f997
Author: Mike Kaganski 
AuthorDate: Thu Mar 7 08:54:59 2024 +0100
Commit: Mike Kaganski 
CommitDate: Thu Mar 7 10:59:18 2024 +0100

Simplify a comparison

Comparing with zero is simple - the implementation of 
basegfx::fTools::moreOrEqual
calls rtl_math_approxEqual eventually, which special-zases zero.

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

diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx 
b/svx/source/sdr/contact/viewcontactofgraphic.cxx
index eee994c583cc..1135bd48bc91 100644
--- a/svx/source/sdr/contact/viewcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx
@@ -112,7 +112,7 @@ namespace sdr::contact
 const double fOffsetX((aScale.getX() - aPrefSize.getWidth()) / 
2.0);
 const double fOffsetY((aScale.getY() - aPrefSize.getHeight()) / 
2.0);
 
-if(basegfx::fTools::moreOrEqual(fOffsetX, 0.0) && 
basegfx::fTools::moreOrEqual(fOffsetY, 0.0))
+if (fOffsetX >= 0.0 && fOffsetY >= 0.0)
 {
 // create the EmptyPresObj fallback visualisation. The 
fallback graphic
 // is already provided in rGraphicObject in this case, use it


translations.git: Branch 'libreoffice-24-2' - source/ab source/af source/an source/ast source/bg source/ca source/cs source/da source/de source/dsb source/el source/es source/fi source/fr source/gl so

2024-03-07 Thread Christian Lohmaier (via logerrit)
 source/ab/chart2/messages.po   |   
58 
 source/ab/dbaccess/messages.po |  
208 -
 source/ab/desktop/messages.po  |   
10 
 source/ab/editeng/messages.po  |   
40 
 source/ab/extras/source/autocorr/emoji.po  |  
328 -
 source/ab/filter/messages.po   |   
 6 
 source/ab/instsetoo_native/inc_openoffice/windows/msi_languages.po |   
 6 
 source/ab/sc/messages.po   |  
184 
 source/ab/sd/messages.po   |   
40 
 source/ab/setup_native/source/mac.po   |   
 8 
 source/ab/svtools/messages.po  |  
178 
 source/ab/sw/messages.po   |   
66 
 source/af/basctl/messages.po   |   
10 
 source/af/cui/messages.po  |   
14 
 source/af/extensions/messages.po   |   
 8 
 source/af/extras/source/autocorr/emoji.po  |   
 8 
 source/af/officecfg/registry/data/org/openoffice/Office/UI.po  |   
 8 
 source/af/sc/messages.po   |   
 8 
 source/af/svx/messages.po  |   
 8 
 source/af/sw/messages.po   |   
14 
 source/an/basctl/messages.po   |   
 8 
 source/an/cui/messages.po  |   
 8 
 source/an/extras/source/autocorr/emoji.po  |   
14 
 source/an/officecfg/registry/data/org/openoffice/Office/UI.po  |   
18 
 source/an/reportdesign/messages.po |   
18 
 source/an/sc/messages.po   |   
13 
 source/an/sfx2/messages.po |   
10 
 source/an/shell/messages.po|   
 8 
 source/an/svx/messages.po  |   
 6 
 source/an/sw/messages.po   |   
18 
 source/ast/connectivity/messages.po|   
 4 
 source/ast/cui/messages.po |   
61 
 source/ast/extensions/messages.po  |   
59 
 source/ast/extras/source/autocorr/emoji.po |  
500 +-
 source/ast/filter/messages.po  |   
 6 
 source/ast/helpcontent2/source/text/scalc/00.po|   
22 
 source/ast/helpcontent2/source/text/scalc/01.po|   
12 
 source/ast/helpcontent2/source/text/scalc/04.po|   
 8 
 source/ast/helpcontent2/source/text/shared.po  |   
 8 
 source/ast/helpcontent2/source/text/shared/00.po   |   
10 
 source/ast/helpcontent2/source/text/shared/01.po   |   
32 
 source/ast/helpcontent2/source/text/shared/02.po   |   
16 
 source/ast/helpcontent2/source/text/shared/optionen.po |   
10 
 source/ast/helpcontent2/source/text/simpress/00.po |   
10 
 source/ast/helpcontent2/source/text/simpress/01.po |   
10 
 source/ast/helpcontent2/source/text/swriter/00.po  |   
10 
 source/ast/helpcontent2/source/text/swriter/01.po  |   
10 
 source/ast/helpcontent2/source/text/swriter/guide.po   |   
16 
 source/ast/officecfg/registry/data/org/openoffice/Office/UI.po |   
14 
 source/ast/reportdesign/messages.po|   
18 
 source/ast/sc/messages.po  |   
10 
 source/ast/sw/messages.po  |   
14 
 source/ast/uui/messages.po |   
 4 
 source/ast/vcl/messages.po |   
 8 
 source/bg/cui/messages.po  |   
10 
 source/bg/helpcontent2/source/text/sbasic/shared/03.po |   
14 
 source/bg/helpcontent2/source/text/scalc.po|   
 8 
 source/bg/helpcontent2/source/text/scalc/00.po |  
508 +-
 source/bg/helpcontent2/source/text/scalc/01.po

core.git: Branch 'libreoffice-24-2' - translations

2024-03-07 Thread Christian Lohmaier (via logerrit)
 translations |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 7bde6b742e81a5658ca2826e3ad65e06e49c36b4
Author: Christian Lohmaier 
AuthorDate: Thu Mar 7 11:46:54 2024 +0100
Commit: Gerrit Code Review 
CommitDate: Thu Mar 7 11:46:54 2024 +0100

Update git submodules

* Update translations from branch 'libreoffice-24-2'
  to 6ca0f042bc33814b015b346f2710218222f7cd1b
  - update translations for 24.2.2 rc1

and force-fix errors using pocheck

Change-Id: I9719c836bf763473f9a85cfced566b4cba514c13

diff --git a/translations b/translations
index e674dbc9fb3e..6ca0f042bc33 16
--- a/translations
+++ b/translations
@@ -1 +1 @@
-Subproject commit e674dbc9fb3e9fbbeefa4d4db7e5f98f0c057bbe
+Subproject commit 6ca0f042bc33814b015b346f2710218222f7cd1b


core.git: Branch 'feature/cib_contract57d' - accessibility/source vcl/source

2024-03-07 Thread Michael Stahl (via logerrit)
 accessibility/source/standard/vclxaccessibletoolbox.cxx |   11 ---
 vcl/source/window/accessibility.cxx |2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

New commits:
commit ade99ebb4d00f58339c86bcf4c952805ddce922b
Author: Michael Stahl 
AuthorDate: Tue Mar 5 19:21:21 2024 +0100
Commit: Michael Stahl 
CommitDate: Thu Mar 7 10:58:11 2024 +0100

vcl,accessibility: try to fix a crash while disposing SvxFontNameBox_Impl

This happened in a 6.3 based branch, no idea how to reproduce it.
Clearly the SvxFontNameBox_Impl is being disposed and in its base class
Window::dispose() when a call to SvxFontNameBox_Impl::CreateAccessible()
happens, which seems very suspicious; try to prevent that.

mergedlo.dll!ImplListBox::InsertEntry(long nPos, const rtl::OUString & 
rStr) Zeile 2225
unter d:\lomergedlo.dll!ComboBox::InsertEntry(const 
rtl::OUString & rStr, long nPos) Zeile 886
unter d:\lomergedlo.dll!FontNameBox::Fill(const FontList * 
pList) Zeile 447
unter d:\lo[Inlineframe] 
mergedlo.dll!SvxFontNameBox_Impl::Fill(const FontList * pList) Zeile 236
unter d:\lomergedlo.dll!lcl_GetDocFontList(const FontList * * 
ppFontList, SvxFontNameBox_Impl * pBox) Zeile 1290
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::FillList() Zeile 
1331
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::CreateAccessible() 
Zeile 3739
unter d:\lomergedlo.dll!vcl::Window::GetAccessible(bool 
bCreate) Zeile 129
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::getAccessibleChild(long i) Zeile 733
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::GetItemWindowAccessible(const VclWindowEvent & 
rVclWindowEvent) Zeile 784
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::GetChildAccessible(const VclWindowEvent & 
rVclWindowEvent) Zeile 795
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::ProcessWindowChildEvent(const 
VclWindowEvent & rVclWindowEvent) Zeile 165
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::ProcessWindowChildEvent(const VclWindowEvent & 
rVclWindowEvent) Zeile 657
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::WindowChildEventListener(VclWindowEvent & 
rEvent) Zeile 129
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::LinkStubWindowChildEventListener(void * 
instance, VclWindowEvent & data) Zeile 118
unter d:\lo[Inlineframe] mergedlo.dll!Link::Call(VclWindowEvent &) Zeile 84
unter d:\lo
mergedlo.dll!vcl::Window::CallEventListeners(VclEventId nEvent, void * pData) 
Zeile 280
unter d:\lomergedlo.dll!vcl::Window::ImplResetReallyVisible() 
Zeile 735
unter d:\lomergedlo.dll!vcl::Window::ImplResetReallyVisible() 
Zeile 747
unter d:\lomergedlo.dll!vcl::Window::Show(bool bVisible, 
ShowFlags nFlags) Zeile 2198
unter d:\lomergedlo.dll!vcl::Window::Show(bool bVisible, 
ShowFlags nFlags) Zeile 2176
unter d:\lo[Inlineframe] mergedlo.dll!vcl::Window::Hide() Zeile 
925
unter d:\lomergedlo.dll!vcl::Window::dispose() Zeile 402
unter d:\lomergedlo.dll!Edit::dispose() Zeile 258
unter d:\lomergedlo.dll!ComboBox::dispose() Zeile 132
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::dispose() Zeile 
1322
unter d:\lo[Inlineframe] 
mergedlo.dll!VclPtr::disposeAndClear() Zeile 206
unter d:\lomergedlo.dll!SvxFontNameToolBoxControl::dispose() 
Zeile 3309
unter d:\lo
mergedlo.dll!framework::ToolBarManager::RemoveControllers() Zeile 651
unter d:\lomergedlo.dll!framework::ToolBarManager::dispose() 
Zeile 468
unter d:\lomergedlo.dll!framework::ToolBarWrapper::dispose() 
Zeile 105
unter d:\lo
mergedlo.dll!framework::ToolbarLayoutManager::destroyToolbars() Zeile 666
unter d:\lo
mergedlo.dll!framework::ToolbarLayoutManager::reset() Zeile 364
unter d:\lo
mergedlo.dll!framework::LayoutManager::implts_reset(bool bAttached) Zeile 458
unter d:\lo
mergedlo.dll!framework::LayoutManager::frameAction(const 
com::sun::star::frame::FrameActionEvent & aEvent) Zeile 2757
unter d:\lomergedlo.dll!`anonymous 
namespace'::XFrameImpl::implts_sendFrameActionEvent(const 
com::sun::star::frame::FrameAction & aAction) Zeile 2952
unter d:\lomergedlo.dll!`anonymous 
namespace'::XFrameImpl::setComponent(const 
com::sun::star::uno::Reference & 
xComponentWindow, const 
com::sun::star::uno::Reference & 
xController) Zeile 1470
unter d:\lomergedlo.dll!`anonymous 
namespace'::XFrameImpl::close(unsigned char bDeliverOwnership) Zeile 1701
unter d:\lo
mergedlo.dll!framework::pattern::frame::closeIt(const 
com::sun::star::uno::Reference & xResour

core.git: Branch 'libreoffice-24-2' - distro-configs/LibreOfficeLinux.conf

2024-03-07 Thread Michael Stahl (via logerrit)
 distro-configs/LibreOfficeLinux.conf |1 -
 1 file changed, 1 deletion(-)

New commits:
commit b20f17ce082f30b0a2afd0d311f63f6b2ad8a99a
Author: Michael Stahl 
AuthorDate: Thu Feb 15 13:06:32 2024 +0100
Commit: Christian Lohmaier 
CommitDate: Thu Mar 7 11:55:16 2024 +0100

tdf#159502 remove --without-system-libxml from LibreOfficeLinux.conf

configure.ac explicitly excludes libxml from --without-system-libs but
this distro-config "helpfully" adds it explicitly, when the system
already contains a usable libxml/libxslt anyway.

Change-Id: I79d65d9ed9185277ffde8624efc152b290a6ffb3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163438
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 6f6364e572a0570fb097fec098314bffadc5b474)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163409
Reviewed-by: Christian Lohmaier 

diff --git a/distro-configs/LibreOfficeLinux.conf 
b/distro-configs/LibreOfficeLinux.conf
index db759a8cb4e5..fba02d362d31 100644
--- a/distro-configs/LibreOfficeLinux.conf
+++ b/distro-configs/LibreOfficeLinux.conf
@@ -4,7 +4,6 @@
 --without-system-poppler
 --without-system-openssl
 --without-system-libpng
---without-system-libxml
 --without-system-jpeg
 --without-system-jars
 --without-system-postgresql


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

2024-03-07 Thread Laurent Balland (via logerrit)
 sc/qa/uitest/data/tdf129701.ods|binary
 sc/qa/uitest/pasteSpecial/tdf129701-PasteUnformated.py |   70 +
 sc/source/ui/docshell/impex.cxx|   19 +++-
 3 files changed, 86 insertions(+), 3 deletions(-)

New commits:
commit 60e0ebe633b1dee8bb2a66b9d133f5303749d8d5
Author: Laurent Balland 
AuthorDate: Thu Dec 7 19:38:54 2023 +0100
Commit: Christian Lohmaier 
CommitDate: Thu Mar 7 11:59:46 2024 +0100

tdf#129701 Skip empty cell: treat last column

When pasting data as text, with "Skip empty cells" not checked, empty
cells in the last column of the source do not empty cells in
destination, because there is nothing anymore to paste and while loop
stops.
This commit adds a flag to check if the last cell of each line is empty,
and treat it if "Skip empty cells" is not checked.

Add UITest to Copy data with empty cells;
Paste Unformatted text, without "Skip empty cells";
Check data with empty cells in last column.

Change-Id: Idec823fb1c27b803f49c6d13d6c757ef0f41e437
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160951
Tested-by: Jenkins
Reviewed-by: Laurent Balland 
(cherry picked from commit e66ffda7c7f1e78dbca082ff7549ded121dc7356)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163536
Reviewed-by: Christian Lohmaier 

diff --git a/sc/qa/uitest/data/tdf129701.ods b/sc/qa/uitest/data/tdf129701.ods
new file mode 100644
index ..94407fcd566e
Binary files /dev/null and b/sc/qa/uitest/data/tdf129701.ods differ
diff --git a/sc/qa/uitest/pasteSpecial/tdf129701-PasteUnformated.py 
b/sc/qa/uitest/pasteSpecial/tdf129701-PasteUnformated.py
new file mode 100644
index ..596cd62f8bc1
--- /dev/null
+++ b/sc/qa/uitest/pasteSpecial/tdf129701-PasteUnformated.py
@@ -0,0 +1,70 @@
+# -*- 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_url_for_data_file
+from uitest.uihelper.common import get_state_as_dict
+from libreoffice.calc.document import get_cell_by_position
+
+class tdf129701(UITestCase):
+
+def test_tdf129701(self):
+
+with self.ui_test.load_file(get_url_for_data_file("tdf129701.ods")):
+xCalcDoc = self.xUITest.getTopFocusWindow()
+gridwin = xCalcDoc.getChild("grid_window")
+gridwin.executeAction("SELECT", mkPropertyValues({"RANGE": 
"D21:F25"}))
+self.xUITest.executeCommand(".uno:Copy")
+
+gridwin.executeAction("SELECT", mkPropertyValues({"CELL": "J4"}))
+with 
self.ui_test.execute_dialog_through_command(".uno:PasteUnformatted", 
close_button="ok") as xDialog:
+
+xSkipEmtyCells   = xDialog.getChild("skipemptycells")
+xSeparatedBy = xDialog.getChild("toseparatedby")
+xTab = xDialog.getChild("tab")
+xMergeDelimiters = xDialog.getChild("mergedelimiters")
+
+xSeparatedBy.executeAction("CLICK", tuple())
+if get_state_as_dict(xTab)['Selected'] == 'false':
+xTab.executeAction("CLICK", tuple())
+if get_state_as_dict(xMergeDelimiters)['Selected'] == 'true':
+xMergeDelimiters.executeAction("CLICK", tuple())
+if get_state_as_dict(xSkipEmtyCells)['Selected'] == 'true':
+xSkipEmtyCells.executeAction("CLICK", tuple())
+# Check wether Skip empty cells is unselected
+self.assertEqual('false', 
get_state_as_dict(xSkipEmtyCells)['Selected'])
+
+document = self.ui_test.get_component()
+# Without the fix in place, this test would have failed with
+# non empty cells in column 11
+
+self.assertEqual( "x1", get_cell_by_position(document, 0, 9, 
3).getString())
+self.assertEqual( ""  , get_cell_by_position(document, 0,10, 
3).getString())
+self.assertEqual( ""  , get_cell_by_position(document, 0,11, 
3).getString())
+self.assertEqual("A16", get_cell_by_position(document, 0,12, 
3).getString())
+self.assertEqual( ""  , get_cell_by_position(document, 0, 9, 
4).getString())
+self.assertEqual( "x2", get_cell_by_position(document, 0,10, 
4).getString())
+self.assertEqual( ""  , get_cell_by_position(document, 0,11, 
4).getString())
+self.assertEqual("A17", get_cell_by_position(document, 0,12, 
4).getString())
+self.assertEqual( ""  , get_cell_by_position(document, 0, 9, 
5).getString())
+self.asser

core.git: Branch 'feature/allo_contract45533' - 2 commits - accessibility/source distro-configs/LibreOfficeLinux.conf vcl/source

2024-03-07 Thread Michael Stahl (via logerrit)
 accessibility/source/standard/vclxaccessibletoolbox.cxx |   11 ---
 distro-configs/LibreOfficeLinux.conf|1 -
 vcl/source/window/accessibility.cxx |2 +-
 3 files changed, 9 insertions(+), 5 deletions(-)

New commits:
commit 33d25f42f0308f1fa8a8212762cd6abc06b33d42
Author: Michael Stahl 
AuthorDate: Thu Feb 15 13:06:32 2024 +0100
Commit: Michael Stahl 
CommitDate: Thu Mar 7 11:58:26 2024 +0100

tdf#159502 remove --without-system-libxml from LibreOfficeLinux.conf

configure.ac explicitly excludes libxml from --without-system-libs but
this distro-config "helpfully" adds it explicitly, when the system
already contains a usable libxml/libxslt anyway.

Change-Id: I79d65d9ed9185277ffde8624efc152b290a6ffb3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163438
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 6f6364e572a0570fb097fec098314bffadc5b474)
(cherry picked from commit 5ffb9f751f782953b382f8be4b6e4649049f7ce0)

diff --git a/distro-configs/LibreOfficeLinux.conf 
b/distro-configs/LibreOfficeLinux.conf
index db759a8cb4e5..fba02d362d31 100644
--- a/distro-configs/LibreOfficeLinux.conf
+++ b/distro-configs/LibreOfficeLinux.conf
@@ -4,7 +4,6 @@
 --without-system-poppler
 --without-system-openssl
 --without-system-libpng
---without-system-libxml
 --without-system-jpeg
 --without-system-jars
 --without-system-postgresql
commit baed91da1f9fa0ef91503df8eb68d8fbb1b0e976
Author: Michael Stahl 
AuthorDate: Tue Mar 5 19:21:21 2024 +0100
Commit: Michael Stahl 
CommitDate: Thu Mar 7 11:53:08 2024 +0100

vcl,accessibility: try to fix a crash while disposing SvxFontNameBox_Impl

This happened in a 6.3 based branch, no idea how to reproduce it.
Clearly the SvxFontNameBox_Impl is being disposed and in its base class
Window::dispose() when a call to SvxFontNameBox_Impl::CreateAccessible()
happens, which seems very suspicious; try to prevent that.

mergedlo.dll!ImplListBox::InsertEntry(long nPos, const rtl::OUString & 
rStr) Zeile 2225
unter d:\lomergedlo.dll!ComboBox::InsertEntry(const 
rtl::OUString & rStr, long nPos) Zeile 886
unter d:\lomergedlo.dll!FontNameBox::Fill(const FontList * 
pList) Zeile 447
unter d:\lo[Inlineframe] 
mergedlo.dll!SvxFontNameBox_Impl::Fill(const FontList * pList) Zeile 236
unter d:\lomergedlo.dll!lcl_GetDocFontList(const FontList * * 
ppFontList, SvxFontNameBox_Impl * pBox) Zeile 1290
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::FillList() Zeile 
1331
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::CreateAccessible() 
Zeile 3739
unter d:\lomergedlo.dll!vcl::Window::GetAccessible(bool 
bCreate) Zeile 129
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::getAccessibleChild(long i) Zeile 733
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::GetItemWindowAccessible(const VclWindowEvent & 
rVclWindowEvent) Zeile 784
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::GetChildAccessible(const VclWindowEvent & 
rVclWindowEvent) Zeile 795
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::ProcessWindowChildEvent(const 
VclWindowEvent & rVclWindowEvent) Zeile 165
unter d:\lo
acclo.dll!VCLXAccessibleToolBox::ProcessWindowChildEvent(const VclWindowEvent & 
rVclWindowEvent) Zeile 657
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::WindowChildEventListener(VclWindowEvent & 
rEvent) Zeile 129
unter d:\lo
mergedlo.dll!VCLXAccessibleComponent::LinkStubWindowChildEventListener(void * 
instance, VclWindowEvent & data) Zeile 118
unter d:\lo[Inlineframe] mergedlo.dll!Link::Call(VclWindowEvent &) Zeile 84
unter d:\lo
mergedlo.dll!vcl::Window::CallEventListeners(VclEventId nEvent, void * pData) 
Zeile 280
unter d:\lomergedlo.dll!vcl::Window::ImplResetReallyVisible() 
Zeile 735
unter d:\lomergedlo.dll!vcl::Window::ImplResetReallyVisible() 
Zeile 747
unter d:\lomergedlo.dll!vcl::Window::Show(bool bVisible, 
ShowFlags nFlags) Zeile 2198
unter d:\lomergedlo.dll!vcl::Window::Show(bool bVisible, 
ShowFlags nFlags) Zeile 2176
unter d:\lo[Inlineframe] mergedlo.dll!vcl::Window::Hide() Zeile 
925
unter d:\lomergedlo.dll!vcl::Window::dispose() Zeile 402
unter d:\lomergedlo.dll!Edit::dispose() Zeile 258
unter d:\lomergedlo.dll!ComboBox::dispose() Zeile 132
unter d:\lomergedlo.dll!SvxFontNameBox_Impl::dispose() Zeile 
1322
unter d:\lo[Inlineframe] 
mergedlo.dll!VclPtr::disposeAndClear() Zeile 206
unter d:\lomergedlo.dll!SvxFontNameToolBoxControl::dispose() 
Zeile 3309
unter d:\lo
mergedlo.dll!framework::ToolBarManager::RemoveControlle

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

2024-03-07 Thread Michael Stahl (via logerrit)
 sw/qa/extras/htmlexport/data/char_border_and_font_color.fodt |   14 
 sw/qa/extras/htmlexport/htmlexport.cxx   |   21 
 sw/qa/uitest/writer_tests7/tdf150443.py  |4 
 sw/source/filter/html/css1atr.cxx|6 
 sw/source/filter/html/htmlatr.cxx|  409 ---
 5 files changed, 226 insertions(+), 228 deletions(-)

New commits:
commit b84f10d5eadeecc668e29159c0485376466b7f54
Author: Michael Stahl 
AuthorDate: Mon Mar 4 12:47:15 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 12:02:35 2024 +0100

sw: UITest_writer_tests8 test_tdf150443 more tolerant

This fails on Fedora 39, also in the libreoffice-24-2 branch, with:
self.assertEqual(get_state_as_dict(xWriterEdit)["CurrentPage"], "4")
AssertionError: '5' != '4'

Presumably a font substitution changing metrics problem, as "NexusSansOT"
is not found.

It looks like the exact page doesn't matter for the test.

Change-Id: I62eadb8321352ea47a0f8f83ab91fd50ff01f7e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164353
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 0b21e2a404c114529376dc50764dc0286dafc745)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164364
Reviewed-by: Xisco Fauli 

diff --git a/sw/qa/uitest/writer_tests7/tdf150443.py 
b/sw/qa/uitest/writer_tests7/tdf150443.py
index fb39bd8a0375..91937551a4b3 100644
--- a/sw/qa/uitest/writer_tests7/tdf150443.py
+++ b/sw/qa/uitest/writer_tests7/tdf150443.py
@@ -26,7 +26,9 @@ class tdf150443(UITestCase):
 xsearch = xDialog.getChild("search")
 xsearch.executeAction("CLICK", tuple())  #first search
 xToolkit.processEventsToIdle()
-
self.assertEqual(get_state_as_dict(xWriterEdit)["CurrentPage"], "4")
+page = get_state_as_dict(xWriterEdit)["CurrentPage"]
+# page may depend on font subsitution, just check it moved
+self.assertTrue(page == "4" or page == "5")
 
 # 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:
commit 6ebe0eceb1ae4a3e544c733be37e5f02c5f46e80
Author: Mike Kaganski 
AuthorDate: Mon Mar 4 12:20:13 2024 +0600
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 12:02:29 2024 +0100

tdf160017: make sure to emit the closing tags in correct order

This reimplements how the starts and ends of attributes are stored in
HTMLEndPosLst. Instead of a plain list, now it is a sorted map, with
positions as keys, and a vector of HTMLStartEndPos* as values.

In commit b94b1fe936ddc4a9b86fbeb9c9c6ab0fca52f0bc (CharBrd 9.1: HTML
filters, 2013-09-08), the character borders attributes started to be
set in a special order, in front of the position's other attributes,
to allow merging them. But that created a problem of knowing in which
order to close respective tags.

The change here sorts the closing tags for the current node only when
writing them. At this point, it is possible to consider the opening
positions correctly.

Change-Id: I466ffa1c0eb28874ded003035e0cf772e31585b3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164325
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
Signed-off-by: Xisco Fauli 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164357

diff --git a/sw/qa/extras/htmlexport/data/char_border_and_font_color.fodt 
b/sw/qa/extras/htmlexport/data/char_border_and_font_color.fodt
new file mode 100644
index ..bda2ec63133c
--- /dev/null
+++ b/sw/qa/extras/htmlexport/data/char_border_and_font_color.fodt
@@ -0,0 +1,14 @@
+
+
+
+ 
+  
+   
+  
+ 
+ 
+  
+   foo
+  
+ 
+
\ No newline at end of file
diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx 
b/sw/qa/extras/htmlexport/htmlexport.cxx
index 1bd883be111f..de2e9da4c678 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -3032,6 +3032,27 @@ CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, 
testReqIF_NoBrClearForImageWrap)
 0);
 }
 
+CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testReqIF_Tdf160017_spanClosingOrder)
+{
+// Given a document with a paragraph having explicit font color and 
character border properties:
+createSwDoc("char_border_and_font_color.fodt");
+// When exporting to reqif:
+ExportToReqif();
+// Without the fix, this would fail, because there was an extra closing 

+WrapReqifFromTempFile();
+}
+
+CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testHTML_Tdf160017_spanClosingOrder)
+{
+// Given a document with a paragraph having explicit font color and 
character border properties:
+createSwDoc("char_border_and_font_color.fodt");
+// When exporting to HTML:
+ExportToHTML(

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

2024-03-07 Thread Miklos Vajna (via logerrit)
 sw/qa/extras/ww8export/data/listWithLgl.doc |binary
 sw/qa/extras/ww8export/ww8export4.cxx   |   24 
 sw/source/filter/ww8/wrtw8num.cxx   |9 -
 sw/source/filter/ww8/ww8par3.cxx|   11 +++
 4 files changed, 43 insertions(+), 1 deletion(-)

New commits:
commit 58b5f3399e1c4ce56180cb49c5d228ca92ccc8d3
Author: Miklos Vajna 
AuthorDate: Tue Feb 27 08:29:31 2024 +0100
Commit: Christian Lohmaier 
CommitDate: Thu Mar 7 12:07:26 2024 +0100

Related: tdf#150408 DOC filter: handle legal numbering

The bugdoc's 2nd para started with 'Sect I.01', while Word rendered this
as 'Sect 1.01'.

The reason for this difference is that there is an "is legal" boolean
property on the numbering that we ignored from [MS-DOC] during
import/export.

Fix the problem by WW8ListManager::ReadLVL() and
WW8AttributeOutput::NumberingLevel() to handle this, building on top of
the existing DOCX work.

RTF still needs doing.

Change-Id: I57ec402c1dd829251afa639ddfa7fc6620da1125
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164000
Reviewed-by: Miklos Vajna 
Tested-by: Jenkins
(cherry picked from commit a73b3994fb6a2cc10b2d65cbaad201762610cecc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163973
Reviewed-by: Christian Lohmaier 

diff --git a/sw/qa/extras/ww8export/data/listWithLgl.doc 
b/sw/qa/extras/ww8export/data/listWithLgl.doc
new file mode 100644
index ..94de2967febc
Binary files /dev/null and b/sw/qa/extras/ww8export/data/listWithLgl.doc differ
diff --git a/sw/qa/extras/ww8export/ww8export4.cxx 
b/sw/qa/extras/ww8export/ww8export4.cxx
index d47c934d9dd6..d31bf17a31f6 100644
--- a/sw/qa/extras/ww8export/ww8export4.cxx
+++ b/sw/qa/extras/ww8export/ww8export4.cxx
@@ -228,6 +228,30 @@ DECLARE_WW8EXPORT_TEST(testInlinePageBreakFirstLine, 
"inlinePageBreakFirstLine.d
 CPPUNIT_ASSERT(IsFirstLine(aTextNodes[2]));
 }
 
+CPPUNIT_TEST_FIXTURE(Test, testLegalNumbering)
+{
+auto verify = [this]() {
+// Second level's numbering should use Arabic numbers for first level 
reference
+auto xPara = getParagraph(1);
+CPPUNIT_ASSERT_EQUAL(OUString("CH I"), getProperty(xPara, 
"ListLabelString"));
+xPara = getParagraph(2);
+// Without the accompanying fix in place, this test would have failed 
with:
+// - Expected: Sect 1.01
+// - Actual  : Sect I.01
+// i.e. fLegal was ignored on import/export.
+CPPUNIT_ASSERT_EQUAL(OUString("Sect 1.01"), 
getProperty(xPara, "ListLabelString"));
+xPara = getParagraph(3);
+CPPUNIT_ASSERT_EQUAL(OUString("CH II"), getProperty(xPara, 
"ListLabelString"));
+xPara = getParagraph(4);
+CPPUNIT_ASSERT_EQUAL(OUString("Sect 2.01"), 
getProperty(xPara, "ListLabelString"));
+};
+
+createSwDoc("listWithLgl.doc");
+verify();
+saveAndReload(mpFilter);
+verify();
+}
+
 DECLARE_WW8EXPORT_TEST(testNonInlinePageBreakFirstLine, 
"nonInlinePageBreakFirstLine.doc")
 {
 SwDoc* pDoc = getSwDoc();
diff --git a/sw/source/filter/ww8/wrtw8num.cxx 
b/sw/source/filter/ww8/wrtw8num.cxx
index 8d59434db652..681961a3770c 100644
--- a/sw/source/filter/ww8/wrtw8num.cxx
+++ b/sw/source/filter/ww8/wrtw8num.cxx
@@ -279,7 +279,7 @@ void WW8AttributeOutput::NumberingLevel( sal_uInt8 
/*nLevel*/,
 sal_Int16 nListTabPos,
 const OUString &rNumberingString,
 const SvxBrushItem* pBrush, //For i120928,to transfer graphic of bullet
-bool /*isLegal*/
+bool isLegal
 )
 {
 // Start value
@@ -303,6 +303,13 @@ void WW8AttributeOutput::NumberingLevel( sal_uInt8 
/*nLevel*/,
 nAlign = 0;
 break;
 }
+
+if (isLegal)
+{
+// 3rd bit.
+nAlign |= 0x04;
+}
+
 m_rWW8Export.m_pTableStrm->WriteUChar( nAlign );
 
 // Write the rgbxchNums[9], positions of placeholders for paragraph
diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx
index d0a294b14450..41b203f92496 100644
--- a/sw/source/filter/ww8/ww8par3.cxx
+++ b/sw/source/filter/ww8/ww8par3.cxx
@@ -368,6 +368,8 @@ struct WW8LVL   // only THE entries, WE need!
 short   nDxaLeft1;  // first line indent
 
 sal_uInt8   nNFC;   // number format code
+/// Legal numbering: whether this level overrides the nfc of all inherited 
level numbers.
+bool fLegal;
 // Offset of fieldcodes in Num-X-String
 sal_uInt8   aOfsNumsXCH[WW8ListManager::nMaxLevel];
 sal_uInt8   nLenGrpprlChpx; // length, in bytes, of the LVL's grpprlChpx
@@ -662,7 +664,15 @@ bool WW8ListManager::ReadLVL(SwNumFormat& rNumFormat, 
std::unique_ptr(aLVL.nStartAt));
 rNumFormat.SetNumberingType( nType );
+rNumFormat.SetIsLegal(aLVL.fLegal);
 rNumFormat.SetNumAdjust( eAdj );
 
 if( style::NumberingType::CHAR_SPECIAL == nType )


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

2024-03-07 Thread Rafael Lima (via logerrit)
 sc/inc/SolverSettings.hxx  |  117 -
 sc/qa/unit/data/ods/tdf158735.ods  |binary
 sc/qa/unit/ucalc_solver.cxx|   29 
 sc/source/core/data/SolverSettings.cxx |  220 +
 4 files changed, 356 insertions(+), 10 deletions(-)

New commits:
commit fa8351c50bd8f14830a461c09805e43c6fdb065d
Author: Rafael Lima 
AuthorDate: Mon Mar 4 19:01:40 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 12:11:37 2024 +0100

tdf#158735 Save solver settings for DEPS and SCO as well

When bug tdf#38948 was originally fixed, the solvers DEPS and SCO were not 
considered. This caused a regression, because setting engine options for these 
solvers made them never be saved, even in its own sheet.

This patch fixes that by incorporating the engine options for DEPS and SCO.

Change-Id: I93af712f91da2f7b1ac57ed74f6c2c2d7d411bba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164376
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 
(cherry picked from commit 04d884cc99eb66679fb254129b54488bd40e5abf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164385
Reviewed-by: Xisco Fauli 

diff --git a/sc/inc/SolverSettings.hxx b/sc/inc/SolverSettings.hxx
index ec1ef994a7b8..985e8d30f796 100644
--- a/sc/inc/SolverSettings.hxx
+++ b/sc/inc/SolverSettings.hxx
@@ -39,11 +39,34 @@ enum SolverParameter
 SP_LO_ENGINE, // Engine name used in LO
 SP_MS_ENGINE, // Engine ID used in MSO
 SP_INTEGER, // Assume all variables are integer (0: no, 1: yes)
+// LpSolve, CoinMP and SwarmSolver
 SP_NON_NEGATIVE, // Assume non negativity (1: yes, 2: no)
 SP_EPSILON_LEVEL, // Epsilon level
 SP_LIMIT_BBDEPTH, // Branch and bound depth
 SP_TIMEOUT, // Time limit to return a solution
-SP_ALGORITHM // Algorithm used by the SwarmSolver (1, 2 or 3)
+SP_ALGORITHM, // Algorithm used by the SwarmSolver (1, 2 or 3)
+// Engine options common for DEPS and SCO
+SP_SWARM_SIZE, // Size of Swarm
+SP_LEARNING_CYCLES, // Learning Cycles
+SP_GUESS_VARIABLE_RANGE, // Variable Bounds Guessing
+SP_VARIABLE_RANGE_THRESHOLD, // Variable Bounds Threshold (when guessing)
+SP_ACR_COMPARATOR, // Use ACR Comparator (instead of BCH)
+SP_RND_STARTING_POINT, // Use Random starting point
+SP_STRONGER_PRNG, // Use a stronger random generator (slower)
+SP_STAGNATION_LIMIT, // Stagnation Limit
+SP_STAGNATION_TOLERANCE, // Stagnation Tolerance
+SP_ENHANCED_STATUS, // Show enhanced solver status
+// DEPS Options
+SP_AGENT_SWITCH_RATE, // Agent Switch Rate (DE Probability)
+SP_SCALING_MIN, // DE: Min Scaling Factor (0-1.2)
+SP_SCALING_MAX, // DE: Max Scaling Factor (0-1.2)
+SP_CROSSOVER_PROB, // DE: Crossover Probability (0-1)
+SP_COGNITIVE_CONST, // Cognitive Constant
+SP_SOCIAL_CONST, // Social Constant
+SP_CONSTRICTION_COEFF, // PS: Constriction Coefficient
+SP_MUTATION_PROB, // Mutation Probability (0-0.005)
+// SCO Options
+SP_LIBRARY_SIZE, // Size of library
 };
 
 // Starts at 1 to maintain MS compatibility
@@ -123,6 +146,28 @@ private:
 OUString m_sLimitBBDepth;
 OUString m_sTimeout;
 OUString m_sAlgorithm;
+// DEPS and SCO
+OUString m_sSwarmSize;
+OUString m_sLearningCycles;
+OUString m_sGuessVariableRange;
+OUString m_sVariableRangeThreshold;
+OUString m_sUseACRComparator;
+OUString m_sUseRandomStartingPoint;
+OUString m_sUseStrongerPRNG;
+OUString m_sStagnationLimit;
+OUString m_sTolerance;
+OUString m_sEnhancedSolverStatus;
+// DEPS only
+OUString m_sAgentSwitchRate;
+OUString m_sScalingFactorMin;
+OUString m_sScalingFactorMax;
+OUString m_sCrossoverProbability;
+OUString m_sCognitiveConstant;
+OUString m_sSocialConstant;
+OUString m_sConstrictionCoeff;
+OUString m_sMutationProbability;
+OUString m_sLibrarySize;
+
 css::uno::Sequence m_aEngineOptions;
 
 std::vector m_aConstraints;
@@ -131,7 +176,9 @@ private:
 
 // Used to create or read a single solver parameter based on its named 
range
 bool ReadParamValue(SolverParameter eParam, OUString& rValue, bool 
bRemoveQuotes = false);
+bool ReadDoubleParamValue(SolverParameter eParam, OUString& rValue);
 void WriteParamValue(SolverParameter eParam, OUString sValue, bool bQuoted 
= false);
+void WriteDoubleParamValue(SolverParameter eParam, std::u16string_view 
sValue);
 
 // Creates or reads all constraints stored in named ranges
 void ReadConstraints();
@@ -149,19 +196,46 @@ private:
 
 // Maps solver parameters to named ranges
 std::map m_mNamedRanges
-= { { SP_OBJ_CELL, "solver_opt" },  { SP_OBJ_TYPE, "solver_typ" },
-{ SP_OBJ_VAL, "solver_val" },   { SP_VAR_CELLS, "solver_adj" },
-{ SP_CONSTR_COUNT, "solver_num" },  { SP_LO_ENGINE, 
"solver_lo_eng" },
-{ SP_MS_ENGINE, "solver_eng" }, 

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

2024-03-07 Thread Tomaž Vajngerl (via logerrit)
 sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx |   12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

New commits:
commit 2bf9246a0388c1d3002f4fa90ba759d7d119cdbf
Author: Tomaž Vajngerl 
AuthorDate: Thu Feb 29 23:51:26 2024 +0900
Commit: Christian Lohmaier 
CommitDate: Thu Mar 7 12:12:19 2024 +0100

tdf#83720 Pivot Table: Data field should always at last place

In the pivot table dialog we should always put the "Data" field to
the last place or the cell formats won't be shown correct in the
pivot table.

Change-Id: If4befe4fff1e6f04d9b709615a1955e3b5f4b4cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164161
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 
(cherry picked from commit 78065e3798439dd790d1be5ac5c219477285c888)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164126
Reviewed-by: Christian Lohmaier 

diff --git a/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx 
b/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx
index 45af29a4f1a4..672de9559c4e 100644
--- a/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx
+++ b/sc/source/ui/dbgui/PivotLayoutTreeListBase.cxx
@@ -67,6 +67,9 @@ void 
ScPivotLayoutTreeListBase::PushEntriesToPivotFieldVector(ScPivotFieldVector
 std::unique_ptr xEachEntry(mxControl->make_iterator());
 if (!mxControl->get_iter_first(*xEachEntry))
 return;
+
+std::optional oDataField;
+
 do
 {
 ScItemValue* pItemValue = 
weld::fromId(mxControl->get_id(*xEachEntry));
@@ -78,8 +81,15 @@ void 
ScPivotLayoutTreeListBase::PushEntriesToPivotFieldVector(ScPivotFieldVector
 aField.nFuncMask = rFunctionData.mnFuncMask;
 aField.mnDupCount= rFunctionData.mnDupCount;
 aField.maFieldRef= rFunctionData.maFieldRef;
-rVector.push_back(aField);
+
+if (aField.nCol == PIVOT_DATA_FIELD)
+oDataField = aField;
+else
+rVector.push_back(aField);
 } while (mxControl->iter_next(*xEachEntry));
+
+if (oDataField)
+rVector.push_back(*oDataField);
 }
 
 void ScPivotLayoutTreeListBase::InsertEntryForSourceTarget(weld::TreeView& 
/*pSource*/, int /*nTarget*/)


core.git: Branch 'libreoffice-24-2' - vcl/unx

2024-03-07 Thread Caolán McNamara (via logerrit)
 vcl/unx/gtk3/salnativewidgets-gtk.cxx |   20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

New commits:
commit 1db98f80722235140eae61f8fd966880a6c31fbe
Author: Caolán McNamara 
AuthorDate: Wed Mar 6 11:38:29 2024 +
Commit: Christian Lohmaier 
CommitDate: Thu Mar 7 12:14:22 2024 +0100

Breeze scrollbars clipped, allocated space not wide/tall enough

https: //github.com/flathub/org.libreoffice.LibreOffice/issues/247
Change-Id: If04d4dd8b9608fc7c3a10bf36bad287cf183c2d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164389
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier 

diff --git a/vcl/unx/gtk3/salnativewidgets-gtk.cxx 
b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
index bfdeed423846..391baed22291 100644
--- a/vcl/unx/gtk3/salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/salnativewidgets-gtk.cxx
@@ -355,7 +355,6 @@ static GtkWidget* gCacheWindow;
 static GtkWidget* gDumbContainer;
 #if GTK_CHECK_VERSION(4, 0, 0)
 static GtkWidget* gVScrollbar;
-static GtkWidget* gHScrollbar;
 static GtkWidget* gTextView;
 #else
 static GtkWidget* gComboBox;
@@ -363,6 +362,7 @@ static GtkWidget* gListBox;
 static GtkWidget* gSpinBox;
 static GtkWidget* gTreeViewWidget;
 #endif
+static GtkWidget* gHScrollbar;
 static GtkWidget* gEntryBox;
 
 namespace
@@ -2625,10 +2625,11 @@ bool GtkSalGraphics::updateSettings(AllSettings& 
rSettings)
 // set scrollbar settings
 gint min_slider_length = 21;
 
+GtkRequisition natural_horz_scroll_size;
+gtk_widget_get_preferred_size(gHScrollbar, nullptr, 
&natural_horz_scroll_size);
+
 #if GTK_CHECK_VERSION(4, 0, 0)
-GtkRequisition natural_size;
-gtk_widget_get_preferred_size(gHScrollbar, nullptr, &natural_size);
-aStyleSet.SetScrollBarSize(natural_size.height);
+aStyleSet.SetScrollBarSize(natural_horz_scroll_size.height);
 #else
 // Grab some button style attributes
 Size aSize;
@@ -2646,6 +2647,10 @@ bool GtkSalGraphics::updateSettings(AllSettings& 
rSettings)
 if (has_forward || has_backward || has_forward2 || has_backward2)
 QuerySize(mpHScrollbarButtonStyle, aSize);
 
+// Recent breeze (Mar 2024) has 17 vs 10, while Adwaita still reports 14 
vs 14.
+if (natural_horz_scroll_size.height > aSize.Height())
+aSize.setHeight(natural_horz_scroll_size.height);
+
 aStyleSet.SetScrollBarSize(aSize.Height());
 
 gtk_style_context_get(mpVScrollbarSliderStyle, 
gtk_style_context_get_state(mpVScrollbarSliderStyle),
@@ -2932,15 +2937,16 @@ GtkSalGraphics::GtkSalGraphics( GtkSalFrame *pFrame, 
GtkWidget *pWindow )
 mpToolButtonStyle = gtk_widget_get_style_context(GTK_WIDGET(pButton));
 #endif
 
+gHScrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
+gtk_fixed_put(GTK_FIXED(gDumbContainer), gHScrollbar, 0, 0);
+gtk_widget_show(gHScrollbar);
+
 #if GTK_CHECK_VERSION(4, 0, 0)
 gVScrollbar = gtk_scrollbar_new(GTK_ORIENTATION_VERTICAL, nullptr);
 gtk_fixed_put(GTK_FIXED(gDumbContainer), gVScrollbar, 0, 0);
 gtk_widget_show(gVScrollbar);
 mpVScrollbarStyle = gtk_widget_get_style_context(gVScrollbar);
 
-gHScrollbar = gtk_scrollbar_new(GTK_ORIENTATION_HORIZONTAL, nullptr);
-gtk_fixed_put(GTK_FIXED(gDumbContainer), gHScrollbar, 0, 0);
-gtk_widget_show(gHScrollbar);
 mpHScrollbarStyle = gtk_widget_get_style_context(gHScrollbar);
 
 gTextView = gtk_text_view_new();


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

2024-03-07 Thread Julien Nabet (via logerrit)
 sw/source/uibase/uiview/view2.cxx |   13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

New commits:
commit c899c2e463c61d056e68efd180e0a596c7569a1e
Author: Julien Nabet 
AuthorDate: Fri Mar 1 12:14:52 2024 +0100
Commit: Xisco Fauli 
CommitDate: Thu Mar 7 12:17:59 2024 +0100

tdf#159955: fix custom page number

Change-Id: I1a56a4ba266dfb3c21e3b77263ecaa44b4e6dad5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164210
Tested-by: Jenkins
Reviewed-by: Julien Nabet 
(cherry picked from commit d440dcfcaf688544a7a6d8bc478048159e5200f0)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164197
Reviewed-by: Xisco Fauli 

diff --git a/sw/source/uibase/uiview/view2.cxx 
b/sw/source/uibase/uiview/view2.cxx
index cc6faf78a3c5..f7a10a49f747 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -286,14 +286,21 @@ OUString SwView::GetPageStr(sal_uInt16 nPhyNum, 
sal_uInt16 nVirtNum, const OUStr
 ? SwResId(STR_PAGE_COUNT_PRINTED)
 : (extra.isEmpty() ? SwResId(STR_PAGE_COUNT) : 
SwResId(STR_PAGE_COUNT_CUSTOM)));
 aStr = aStr.replaceFirst("%1", OUString::number(nPhyNum));
-aStr = aStr.replaceFirst("%2", OUString::number(nPageCount));
 if (nPageCount != nPrintedPageCount)
 {
+aStr = aStr.replaceFirst("%2", OUString::number(nPageCount));
 aStr = aStr.replaceFirst("%3", OUString::number(nPrintedPhyNum));
 aStr = aStr.replaceFirst("%4", OUString::number(nPrintedPageCount));
 }
-else
-aStr = aStr.replaceFirst("%3", extra);
+else {
+if (extra.isEmpty())
+aStr = aStr.replaceFirst("%2", OUString::number(nPageCount));
+else
+{
+aStr = aStr.replaceFirst("%2", extra);
+aStr = aStr.replaceFirst("%3", OUString::number(nPageCount));
+}
+}
 
 return aStr;
 }


dictionaries.git: Changes to 'libreoffice-24-2-2'

2024-03-07 Thread Christian Lohmaier (via logerrit)
New branch 'libreoffice-24-2-2' available with the following commits:
commit 49b8894bda09d70b01ad99fa856d321cd99efbed
Author: Christian Lohmaier 
Date:   Thu Mar 7 12:25:00 2024 +0100

Branch libreoffice-24-2-2

This is 'libreoffice-24-2-2' - the stable branch for the 24.2.2 release.
Only very safe changes, reviewed by three people are allowed.

If you want to commit more complicated fix for the next 24.2.x release,
please use the 'libreoffice-24-2' branch.

If you want to build something cool, unstable, and risky, use master.

Change-Id: I1244f07f0469cfa17b663c0fb4f4c54ef46d69c8



help.git: Changes to 'libreoffice-24-2-2'

2024-03-07 Thread Christian Lohmaier (via logerrit)
New branch 'libreoffice-24-2-2' available with the following commits:
commit 2a594220f7cf21d1c3a5ac799c260637c44d4093
Author: Christian Lohmaier 
Date:   Thu Mar 7 12:25:00 2024 +0100

Branch libreoffice-24-2-2

This is 'libreoffice-24-2-2' - the stable branch for the 24.2.2 release.
Only very safe changes, reviewed by three people are allowed.

If you want to commit more complicated fix for the next 24.2.x release,
please use the 'libreoffice-24-2' branch.

If you want to build something cool, unstable, and risky, use master.

Change-Id: Ie4bbdb7f552280148f49caab090e8f1a28ee9089



translations.git: Changes to 'libreoffice-24-2-2'

2024-03-07 Thread Christian Lohmaier (via logerrit)
New branch 'libreoffice-24-2-2' available with the following commits:
commit b4dbecc8e5af303ca606c986d33602450d6e6975
Author: Christian Lohmaier 
Date:   Thu Mar 7 12:25:00 2024 +0100

Branch libreoffice-24-2-2

This is 'libreoffice-24-2-2' - the stable branch for the 24.2.2 release.
Only very safe changes, reviewed by three people are allowed.

If you want to commit more complicated fix for the next 24.2.x release,
please use the 'libreoffice-24-2' branch.

If you want to build something cool, unstable, and risky, use master.

Change-Id: I13b8bcad4978e33e8c2fa5403d340bf4c7fbb932



core.git: Changes to 'libreoffice-24-2-2'

2024-03-07 Thread Christian Lohmaier (via logerrit)
New branch 'libreoffice-24-2-2' available with the following commits:
commit b8424dde35e5169c1c7ac1ec59df9d63d232572c
Author: Christian Lohmaier 
Date:   Thu Mar 7 12:25:29 2024 +0100

Branch libreoffice-24-2-2

This is 'libreoffice-24-2-2' - the stable branch for the 24.2.2 release.
Only very safe changes, reviewed by three people are allowed.

If you want to commit more complicated fix for the next 24.2.x release,
please use the 'libreoffice-24-2' branch.

If you want to build something cool, unstable, and risky, use master.



core.git: Branch 'libreoffice-24-2' - configure.ac

2024-03-07 Thread Christian Lohmaier (via logerrit)
 configure.ac |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit b0c2f78a9d398b92e24a0b9f91c7773ecd743d6f
Author: Christian Lohmaier 
AuthorDate: Thu Mar 7 12:26:19 2024 +0100
Commit: Christian Lohmaier 
CommitDate: Thu Mar 7 12:26:19 2024 +0100

bump product version to 24.2.3.0.0+

Change-Id: I984e5fcd6f5367fb284912d9d6bb3c8f53125c43

diff --git a/configure.ac b/configure.ac
index 650fe6896be7..901392b32fcf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([LibreOffice],[24.2.2.0.0+],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[24.2.3.0.0+],[],[],[http://documentfoundation.org/])
 
 dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just 
fine if it is installed
 dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails 
hard


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 - embeddedobj/source sfx2/source

2024-03-07 Thread Sarper Akdemir (via logerrit)
 embeddedobj/source/commonembedding/embedobj.cxx  |4 +
 embeddedobj/source/commonembedding/specialobject.cxx |5 ++
 embeddedobj/source/msole/oleembed.cxx|5 +-
 sfx2/source/appl/appserv.cxx |   42 +++
 sfx2/source/appl/linkmgr2.cxx|3 -
 5 files changed, 57 insertions(+), 2 deletions(-)

New commits:
commit a321084efea4d3ecb8dc2f5a120266ec53647a63
Author: Sarper Akdemir 
AuthorDate: Thu Feb 29 13:38:00 2024 +0300
Commit: Sarper Akdemir 
CommitDate: Thu Mar 7 12:30:23 2024 +0100

do not assume there are no extra seperators at the end for dde links

Change-Id: Idee81b9a8a38aed2375092d2394010063c131fe2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164368
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir 

diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx
index a20501a1bad6..01a88afd355f 100644
--- a/sfx2/source/appl/linkmgr2.cxx
+++ b/sfx2/source/appl/linkmgr2.cxx
@@ -259,13 +259,14 @@ bool LinkManager::GetDisplayNames( const SvBaseLink * 
pLink,
 sal_Int32 nTmp = 0;
 OUString sServer( sLNm.getToken( 0, cTokenSeparator, nTmp 
) );
 OUString sTopic( sLNm.getToken( 0, cTokenSeparator, nTmp ) 
);
+OUString sLinkStr( sLNm.getToken(0, cTokenSeparator, nTmp) 
);
 
 if( pType )
 *pType = sServer;
 if( pFile )
 *pFile = sTopic;
 if( pLinkStr )
-*pLinkStr = nTmp != -1 ? sLNm.copy(nTmp) : OUString();
+*pLinkStr = sLinkStr;
 bRet = true;
 }
 break;
commit cb685f603e15d73fc518b8d4e896f96f21bab4ea
Author: Sarper Akdemir 
AuthorDate: Mon Jan 29 18:40:26 2024 +0300
Commit: Sarper Akdemir 
CommitDate: Thu Mar 7 12:30:15 2024 +0100

tdf#158375: make it possible to hot disable embedded objects

Do not require a reload of the current document for the
embedded objects to be disabled.

Also make sure the existing active embedded objects are
disabled when DisableActiveContent is enabled via options
dialog.

Change-Id: I5a8f302af0cac64575c3e5ec6dbe71ec50a15442
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164367
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir 

diff --git a/embeddedobj/source/commonembedding/embedobj.cxx 
b/embeddedobj/source/commonembedding/embedobj.cxx
index 0b3843852e58..61e5d1f39ef4 100644
--- a/embeddedobj/source/commonembedding/embedobj.cxx
+++ b/embeddedobj/source/commonembedding/embedobj.cxx
@@ -40,6 +40,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 
@@ -475,6 +476,9 @@ uno::Sequence< sal_Int32 > const & 
OCommonEmbeddedObject::GetIntermediateStatesS
 
 void SAL_CALL OCommonEmbeddedObject::changeState( sal_Int32 nNewState )
 {
+if ( 
officecfg::Office::Common::Security::Scripting::DisableActiveContent::get()
+&& nNewState != embed::EmbedStates::LOADED )
+throw embed::UnreachableStateException();
 ::osl::ResettableMutexGuard aGuard( m_aMutex );
 if ( m_bDisposed )
 throw lang::DisposedException(); // TODO
diff --git a/embeddedobj/source/commonembedding/specialobject.cxx 
b/embeddedobj/source/commonembedding/specialobject.cxx
index 3dc1eb7e47ef..a2f282ed1aae 100644
--- a/embeddedobj/source/commonembedding/specialobject.cxx
+++ b/embeddedobj/source/commonembedding/specialobject.cxx
@@ -29,6 +29,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 
@@ -137,6 +138,10 @@ sal_Int32 SAL_CALL OSpecialEmbeddedObject::getMapUnit( 
sal_Int64 nAspect )
 
 void SAL_CALL OSpecialEmbeddedObject::changeState( sal_Int32 nNewState )
 {
+if ( 
officecfg::Office::Common::Security::Scripting::DisableActiveContent::get()
+ && nNewState != embed::EmbedStates::LOADED )
+throw embed::UnreachableStateException();
+
 if ( nNewState == embed::EmbedStates::UI_ACTIVE )
 nNewState = embed::EmbedStates::INPLACE_ACTIVE;
 OCommonEmbeddedObject::changeState( nNewState );
diff --git a/embeddedobj/source/msole/oleembed.cxx 
b/embeddedobj/source/msole/oleembed.cxx
index 8379a78693f1..69b3ca8d239e 100644
--- a/embeddedobj/source/msole/oleembed.cxx
+++ b/embeddedobj/source/msole/oleembed.cxx
@@ -52,7 +52,7 @@
 #include 
 #include 
 #include 
-
+#include 
 
 #include 
 
@@ -438,6 +438,9 @@ bool OleEmbeddedObject::TryToConvertToOOo( const 
uno::Reference< io::XStream >&
 
 void SAL_CALL OleEmbeddedObject::changeState( sal_Int32 nNewState )
 {
+if ( 
officecfg::Office::Common::Security::Scripting::DisableActiveContent::get()
+ && nNewState != embed::EmbedStates::LOADED )
+throw embed::UnreachableStateException();
 // begin wrapping related part 
 uno::Reference< embed::XEmbeddedObject > xWrappedObject =

core.git: 2 commits - sw/qa

2024-03-07 Thread Sarper Akdemir (via logerrit)
 sw/qa/extras/uiwriter/data/tdf158375_dde_reference.fodt  |  304 +++
 sw/qa/extras/uiwriter/uiwriter9.cxx  |  116 
 sw/qa/uitest/writer_tests8/save_with_password_test_policy.py |   63 ++
 3 files changed, 483 insertions(+)

New commits:
commit 10e12d0e6316ac20388f589f062e784e8d9aa630
Author: Sarper Akdemir 
AuthorDate: Fri Mar 1 03:33:20 2024 +0300
Commit: Sarper Akdemir 
CommitDate: Thu Mar 7 12:30:43 2024 +0100

tdf#157518: add uitest for password policy

Change-Id: If246779c944fe250c0070094450545d688712ea4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164390
Tested-by: Jenkins
Reviewed-by: Sarper Akdemir 

diff --git a/sw/qa/uitest/writer_tests8/save_with_password_test_policy.py 
b/sw/qa/uitest/writer_tests8/save_with_password_test_policy.py
new file mode 100644
index ..08e9a58cef8b
--- /dev/null
+++ b/sw/qa/uitest/writer_tests8/save_with_password_test_policy.py
@@ -0,0 +1,63 @@
+# -*- 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
+from tempfile import TemporaryDirectory
+import os.path
+
+class PasswordPolicy(UITestCase):
+   def test_save_with_password_policy(self):
+   # with a Password Policy configuration that enforces one lowercase, one 
uppercase and one number and at least 8 chars.
+   with 
self.ui_test.set_config('/org.openoffice.Office.Common/Security/Scripting/PasswordPolicy',
 r"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"):
+   with TemporaryDirectory() as tempdir:
+   xFilePath = os.path.join(tempdir, 
"password_save_with_policy_test.odt")
+
+   with self.ui_test.create_doc_in_start_center("writer"):
+   # Save the document
+   with 
self.ui_test.execute_dialog_through_command(".uno:Save", close_button="") as 
xSaveDialog:
+   xFileName = xSaveDialog.getChild("file_name")
+   xFileName.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"CTRL+A"}))
+   xFileName.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"BACKSPACE"}))
+   xFileName.executeAction("TYPE", 
mkPropertyValues({"TEXT": xFilePath}))
+   xPasswordCheckButton = xSaveDialog.getChild("password")
+   xPasswordCheckButton.executeAction("CLICK", tuple())
+   xOpen = xSaveDialog.getChild("open")
+
+   hasExitedEarly = True
+   with self.ui_test.execute_dialog_through_action(xOpen, 
"CLICK") as xPasswordDialog:
+   xNewPassword = 
xPasswordDialog.getChild("newpassEntry")
+   xNewPassword.executeAction("TYPE", 
mkPropertyValues({"TEXT": "password"}))
+   xConfirmPassword = 
xPasswordDialog.getChild("confirmpassEntry")
+   xConfirmPassword.executeAction("TYPE", 
mkPropertyValues({"TEXT": "password"}))
+
+   # check if the current state of the password entry 
reflects the rejection of the password.
+   xIndicator = 
xPasswordDialog.getChild("newpassIndicator")
+   IndicatorIsVisible = 
get_state_as_dict(xIndicator)["Visible"] == "true"
+   self.assertTrue(IndicatorIsVisible)
+
+   # the dialog shouldn't exit on this OK click.
+   xOk = xPasswordDialog.getChild("ok")
+   xOk.executeAction("CLICK", tuple())
+
+   # enter a password that will fit the password policy
+   xNewPassword.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"CTRL+A"}))
+   xNewPassword.executeAction("TYPE", 
mkPropertyValues({"TEXT": "Zxcvbnm123"}))
+   xConfirmPassword.executeAction("TYPE", 
mkPropertyValues({"KEYCODE":"CTRL+A"}))
+   xConfirmPassword.executeAction("TYPE", 
mkPropertyValues({"TEXT": "Zxcvbnm123"}))
+
+   # check the state is as expected now
+   IndicatorIsVisible = 
get_state_as_dict(xIndicator)["Visible"] == "true"
+   self.assertFalse(IndicatorIsVisible)
+   hasExitedEarly = False
+
+   # test if the dialog accepted the password that didn't 
fit the policy
+   self.assertFalse(hasExitedEarly)
+
+# vim: set shiftwidth=4 softtabstop=4 expandtab:
commit 2873a4c12d083698de2

core.git: Branch 'libreoffice-24-2-2' - configure.ac

2024-03-07 Thread Christian Lohmaier (via logerrit)
 configure.ac |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 195856d74dc68d2d74dfb221a3affadf259ea0d0
Author: Christian Lohmaier 
AuthorDate: Thu Mar 7 12:32:00 2024 +0100
Commit: Christian Lohmaier 
CommitDate: Thu Mar 7 12:32:00 2024 +0100

bump product version to 24.2.2.1.0+

Change-Id: Ifc53da8fcbe937df38723adb164846261b6e

diff --git a/configure.ac b/configure.ac
index 650fe6896be7..8101a2b2e1dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([LibreOffice],[24.2.2.0.0+],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[24.2.2.1.0+],[],[],[http://documentfoundation.org/])
 
 dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just 
fine if it is installed
 dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails 
hard


core.git: Changes to 'refs/tags/libreoffice-24.2.2.1'

2024-03-07 Thread Christian Lohmaier (via logerrit)
Tag 'libreoffice-24.2.2.1' created by Christian Lohmaier 
 at 2024-03-07 11:30 +

Tag libreoffice-24.2.2.1
-BEGIN PGP SIGNATURE-

iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmXppV0ACgkQ9DSh76/u
rqOzxA/7BMH4WN0581FaMsCbNd+Ug6q5L1vnlEFONUGrLuO7mdUKMIETmbWI70yp
u+o6x5SuNGQGqoBUcllLvdjqA79cin6Glo2V8iBlDystpEqGENcd2pne0FzX66M9
PXsdeOQmhQmg+JJLnsXQ+ALTYbxvx7cAtmN5l4ogObuVyhsTlpbvQDb4K2TtELWZ
cOF6I6mho8Zs4FwnOYullbHS3KNJB7G2vVpee0ArXUzFIH86KNv5MmMknBZOr4qX
6FPjtzvHAyXromKyKx2zXb/lOCUD+QVULExAU8ToT5FE/sA13h1cyuPUIoJZDOZ7
WLN4EDPDSfmGRWfpewfdtd5Ejf9Q56b7HYbsBQ3eSQX2IbStCbK3xnH0KPkGul82
nB/UR27cCwL3bRuMGPw9mB85dX9uFf+uZhIOcqRciSacNxOOghHwpFjLcKG87H/s
7eR+AgX8mgudpdUUZB8YZdhvZ1Qcz0+Wv2wXAn1cHXZihy8QoSYeKDyzCwFJlRXs
ulawexkSfzcKP49QB3bT70sQShasJ3MVYLMs07bWEc/Nyy5YQ2ZCduAKOqdVLmLH
Rtld5Q7sdO63ku5ho3Fi103JYJIDJH5Scwcn3kCmO4LAG9BcGYOXAPc9zBh4pqGm
s3VXhuUI2jA2aojksgXxca9TzpzhnDmcZYgwscv18z8hm0+FvcM=
=GMWz
-END PGP SIGNATURE-

Changes since co-24.04-branch-point-295:
---
 0 files changed
---


dictionaries.git: Changes to 'refs/tags/libreoffice-24.2.2.1'

2024-03-07 Thread Christian Lohmaier (via logerrit)
Tag 'libreoffice-24.2.2.1' created by Christian Lohmaier 
 at 2024-03-07 11:30 +

Tag libreoffice-24.2.2.1
-BEGIN PGP SIGNATURE-

iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmXppVkACgkQ9DSh76/u
rqMv+A/+J0+iceC9mL2SK6BXAXAE4pZ/UHOCmMO3w5dwtl+P0oJu2uUcD3+b2nty
X6hL+GhB9b9nxkkB2xtiOe33okn9rC0ZppSUd/AeGb2YOrVTGc74Vs9TBs/0z8TB
nDb360XferpzzCNPtH2QLDWcog4m8jzo5FEvdFnTL64Ykx5AxrEHh8LZYeN2F+24
hfxgRLIxDktw8Xanop81rdHSoi3R3BsFsQ7aTe4IYzflb6xaUzaedUeDkugfOyVp
FL6HjXhV7ZxKGkXAdftaldAtS5jlQgJTXBBga5rEGdPUlj40Ix+fdXWEqqrzzOVE
VFUhGP0Z19pClD3JzPbDZU3D8F9a3WO5NNaGWag5WDNNLtELpoG3hIZN/GN3hLDJ
u+abbc7LfjbITY/zjsMxY4kZrXRhEl0VIZMpe+9RrXmUj52cV9WpgraKzoYzUz0K
KN8JYbk6pbfp3VYG7GAZ3q7tZOLcs03Gj0zRDEo8s9O2RCiF3EJ5D1jAgkM8tT+f
gHbBkdQsriU9XNNUb/anA34V7uE0WvrdFnijNcZdF/ZSwm2kSKI5JxwgVpxKhk71
JcGRt+Hw+LMDKp84xIhn1Z7YyOU6pqK+PdjZsTwr39BU+8EZ5h9lAZz5CJde5+Q6
Aa01xIIlcfyYoDObADrDpEApqqg0Cg306GwRHSX9bMDvDqDBXSw=
=8DZn
-END PGP SIGNATURE-

Changes since cp-24.04.0-1-2:
---
 0 files changed
---


help.git: Changes to 'refs/tags/libreoffice-24.2.2.1'

2024-03-07 Thread Christian Lohmaier (via logerrit)
Tag 'libreoffice-24.2.2.1' created by Christian Lohmaier 
 at 2024-03-07 11:30 +

Tag libreoffice-24.2.2.1
-BEGIN PGP SIGNATURE-

iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmXppV0ACgkQ9DSh76/u
rqM00BAAxgJmTskeAgfu4Rs01TtAzy4ONRzdzlxEnia1bOoAjySqY1jwakwBTajC
5l/GR3nV29VTscCIrqquct2/NByTJSts5uRqwHrZAIVGXUkcaaaugvebh3ryJsyL
/G8e4aRQS3yRP8hvqaF5TeVn2BLU2Fqyu5EpOEpEzT3rBOmEZPTZhVyNzKPtuJ4z
mJWWNsQjc2UuLuDiTGv+RwWihXkvjMG4JFN6xMFxtKuIRrqX4kiTB7n57VuW5IWx
wSyEy6B2ZHqTmtVZy038d9HWthtdL6GMeDNqNY8HfWR+5nB5PkFmXT31rByyYFGj
HRQnGjalnVlAvkXUPLaVaXjN8rRGGob7DvQVhBru/K9nZNkRlio8O7eS6b0kkdcw
86MB+msefvSo+P3/jN4HNYy+2RRwmpQLg2Cre6B47cr9GDuRiqbXLwcbquviRwRN
nvQqy5Hbex6bwnZ9HKBFdnb+B6xsN2XY14DXsIPMzRQxIXUg0Lto+4+k2al/xdJL
tmwcnFO8d1QD6Z8jAPACpY+OLvV8F9I4mxsPH/s1d6DjwyxrDbfOrPQtT6KboNqq
cl+umrYQQD12lEvvhuFuDGsSTNIPnspLxuuZbIwlGhq/+DsYBs4aWgOzyfTm5Q+M
SX3sDWpR5yE1oW4lR5t11qz0ylUapQMUWAotngVAothc41BwgTM=
=JglQ
-END PGP SIGNATURE-

Changes since co-24.04-branch-point-8:
---
 0 files changed
---


translations.git: Changes to 'refs/tags/libreoffice-24.2.2.1'

2024-03-07 Thread Christian Lohmaier (via logerrit)
Tag 'libreoffice-24.2.2.1' created by Christian Lohmaier 
 at 2024-03-07 11:30 +

Tag libreoffice-24.2.2.1
-BEGIN PGP SIGNATURE-

iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmXppV0ACgkQ9DSh76/u
rqOBGg/+OPhl4ODWiUascf+BvLLixuUhM9CAcQY1Gg8TS4efQ9pG2e9VBXV/z+Mn
+Sgs5oB0Zc1/XscEFOfdHeZ3W4QxZ9CVMaJFUbIfQMETPuIJnHSyFaGn+7KjCRSl
O4n/uGfw3My+mr6qeNCyNra/fAlVhovChkRReWeJo7LCBBq6ByXFXVeVo/fNyclX
C39C5SnDzVXjjmMx0VrUJApFNwbIwwxj444VKW7unTqmQOnYH5I+5L+N3TVs3owI
P/SR67+wW5e3FLzgZT4P0dy1RWVZMoX1m/34T5OOzx6Mh3q/gAJ1C8qfkPZwPKwz
jLAScz2ViJcKMvIG8mxB4iiDLez5c+dR9FTT3HzrjpHyL8gZUixbqGrbindBatzR
EHrkFl2tiIV8d1F6EUHZXzc4VGjfqD7JbXjKchm+SNHPWfq6MWGl6QNu5g5SYZiA
gppCxsvm25mGLHFfVG7Ts9f39LbAP+nspJlaZAPDxW9gwx2vRlQjVK+v6e/eWN1r
MKZJEmu86AlNFPhxFR7/+EY0n81jvYsNwFKQUeTCNkGRqmtF/S/rnqp7ghX8dQxF
wdDomax56MSGv9j/CfpcDs+aUuwEAQG63WwFGfp12JCzwgXkO9zmAVmTpvL5rslK
xmuvajowCv77XyHqLQKELAPEmtvaGUfkJXdb2uj7r0kU3l3bjnI=
=tFNz
-END PGP SIGNATURE-

Changes since cp-24.04.0-1-3:
---
 0 files changed
---


core.git: basegfx/source drawinglayer/source svgio/inc svgio/source svx/source

2024-03-07 Thread Noel Grandin (via logerrit)
 basegfx/source/curve/b2dcubicbezier.cxx   |2 +-
 basegfx/source/numeric/ftools.cxx |2 +-
 basegfx/source/polygon/b2dlinegeometry.cxx|4 ++--
 basegfx/source/polygon/b2dpolygontools.cxx|6 +++---
 basegfx/source/polygon/b2dpolypolygoncutter.cxx   |8 
 basegfx/source/polygon/b2dtrapezoid.cxx   |8 
 basegfx/source/polygon/b3dpolygontools.cxx|4 ++--
 basegfx/source/tools/bgradient.cxx|3 +--
 drawinglayer/source/primitive3d/sdrextrudeprimitive3d.cxx |4 ++--
 drawinglayer/source/primitive3d/sdrlatheprimitive3d.cxx   |4 ++--
 svgio/inc/SvgNumber.hxx   |2 +-
 svgio/source/svgreader/svgsvgnode.cxx |4 ++--
 svx/source/sdr/contact/viewcontactofe3dpolygon.cxx|2 +-
 svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx   |2 +-
 svx/source/svdraw/svdfmtf.cxx |2 +-
 15 files changed, 28 insertions(+), 29 deletions(-)

New commits:
commit 7979508e4328ceb9d6a2dff6a2a080ea64247c7e
Author: Noel Grandin 
AuthorDate: Thu Mar 7 12:08:09 2024 +0200
Commit: Noel Grandin 
CommitDate: Thu Mar 7 12:53:27 2024 +0100

Simplify some basegfx::fTools::*orEqual calls

Comparing with zero is simple - the implementation of 
basegfx::fTools::moreOrEqual
calls rtl_math_approxEqual eventually, which special-zases zero.

Change-Id: I62f10f63f103d91a201dfeb20e5b3f9010f377c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164526
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/basegfx/source/curve/b2dcubicbezier.cxx 
b/basegfx/source/curve/b2dcubicbezier.cxx
index d33cd82b194d..927230fabcb1 100644
--- a/basegfx/source/curve/b2dcubicbezier.cxx
+++ b/basegfx/source/curve/b2dcubicbezier.cxx
@@ -541,7 +541,7 @@ namespace basegfx
 
 B2DVector B2DCubicBezier::getTangent(double t) const
 {
-if(fTools::lessOrEqual(t, 0.0))
+if(t <= 0.0)
 {
 // tangent in start point
 B2DVector aTangent(getControlPointA() - getStartPoint());
diff --git a/basegfx/source/numeric/ftools.cxx 
b/basegfx/source/numeric/ftools.cxx
index 246d8d548aac..4a01a4c0eca0 100644
--- a/basegfx/source/numeric/ftools.cxx
+++ b/basegfx/source/numeric/ftools.cxx
@@ -99,7 +99,7 @@ namespace basegfx
 
 double normalizeToRange(double v, const double fRange)
 {
-if(fTools::lessOrEqual(fRange, 0.0))
+if(fRange <= 0.0)
 {
 // with a zero (or less) range, all normalizes to 0.0
 return 0.0;
diff --git a/basegfx/source/polygon/b2dlinegeometry.cxx 
b/basegfx/source/polygon/b2dlinegeometry.cxx
index 437ebcbb496e..4f5de36a8295 100644
--- a/basegfx/source/polygon/b2dlinegeometry.cxx
+++ b/basegfx/source/polygon/b2dlinegeometry.cxx
@@ -147,7 +147,7 @@ namespace basegfx
 const B2DVector aTangentA(rCandidate.getTangent(0.0));
 const double fScalarAE(aEdge.scalar(aTangentA));
 
-if(fTools::lessOrEqual(fScalarAE, 0.0))
+if(fScalarAE <= 0.0)
 {
 // angle between TangentA and Edge is bigger or equal 90 
degrees
 return false;
@@ -174,7 +174,7 @@ namespace basegfx
 const B2DVector aTangentB(rCandidate.getTangent(1.0));
 const double fScalarBE(aEdge.scalar(aTangentB));
 
-if(fTools::lessOrEqual(fScalarBE, 0.0))
+if(fScalarBE <= 0.0)
 {
 // angle between TangentB and Edge is bigger or equal 90 
degrees
 return false;
diff --git a/basegfx/source/polygon/b2dpolygontools.cxx 
b/basegfx/source/polygon/b2dpolygontools.cxx
index b3f43669ddf4..0d9dbc15b42d 100644
--- a/basegfx/source/polygon/b2dpolygontools.cxx
+++ b/basegfx/source/polygon/b2dpolygontools.cxx
@@ -1239,12 +1239,12 @@ namespace basegfx::utils
 const sal_uInt32 nPointCount(rCandidate.count());
 const sal_uInt32 nDotDashCount(rDotDashArray.size());
 
-if(fTools::lessOrEqual(fDotDashLength, 0.0))
+if(fDotDashLength <= 0.0)
 {
 fDotDashLength = std::accumulate(rDotDashArray.begin(), 
rDotDashArray.end(), 0.0);
 }
 
-if(fTools::lessOrEqual(fDotDashLength, 0.0) || 
(!rLineTargetCallback && !rGapTargetCallback) || !nPointCount)
+if(fDotDashLength <= 0.0 || (!rLineTargetCallback && 
!rGapTargetCallback) || !nPointCount)
 {
 // parameters make no sense, just add source to targets
 if (rLineTargetCallback)
@@ -2846,7 +2846,7 @@ namespace basegfx::utils
 {
 OSL_ENSURE(rOld1.count() == rOld2.count(), "B2DPolygon 
interpolate: Different geometry (!)");
 
-if(fTools::lessOrEqual(t, 0.0) || rOld1 == rOld2)
+if(t <= 0.0 || rOld1 == 

core.git: Branch 'distro/collabora/co-24.04' - 50 commits - accessibility/inc accessibility/source basic/source chart2/qa chart2/source comphelper/source config_host.mk.in configure.ac download.lst dr

2024-03-07 Thread Andras Timar (via logerrit)
 accessibility/inc/standard/vclxaccessiblelist.hxx  |2 
 accessibility/source/standard/vclxaccessiblelist.cxx   |   10 
 basic/source/comp/loops.cxx|5 
 chart2/qa/extras/data/ods/tdf153706_XY_scatter_chart.ods   |binary
 chart2/qa/extras/uichart.cxx   |   54 
 chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx  |   10 
 chart2/source/controller/chartapiwrapper/ChartDataWrapper.hxx  |   11 
 chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx   |2 
 comphelper/source/misc/storagehelper.cxx   |1 
 config_host.mk.in  |1 
 configure.ac   |   20 
 download.lst   |   26 
 drawinglayer/inc/texture/texture3d.hxx |2 
 drawinglayer/source/texture/texture3d.cxx  |   12 
 editeng/source/misc/svxacorr.cxx   |2 
 external/boost/UnpackedTarball_boost.mk|1 
 external/boost/windows-no-utf8-locales.patch.0 |   23 
 external/gpgmepp/ExternalPackage_gpgmepp.mk|4 
 external/gpgmepp/Library_gpgmepp.mk|1 
 external/gpgmepp/Wincompatible-function-pointer-types.patch|4 
 external/gpgmepp/w32-build-fixes.patch.1   |   19 
 external/harfbuzz/UnpackedTarball_harfbuzz.mk  |1 
 external/harfbuzz/tdf159529.patch.0|   28 
 external/libxml2/ExternalPackage_libxml2.mk|2 
 external/libxml2/libxml2-global-symbols.patch  |8 
 external/more_fonts/ExternalPackage_noto_kufi_arabic.mk|4 
 external/more_fonts/UnpackedTarball_noto_kufi_arabic.mk|2 
 external/xmlsec/BCryptKeyDerivation.patch.1|   51 
 external/xmlsec/UnpackedTarball_xmlsec.mk  |2 
 filter/source/xsltfilter/LibXSLTTransformer.cxx|   16 
 helpcompiler/source/HelpCompiler.cxx   |   14 
 include/svx/dlgctl3d.hxx   |1 
 include/svx/sidebar/ValueSetWithTextControl.hxx|1 
 include/vcl/print.hxx  |1 
 include/vcl/rendercontext/State.hxx|4 
 officecfg/registry/data/org/openoffice/Office/Accelerators.xcu |  205 
 officecfg/registry/schema/org/openoffice/Office/UI/Infobar.xcs |4 
 package/source/zippackage/ZipPackage.cxx   |5 
 readlicense_oo/license/CREDITS.fodt| 4365 
+-
 ridljar/Jar_libreoffice.mk |6 
 ridljar/Jar_unoloader.mk   |8 
 sc/CppunitTest_sc_filters_test.mk  |1 
 sc/inc/clipcontext.hxx |5 
 sc/inc/drwlayer.hxx|3 
 sc/inc/filterentries.hxx   |7 
 sc/qa/uitest/autofilter2/tdf159420.py  |  126 
 sc/qa/unit/data/ods/tdf160003_page_anchored_object.ods |binary
 sc/qa/unit/scshapetest.cxx |   24 
 sc/source/core/data/clipcontext.cxx|4 
 sc/source/core/data/column.cxx |6 
 sc/source/core/data/column3.cxx|   17 
 sc/source/core/data/document.cxx   |   14 
 sc/source/core/data/drwlayer.cxx   |  142 
 sc/source/filter/excel/excel.cxx   |4 
 sc/source/ui/app/inputhdl.cxx  |2 
 sd/source/ui/animations/CustomAnimationList.cxx|8 
 sfx2/source/view/viewfrm.cxx   |  117 
 solenv/bin/assemble-flatpak-appdata.sh |1 
 solenv/gbuild/JavaClassSet.mk  |6 
 starmath/source/document.cxx   |   10 
 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 
 svl/source/items/srchitem.cxx  |2 
 svx/source/dialog/dlgctl3d.cxx |5 
 svx/source/form/labelitemwindow.cxx|2 
 svx/source/sidebar/

core.git: include/svx sd/qa sd/source

2024-03-07 Thread Sarper Akdemir (via logerrit)
 include/svx/sdrmasterpagedescriptor.hxx  |3 +-
 include/svx/sdrpageuser.hxx  |3 +-
 include/svx/svdpage.hxx  |1 
 sd/qa/unit/export-tests-ooxml4.cxx   |   45 +++
 sd/source/filter/eppt/pptx-epptooxml.cxx |   38 ++
 5 files changed, 82 insertions(+), 8 deletions(-)

New commits:
commit 6c25216e461b624f556a1b2830ab0911d5df7daf
Author: Sarper Akdemir 
AuthorDate: Wed Mar 6 13:48:14 2024 +0300
Commit: Sarper Akdemir 
CommitDate: Thu Mar 7 15:07:27 2024 +0100

tdf#159931: pptx export: export each used slide layout for a master

attempts to fix the slideLayout reference related regression
from Idb6b88ebe87a83818d8eb27a1fa087652a002c0c.

To correctly export the all used slideLayout instances for a
given master, iterate through sdr::PageUsers of that master
and figure out all used layouts.

Change-Id: I0f58befac1ba4d5ec01aeedbb5f611c83683dcf8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164468
Tested-by: Jenkins
Reviewed-by: Balazs Varga 
Reviewed-by: Sarper Akdemir 

diff --git a/include/svx/sdrmasterpagedescriptor.hxx 
b/include/svx/sdrmasterpagedescriptor.hxx
index d7eac22a1b5c..9be1e663bcff 100644
--- a/include/svx/sdrmasterpagedescriptor.hxx
+++ b/include/svx/sdrmasterpagedescriptor.hxx
@@ -22,6 +22,7 @@
 
 #include 
 #include 
+#include 
 #include 
 
 class SdrPageProperties;
@@ -30,7 +31,7 @@ namespace sdr::contact { class ViewContact; }
 
 namespace sdr
 {
-class MasterPageDescriptor final : public sdr::PageUser
+class SVXCORE_DLLPUBLIC MasterPageDescriptor final : public sdr::PageUser
 {
 private:
 SdrPage&maOwnerPage;
diff --git a/include/svx/sdrpageuser.hxx b/include/svx/sdrpageuser.hxx
index 8c31a2936c7e..5557b2729777 100644
--- a/include/svx/sdrpageuser.hxx
+++ b/include/svx/sdrpageuser.hxx
@@ -21,6 +21,7 @@
 #define INCLUDED_SVX_SDRPAGEUSER_HXX
 
 #include 
+#include 
 
 class SdrPage;
 
@@ -30,7 +31,7 @@ class SdrPage;
 
 namespace sdr
 {
-class PageUser
+class SVXCORE_DLLPUBLIC PageUser
 {
 public:
 // this method is called from the destructor of the referenced page.
diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx
index c70a2f1f4a2d..cb1e7f9f0b20 100644
--- a/include/svx/svdpage.hxx
+++ b/include/svx/svdpage.hxx
@@ -405,6 +405,7 @@ private:
 public:
 void AddPageUser(sdr::PageUser& rNewUser);
 void RemovePageUser(sdr::PageUser& rOldUser);
+const sdr::PageUserVector& GetPageUsers() const { return maPageUsers; };
 
 // SdrModel access on SdrPage level
 SdrModel& getSdrModelFromSdrPage() const { return mrSdrModelFromSdrPage; }
diff --git a/sd/qa/unit/export-tests-ooxml4.cxx 
b/sd/qa/unit/export-tests-ooxml4.cxx
index 9ebb88208cc1..4c1e2ad1bccd 100644
--- a/sd/qa/unit/export-tests-ooxml4.cxx
+++ b/sd/qa/unit/export-tests-ooxml4.cxx
@@ -1095,6 +1095,51 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, 
testTdf157740_slideMasters)
 assertXPath(pXmlDocContent, 
"/p:sldMaster/p:sldLayoutIdLst/p:sldLayoutId"_ostr, 1);
 }
 
+CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf159931_slideLayouts)
+{
+createSdImpressDoc("odp/repeatBitmapMode.odp");
+save("Impress Office Open XML");
+
+xmlDocUniquePtr pXmlDocRels1 = 
parseExport("ppt/slides/_rels/slide1.xml.rels");
+xmlDocUniquePtr pXmlDocRels2 = 
parseExport("ppt/slides/_rels/slide2.xml.rels");
+
+assertXPath(
+pXmlDocRels1,
+
"(/rels:Relationships/rels:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout'])"_ostr);
+
+// the relative target e.g. "../slideLayouts/slideLayout2.xml"
+OUString sRelativeLayoutPath1 = getXPathContent(
+pXmlDocRels1,
+
"(/rels:Relationships/rels:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout'])/@Target"_ostr);
+
+assertXPath(
+pXmlDocRels2,
+
"(/rels:Relationships/rels:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout'])"_ostr);
+
+// the relative target e.g. "../slideLayouts/slideLayout1.xml"
+OUString sRelativeLayoutPath2 = getXPathContent(
+pXmlDocRels2,
+
"(/rels:Relationships/rels:Relationship[@Type='http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout'])/@Target"_ostr);
+
+uno::Reference xNameAccess
+= 
packages::zip::ZipFileAccess::createWithURL(comphelper::getComponentContext(m_xSFactory),
+  maTempFile.GetURL());
+
+// Check that the referenced slideLayout files exist
+// Without the accompanying fix in place, this test would have failed with:
+// equality assertion failed
+// - Expected: 1
+// - Actual  : 0
+// i.e. the referenced slideLayout file was missing on export.
+OUSt

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_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


Minutes from the UX/design meeting 2023-Mar-07

2024-03-07 Thread Heiko Tietze

Present: Cor, Sahil, Felix, Rafael, Hossein, Heiko
Comments: Stephane, Ady, Stuart

Tickets/Topics

 * Auto-size the "Search Results" dialog (after a find & replace across
   multiple sheets) to avoid scrolling
   + https://bugs.documentfoundation.org/show_bug.cgi?id=157207
   + use ellipsis too (Stephane)
   + emphasizing the text that is explicitly being searched (Ady)
 + bug 157227
   + agree with the request to use more of the display (Stuart)
   + wrapping might be another idea (Rafael)
 + rather not because makes reading more difficult (Sahil)
   + ellipsis at start and end to bring the search term into the view (Felix)
   + simple solution covers most cases (and can be done as easyhack) (Cor)
   + ellipsis hinders reading the text, eg. if the search term is near end (Cor)
   + dialog is good as it, width should be adjusted carefully (Hossein)
   + With various scaling factors (2x, 3x, etc.) and different DPIs (HiDPI)
 these days, the issue of too big / too small dialogs and the need to add
 scrolling can also be seen elsewhere (Hossein)
   => resize the dialog if the content takes more space but only up to a
  reasonable width

 * CALC UI: Menu item "View headers" in menu "View" named wrong
   + https://bugs.documentfoundation.org/show_bug.cgi?id=159738
   + changed because of the Notebookbar
 a) have a dedicated NotebookbarLabel
 b) change back and accept the longer label
+ or hide the View Header command in the NB variant
 c) change the UI label to "View Headers"
 d) accept the situation, ie. NAB/WF
   + a) sounds good but c) could be a quick solution here (Rafael)
 + probably with some tooltip (Heiko)
   + a) is okay but prefer d) rather than c) (Cor)
 + nitpicking anyway; tooltip is good (Rafael)
   + icon on the command would be nice (Felix)
   => add a tooltip "Toggle row/column header on/off" to command
  and the tools > options dialog

 * UI: A button to expand the animation picker dialog to dedicated dialog
   + https://bugs.documentfoundation.org/show_bug.cgi?id=145038
   + icons may help, even in the current form, in sidebar (Hossein)
   + icon view like at the transition deck sounds good (Rafael)
   + dedicated dialog needed for notebookbar-only variants (Sahil)
   + on the long run we should add some styles-like widget for
 animations as known from MSO (Hossein)
   => comment

 * Reworking of dialogues Organize macros (make from 5 existing only one)
   + https://bugs.documentfoundation.org/show_bug.cgi?id=120658
   + Issue is worse than that considering Python, and APSO (Hossein)
   + Most things (editing, etc.) are not usable for Python, even with
 5 dialogs (Hossein)
   + Every change should have in mind that it is about macro programming in
 general, and not only BASIC scripting (Hossein)
   + unified dialogs are not always easier to use (Cor)
   + suggested proposal is difficult to implement and suspect a lot of
 side effects (Rafael)
   + APSO is the way to go for Python at least (Rafael, Hossein)
   => comment


OpenPGP_signature.asc
Description: OpenPGP digital signature


core.git: Branch 'distro/cib/libreoffice-6-4' - 10 commits - sw/inc sw/qa sw/source

2024-03-07 Thread Michael Stahl (via logerrit)
 sw/inc/crsrsh.hxx |   18 
 sw/inc/doc.hxx|9 
 sw/inc/ndarr.hxx  |7 
 sw/inc/node.hxx   |2 
 sw/inc/undobj.hxx |   12 
 sw/qa/extras/layout/data/largeTopMarginAndHiddenFirstSection.fodt |   15 
 sw/qa/extras/layout/data/pageBreakInHiddenSection.fodt|   90 ++
 sw/qa/extras/layout/layout.cxx|   66 +
 sw/qa/extras/odfimport/odfimport.cxx  |4 
 sw/qa/extras/uiwriter/data/FrameInHiddenSection.fodt  |   20 
 sw/qa/extras/uiwriter/data/hiddenSectionsAroundPageBreak.fodt |   21 
 sw/qa/extras/uiwriter/data/pagebreak-source.fodt  |  123 +++
 sw/qa/extras/uiwriter/data/pagebreak-target.fodt  |  129 +++
 sw/qa/extras/uiwriter/data/table-at-end-of-cell.fodt  |  219 ++
 sw/qa/extras/uiwriter/uiwriter.cxx|  177 
 sw/qa/extras/uiwriter/uiwriter2.cxx   |   23 
 sw/qa/extras/unowriter/data/tdf134252_onlytable_protected.fodt|   87 ++
 sw/qa/extras/unowriter/unowriter.cxx  |   62 +
 sw/source/core/crsr/crsrsh.cxx|  358 
+-
 sw/source/core/crsr/pam.cxx   |5 
 sw/source/core/crsr/swcrsr.cxx|   17 
 sw/source/core/doc/DocumentContentOperationsManager.cxx   |   97 +-
 sw/source/core/doc/doccorr.cxx|7 
 sw/source/core/doc/docedt.cxx |4 
 sw/source/core/docnode/ndsect.cxx |4 
 sw/source/core/docnode/ndtbl.cxx  |  299 

 sw/source/core/docnode/nodes.cxx  |   49 +
 sw/source/core/docnode/section.cxx|7 
 sw/source/core/edit/eddel.cxx |   36 -
 sw/source/core/edit/edglss.cxx|   19 
 sw/source/core/edit/editsh.cxx|2 
 sw/source/core/frmedt/fecopy.cxx  |   35 
 sw/source/core/frmedt/fetab.cxx   |3 
 sw/source/core/inc/UndoTable.hxx  |2 
 sw/source/core/inc/frame.hxx  |2 
 sw/source/core/inc/layfrm.hxx |1 
 sw/source/core/inc/sectfrm.hxx|2 
 sw/source/core/inc/txtfrm.hxx |2 
 sw/source/core/layout/calcmove.cxx|   13 
 sw/source/core/layout/findfrm.cxx |8 
 sw/source/core/layout/flowfrm.cxx |  120 +--
 sw/source/core/layout/frmtool.cxx |   23 
 sw/source/core/layout/ftnfrm.cxx  |   10 
 sw/source/core/layout/pagechg.cxx |5 
 sw/source/core/layout/sectfrm.cxx |   38 +
 sw/source/core/layout/tabfrm.cxx  |6 
 sw/source/core/layout/trvlfrm.cxx |   25 
 sw/source/core/layout/wsfrm.cxx   |   12 
 sw/source/core/text/txtfrm.cxx|   15 
 sw/source/core/text/xmldump.cxx   |9 
 sw/source/core/undo/undobj.cxx|   22 
 sw/source/core/undo/unins.cxx |4 
 sw/source/core/undo/untbl.cxx |8 
 sw/source/core/undo/untblk.cxx|   12 
 sw/source/core/unocore/unoobj2.cxx|   14 
 sw/source/core/unocore/unotbl.cxx |2 
 sw/source/core/unocore/unotext.cxx|6 
 sw/source/filter/xml/XMLRedlineImportHelper.cxx   |5 
 sw/source/uibase/wrtsh/move.cxx   |   46 +
 sw/source/uibase/wrtsh/select.cxx |   36 -
 60 files changed, 1993 insertions(+), 481 deletions(-)

New commits:
commit 0a0196bc0fe18449debae5f6353c1ddb312df916
Author: Michael Stahl 
AuthorDate: Mon Mar 4 15:45:07 2024 +0100
Commit: Michael Stahl 
CommitDate: Thu Mar 7 15:14:42 2024 +0100

sw: SelectAll of section with RES_PAGEDESC corner-case

The main problem here is that if a document has a RES_PAGEDESC on its
first body text node, and you paste a section wh

core.git: desktop/qa desktop/source include/LibreOfficeKit include/sfx2 sw/source

2024-03-07 Thread Gökay Şatır (via logerrit)
 desktop/qa/desktop_lib/test_desktop_lib.cxx |   18 +++---
 desktop/source/lib/init.cxx |   15 +++
 include/LibreOfficeKit/LibreOfficeKit.h |3 +++
 include/LibreOfficeKit/LibreOfficeKit.hxx   |   10 ++
 include/sfx2/viewsh.hxx |4 
 sw/source/core/view/viewsh.cxx  |4 ++--
 6 files changed, 41 insertions(+), 13 deletions(-)

New commits:
commit 97d32edf39e9d64866d8cee6ab8b5c947c6e18db
Author: Gökay Şatır 
AuthorDate: Fri Feb 16 08:43:14 2024 +0300
Commit: Miklos Vajna 
CommitDate: Thu Mar 7 15:44:29 2024 +0100

Collaborative editing with readonly and edit views.

We can have both readOnly and editor views at the same time while 
collaboratively editing a document.
Our current solution is to disable any command if the user's view is 
readonly.
We want to have a closer behaviour to desktop app with readonly views.
For this purpose, we are allowing more interactions from online server to 
core side.
We also need to filter out the events like the core side readonly view do 
(next commit).
This commit initiates the readonly view infrastructure.

The patches previous commit reverts were an example of how we disable 
things in readonly mode. We needed to open a window for getting hyperlink 
information.
With this patch, we try to separate the edit and readonly view modes on 
core side.

More notes:

We need "&& !comphelper::LibreOfficeKit::isActive()" or it falls into an 
endless loop with this patch.
When we disable editing on a browser, almost all user actions are disabled.

(cherry picked from commit 81dae2ca5187bd24aea0befb099a5b53535b5d03)

Change-Id: Ia25368dd8065206ec6b4b83eb2f685531110cc78
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164527
Tested-by: Jenkins
Reviewed-by: Miklos Vajna 

diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx 
b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index 87afe69166a8..1239af480598 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -3668,22 +3668,18 @@ void DesktopLOKTest::testABI()
 CPPUNIT_ASSERT_EQUAL(documentClassOffset(61), offsetof(struct 
_LibreOfficeKitDocumentClass, sendFormFieldEvent));
 CPPUNIT_ASSERT_EQUAL(documentClassOffset(62), offsetof(struct 
_LibreOfficeKitDocumentClass, setBlockedCommandList));
 CPPUNIT_ASSERT_EQUAL(documentClassOffset(63), offsetof(struct 
_LibreOfficeKitDocumentClass, renderSearchResult));
-CPPUNIT_ASSERT_EQUAL(documentClassOffset(64),
- offsetof(struct _LibreOfficeKitDocumentClass, 
sendContentControlEvent));
+CPPUNIT_ASSERT_EQUAL(documentClassOffset(64), offsetof(struct 
_LibreOfficeKitDocumentClass, sendContentControlEvent));
 CPPUNIT_ASSERT_EQUAL(documentClassOffset(65), offsetof(struct 
_LibreOfficeKitDocumentClass, getSelectionTypeAndText));
 CPPUNIT_ASSERT_EQUAL(documentClassOffset(66), offsetof(struct 
_LibreOfficeKitDocumentClass, getDataArea));
 CPPUNIT_ASSERT_EQUAL(documentClassOffset(67), offsetof(struct 
_LibreOfficeKitDocumentClass, getEditMode));
-CPPUNIT_ASSERT_EQUAL(documentClassOffset(68),
- offsetof(struct _LibreOfficeKitDocumentClass, 
setViewTimezone));
-CPPUNIT_ASSERT_EQUAL(documentClassOffset(69),
- offsetof(struct _LibreOfficeKitDocumentClass, 
setAccessibilityState));
-CPPUNIT_ASSERT_EQUAL(documentClassOffset(70),
- offsetof(struct _LibreOfficeKitDocumentClass, 
getA11yFocusedParagraph));
-CPPUNIT_ASSERT_EQUAL(documentClassOffset(71),
- offsetof(struct _LibreOfficeKitDocumentClass, 
getA11yCaretPosition));
+CPPUNIT_ASSERT_EQUAL(documentClassOffset(68), offsetof(struct 
_LibreOfficeKitDocumentClass, setViewTimezone));
+CPPUNIT_ASSERT_EQUAL(documentClassOffset(69), offsetof(struct 
_LibreOfficeKitDocumentClass, setAccessibilityState));
+CPPUNIT_ASSERT_EQUAL(documentClassOffset(70), offsetof(struct 
_LibreOfficeKitDocumentClass, getA11yFocusedParagraph));
+CPPUNIT_ASSERT_EQUAL(documentClassOffset(71), offsetof(struct 
_LibreOfficeKitDocumentClass, getA11yCaretPosition));
+CPPUNIT_ASSERT_EQUAL(documentClassOffset(72), offsetof(struct 
_LibreOfficeKitDocumentClass, setViewReadOnly));
 
 // As above
-CPPUNIT_ASSERT_EQUAL(documentClassOffset(72), sizeof(struct 
_LibreOfficeKitDocumentClass));
+CPPUNIT_ASSERT_EQUAL(documentClassOffset(73), sizeof(struct 
_LibreOfficeKitDocumentClass));
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(DesktopLOKTest);
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 92f3d52affef..6d221ec84418 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -1291,6 +1291,8 @@ static void 
doc_sendContentControlEvent(LibreOfficeKitDocument* pThis, const cha
 
 static void doc_setViewTimezone(Libr

core.git: Branch 'distro/collabora/co-24.04' - sc/source

2024-03-07 Thread Miklos Vajna (via logerrit)
 sc/source/ui/docshell/docsh6.cxx |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit cb4eaee05d731f2f1c19b7b9c4f21157eeab042e
Author: Miklos Vajna 
AuthorDate: Fri Mar 1 08:34:00 2024 +0100
Commit: Andras Timar 
CommitDate: Thu Mar 7 16:23:55 2024 +0100

sc lok: make the formula separator warning dialog async

I'm not sure what exactly changed here, but recently online.git
unit-wopi-languages started to fail for me. First it was an assertion
failure:

/home/vmiklos/git/libreoffice/core/vcl/source/window/window.cxx:3186: void 
vcl::Window::SetLOKNotifier(const vcl::ILibreOfficeKitNotifier*, bool): 
Assertion `pNotifier' failed.

Once ScDocShell::CheckConfigOptions() is changed to pass in the view
shell explicitly, the next error is:

kit-26201-26149 2024-02-28 10:41:31.659255 +0100 [ kitbroker_002 ] ERR  
non-async dialog triggered

So convert it to async, similar to the chart2/ hunk of commit
4b33e878a446b0bcdb1d5f882a05a256967eea54 (Make format condition, chart
delete and pivot table error async, 2024-01-10).

Change-Id: I159278b24db0acd5fddb6f4d29dae9a35321e614
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164178
Tested-by: Jenkins
Reviewed-by: Miklos Vajna 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164543
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Andras Timar 

diff --git a/sc/source/ui/docshell/docsh6.cxx b/sc/source/ui/docshell/docsh6.cxx
index 1ea512d40f3b..344b52953faf 100644
--- a/sc/source/ui/docshell/docsh6.cxx
+++ b/sc/source/ui/docshell/docsh6.cxx
@@ -499,10 +499,10 @@ void ScDocShell::CheckConfigOptions()
 ScTabViewShell* pViewShell = GetBestViewShell();
 if (pViewShell)
 {
-std::unique_ptr 
xInfoBox(Application::CreateMessageDialog(pViewShell->GetFrameWeld(),
+std::shared_ptr 
xInfoBox(Application::CreateMessageDialog(pViewShell->GetFrameWeld(),
   
VclMessageType::Info, VclButtonsType::Ok,
-  
ScResId(STR_OPTIONS_WARN_SEPARATORS), GetpApp()));
-xInfoBox->run();
+  
ScResId(STR_OPTIONS_WARN_SEPARATORS), pViewShell));
+xInfoBox->runAsync(xInfoBox, [] (int) {});
 }
 
 // For now, this is the only option setting that could launch info


core.git: 2 commits - bin/find-can-be-private-symbols.functions.results include/svl svl/source

2024-03-07 Thread Caolán McNamara (via logerrit)
 bin/find-can-be-private-symbols.functions.results |2 --
 include/svl/numformat.hxx |   12 ++--
 svl/source/numbers/zforlist.cxx   |   10 +++---
 3 files changed, 9 insertions(+), 15 deletions(-)

New commits:
commit 241d855f79d4e4b560a127ccdbcaa6b32297f52d
Author: Caolán McNamara 
AuthorDate: Thu Mar 7 13:18:06 2024 +
Commit: Caolán McNamara 
CommitDate: Thu Mar 7 16:31:17 2024 +0100

ResetDefaultSystemCurrency can be private

only called by a friend from the same .so

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

diff --git a/bin/find-can-be-private-symbols.functions.results 
b/bin/find-can-be-private-symbols.functions.results
index 483607ec1394..561339f79170 100644
--- a/bin/find-can-be-private-symbols.functions.results
+++ b/bin/find-can-be-private-symbols.functions.results
@@ -9250,7 +9250,6 @@ 
SvNumberFormatter::IsDecimalSep(std::basic_string_view)
 SvNumberFormatter::PutandConvertEntrySystem(rtl::OUString&, int&, 
SvNumFormatType&, unsigned int&, o3tl::strong_int, o3tl::strong_int)
 SvNumberFormatter::ReplaceSystemCL(o3tl::strong_int)
-SvNumberFormatter::ResetDefaultSystemCurrency()
 SvNumberFormatter::SetDefaultSystemCurrency(std::basic_string_view >, o3tl::strong_int)
 SvNumberFormatter::SetNoZero(bool)
 SvNumberformat::GetCal() const
diff --git a/include/svl/numformat.hxx b/include/svl/numformat.hxx
index 6c256aaf09d5..681bb678eb53 100644
--- a/include/svl/numformat.hxx
+++ b/include/svl/numformat.hxx
@@ -683,14 +683,14 @@ private:
 // Whether nFIndex is a special builtin format
 SVL_DLLPRIVATE bool ImpIsSpecialStandardFormat(sal_uInt32 nFIndex, 
LanguageType eLnge);
 
+// called by SvNumberFormatterRegistry_Impl::Notify if the default system 
currency changes
+SVL_DLLPRIVATE void ResetDefaultSystemCurrency();
+
 // own mutex, may also be used by internal class 
SvNumberFormatterRegistry_Impl
 static ::osl::Mutex& GetGlobalMutex();
 ::osl::Mutex& GetInstanceMutex() const { return m_aMutex; }
 
 public:
-// called by SvNumberFormatterRegistry_Impl::Notify if the default system 
currency changes
-void ResetDefaultSystemCurrency();
-
 // Called by SvNumberFormatterRegistry_Impl::Notify if the system locale's
 // date acceptance patterns change.
 void InvalidateDateAcceptancePatterns();
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index 86417b04f621..9bea00f42cfe 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -242,7 +242,6 @@ void SvNumberFormatterRegistry_Impl::ConfigurationChanged( 
utl::ConfigurationBro
 }
 }
 
-
 SvNumberFormatterRegistry_Impl* SvNumberFormatter::pFormatterRegistry = 
nullptr;
 volatile bool SvNumberFormatter::bCurrencyTableInitialized = false;
 namespace
@@ -3756,19 +3755,16 @@ void SvNumberFormatter::SetDefaultSystemCurrency( 
std::u16string_view rAbbrev, L
 nSystemCurrencyPosition = 0;// not found => simple SYSTEM
 }
 
-
 void SvNumberFormatter::ResetDefaultSystemCurrency()
 {
 nDefaultSystemCurrencyFormat = NUMBERFORMAT_ENTRY_NOT_FOUND;
 }
 
-
 void SvNumberFormatter::InvalidateDateAcceptancePatterns()
 {
 pStringScanner->InvalidateDateAcceptancePatterns();
 }
 
-
 sal_uInt32 SvNumberFormatter::ImpGetDefaultSystemCurrencyFormat()
 {
 if ( nDefaultSystemCurrencyFormat == NUMBERFORMAT_ENTRY_NOT_FOUND )
commit dbc00dd52c36a4fa6346ab4cf497cb02d6eedec8
Author: Caolán McNamara 
AuthorDate: Thu Mar 7 13:14:16 2024 +
Commit: Caolán McNamara 
CommitDate: Thu Mar 7 16:31:09 2024 +0100

IsSpecialStandardFormat can be private, only used internally

and rename to ImpIsSpecialStandardFormat

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

diff --git a/bin/find-can-be-private-symbols.functions.results 
b/bin/find-can-be-private-symbols.functions.results
index bb2ef5c7ae79..483607ec1394 100644
--- a/bin/find-can-be-private-symbols.functions.results
+++ b/bin/find-can-be-private-symbols.functions.results
@@ -9248,7 +9248,6 @@ SvNumberFormatter::ImpSubstituteEntry(SvNumberformat*, 
unsigned int*)
 SvNumberFormatter::InvalidateDateAcceptancePatterns()
 SvNumberFormatter::IsDecimalSep(std::basic_string_view >) const
 SvNumberFormatter::IsLocaleInstalled(o3tl::strong_int)
-SvNumberFormatter::IsSpecialStandardFormat(unsigned int, 
o3tl::strong_int)
 SvNumberFormatter::PutandConvertEntrySystem(rtl::OUString&, int&, 
SvNumFormatType&, unsigned int&, o3tl::strong_int, o3tl::strong_int)
 SvNumberFormatter::ReplaceSystemCL(o3tl::strong_int)
 SvNumberFormatter::ResetDefaultSystemCurrency()
diff --git a/include/svl/numformat.hxx b/include/svl/numformat.hxx
index 6a007d1bd057..6c256aa

core.git: 2 commits - editeng/source include/svl svl/source svx/source

2024-03-07 Thread Noel Grandin (via logerrit)
 editeng/source/editeng/impedit5.cxx  |   12 ++--
 include/svl/SfxBroadcaster.hxx   |3 +++
 include/svl/style.hxx|2 ++
 svl/source/items/IndexedStyleSheets.cxx  |4 ++--
 svl/source/items/style.cxx   |4 
 svl/source/notify/SfxBroadcaster.cxx |1 +
 svx/source/sdr/properties/textproperties.cxx |4 ++--
 svx/source/svdraw/svdotxat.cxx   |   11 +++
 8 files changed, 27 insertions(+), 14 deletions(-)

New commits:
commit 34017b14d866e99aff466ff200b60b3e2d509a30
Author: Noel Grandin 
AuthorDate: Thu Mar 7 12:48:00 2024 +0200
Commit: Noel Grandin 
CommitDate: Thu Mar 7 16:50:00 2024 +0100

tdf#158773 reduce time spent in IndexedStyleSheets::Reindex

no need to de-allocate and then re-allocate the vectors inside
mStyleSheetPositionsByFamily

Change-Id: I3ad10173d9f3ba252619667afe13250045c943c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164529
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/svl/source/items/IndexedStyleSheets.cxx 
b/svl/source/items/IndexedStyleSheets.cxx
index 57e2dddbf1c1..c4b879d4f9c2 100644
--- a/svl/source/items/IndexedStyleSheets.cxx
+++ b/svl/source/items/IndexedStyleSheets.cxx
@@ -64,9 +64,9 @@ void
 IndexedStyleSheets::Reindex()
 {
 mPositionsByName.clear();
-mStyleSheetPositionsByFamily.clear();
+mStyleSheetPositionsByFamily.resize(NUMBER_OF_FAMILIES);
 for (size_t i = 0; i < NUMBER_OF_FAMILIES; i++) {
-mStyleSheetPositionsByFamily.emplace_back();
+mStyleSheetPositionsByFamily[i].clear();
 }
 
 sal_Int32 i = 0;
commit 06d444e9a102569aa6cf429079036fc95482cc7f
Author: Noel Grandin 
AuthorDate: Thu Mar 7 12:23:26 2024 +0200
Commit: Noel Grandin 
CommitDate: Thu Mar 7 16:49:52 2024 +0100

tdf#158773 reduce dynamic_cast'ing in TextProperties::Notify

Change-Id: If4a68433c57fdf3da56891fa0b4be6f8a991d929
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164528
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/editeng/source/editeng/impedit5.cxx 
b/editeng/source/editeng/impedit5.cxx
index 6b1a303ae8da..396e529c514d 100644
--- a/editeng/source/editeng/impedit5.cxx
+++ b/editeng/source/editeng/impedit5.cxx
@@ -158,15 +158,15 @@ void ImpEditEngine::Notify( SfxBroadcaster& rBC, const 
SfxHint& rHint )
 SfxStyleSheet* pStyle = static_cast( 
pStyleSheetHint->GetStyleSheet() );
 UpdateParagraphsWithStyleSheet( pStyle );
 }
-else if ( nId == SfxHintId::Dying )
+else if ( nId == SfxHintId::Dying && rBC.IsSfxStyleSheet() )
 {
-if ( auto pStyle = dynamic_cast< SfxStyleSheet* >(&rBC) )
-RemoveStyleFromParagraphs( pStyle );
+auto pStyle = static_cast< SfxStyleSheet* >(&rBC);
+RemoveStyleFromParagraphs( pStyle );
 }
-else if ( nId == SfxHintId::DataChanged )
+else if ( nId == SfxHintId::DataChanged && rBC.IsSfxStyleSheet())
 {
-if ( auto pStyle = dynamic_cast< SfxStyleSheet* >(&rBC) )
-UpdateParagraphsWithStyleSheet( pStyle );
+auto pStyle = static_cast< SfxStyleSheet* >(&rBC);
+UpdateParagraphsWithStyleSheet( pStyle );
 }
 }
 if (rHint.GetId() == SfxHintId::Dying && dynamic_cast(&rBC))
diff --git a/include/svl/SfxBroadcaster.hxx b/include/svl/SfxBroadcaster.hxx
index b026f4c7e4a6..f4ba2264a066 100644
--- a/include/svl/SfxBroadcaster.hxx
+++ b/include/svl/SfxBroadcaster.hxx
@@ -57,6 +57,9 @@ public:
 return true to break the loop.  */
 void  ForAllListeners(std::function f) const;
 
+/** used to avoid dynamic_cast cost */
+virtual bool IsSfxStyleSheet() const;
+
 friend class SfxListener;
 friend class ::SfxBroadcasterTest;
 };
diff --git a/include/svl/style.hxx b/include/svl/style.hxx
index 75ebe788c737..058d99c376c1 100644
--- a/include/svl/style.hxx
+++ b/include/svl/style.hxx
@@ -295,6 +295,8 @@ public:
 
 virtual boolSetParent( const OUString& ) override;
 
+virtual boolIsSfxStyleSheet() const override;
+
 protected:
 virtual ~SfxStyleSheet() override;
 };
diff --git a/svl/source/items/style.cxx b/svl/source/items/style.cxx
index 0b0054984a4c..104cb793cc6d 100644
--- a/svl/source/items/style.cxx
+++ b/svl/source/items/style.cxx
@@ -856,6 +856,10 @@ bool SfxStyleSheet::isUsedByModel() const
 return IsUsed();
 }
 
+bool SfxStyleSheet::IsSfxStyleSheet() const
+{
+return true;
+}
 
 SfxStyleSheetPool::SfxStyleSheetPool( SfxItemPool const& rSet)
 : SfxStyleSheetBasePool( const_cast< SfxItemPool& >( rSet ) )
diff --git a/svl/source/notify/SfxBroadcaster.cxx 
b/svl/source/notify/SfxBroadcaster.cxx
index 419c535f56dc..c9a26aabb7c8 100644
--- a/svl/source/notify/SfxBroadcaster.cxx
+++ b/svl/source/notify/SfxBroadcaster.cxx
@@ -149,4 +149,5 @@ size_t SfxBroadcaste

core.git: svx/source

2024-03-07 Thread Noel Grandin (via logerrit)
 svx/source/sdr/properties/attributeproperties.cxx |  124 +++---
 1 file changed, 66 insertions(+), 58 deletions(-)

New commits:
commit 4a30c919373940025024442d9607da06258bb552
Author: Noel Grandin 
AuthorDate: Thu Mar 7 12:48:20 2024 +0200
Commit: Noel Grandin 
CommitDate: Thu Mar 7 16:50:10 2024 +0100

tdf#158773 reduce dynamic_cast in AttributeProperties::Notify

Change-Id: I29143d4908454be819acec16732533ff5caa1055
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164530
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/svx/source/sdr/properties/attributeproperties.cxx 
b/svx/source/sdr/properties/attributeproperties.cxx
index 9fc67078a847..641ebe438154 100644
--- a/svx/source/sdr/properties/attributeproperties.cxx
+++ b/svx/source/sdr/properties/attributeproperties.cxx
@@ -419,84 +419,92 @@ namespace sdr::properties
 {
 bool bHintUsed(false);
 
-const SfxStyleSheetHint* pStyleHint = dynamic_cast(&rHint);
-
-if(pStyleHint && pStyleHint->GetStyleSheet() == GetStyleSheet())
+SfxHintId id = rHint.GetId();
+if (id == SfxHintId::StyleSheetCreated
+|| id == SfxHintId::StyleSheetChanged
+|| id == SfxHintId::StyleSheetErased
+|| id == SfxHintId::StyleSheetModified
+|| id == SfxHintId::StyleSheetInDestruction
+|| id == SfxHintId::StyleSheetModifiedExtended)
 {
-SdrObject& rObj = GetSdrObject();
-//SdrPage* pPage = rObj.GetPage();
+const SfxStyleSheetHint* pStyleHint = static_cast(&rHint);
 
-switch(pStyleHint->GetId())
+if(pStyleHint->GetStyleSheet() == GetStyleSheet())
 {
-case SfxHintId::StyleSheetCreated :
-{
-// cannot happen, nothing to do
-break;
-}
-case SfxHintId::StyleSheetModified:
-case SfxHintId::StyleSheetModifiedExtended:
-case SfxHintId::StyleSheetChanged :
-{
-// notify change
-break;
-}
-case SfxHintId::StyleSheetErased  :
-case SfxHintId::StyleSheetInDestruction   :
+SdrObject& rObj = GetSdrObject();
+//SdrPage* pPage = rObj.GetPage();
+
+switch(id)
 {
-// Style needs to be exchanged
-SfxStyleSheet* pNewStSh = nullptr;
-SdrModel& rModel(rObj.getSdrModelFromSdrObject());
-
-// Do nothing if object is in destruction, else a 
StyleSheet may be found from
-// a StyleSheetPool which is just being deleted 
itself. and thus it would be fatal
-// to register as listener to that new StyleSheet.
-if(!rObj.IsInDestruction())
+case SfxHintId::StyleSheetCreated :
 {
-if(SfxStyleSheet* pStyleSheet = GetStyleSheet())
+// cannot happen, nothing to do
+break;
+}
+case SfxHintId::StyleSheetModified:
+case SfxHintId::StyleSheetModifiedExtended:
+case SfxHintId::StyleSheetChanged :
+{
+// notify change
+break;
+}
+case SfxHintId::StyleSheetErased  :
+case SfxHintId::StyleSheetInDestruction   :
+{
+// Style needs to be exchanged
+SfxStyleSheet* pNewStSh = nullptr;
+SdrModel& rModel(rObj.getSdrModelFromSdrObject());
+
+// Do nothing if object is in destruction, else a 
StyleSheet may be found from
+// a StyleSheetPool which is just being deleted 
itself. and thus it would be fatal
+// to register as listener to that new StyleSheet.
+if(!rObj.IsInDestruction())
 {
-pNewStSh = 
static_cast(rModel.GetStyleSheetPool()->Find(
-pStyleSheet->GetParent(), 
pStyleSheet->GetFamily()));
+if(SfxStyleSheet* pStyleSheet = 
GetStyleSheet())
+{
+pNewStSh = 
static_cast(rModel.GetStyleSheetPool()->Find(
+

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: drawinglayer/source vcl/source

2024-03-07 Thread Noel Grandin (via logerrit)
 drawinglayer/source/primitive2d/borderlineprimitive2d.cxx |2 +-
 vcl/source/outdev/bitmapex.cxx|2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

New commits:
commit d98f71fb6b8b2b559bffc8d10584fe1dd7cf5843
Author: Noel Grandin 
AuthorDate: Thu Mar 7 15:54:32 2024 +0200
Commit: Noel Grandin 
CommitDate: Thu Mar 7 18:19:30 2024 +0100

Simplify some rtl::math::approxEqual calls

Comparing with zero is simple - the implementation special-zases zero.

Change-Id: Ia2fe8a1100941f72023a74955ebfbb4f5f25b90d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164540
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx 
b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
index 3ea94f1aefbb..79e34ec972ce 100644
--- a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
@@ -331,7 +331,7 @@ namespace drawinglayer::primitive2d
 // direction has to be equal -> cross product == 0.0
 const basegfx::B2DVector aVT(pCandidateA->getEnd() - 
pCandidateA->getStart());
 const basegfx::B2DVector aVC(pCandidateB->getEnd() - 
pCandidateB->getStart());
-if(!rtl::math::approxEqual(0.0, aVC.cross(aVT)))
+if(aVC.cross(aVT) != 0)
 {
 return Primitive2DReference();
 }
diff --git a/vcl/source/outdev/bitmapex.cxx b/vcl/source/outdev/bitmapex.cxx
index 04a50d554570..defabf09b8fd 100644
--- a/vcl/source/outdev/bitmapex.cxx
+++ b/vcl/source/outdev/bitmapex.cxx
@@ -459,7 +459,7 @@ void OutputDevice::DrawTransformedBitmapEx(
 if(rBitmapEx.IsEmpty())
 return;
 
-if(rtl::math::approxEqual( fAlpha, 0.0 ))
+if( fAlpha == 0.0 )
 return;
 
 // MM02 compared to other public methods of OutputDevice


core.git: static/source

2024-03-07 Thread Stephan Bergmann (via logerrit)
 static/source/unoembindhelpers/PrimaryBindings.cxx |6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

New commits:
commit ba70a8756361a0659a63a75a7c534d4442d69b23
Author: Stephan Bergmann 
AuthorDate: Thu Mar 7 15:09:00 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Thu Mar 7 18:38:34 2024 +0100

Fix Embind'ing of UNO Any getter for sequences

Change-Id: I5c53cb1d244731dac8f9e3f4797a7a155b9a9afa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164541
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann 

diff --git a/static/source/unoembindhelpers/PrimaryBindings.cxx 
b/static/source/unoembindhelpers/PrimaryBindings.cxx
index 51048dc3edf4..2e5ecac00054 100644
--- a/static/source/unoembindhelpers/PrimaryBindings.cxx
+++ b/static/source/unoembindhelpers/PrimaryBindings.cxx
@@ -306,7 +306,11 @@ EMSCRIPTEN_BINDINGS(PrimaryBindings)
 return 
emscripten::val(*o3tl::forceAccess(self));
 case css::uno::TypeClass_SEQUENCE:
 {
-emscripten::internal::WireTypePack 
argv(const_cast(self.getValue()));
+auto const seq = *static_cast(self.getValue());
+auto const copy = std::malloc(sizeof(uno_Sequence*));
+*static_cast(copy) = seq;
+osl_atomic_increment(&seq->nRefCount);
+emscripten::internal::WireTypePack argv(std::move(copy));
 return emscripten::val::take_ownership(
 _emval_take_value(getTypeId(self.getValueType()), 
argv));
 }


core.git: sw/source

2024-03-07 Thread Jonah Janzen (via logerrit)
 sw/source/core/inc/UndoTable.hxx|5 +
 sw/source/core/inc/unoevent.hxx |6 ++
 sw/source/core/inc/unofield.hxx |5 +
 sw/source/core/inc/unoflatpara.hxx  |5 +
 sw/source/core/inc/unofldmid.h  |6 ++
 sw/source/core/inc/unofootnote.hxx  |5 +
 sw/source/core/inc/unoidx.hxx   |6 ++
 sw/source/core/inc/unolinebreak.hxx |5 +
 sw/source/core/inc/unometa.hxx  |5 +
 sw/source/core/inc/unoparaframeenum.hxx |5 +
 sw/source/core/inc/unoport.hxx  |6 ++
 sw/source/core/inc/unorefmark.hxx   |5 +
 sw/source/core/inc/unosection.hxx   |5 +
 sw/source/core/inc/unotextmarkup.hxx|5 +
 sw/source/core/inc/viewimp.hxx  |5 ++---
 sw/source/core/inc/visiturl.hxx |5 +
 sw/source/core/inc/wrong.hxx|5 +
 17 files changed, 22 insertions(+), 67 deletions(-)

New commits:
commit b117f7d42c7c8bce12d61c01b92b8af4e9aa70b1
Author: Jonah Janzen 
AuthorDate: Wed Mar 6 19:40:14 2024 -0700
Commit: Ilmari Lauhakangas 
CommitDate: Thu Mar 7 19:13:48 2024 +0100

tdf#143148 Use #pragma once instead of include guards

Uses #pragma once in several files under sw/source/core/inc.

Change-Id: I3052462232665a4efa301afd51e9f64fa3567c44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164517
Tested-by: Jenkins
Tested-by: Ilmari Lauhakangas 
Reviewed-by: Ilmari Lauhakangas 

diff --git a/sw/source/core/inc/UndoTable.hxx b/sw/source/core/inc/UndoTable.hxx
index 29850d2f07e2..40d4d0547b6a 100644
--- a/sw/source/core/inc/UndoTable.hxx
+++ b/sw/source/core/inc/UndoTable.hxx
@@ -17,8 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#ifndef INCLUDED_SW_SOURCE_CORE_INC_UNDOTABLE_HXX
-#define INCLUDED_SW_SOURCE_CORE_INC_UNDOTABLE_HXX
+#pragma once
 
 #include 
 #include 
@@ -424,6 +423,4 @@ public:
 virtual SwRewriter GetRewriter() const override;
 };
 
-#endif // INCLUDED_SW_SOURCE_CORE_INC_UNDOTABLE_HXX
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/inc/unoevent.hxx b/sw/source/core/inc/unoevent.hxx
index 4906f447f685..ddf7b0713770 100644
--- a/sw/source/core/inc/unoevent.hxx
+++ b/sw/source/core/inc/unoevent.hxx
@@ -16,8 +16,8 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
-#ifndef INCLUDED_SW_SOURCE_CORE_INC_UNOEVENT_HXX
-#define INCLUDED_SW_SOURCE_CORE_INC_UNOEVENT_HXX
+
+#pragma once
 
 #include 
 
@@ -90,6 +90,4 @@ private:
 virtual sal_uInt16 getMacroItemWhich() const override;
 };
 
-#endif
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/inc/unofield.hxx b/sw/source/core/inc/unofield.hxx
index 313185a0001b..3224db126fca 100644
--- a/sw/source/core/inc/unofield.hxx
+++ b/sw/source/core/inc/unofield.hxx
@@ -17,8 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#ifndef INCLUDED_SW_SOURCE_CORE_INC_UNOFIELD_HXX
-#define INCLUDED_SW_SOURCE_CORE_INC_UNOFIELD_HXX
+#pragma once
 
 #include 
 #include 
@@ -224,6 +223,4 @@ public:
 
 };
 
-#endif
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/inc/unoflatpara.hxx 
b/sw/source/core/inc/unoflatpara.hxx
index 9fd768d277a9..30631fabae6a 100644
--- a/sw/source/core/inc/unoflatpara.hxx
+++ b/sw/source/core/inc/unoflatpara.hxx
@@ -17,8 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#ifndef INCLUDED_SW_SOURCE_CORE_INC_UNOFLATPARA_HXX
-#define INCLUDED_SW_SOURCE_CORE_INC_UNOFLATPARA_HXX
+#pragma once
 
 #include 
 
@@ -133,6 +132,4 @@ private:
 SwNodeOffset mnEndNode;// used for non-automatic mode
 };
 
-#endif
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/inc/unofldmid.h b/sw/source/core/inc/unofldmid.h
index 8c1838f45636..b0ae0cea1644 100644
--- a/sw/source/core/inc/unofldmid.h
+++ b/sw/source/core/inc/unofldmid.h
@@ -16,8 +16,8 @@
  *   except in compliance with the License. You may obtain a copy of
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
-#ifndef INCLUDED_SW_SOURCE_CORE_INC_UNOFLDMID_H
-#define INCLUDED_SW_SOURCE_CORE_INC_UNOFLDMID_H
+
+#pragma once
 
 // mapping of the properties on the descriptor
 #define FIELD_PROP_PAR1 10
@@ -53,6 +53,4 @@
 
 #define FIELD_PROP_USHORT3  38
 
-#endif
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/inc/unofootnote.hxx 
b/sw/source/core/inc/unofootnote.hxx
index 23f22bee2cd3..a7498a730749 100644
--- a/sw/source/core/inc/unofootnote.hxx
+++ b/sw/source/core/inc/unofootnote.hxx
@@ -17,8 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#ifndef INCLUDED_SW_SOURCE_CORE_INC_UNOFOOTNOTE_HXX
-#define INCLUDED_SW_SOURCE_CORE_INC_UNOFOOTNOTE_

core.git: idl/source solenv/gbuild starmath/inc starmath/source

2024-03-07 Thread Noel Grandin (via logerrit)
 idl/source/objects/types.cxx   |4 +++-
 solenv/gbuild/extensions/pre_MergedLibsList.mk |2 ++
 starmath/inc/mathml/xparsmlbase.hxx|8 
 starmath/source/mathml/export.cxx  |2 +-
 starmath/source/mathml/import.cxx  |4 ++--
 starmath/source/mathml/mathmlexport.cxx|2 +-
 starmath/source/mathml/mathmlimport.cxx|4 ++--
 starmath/source/mathml/xparsmlbase.cxx |   17 +
 8 files changed, 28 insertions(+), 15 deletions(-)

New commits:
commit 87d3f768f3ecded1e1392442181edb287aed9e2e
Author: Noel Grandin 
AuthorDate: Thu Mar 7 13:46:09 2024 +0200
Commit: Noel Grandin 
CommitDate: Thu Mar 7 20:14:37 2024 +0100

add sm to --enable-mergelibs=more

Which means

(1) We need to extend the weak linkage magic for the sfx2 SFX_TYPEMAP
stuff. Just make it unconditional, since it makes no difference for the
individual items.

(2) The initialisation of global const Sequence data in starmath stops
working, because it runs too early. Use function-local static to
initialise it on-demand

Change-Id: Idc397515cd1d9621a06d237606c19acee600081a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164532
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/idl/source/objects/types.cxx b/idl/source/objects/types.cxx
index 1089e929043c..3228e1cce378 100644
--- a/idl/source/objects/types.cxx
+++ b/idl/source/objects/types.cxx
@@ -249,7 +249,9 @@ void SvMetaType::WriteSfxItem(
 
 // write the implementation part
 rOutStm.WriteOString( "#ifdef SFX_TYPEMAP" ) << endl;
-rOutStm.WriteOString( "#if !defined(_WIN32) && 
(defined(DISABLE_DYNLOADING) && (defined(ANDROID) || defined(IOS) || 
defined(EMSCRIPTEN) || defined(LINUX)))" ) << endl;
+rOutStm.WriteOString( "#if defined(_WIN32)" ) << endl;
+rOutStm.WriteOString( "__declspec(selectany)" ) << endl;
+rOutStm.WriteOString( "#else" ) << endl;
 rOutStm.WriteOString( "__attribute__((__weak__))" ) << endl;
 rOutStm.WriteOString( "#endif" ) << endl;
 rOutStm.WriteOString( aTypeName ).WriteOString( aVarName )
diff --git a/solenv/gbuild/extensions/pre_MergedLibsList.mk 
b/solenv/gbuild/extensions/pre_MergedLibsList.mk
index aa925cbc91a8..e558790ed38f 100644
--- a/solenv/gbuild/extensions/pre_MergedLibsList.mk
+++ b/solenv/gbuild/extensions/pre_MergedLibsList.mk
@@ -177,6 +177,8 @@ gb_MERGE_LIBRARY_LIST += \
sdbc2 \
$(call gb_Helper_optional,DBCONNECTIVITY,sdbt) \
slideshow \
+   sm \
+   smd \
$(if $(filter WNT,$(OS)), \
smplmail \
) \
diff --git a/starmath/inc/mathml/xparsmlbase.hxx 
b/starmath/inc/mathml/xparsmlbase.hxx
index 6c645a55e36c..5c06482396ef 100644
--- a/starmath/inc/mathml/xparsmlbase.hxx
+++ b/starmath/inc/mathml/xparsmlbase.hxx
@@ -39,15 +39,15 @@ constexpr sal_Int32 STARMATH_MATHMLHTML_ENTITY_NUMBER = 
2125;
   * Entity names for mathml. Example: &infin -> \u221E;
   * These ones are to be used on import.
   */
-const extern ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>>
-icustomMathmlHtmlEntities;
+const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
+getCustomMathmlHtmlEntities();
 
 /**
   * Entity names for mathml. Example: "\u221E"; -> ∞
   * These ones are to be used on file export.
   */
-const extern ::css::uno::Sequence<::css::beans::Pair<::rtl::OUString, 
::rtl::OUString>>
-icustomMathmlHtmlEntitiesExport;
+const css::uno::Sequence<::css::beans::Pair<::rtl::OUString, ::rtl::OUString>>&
+getCustomMathmlHtmlEntitiesExport();
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/starmath/source/mathml/export.cxx 
b/starmath/source/mathml/export.cxx
index 60328c89dabf..001a31434eaf 100644
--- a/starmath/source/mathml/export.cxx
+++ b/starmath/source/mathml/export.cxx
@@ -299,7 +299,7 @@ bool SmMLExportWrapper::WriteThroughComponentOS(const 
ReferencesetOutputStream(xOutputStream);
 if (m_bUseHTMLMLEntities)
-
xSaxWriter->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntitiesExport);
+
xSaxWriter->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntitiesExport());
 
 // prepare arguments (prepend doc handler to given arguments)
 Sequence aArgs{ Any(xSaxWriter), Any(rPropSet) };
diff --git a/starmath/source/mathml/import.cxx 
b/starmath/source/mathml/import.cxx
index d857e56930d6..ba1f59fa74f9 100644
--- a/starmath/source/mathml/import.cxx
+++ b/starmath/source/mathml/import.cxx
@@ -390,14 +390,14 @@ ErrCode SmMLImportWrapper::ReadThroughComponentIS(
 Reference 
xFastDocHandler(xFilter, UNO_QUERY);
 if (xFastParser)
 {
-
xFastParser->setCustomEntityNames(starmathdatabase::icustomMathmlHtmlEntities);
+
xFastParser->setCustomEntityNames(starmathdatabase::getCustomMathmlHtmlEntities());
 xFastParser-

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: 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: static/source

2024-03-07 Thread Stephan Bergmann (via logerrit)
 static/source/embindmaker/embindmaker.cxx |7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit 2364e6d62d4a95e437981f80ad26ce1c46b8b29e
Author: Stephan Bergmann 
AuthorDate: Thu Mar 7 16:43:48 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Thu Mar 7 21:21:24 2024 +0100

Add $equals to Embind'ing of UNO interfaces

...so one can write foo.$equals(bar.$query) to check for UNO object equality

Change-Id: I727386e833507c86573cf033a1364ff145ed31ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164544
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann 

diff --git a/static/source/embindmaker/embindmaker.cxx 
b/static/source/embindmaker/embindmaker.cxx
index a3558e5b4e04..f0f14b7e31aa 100644
--- a/static/source/embindmaker/embindmaker.cxx
+++ b/static/source/embindmaker/embindmaker.cxx
@@ -958,7 +958,12 @@ SAL_IMPLEMENT_MAIN()
<< cppName(ifc)
<< "> const & the_self) { return "
   
"::com::sun::star::uno::Reference<::com::sun::star::uno::XInterface>(the_"
-  "self); })
";
+  "self); })
"
+  ".function(\"$equals\", 
+[](::com::sun::star::uno::Reference<"
+   << cppName(ifc)
+   << "> const & the_self, "
+  
"::com::sun::star::uno::Reference<::com::sun::star::uno::XInterface> const & "
+  "the_other) { return the_self == the_other; })
";
 if (bases.size() > 1)
 {
 std::set visitedBases;


core.git: sw/qa

2024-03-07 Thread Oliver Specht (via logerrit)
 sw/qa/uitest/data/tdf146356.odt |binary
 sw/qa/uitest/writer_tests8/tdf146356.py |   24 
 2 files changed, 24 insertions(+)

New commits:
commit bfb6904d8c0b054409faf8469752b033d7c2955a
Author: Oliver Specht 
AuthorDate: Wed Mar 6 16:29:33 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Thu Mar 7 21:44:35 2024 +0100

test of tdf#146356

Inserts a paragraph in front of a protected table of contents
and inserts text into the new paragraph

Change-Id: I951fa2bea63dc2b5721876268aa27a8df579b210
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164480
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/sw/qa/uitest/data/tdf146356.odt b/sw/qa/uitest/data/tdf146356.odt
new file mode 100755
index ..a143986a1423
Binary files /dev/null and b/sw/qa/uitest/data/tdf146356.odt differ
diff --git a/sw/qa/uitest/writer_tests8/tdf146356.py 
b/sw/qa/uitest/writer_tests8/tdf146356.py
new file mode 100755
index ..9fd9631d4794
--- /dev/null
+++ b/sw/qa/uitest/writer_tests8/tdf146356.py
@@ -0,0 +1,24 @@
+# -*- 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: sd/source svx/source

2024-03-07 Thread Oliver Specht (via logerrit)
 sd/source/ui/func/fuformatpaintbrush.cxx |7 ++-
 svx/source/svdraw/svdedxv.cxx|4 +++-
 2 files changed, 9 insertions(+), 2 deletions(-)

New commits:
commit dbb05dc818afb08b3e05ac62bd92389a5cf90fa7
Author: Oliver Specht 
AuthorDate: Thu Mar 7 12:47:22 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Thu Mar 7 21:48:37 2024 +0100

tdf#159726 Improve Clone formatting

Paragraph attributes and lists are copied if there is no source
selection or the source selection includes at least a full paragraph.
They are only applied to an empty or a paragraph selection.
As in tdf#160069 requested the clone formatting function is only enabled
in text edit mode.

Change-Id: I789402a7928837bb85ec941fd6f958d12585ac40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164533
Tested-by: Thorsten Behrens 
Reviewed-by: Thorsten Behrens 

diff --git a/sd/source/ui/func/fuformatpaintbrush.cxx 
b/sd/source/ui/func/fuformatpaintbrush.cxx
index 930e75233f32..89eecc13f989 100644
--- a/sd/source/ui/func/fuformatpaintbrush.cxx
+++ b/sd/source/ui/func/fuformatpaintbrush.cxx
@@ -45,6 +45,9 @@ bool ShouldPasteParaFormatPerSelection(const OutlinerView* 
pOLV)
 if(!pOLV)
 return true;
 
+if(!pOLV->GetEditView().HasSelection())
+return true;
+
 if(!pOLV->GetEditView().IsSelectionWithinSinglePara())
 return false;
 
@@ -286,7 +289,9 @@ void FuFormatPaintBrush::Paste( bool bNoCharacterFormats, 
bool bNoParagraphForma
 if( rMarkList.GetMarkCount() == 1 )
 {
 SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
-if( pObj && 
SdrObjEditView::SupportsFormatPaintbrush(pObj->GetObjInventor(),pObj->GetObjIdentifier())
 )
+const OutlinerView* pOLV = 
rDrawViewShell.GetDrawView()->GetTextEditOutlinerView();
+if( pObj && pOLV &&
+
SdrObjEditView::SupportsFormatPaintbrush(pObj->GetObjInventor(),pObj->GetObjIdentifier())
 )
 return;
 }
 rSet.DisableItem( SID_FORMATPAINTBRUSH );
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index fb130a16a212..c0e1b715ea31 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -2896,7 +2896,9 @@ sal_Int32 
SdrObjEditView::TakeFormatPaintBrush(std::shared_ptr& rFor
 
 OutlinerView* pOLV = GetTextEditOutlinerView();
 
-bool isParaSelection = pOLV ? pOLV->GetEditView().IsSelectionFullPara() : 
false;
+bool isParaSelection
+= pOLV ? !pOLV->GetEditView().HasSelection() || 
pOLV->GetEditView().IsSelectionFullPara()
+   : false;
 rFormatSet = std::make_shared(GetModel().GetItemPool(),
   GetFormatRangeImpl(pOLV != 
nullptr, isParaSelection));
 if (pOLV)


Re: VCL selection

2024-03-07 Thread Gwyn Ciesla
Based on what I'm reading here, I think gtk4/a11y state isn't yet ready for 
general use. Given that gtk3 isn't going anywhere soon AFAIK, we can wait to 
use gtk4 as a default.

Thank you everyone for the information!


-- 
Gwyn Ciesla
she/her/hers
 
in your fear, seek only peace 
in your fear, seek only love
-d. bowie


Sent with Proton Mail secure email.

On Thursday, March 7th, 2024 at 3:40 PM, Michael Weghorn  
wrote:

> On 2024-03-07 09:33, Caolán McNamara wrote:
> 

> > On Wed, 2024-03-06 at 21:58 +, Gwyn Ciesla wrote:
> > 

> > > Interesting. Would you recommend waiting to set gtk4 as default, or
> > > would doing so spur correction of extant issues?
> > 

> > I don't really know. I'm not actively working on it anymore. IMO the
> > a11y issues are more of an upstream gtk issue in the sense of a lack of
> > a route to complete a11y integration, Michael Weghorn has far more of a
> > grasp of the current state of that.
> 

> 

> For gtk4 a11y, as Caolán mentioned, this currently lacks upstream Gtk
> API to implement what's needed, see for example the discussion in these
> Gtk issues:
> 

> https://gitlab.gnome.org/GNOME/gtk/-/issues/6272
> https://gitlab.gnome.org/GNOME/gtk/-/issues/6204
> https://gitlab.gnome.org/GNOME/gtk/-/issues/6269
> https://gitlab.gnome.org/GNOME/gtk/-/issues/6197
> 

> The latter mentions a potential approach (in my perspective this would
> feel more like a workaround ) to implement the low-level platform a11y
> API (AT-SPI) directly in LO for things like the document content instead
> of using (non-existing) Gtk API, but there are open questions for that
> approach also.

signature.asc
Description: OpenPGP digital signature


Re: VCL selection

2024-03-07 Thread Michael Weghorn

On 2024-03-06 21:00, Gwyn Ciesla wrote:
Fedora is looking at changing the default VCL plugin used for 
the interface for various desktop environments, specifically gtk4 for 
GNOME and kf6 for KDE. I'm able to choose the plugin by settting 
SAL_USE_VCL_PLUGIN, but when I have several installed and remove gtk3 it 
defaults to X11, so I'm not sure how it makes that choice.


Julien's email contains a code pointer.

To explicitly mention it here: For KDE Plasma 6, the kf6 VCL plugin is 
already selected by default.


(see commit

commit 06dbdb0f5b618ce01a79f07dc78e8049c419cc5f
Author: Michael Weghorn 
Date:   Thu Jun 22 08:56:36 2023 +0200

Use kf6 VCL plugin by default on Plasma 6
)


OpenPGP_signature.asc
Description: OpenPGP digital signature


core.git: static/source udkapi/org unotest/source

2024-03-07 Thread Stephan Bergmann (via logerrit)
 static/source/embindmaker/embindmaker.cxx  |4 +++-
 static/source/unoembindhelpers/PrimaryBindings.cxx |   10 +-
 udkapi/org/libreoffice/embindtest/XTest.idl|2 ++
 unotest/source/embindtest/embindtest.cxx   |   14 ++
 unotest/source/embindtest/embindtest.js|   10 ++
 5 files changed, 38 insertions(+), 2 deletions(-)

New commits:
commit da49e5edb2fba9e99ed7d58952dc761b0804e7fc
Author: Stephan Bergmann 
AuthorDate: Thu Mar 7 17:10:25 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Thu Mar 7 23:13:31 2024 +0100

Add Embind'ing of UNO Any getter for interfaces

Change-Id: Ia56439e0e99c193c7cc56676677df2c671278e24
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164554
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann 

diff --git a/static/source/embindmaker/embindmaker.cxx 
b/static/source/embindmaker/embindmaker.cxx
index f0f14b7e31aa..4241d10b1575 100644
--- a/static/source/embindmaker/embindmaker.cxx
+++ b/static/source/embindmaker/embindmaker.cxx
@@ -975,7 +975,9 @@ SAL_IMPLEMENT_MAIN()
 }
 dumpAttributes(cppOut, mgr, ifc, ifcEnt, {});
 dumpMethods(cppOut, mgr, ifc, ifcEnt, {});
-cppOut << ";
";
+cppOut << ";
"
+  "
::unoembindhelpers::registerUnoType<::com::sun::star::uno::Reference<"
+   << cppName(ifc) << ">>();
";
 dumpRegisterFunctionEpilog(cppOut, n);
 for (auto const& attr : ifcEnt->getDirectAttributes())
 {
diff --git a/static/source/unoembindhelpers/PrimaryBindings.cxx 
b/static/source/unoembindhelpers/PrimaryBindings.cxx
index 2e5ecac00054..985ebacc52b2 100644
--- a/static/source/unoembindhelpers/PrimaryBindings.cxx
+++ b/static/source/unoembindhelpers/PrimaryBindings.cxx
@@ -334,7 +334,15 @@ EMSCRIPTEN_BINDINGS(PrimaryBindings)
 _emval_take_value(getTypeId(self.getValueType()), 
argv));
 }
 case css::uno::TypeClass_INTERFACE:
-return emscripten::val::undefined(); //TODO
+{
+auto const ifc = *static_cast(self.getValue());
+auto const copy = 
std::malloc(sizeof(css::uno::XInterface*));
+*static_cast(copy) = ifc;
+ifc->acquire();
+emscripten::internal::WireTypePack argv(std::move(copy));
+return emscripten::val::take_ownership(
+_emval_take_value(getTypeId(self.getValueType()), 
argv));
+}
 default:
 O3TL_UNREACHABLE;
 };
diff --git a/udkapi/org/libreoffice/embindtest/XTest.idl 
b/udkapi/org/libreoffice/embindtest/XTest.idl
index e5b5a4535982..45042663cf47 100644
--- a/udkapi/org/libreoffice/embindtest/XTest.idl
+++ b/udkapi/org/libreoffice/embindtest/XTest.idl
@@ -76,6 +76,8 @@ interface XTest {
 boolean isAnyStruct([in] any value);
 any getAnyException();
 boolean isAnyException([in] any value);
+any getAnyInterface();
+boolean isAnyInterface([in] any value);
 sequence getSequenceBoolean();
 boolean isSequenceBoolean([in] sequence value);
 sequence getSequenceByte();
diff --git a/unotest/source/embindtest/embindtest.cxx 
b/unotest/source/embindtest/embindtest.cxx
index 1f8b916fbbf1..d437f3907e3a 100644
--- a/unotest/source/embindtest/embindtest.cxx
+++ b/unotest/source/embindtest/embindtest.cxx
@@ -10,6 +10,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -283,6 +284,19 @@ class Test : public 
cppu::WeakImplHelper
&& e.m3 == u"hä";
 }
 
+css::uno::Any SAL_CALL getAnyInterface() override
+{
+return 
css::uno::Any(css::uno::Reference(this));
+}
+
+sal_Bool SAL_CALL isAnyInterface(css::uno::Any const& value) override
+{
+return value.getValueType() == 
cppu::UnoType::get()
+   && 
*o3tl::forceAccess>(
+  value)
+  == static_cast(this);
+}
+
 css::uno::Sequence SAL_CALL getSequenceBoolean() override
 {
 return { true, true, false };
diff --git a/unotest/source/embindtest/embindtest.js 
b/unotest/source/embindtest/embindtest.js
index c661589683f6..e238af32c003 100644
--- a/unotest/source/embindtest/embindtest.js
+++ b/unotest/source/embindtest/embindtest.js
@@ -302,6 +302,16 @@ Module.addOnPostRun(function() {
 //TODO: console.assert(test.isAnyException(a));
 //TODO: a.delete();
 }
+{
+let v = test.getAnyInterface();
+console.log(v);
+console.assert(v.get().$equals(test.$query()));
+console.assert(test.isAnyInterface(v));
+v.delete();
+//TODO: let a = new Module.Any(test, css.uno.TypeClass.INTERFACE);
+//TODO: console.assert(test.isAnyInterface(a));
+//TODO: a.delete();
+}
   

core.git: vcl/source

2024-03-07 Thread Patrick Luby (via logerrit)
 vcl/source/window/paint.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit ff113b34dd6f54765995440cbedd27483fadb844
Author: Patrick Luby 
AuthorDate: Thu Mar 7 17:22:35 2024 -0500
Commit: Patrick Luby 
CommitDate: Fri Mar 8 00:57:20 2024 +0100

tdf#159996 use transparent alpha mask for output device

Since commit 81994cb2b8b32453a92bcb011830fcb884f22ff3, fixed text
needs to be drawn to an output device with a transparent alpha
mask.

Change-Id: I2036e8c6c9133b1caceb24aeca40f04524c16b23
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164556
Tested-by: Jenkins
Reviewed-by: Patrick Luby 

diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index 7cb1c969a983..5996b818d4bb 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -1528,7 +1528,7 @@ void Window::ImplPaintToDevice( OutputDevice* 
i_pTargetOutDev, const Point& i_rP
 VclPtrInstance pMaskedDevice(*i_pTargetOutDev,
 DeviceFormat::WITH_ALPHA);
 
-pMaskedDevice->SetOutputSizePixel( GetOutputSizePixel() );
+pMaskedDevice->SetOutputSizePixel( GetOutputSizePixel(), true, true );
 pMaskedDevice->EnableRTL( IsRTLEnabled() );
 aMtf.WindStart();
 aMtf.Play(*pMaskedDevice);


core.git: sd/source

2024-03-07 Thread Samuel Mehrbrodt (via logerrit)
 sd/source/ui/func/fuformatpaintbrush.cxx |7 ---
 1 file changed, 7 deletions(-)

New commits:
commit 9476f5ae4bff9817b9e699f7abea5690ec7ffd87
Author: Samuel Mehrbrodt 
AuthorDate: Thu Mar 7 22:51:51 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Fri Mar 8 04:33:29 2024 +0100

tdf#160071 Don't clone formatting to whole boxes

when clicking into an empty area of that box

Change-Id: I383f1584f446e29454eda2177c8bae0f6587e42d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164555
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/sd/source/ui/func/fuformatpaintbrush.cxx 
b/sd/source/ui/func/fuformatpaintbrush.cxx
index 89eecc13f989..d66e00466072 100644
--- a/sd/source/ui/func/fuformatpaintbrush.cxx
+++ b/sd/source/ui/func/fuformatpaintbrush.cxx
@@ -145,13 +145,6 @@ bool FuFormatPaintBrush::MouseButtonDown(const MouseEvent& 
rMEvt)
 }
 
 unmarkimpl( mpView );
-
-if (aVEvt.mpObj)
-{
-sal_uInt16 nHitLog = sal_uInt16 ( 
mpWindow->PixelToLogic(Size(HITPIX,0)).Width() );
-mpView->MarkObj(mpWindow->PixelToLogic( rMEvt.GetPosPixel() ), 
nHitLog, false/*bToggle*/);
-return true;
-}
 }
 return false;
 }


core.git: Branch 'feature/cib_contract49' - 6 commits - sd/source svx/source sw/qa sw/source

2024-03-07 Thread Samuel Mehrbrodt (via logerrit)
 sd/source/ui/func/fuformatpaintbrush.cxx|   11 -
 svx/source/svdraw/svdedxv.cxx   |4 
 sw/qa/extras/uiwriter/uiwriter6.cxx |   98 
 sw/source/core/doc/DocumentContentOperationsManager.cxx |   86 +++---
 sw/source/core/txtnode/txatritr.cxx |9 -
 sw/source/uibase/shells/textsh.cxx  |   15 ++
 6 files changed, 189 insertions(+), 34 deletions(-)

New commits:
commit 8d5440ff250cc5c9f071f312f5d6d48c91cdb068
Author: Samuel Mehrbrodt 
AuthorDate: Thu Mar 7 22:51:51 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Fri Mar 8 04:33:50 2024 +0100

tdf#160071 Don't clone formatting to whole boxes

when clicking into an empty area of that box

Change-Id: I383f1584f446e29454eda2177c8bae0f6587e42d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164555
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens 

diff --git a/sd/source/ui/func/fuformatpaintbrush.cxx 
b/sd/source/ui/func/fuformatpaintbrush.cxx
index ef1ea258c78f..d4476f4b7ca6 100644
--- a/sd/source/ui/func/fuformatpaintbrush.cxx
+++ b/sd/source/ui/func/fuformatpaintbrush.cxx
@@ -146,13 +146,6 @@ bool FuFormatPaintBrush::MouseButtonDown(const MouseEvent& 
rMEvt)
 }
 
 unmarkimpl( mpView );
-
-if (aVEvt.mpObj)
-{
-sal_uInt16 nHitLog = sal_uInt16 ( 
mpWindow->PixelToLogic(Size(HITPIX,0)).Width() );
-mpView->MarkObj(mpWindow->PixelToLogic( rMEvt.GetPosPixel() ), 
nHitLog, false/*bToggle*/);
-return true;
-}
 }
 return false;
 }
commit 792b099e9de18f7c6e2099199452827a4b8401bf
Author: Oliver Specht 
AuthorDate: Thu Mar 7 12:47:22 2024 +0100
Commit: Thorsten Behrens 
CommitDate: Fri Mar 8 04:32:52 2024 +0100

tdf#159726 Improve Clone formatting

Paragraph attributes and lists are copied if there is no source
selection or the source selection includes at least a full paragraph.
They are only applied to an empty or a paragraph selection.
As in tdf#160069 requested the clone formatting function is only enabled
in text edit mode.

Change-Id: I789402a7928837bb85ec941fd6f958d12585ac40
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164533
Tested-by: Thorsten Behrens 
Reviewed-by: Thorsten Behrens 
(cherry picked from commit 456d0216aae69c39b12a5df749525589871272a7)

diff --git a/sd/source/ui/func/fuformatpaintbrush.cxx 
b/sd/source/ui/func/fuformatpaintbrush.cxx
index 9bbd30939d53..ef1ea258c78f 100644
--- a/sd/source/ui/func/fuformatpaintbrush.cxx
+++ b/sd/source/ui/func/fuformatpaintbrush.cxx
@@ -290,7 +290,9 @@ void FuFormatPaintBrush::Paste( bool bNoCharacterFormats, 
bool bNoParagraphForma
 if( rMarkList.GetMarkCount() == 1 )
 {
 SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
-if( pObj && 
SdrObjEditView::SupportsFormatPaintbrush(pObj->GetObjInventor(),pObj->GetObjIdentifier())
 )
+const OutlinerView* pOLV = 
rDrawViewShell.GetDrawView()->GetTextEditOutlinerView();
+if( pObj && pOLV &&
+
SdrObjEditView::SupportsFormatPaintbrush(pObj->GetObjInventor(),pObj->GetObjIdentifier())
 )
 return;
 }
 rSet.DisableItem( SID_FORMATPAINTBRUSH );
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 6955e52b3fc7..7a8d71e0d34b 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -2814,7 +2814,9 @@ sal_Int32 
SdrObjEditView::TakeFormatPaintBrush(std::shared_ptr& rFor
 
 OutlinerView* pOLV = GetTextEditOutlinerView();
 
-bool isParaSelection = pOLV ? pOLV->GetEditView().IsSelectionFullPara() : 
false;
+bool isParaSelection
+= pOLV ? !pOLV->GetEditView().HasSelection() || 
pOLV->GetEditView().IsSelectionFullPara()
+   : false;
 rFormatSet = std::make_shared(GetModel().GetItemPool(),
   GetFormatRangeImpl(pOLV != 
nullptr, isParaSelection));
 if (pOLV)
commit 3c3022ba86cedc083d2f22c2517c6de9a9bef676
Author: Stephan Bergmann 
AuthorDate: Mon Nov 6 15:44:46 2023 +0100
Commit: Thorsten Behrens 
CommitDate: Fri Mar 8 04:29:11 2024 +0100

Fix SwLanguageIterator::Next for RES_TXTATR_AUTOFMT

...following advice by mstahl, as discussed in the comments starting at


"tdf#157667 sw track changes: fix cycle case on multiple words", which had
started to cause

> /sw/inc/txatritr.hxx:69:18: runtime error: downcast of address 
0x603001b45d90 which does not point to an object of type 'const SvxLanguageItem'
> 0x603001b45d90: note: object is of type 'SwFormatAutoFormat'
>  00 00 00 00  f0 0f 53 4e 3b 7f 00 00  02 00 00 00 32 00 90 be  20 31 36 
00 80 60 00 00  c0 5d b4 01
>   ^~~
>

core.git: filter/source

2024-03-07 Thread Steven Casey (SMCode) (via logerrit)
 filter/source/msfilter/viscache.hxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit bf35f2b36fc00f9b37397422b2ee425c6a697540
Author: Steven Casey (SMCode) 
AuthorDate: Wed Mar 6 22:42:33 2024 -0800
Commit: Ilmari Lauhakangas 
CommitDate: Fri Mar 8 07:06:05 2024 +0100

tdf#114441 change use of sal_uLong to better integer types in filter

Reason for changing nAdv:
I chose sal_uInt32 since the value of nAdv is passed to the variable
nAdvFlags which is of type sal_uInt32, keeping types consistent.

Change-Id: I116d41af58d3d2d024ba63d4186a931a742b1003
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164518
Tested-by: Ilmari Lauhakangas 
Reviewed-by: Ilmari Lauhakangas 

diff --git a/filter/source/msfilter/viscache.hxx 
b/filter/source/msfilter/viscache.hxx
index 5111969b3f9e..524510583190 100644
--- a/filter/source/msfilter/viscache.hxx
+++ b/filter/source/msfilter/viscache.hxx
@@ -44,7 +44,7 @@ public:
 pMtf.reset( new GDIMetaFile( rMtf ) );
 }
 void SetAspect( sal_uInt16 nAsp ) { nAspect = nAsp; }
-void SetAdviseFlags( sal_uLong nAdv ) { nAdvFlags = nAdv; }
+void SetAdviseFlags( sal_uInt32 nAdv ) { nAdvFlags = nAdv; 
}
 void SetSize( const Size & rSize ) { aSize = rSize; }
 void Write( SvStream & rStm );
 };


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

2024-03-07 Thread Patrick Luby (via logerrit)
 vcl/source/window/paint.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 358eee88dd0af37ffc83c3abd9633593b758a5be
Author: Patrick Luby 
AuthorDate: Thu Mar 7 17:22:35 2024 -0500
Commit: Noel Grandin 
CommitDate: Fri Mar 8 07:05:50 2024 +0100

tdf#159996 use transparent alpha mask for output device

Since commit 81994cb2b8b32453a92bcb011830fcb884f22ff3, fixed text
needs to be drawn to an output device with a transparent alpha
mask.

Change-Id: I2036e8c6c9133b1caceb24aeca40f04524c16b23
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164556
Tested-by: Jenkins
Reviewed-by: Patrick Luby 
(cherry picked from commit 73c14fcf97a1dcc9c95c98f9223449957b0b4963)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164499
Reviewed-by: Noel Grandin 

diff --git a/vcl/source/window/paint.cxx b/vcl/source/window/paint.cxx
index a98703ca255b..deb4bc33 100644
--- a/vcl/source/window/paint.cxx
+++ b/vcl/source/window/paint.cxx
@@ -1523,7 +1523,7 @@ void Window::ImplPaintToDevice( OutputDevice* 
i_pTargetOutDev, const Point& i_rP
 VclPtrInstance pMaskedDevice(*i_pTargetOutDev,
 DeviceFormat::WITH_ALPHA);
 
-pMaskedDevice->SetOutputSizePixel( GetOutputSizePixel() );
+pMaskedDevice->SetOutputSizePixel( GetOutputSizePixel(), true, true );
 pMaskedDevice->EnableRTL( IsRTLEnabled() );
 aMtf.WindStart();
 aMtf.Play(*pMaskedDevice);


core.git: comphelper/qa comphelper/source configmgr/source connectivity/source editeng/source include/comphelper include/editeng include/jvmfwk include/sfx2 include/svl include/svtools include/test jv

2024-03-07 Thread Noel Grandin (via logerrit)
 comphelper/qa/string/test_string.cxx|8 ++---
 comphelper/source/misc/string.cxx   |8 ++---
 configmgr/source/access.cxx |9 +++---
 connectivity/source/drivers/postgresql/pq_tools.cxx |   18 ++--
 connectivity/source/drivers/postgresql/pq_tools.hxx |2 -
 editeng/source/misc/svxacorr.cxx|2 -
 include/comphelper/string.hxx   |2 -
 include/editeng/svxacorr.hxx|2 -
 include/jvmfwk/framework.hxx|2 -
 include/sfx2/frmhtmlw.hxx   |8 ++---
 include/svl/urihelper.hxx   |2 -
 include/svtools/htmlout.hxx |6 ++--
 include/test/screenshot_test.hxx|2 -
 jvmfwk/source/framework.cxx |   30 
 linguistic/source/misc.cxx  |1 
 sc/source/filter/html/htmlexp.cxx   |7 ++--
 sc/source/ui/dbgui/csvgrid.cxx  |6 ++--
 sc/source/ui/docshell/impex.cxx |   12 
 sc/source/ui/inc/csvgrid.hxx|2 -
 sc/source/ui/inc/impex.hxx  |4 +-
 sd/source/filter/html/htmlex.cxx|2 -
 sdext/source/pdfimport/inc/pdfiprocessor.hxx|2 -
 sdext/source/pdfimport/tree/pdfiprocessor.cxx   |7 ++--
 sfx2/source/bastyp/frmhtmlw.cxx |6 ++--
 stoc/source/uriproc/UriReferenceFactory.cxx |   16 +-
 svl/source/misc/urihelper.cxx   |6 ++--
 svl/source/numbers/zformat.cxx  |4 +-
 svtools/source/svhtml/htmlout.cxx   |   17 ++-
 sw/source/core/doc/SwStyleNameMapper.cxx|5 ++-
 sw/source/filter/html/htmldrawwriter.cxx|2 -
 sw/source/filter/html/htmlfldw.cxx  |4 +-
 sw/source/filter/html/htmlflywriter.cxx |   10 +++---
 sw/source/filter/html/htmlforw.cxx  |2 -
 sw/source/filter/html/htmlftn.cxx   |2 -
 sw/source/filter/html/wrthtml.hxx   |4 +-
 test/source/screenshot_test.cxx |   28 --
 ucbhelper/source/client/proxydecider.cxx|   18 ++--
 vcl/inc/salframe.hxx|2 -
 vcl/inc/textlayout.hxx  |2 -
 vcl/source/app/salvtables.cxx   |   12 
 vcl/source/text/textlayout.cxx  |6 ++--
 41 files changed, 155 insertions(+), 135 deletions(-)

New commits:
commit 7840effb1d5efd1fd7f6798c7c504b05292a7793
Author: Noel Grandin 
AuthorDate: Thu Feb 22 12:59:26 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri Mar 8 07:06:13 2024 +0100

use more string_view

found by tweaking the stringview loplugin

Change-Id: I92203ba99642bef7951ffa146184c5562cb31d09
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163744
Tested-by: Jenkins
Reviewed-by: Noel Grandin 

diff --git a/comphelper/qa/string/test_string.cxx 
b/comphelper/qa/string/test_string.cxx
index 5d25a64da887..ac79148a4c48 100644
--- a/comphelper/qa/string/test_string.cxx
+++ b/comphelper/qa/string/test_string.cxx
@@ -197,15 +197,15 @@ void TestString::testReverseString()
 }
 
 void TestString::testReverseCodePoints() {
-CPPUNIT_ASSERT_EQUAL(OUString(), 
comphelper::string::reverseCodePoints(""));
-CPPUNIT_ASSERT_EQUAL(OUString("cba"), 
comphelper::string::reverseCodePoints("abc"));
+CPPUNIT_ASSERT_EQUAL(OUString(), 
comphelper::string::reverseCodePoints(u""));
+CPPUNIT_ASSERT_EQUAL(OUString("cba"), 
comphelper::string::reverseCodePoints(u"abc"));
 CPPUNIT_ASSERT_EQUAL(
 u"w\U0010v\U0001u"_ustr,
-
comphelper::string::reverseCodePoints(u"u\U0001v\U0010w"_ustr));
+comphelper::string::reverseCodePoints(u"u\U0001v\U0010w"));
 static sal_Unicode const malformed[] = {0xDC00, 0xD800};
 CPPUNIT_ASSERT_EQUAL(
 u"\U0001"_ustr,
-comphelper::string::reverseCodePoints(OUString(malformed, 
std::size(malformed;
+comphelper::string::reverseCodePoints(std::u16string_view(malformed, 
std::size(malformed;
 }
 
 void TestString::testSplit()
diff --git a/comphelper/source/misc/string.cxx 
b/comphelper/source/misc/string.cxx
index e17951fc43be..1b9137e473c0 100644
--- a/comphelper/source/misc/string.cxx
+++ b/comphelper/source/misc/string.cxx
@@ -525,11 +525,11 @@ OUString reverseString(std::u16string_view rStr)
 return sBuf.makeStringAndClear();
 }
 
-OUString reverseCodePoints(OUString const & str) {
-auto const len = str.getLength();
+OUString reverseCodePoints(std::u16string_view str) {
+auto const len = str.size();
 OUStringBuffer buf(len);
-for (auto i = len; 

Re: VCL selection

2024-03-07 Thread Michael Weghorn

On 2024-03-07 09:33, Caolán McNamara wrote:

On Wed, 2024-03-06 at 21:58 +, Gwyn Ciesla wrote:

Interesting. Would you recommend waiting to set gtk4 as default, or
would doing so spur correction of extant issues?


I don't really know. I'm not actively working on it anymore. IMO the
a11y issues are more of an upstream gtk issue in the sense of a lack of
a route to complete a11y integration, Michael Weghorn has far more of a
grasp of the current state of that.


For gtk4 a11y, as Caolán mentioned, this currently lacks upstream Gtk 
API to implement what's needed, see for example the discussion in these 
Gtk issues:


https://gitlab.gnome.org/GNOME/gtk/-/issues/6272
https://gitlab.gnome.org/GNOME/gtk/-/issues/6204
https://gitlab.gnome.org/GNOME/gtk/-/issues/6269
https://gitlab.gnome.org/GNOME/gtk/-/issues/6197

The latter mentions a potential approach (in my perspective this would 
feel more like a workaround ) to implement the low-level platform a11y 
API (AT-SPI) directly in LO for things like the document content instead 
of using (non-existing) Gtk API, but there are open questions for that 
approach also.


OpenPGP_signature.asc
Description: OpenPGP digital signature


32 bit build failure (smb, narrowing)

2024-03-07 Thread Rene Engelhard

Hi,

see 
https://buildd.debian.org/status/fetch.php?pkg=libreoffice&arch=i386&ver=4%3A24.2.2~rc1-1&stamp=1709881487&raw=1:


/<>/sal/osl/unx/file.cxx: In function ‘void 
osl_file_adjustLockFlags(const rtl::OString&, int*, sal_uInt32*)’:
/<>/sal/osl/unx/file.cxx:71:26: error: narrowing conversion 
of ‘4283649346’ from ‘unsigned int’ to ‘int’ [-Wnarrowing]

   71 | #define CIFS_SUPER_MAGIC 0xFF534D42
  |  ^~
/<>/sal/osl/unx/file.cxx:795:14: note: in expansion of 
macro ‘CIFS_SUPER_MAGIC’

  795 | case CIFS_SUPER_MAGIC:
  |  ^~~~
/<>/sal/osl/unx/file.cxx:72:26: error: narrowing conversion 
of ‘4266872130’ from ‘unsigned int’ to ‘int’ [-Wnarrowing]

   72 | #define SMB2_SUPER_MAGIC 0xFE534D42
  |  ^~
/<>/sal/osl/unx/file.cxx:796:14: note: in expansion of 
macro ‘SMB2_SUPER_MAGIC’

  796 | case SMB2_SUPER_MAGIC:
  |  ^~~~
make[2]: *** [/<>/solenv/gbuild/LinkTarget.mk:340: 
/<>/workdir/CxxObject/sal/osl/unx/file.o] Error 1


This is due to

commit a8814b5921676b1c01a19b0af243712c55fb0307
Author: Kevin Ottens 
Date:   Fri Feb 2 15:39:36 2024 +0100

tdf#55004 Fix backup copy creation for files on mounted samba shares

There is an unfortunate interaction between file locking and backup
creation at save time.

openFilePath has logic to lock a file when opening. This goes through
fcntl to set a write lock on the file. Later on, when the user wants to
save changes, a backup copy might be created (very likely now since 
this

is the defaults in the settings). To create this backup, the file is
opened again for reading. Unfortunately this open call fails due to the
lock (even though it is a write lock).

This commit changes the behavior. osl_file_adjustLockFlags now 
checks if

the file is on a mounted samba share. If that's the case we force the
osl_File_OpenFlag_NoLock flag. No issue is then exhibited at backup
creation, allowing the save to proceed properly.

Change-Id: Ieab252f9f68598834e13339fc5fcea440f0a4c2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162935
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann 
(cherry picked from commit 63efbc8ad8aae12b54e649c1495d1233c1a9b33f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163549

Can you have a look, please? I had a brief one, but that is a simple 
define which shoudln't break. Then the switch does

switch (aFileStatFs.f_type) {
which uses
struct statfs aFileStatFs;

So it probably is a type difference in the kernel struct already for 32 
vs 64 bit?


Regards,

Rene


Re: 32 bit build failure (smb, narrowing)

2024-03-07 Thread Rene Engelhard

Hi,

Am 08.03.24 um 08:23 schrieb Rene Engelhard:
Can you have a look, please? I had a brief one, but that is a simple 
define which shoudln't break. Then the switch does

     switch (aFileStatFs.f_type) {
which uses
     struct statfs aFileStatFs;

So it probably is a type difference in the kernel struct already for 32 
vs 64 bit?


Obviously I am too blind, there is even a if comparison before:

/* get filesystem info */
struct statfs aFileStatFs;
if (statfs(path.getStr(), &aFileStatFs) < 0)

But as gcc complains about the (usage of the) define I don't guess 
that's it?


Regards,

Rene


core.git: Branch 'distro/collabora/co-23.05' - sc/source

2024-03-07 Thread Mike Kaganski (via logerrit)
 sc/source/ui/app/inputhdl.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit a0ac242e3c93cbf57c3cb22f97140133a624b3f0
Author: Mike Kaganski 
AuthorDate: Wed Feb 28 17:47:04 2024 +0600
Commit: Miklos Vajna 
CommitDate: Fri Mar 8 08:38:29 2024 +0100

tdf#159938: only apply wrap when the content was modified

Change-Id: I2f18739239401085a06bbdce6623a484c13d680b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164091
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 
(cherry picked from commit f0d8f72eb3447b705d1dcdc35a6f3c66a880ab7e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164110
Tested-by: Jenkins CollaboraOffice 
Reviewed-by: Miklos Vajna 

diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 48b0fa6b6296..ba13af9a70ea 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -3164,7 +3164,7 @@ void ScInputHandler::EnterHandler( ScEnterMode 
nBlockMode, bool bBeforeSavingInL
 lcl_RemoveTabs(aString);
 lcl_RemoveTabs(aPreAutoCorrectString);
 
-if (aString.indexOf('
') != -1)
+if (bModified && aString.indexOf('
') != -1)
 {
 // Cell contains line breaks, enable wrapping
 ScLineBreakCell aBreakItem(true);


Re: 32 bit build failure (smb, narrowing)

2024-03-07 Thread Stephan Bergmann

On 3/8/24 08:23, Rene Engelhard wrote:
see 
https://buildd.debian.org/status/fetch.php?pkg=libreoffice&arch=i386&ver=4%3A24.2.2~rc1-1&stamp=1709881487&raw=1:


/<>/sal/osl/unx/file.cxx: In function ‘void 
osl_file_adjustLockFlags(const rtl::OString&, int*, sal_uInt32*)’:
/<>/sal/osl/unx/file.cxx:71:26: error: narrowing conversion 
of ‘4283649346’ from ‘unsigned int’ to ‘int’ [-Wnarrowing]

    71 | #define CIFS_SUPER_MAGIC 0xFF534D42
   |  ^~
/<>/sal/osl/unx/file.cxx:795:14: note: in expansion of 
macro ‘CIFS_SUPER_MAGIC’

   795 | case CIFS_SUPER_MAGIC:
   |  ^~~~
/<>/sal/osl/unx/file.cxx:72:26: error: narrowing conversion 
of ‘4266872130’ from ‘unsigned int’ to ‘int’ [-Wnarrowing]

    72 | #define SMB2_SUPER_MAGIC 0xFE534D42
   |  ^~
/<>/sal/osl/unx/file.cxx:796:14: note: in expansion of 
macro ‘SMB2_SUPER_MAGIC’

   796 | case SMB2_SUPER_MAGIC:
   |  ^~~~
make[2]: *** [/<>/solenv/gbuild/LinkTarget.mk:340: 
/<>/workdir/CxxObject/sal/osl/unx/file.o] Error 1


see  "Blind fix for 
Linux 32-bit builds"




New Defects reported by Coverity Scan for LibreOffice

2024-03-07 Thread scan-admin
Hi,

Please find the latest report on new defect(s) introduced to LibreOffice found 
with Coverity Scan.

5 new defect(s) introduced to LibreOffice found with Coverity Scan.
4 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent 
build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 5 of 5 defect(s)


** CID 1592991:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/chart2/source/controller/main/ChartController_Properties.cxx: 796 in 
chart::ChartController::executeDlg_ObjectProperties_withUndoGuard(std::shared_ptr,
 const rtl::OUString &, bool)()



*** CID 1592991:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/chart2/source/controller/main/ChartController_Properties.cxx: 796 in 
chart::ChartController::executeDlg_ObjectProperties_withUndoGuard(std::shared_ptr,
 const rtl::OUString &, bool)()
790 {
791 aDlgPtr->SetAxisMinorStepWidthForErrorBarDecimals(
792 
InsertErrorBarsDialog::getAxisMinorStepWidthForErrorBarDecimals( xChartDoc, 
m_xChartView, rObjectCID ) );
793 }
794 
795 //open the dialog
>>> CID 1592991:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>> "aUndoGuard" is copied in call to copy constructor 
>>> "std::shared_ptr", when it could be moved instead.
796 SfxTabDialogController::runAsync(aDlgPtr, [aDlgPtr, xChartDoc, 
pItemConverter, bSuccessOnUnchanged, aUndoGuard] (int nResult)
797 {
798 if (nResult == RET_OK || (bSuccessOnUnchanged && 
aDlgPtr->DialogWasClosedWithOK())) {
799 const SfxItemSet* pOutItemSet = 
aDlgPtr->GetOutputItemSet();
800 if(pOutItemSet) {
801 ControllerLockGuardUNO aCLGuard(xChartDoc);

** CID 1592990:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/chart2/source/controller/main/ChartController_Properties.cxx: 712 in 
chart::ChartController::executeDlg_ObjectProperties(const rtl::OUString &)()



*** CID 1592990:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
/chart2/source/controller/main/ChartController_Properties.cxx: 712 in 
chart::ChartController::executeDlg_ObjectProperties(const rtl::OUString &)()
706 auto aUndoGuard = std::make_shared(
707 ActionDescriptionProvider::createDescription(
708 ActionDescriptionProvider::ActionType::Format,
709 ObjectNameProvider::getName( 
ObjectIdentifier::getObjectType( aObjectCID ))),
710 m_xUndoManager );
711 
>>> CID 1592990:  Performance inefficiencies  (COPY_INSTEAD_OF_MOVE)
>>> "aUndoGuard" is passed-by-value as parameter to 
>>> "executeDlg_ObjectProperties_withUndoGuard" when it could be moved instead.
712 ChartController::executeDlg_ObjectProperties_withUndoGuard( 
aUndoGuard, aObjectCID, false );
713 }
714 
715 void ChartController::executeDlg_ObjectProperties_withUndoGuard(
716 std::shared_ptr aUndoGuard,const OUString& rObjectCID, 
bool bSuccessOnUnchanged )
717 {

** CID 1592989:  Null pointer dereferences  (FORWARD_NULL)
/vcl/source/window/brdwin.cxx: 2014 in ImplBorderWindow::FlashWindow() const()



*** CID 1592989:  Null pointer dereferences  (FORWARD_NULL)
/vcl/source/window/brdwin.cxx: 2014 in ImplBorderWindow::FlashWindow() const()
2008 vcl::Window* pMyParent = mpWindowImpl->mpParent;
2009 while (pMyParent && pMyParent->mpWindowImpl && 
pMyParent->mpWindowImpl->mpParent)
2010 {
2011 pMyParent = pMyParent->mpWindowImpl->mpParent;
2012 }
2013 if (pMyParent) {
>>> CID 1592989:  Null pointer dereferences  (FORWARD_NULL)
>>> Attempting to access the managed object of an empty smart pointer 
>>> "pMyParent->mpWindowImpl".
2014 pMyParent->mpWindowImpl->mpFrame->FlashWindow();
2015 }
2016 }
2017 

** CID 1592988:  Uninitialized members  (UNINIT_CTOR)
/sw/source/core/text/porlay.cxx: 852 in SwLineLayout::SwLineLayout()()



*** CID 1592988:  Uninitialized members  (UNINIT_CTOR)
/sw/source/core/text/porlay.cxx: 852 in SwLineLayout::SwLineLayout()()
846   m_nRealHeight( 0 ),
847   m_nTextHeight( 0 ),
848   m_bUnderscore( false )
849 {
850 ResetFlags();
851 SetWhichPor( PortionType::Lay );
>>> CID 1592988:  Uninitialized members  (UNINIT_CTOR)
>>> Non-static class member "m_bLastHyph" is not initialized in this 
>>> constructor nor in any functions that it calls.
852 }
853 
854 SwLinePortion *SwLi