core.git: Branch 'distro/collabora/co-23.05' - desktop/source include/sfx2 sfx2/source

2024-03-22 Thread Henry Castro (via logerrit)
 desktop/source/lib/init.cxx|3 ++-
 include/sfx2/lokhelper.hxx |2 ++
 sfx2/source/view/frmload.cxx   |   30 ++
 sfx2/source/view/lokhelper.cxx |   15 +++
 4 files changed, 49 insertions(+), 1 deletion(-)

New commits:
commit 1d7ee6942f1f1ccdb8aeb253c1cf8ce0c5f63421
Author: Henry Castro 
AuthorDate: Tue Feb 20 16:09:13 2024 -0400
Commit: Caolán McNamara 
CommitDate: Fri Mar 22 10:29:55 2024 +0100

lok: add property descriptor "Theme"

Add option to load the document with a "theme" property name.

Format: "document:theme_name"

Signed-off-by: Henry Castro 
Change-Id: Iaef3d2e8962af526496e5cc95021fa94dca17939
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163671
Tested-by: Jenkins CollaboraOffice 
Tested-by: Caolán McNamara 
Reviewed-by: Caolán McNamara 

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 9288a67c2181..323d0751cb6d 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2784,7 +2784,8 @@ static LibreOfficeKitDocument* 
lo_documentLoadWithOptions(LibreOfficeKit* pThis,
 comphelper::makePropertyValue("InteractionHandler", xInteraction),
 comphelper::makePropertyValue("MacroExecutionMode", 
nMacroExecMode),
 comphelper::makePropertyValue("AsTemplate", false),
-comphelper::makePropertyValue("Silent", !aBatch.isEmpty())
+comphelper::makePropertyValue("Silent", !aBatch.isEmpty()),
+comphelper::makePropertyValue("Theme", extractParameter(aOptions, 
u"Theme"))
 };
 
 /* TODO
diff --git a/include/sfx2/lokhelper.hxx b/include/sfx2/lokhelper.hxx
index e8904d013f75..35ed5109f5c0 100644
--- a/include/sfx2/lokhelper.hxx
+++ b/include/sfx2/lokhelper.hxx
@@ -131,6 +131,8 @@ public:
 static LOKDeviceFormFactor getDeviceFormFactor();
 /// Set the device form factor that should be used for a new view.
 static void setDeviceFormFactor(std::u16string_view rDeviceFormFactor);
+/// Get the document type
+static OUString getDocumentType(const OUString& sDocumentService);
 
 /// Set timezone of the given view.
 /// @isSet true to use @rTimezone, even if it's empty. Otherwise, no 
timezone.
diff --git a/sfx2/source/view/frmload.cxx b/sfx2/source/view/frmload.cxx
index f03b08fe5886..e4acd00ffa37 100644
--- a/sfx2/source/view/frmload.cxx
+++ b/sfx2/source/view/frmload.cxx
@@ -26,6 +26,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -48,6 +49,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -57,6 +59,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -708,6 +711,7 @@ sal_Bool SAL_CALL SfxFrameLoader_Impl::load( const 
Sequence< PropertyValue >& rA
 const OUString sServiceName = aDescriptor.getOrDefault( 
"DocumentService", OUString() );
 xModel.set( 
m_aContext->getServiceManager()->createInstanceWithContext(sServiceName, 
m_aContext), UNO_QUERY_THROW );
 
+
 // load resp. init it
 const Reference< XLoadable > xLoadable( xModel, UNO_QUERY_THROW );
 if ( bInitNewModel )
@@ -766,6 +770,32 @@ sal_Bool SAL_CALL SfxFrameLoader_Impl::load( const 
Sequence< PropertyValue >& rA
 }
 
 bLoadSuccess = true;
+
+const OUString sThemes = aDescriptor.getOrDefault("Theme", OUString());
+if (comphelper::LibreOfficeKit::isActive() && !sThemes.isEmpty())
+{
+const OUString sServiceName = 
aDescriptor.getOrDefault("DocumentService", OUString());
+OUString sTheme, sType, sName;
+sal_Int32 nTheme = 0, nIndex = 0;
+do
+{
+sTheme = sThemes.getToken(0, ';', nTheme);
+sType = sTheme.getToken(0, ':', nIndex);
+sName = sTheme.getToken(0, ':', nIndex);
+if (sType == SfxLokHelper::getDocumentType(sServiceName))
+{
+svtools::EditableColorConfig aConfig;
+if (aConfig.GetCurrentSchemeName() != sName)
+{
+aConfig.LoadScheme(sName);
+break;
+}
+}
+nIndex = 0;
+
+}
+while ( nTheme >= 0 );
+}
 }
 catch ( Exception& )
 {
diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx
index e6fc7e8c7114..b22d1e488283 100644
--- a/sfx2/source/view/lokhelper.cxx
+++ b/sfx2/source/view/lokhelper.cxx
@@ -388,6 +388,21 @@ void SfxLokHelper::setDeviceFormFactor(std::u16string_view 
rDeviceFormFactor)
 g_deviceFormFactor = LOKDeviceFormFactor::UNKNOWN;
 }
 
+OUString SfxLokHelper::getDocumentType(const OUString& sDocumentService)
+{
+if (sDocumentService == "com.sun.star.sheet.SpreadsheetDocument")
+return "spreadsheet";
+  

[Bug 160289] Converting ANSI encoded CSV file to PDF via command line results in replacing special characters (trademark:™,®) with the special question mark symbol:�

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160289

--- Comment #4 from Yaroslav Moiko  ---
(In reply to m_a_riosv from comment #3)
> Maybe in relation with
> https://bugs.documentfoundation.org/show_bug.cgi?id=150714
> default encoded is UTF-8-encoded
> So is needed to put the encoded if it is different. CSV files are plain text
> with no encoded definition.
> 
> >>To work around the issue, specifying the ANSI encoding with the flag 
> >>--infilter="CSV:44,34,ANSI" in the command line enables successful 
> >>conversion of ANSI-encoded files to PDF.
> It is not a workaround, it is part of command line options.
> 
> I think, not a bug.

Thanks for your reply. Why does it work ok, when I load my .csv file via GUI
then?
I thought some logic automatically determines the encoding before loading the
content (which could be broken).

Maybe it's a deluxe request, but I think it would be extremely useful if
converting from csv to pdf via the command line could have identified encoding
automatically (similarly to what is done when opening via UI).

-- 
You are receiving this mail because:
You are the assignee for the bug.

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

2024-03-22 Thread Pranam Lashkari (via logerrit)
 sd/source/ui/view/drviewse.cxx |8 
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit dd33eeeaffaea1e155d2a6a6e9900dcb80b49411
Author: Pranam Lashkari 
AuthorDate: Wed Mar 20 20:53:27 2024 +0530
Commit: Caolán McNamara 
CommitDate: Fri Mar 22 10:24:06 2024 +0100

LOK: enter editing directly after textbox insertion

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

diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index 0b293773b07a..af81827d40d5 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -614,10 +614,6 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq)
 if(!(HasCurrentFunction() && ((rReq.GetModifier() & KEY_MOD1) || 
bCreateDirectly)))
 return;
 
-// disable interactive drawing for LOK
-if (bCreateDirectly)
-GetViewFrame()->GetDispatcher()->Execute(SID_OBJECT_SELECT, 
SfxCallMode::ASYNCHRON);
-
 // get SdOptions
 SdOptions* pOptions = SD_MOD()->GetSdOptions(GetDoc()->GetDocumentType());
 sal_uInt32 nDefaultObjectSizeWidth(pOptions->GetDefaultObjectSizeWidth());
@@ -656,6 +652,10 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq)
 {
 case SID_DRAW_CAPTION:
 case SID_DRAW_CAPTION_VERTICAL:
+case SID_ATTR_CHAR:
+case SID_ATTR_CHAR_VERTICAL:
+case SID_TEXT_FITTOSIZE:
+case SID_TEXT_FITTOSIZE_VERTICAL:
 {
 // Make FuText the current function.
 SfxUInt16Item aItem (SID_TEXTEDIT, 1);


core.git: oox/source

2024-03-22 Thread Regina Henschel (via logerrit)
 oox/source/drawingml/scene3dhelper.cxx |6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

New commits:
commit 9556504b213519e2900e72c81aa26a470dc6353c
Author: Regina Henschel 
AuthorDate: Fri Mar 22 00:52:25 2024 +0100
Commit: Regina Henschel 
CommitDate: Fri Mar 22 10:21:32 2024 +0100

Revert "extruded shape import: tweak threePt light rig too"

This reverts commit aa341e79ee241fec0b5afe159b0c674cf85a52c0.

Reason for revert: The front faces become too light. A similar front face 
is more important than lighter extrusion faces.

Change-Id: I7e58d19b7e6264358d46f172f23bbfea74936250
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165121
Tested-by: Jenkins
Reviewed-by: Regina Henschel 

diff --git a/oox/source/drawingml/scene3dhelper.cxx 
b/oox/source/drawingml/scene3dhelper.cxx
index cb0a85eb7ed0..acddea7643c4 100644
--- a/oox/source/drawingml/scene3dhelper.cxx
+++ b/oox/source/drawingml/scene3dhelper.cxx
@@ -840,10 +840,10 @@ void lcl_tweakLightRig(std::vector& 
rLightDirVec, PrstLightR
 rLightRig.fAmbient = 0.35; // instead 0.11 resp. 0.13
 }
 else if (rLightRig.sLightRigName == u"freezing" || rLightRig.sLightRigName 
== u"morning"
- || rLightRig.sLightRigName == u"sunrise" || 
rLightRig.sLightRigName == u"threePt")
+ || rLightRig.sLightRigName == u"sunrise")
 {
-// These rigs have no ambient color but three or four lights. The 
objects are too dark with
-// only two lights.
+// These rigs have no ambient color but four lights. The objects are 
too dark with only
+// two lights.
 rLightRig.fAmbient = 0.4;
 }
 else if (rLightRig.sLightRigName == u"sunset")


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

2024-03-22 Thread Miklos Vajna (via logerrit)
 sd/qa/unit/tiledrendering/tiledrendering.cxx |   24 
 sfx2/source/sidebar/SidebarController.cxx|   18 --
 2 files changed, 32 insertions(+), 10 deletions(-)

New commits:
commit a521fc2917e8f887f4e53788bf31935998ba1ad1
Author: Miklos Vajna 
AuthorDate: Thu Mar 21 17:01:20 2024 +0100
Commit: Caolán McNamara 
CommitDate: Fri Mar 22 10:16:51 2024 +0100

cool#8278 sfx2 lok: fix lost hide notification on sidebar switch

Similar to commit 55feb670ca28e0a48ac82a65b5559598704d993e (cool#8278
sfx2 lok: fix unexpected non-json sidebar status update, 2024-03-21),
the trouble here was not around hiding the sidebar but around switching
between decks.

This went wrong in commit aaf6ce108e91b1504befe19afcee471e3316ae7a
(cool#7492 sfx2 lok: set language/locale on async sidebar update,
2024-01-11), where I didn't notice that
SidebarController::SwitchToDeck() may emit two callbacks, so the effort
to avoid code duplication went a bit too far: the hide+show case only
emitted a show callback.

Fix this by building a list of state changes to emit, so once se switch
decks, not only the new one is "on", but also the old one is "off".

(cherry picked from commit d8061151acf4e287b60a055a67b84c56989a37af)

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

diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx 
b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index 40e1fc7e4ef6..3e28200b4b6a 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -3001,6 +3001,30 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, 
testSidebarHide)
 CPPUNIT_ASSERT(it != aView.m_aStateChanges.end());
 }
 
+CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSidebarSwitchDeck)
+{
+// Given an impress document, with a visible sidebar (ModifyPage deck):
+createDoc("dummy.odp");
+ViewCallback aView;
+sfx2::sidebar::Sidebar::Setup(u"");
+Scheduler::ProcessEventsToIdle();
+aView.m_aStateChanges.clear();
+
+// When switching to the MasterSlidesPanel deck:
+dispatchCommand(mxComponent, ".uno:MasterSlidesPanel", {});
+
+// Then make sure notifications are sent for both the old and the new 
decks:
+auto it = aView.m_aStateChanges.find(".uno:ModifyPage");
+// Without the accompanying fix in place, this test would have failed, the 
notification for the
+// old deck was missing.
+CPPUNIT_ASSERT(it != aView.m_aStateChanges.end());
+boost::property_tree::ptree aTree = it->second;
+CPPUNIT_ASSERT(aTree.get_child_optional("state").has_value());
+CPPUNIT_ASSERT_EQUAL(std::string("false"), 
aTree.get_child("state").get_value());
+it = aView.m_aStateChanges.find(".uno:MasterSlidesPanel");
+CPPUNIT_ASSERT(it != aView.m_aStateChanges.end());
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/sidebar/SidebarController.cxx 
b/sfx2/source/sidebar/SidebarController.cxx
index a9ec224cfe7d..a2baef7967a9 100644
--- a/sfx2/source/sidebar/SidebarController.cxx
+++ b/sfx2/source/sidebar/SidebarController.cxx
@@ -816,30 +816,28 @@ void SidebarController::SwitchToDeck (
 {
 if (const SfxViewShell* pViewShell = mpViewFrame->GetViewShell())
 {
-boost::property_tree::ptree aTree;
-aTree.put("locale", 
comphelper::LibreOfficeKit::getLocale().getBcp47());
-bool bStateChanged = false;
+std::vector> aStateChanges;
 if (msCurrentDeckId != rDeckDescriptor.msId)
 {
 const std::string hide = UnoNameFromDeckId(msCurrentDeckId, 
GetCurrentContext());
 if (!hide.empty())
 {
-aTree.put("commandName", hide);
-aTree.put("state", "false");
-bStateChanged = true;
+aStateChanges.push_back({hide, std::string("false")});
 }
 }
 
 const std::string show = UnoNameFromDeckId(rDeckDescriptor.msId, 
GetCurrentContext());
 if (!show.empty())
 {
-aTree.put("commandName", show);
-aTree.put("state", "true");
-bStateChanged = true;
+aStateChanges.push_back({show, std::string("true")});
 }
 
-if (bStateChanged)
+for (const auto& rStateChange : aStateChanges)
 {
+boost::property_tree::ptree aTree;
+aTree.put("locale", 
comphelper::LibreOfficeKit::getLocale().getBcp47());
+aTree.put("commandName", rStateChange.first);
+aTree.put("state", rStateChange.second);
 std::stringstream aStream;
  

core.git: vcl/qa

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

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

tdf#160117: vcl_pdfexport2: Add unittest

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

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


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

2024-03-22 Thread Michael Stahl (via logerrit)
 configmgr/source/xcsparser.cxx |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 27526cde7fb6cdcf23f23349cdc7ebdaa3d9bcfa
Author: Michael Stahl 
AuthorDate: Thu Mar 21 18:47:03 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Fri Mar 22 10:09:12 2024 +0100

configmgr: fix parse error if subelements of  used

The unused but valid child elements of  such as  may be
used by exentions. This fails with:

  warn:configmgr:15104:10916:configmgr/source/components.cxx:660: error 
reading 
"file:///instdir/program/../share/uno_packages/cache/uno_packages/xcs" 
com.sun.star.uno.RuntimeException message: "bad member  in xcs 
at configmgr/source/xcsparser.cxx:289"

Because ending the first such element sets bIsParsingInfo_ to false.

This fix just concatenates all the characters in all the children,
should work well enough for extensions.

(regression from commit db3078bd8c8e3ce3a99fc3987bb6e93b609990c1)

Change-Id: I17a3fb7014cd34c1d546701036550085365432a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165143
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 8350404ec1c02df8b4f6b4f48947ddbff53d91e5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165126
Reviewed-by: Stephan Bergmann 

diff --git a/configmgr/source/xcsparser.cxx b/configmgr/source/xcsparser.cxx
index e70ddac6a6c9..35f61fa1959e 100644
--- a/configmgr/source/xcsparser.cxx
+++ b/configmgr/source/xcsparser.cxx
@@ -129,7 +129,9 @@ bool XcsParser::startElement(
 // illegal content):
 if (ignoring_ > 0
 || (nsId == xmlreader::XmlReader::NAMESPACE_NONE
-&& (name == "import" || name == "uses" || name == "constraints" || 
name == "desc")))
+&& (name == "import" || name == "uses" || name == "constraints" || 
name == "desc"
+// the following are unused by LO but valid
+|| name == "deprecated" || name == "author" || name == 
"label")))
 {
 assert(ignoring_ < LONG_MAX);
 ++ignoring_;


[Bug 159730] RTF table split document layout

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=159730

Commit Notification  changed:

   What|Removed |Added

 Whiteboard|target:24.8.0 target:24.2.2 |target:24.8.0 target:24.2.2
   |target:7.6.6 target:7.6.7   |target:7.6.6 target:7.6.7
   ||target:24.2.3

-- 
You are receiving this mail because:
You are the assignee for the bug.

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

2024-03-22 Thread Oliver Specht (via logerrit)
 writerfilter/source/dmapper/DomainMapper.cxx |3 ---
 writerfilter/source/dmapper/PropertyIds.cxx  |1 -
 writerfilter/source/dmapper/PropertyIds.hxx  |1 -
 3 files changed, 5 deletions(-)

New commits:
commit 9b8f6f881185831ec77f1c692c8726fd1459a746
Author: Oliver Specht 
AuthorDate: Wed Mar 20 16:25:17 2024 +0100
Commit: Michael Stahl 
CommitDate: Fri Mar 22 10:05:50 2024 +0100

Revert "tdf#159730 add compatibility option in RTF import"

This reverts commit 3b04e74503ec6d07dc4befdb756e6abdc3de4e58.

Reason for revert: The compatibility option is the wrong approach. This 
results in wrong line calculation as seen in tdf#159730#c6.
The problem that really needs to be fixed is the 9pt attribute of the 
hidden line breaks in the first paragraph that are used to calculate the height 
of the first paragraph.
Only the 1pt font attribute of the remaining visible space should define 
the line height.

Change-Id: I6e0a1a499adaf2df9f68afbcfd6afcd6677e8f76
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165006
Tested-by: Jenkins
Reviewed-by: Michael Stahl 
(cherry picked from commit 44e4ada23dfc8655ec7ddccfd027f02d22684d60)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165118
Reviewed-by: Xisco Fauli 

diff --git a/writerfilter/source/dmapper/DomainMapper.cxx 
b/writerfilter/source/dmapper/DomainMapper.cxx
index bbeafa942de4..7e4eeda7d3d9 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -129,9 +129,6 @@ DomainMapper::DomainMapper( const uno::Reference< 
uno::XComponentContext >& xCon
 m_pImpl->SetDocumentSettingsProperty(
 getPropertyName(PROP_APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING),
 uno::Any(true));
-m_pImpl->SetDocumentSettingsProperty(
-getPropertyName(PROP_TABS_AND_BLANKS_FOR_LINE_CALCULATION),
-uno::Any(true));
 
 // Don't load the default style definitions to avoid weird mix
 m_pImpl->SetDocumentSettingsProperty("StylesNoDefault", 
uno::Any(true));
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx 
b/writerfilter/source/dmapper/PropertyIds.cxx
index 8a83ca0bb064..b8b4efc06222 100644
--- a/writerfilter/source/dmapper/PropertyIds.cxx
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -384,7 +384,6 @@ namespace
 { PROP_PARA_CONNECT_BORDERS, u"ParaIsConnectBorder"},
 { PROP_DECORATIVE, u"Decorative"},
 { PROP_PAPER_TRAY, u"PrinterPaperTray"},
-{ PROP_TABS_AND_BLANKS_FOR_LINE_CALCULATION, 
u"IgnoreTabsAndBlanksForLineCalculation"},
 });
 } // end anonymous ns
 
diff --git a/writerfilter/source/dmapper/PropertyIds.hxx 
b/writerfilter/source/dmapper/PropertyIds.hxx
index bb2fb833516c..b39fcd24fa49 100644
--- a/writerfilter/source/dmapper/PropertyIds.hxx
+++ b/writerfilter/source/dmapper/PropertyIds.hxx
@@ -383,7 +383,6 @@ enum PropertyIds
 ,PROP_RTL_GUTTER
 ,PROP_CURSOR_NOT_IGNORE_TABLES_IN_HF
 ,PROP_PARA_CONNECT_BORDERS
-,PROP_TABS_AND_BLANKS_FOR_LINE_CALCULATION
 };
 
 //Returns the UNO string equivalent to eId.


core.git: bridges/inc bridges/source

2024-03-22 Thread Stephan Bergmann (via logerrit)
 bridges/inc/msvc/except.hxx|2 +-
 bridges/source/cpp_uno/msvc_shared/cpp2uno.cxx |3 ---
 bridges/source/cpp_uno/msvc_shared/except.cxx  |2 ++
 3 files changed, 3 insertions(+), 4 deletions(-)

New commits:
commit be2f27b011d43cb3a5cb1aa352cc445083948103
Author: Stephan Bergmann 
AuthorDate: Thu Mar 21 14:06:03 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Fri Mar 22 09:57:19 2024 +0100

Make msvc_raiseException explicitly [[noreturn]]

The comments at


"framework: MenuBarManager: fix WNT crash if queryDispatch() throws" suggest
that it was observed returning normally, and running into the

> // is here for dummy
> return typelib_TypeClass_VOID;

in cpp2uno_call.

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

diff --git a/bridges/inc/msvc/except.hxx b/bridges/inc/msvc/except.hxx
index f1403a43af88..29fe007a435f 100644
--- a/bridges/inc/msvc/except.hxx
+++ b/bridges/inc/msvc/except.hxx
@@ -33,7 +33,7 @@ typedef struct _uno_Any uno_Any;
 typedef struct _uno_Mapping uno_Mapping;
 
 int msvc_filterCppException(EXCEPTION_POINTERS*, uno_Any*, uno_Mapping*);
-void msvc_raiseException(uno_Any*, uno_Mapping*);
+[[noreturn]] void msvc_raiseException(uno_Any*, uno_Mapping*);
 
 constexpr DWORD MSVC_EH_MAGIC_PARAM = 0x19930520;
 // The NT Exception code that msvcrt uses ('msc' | 0xE000)
diff --git a/bridges/source/cpp_uno/msvc_shared/cpp2uno.cxx 
b/bridges/source/cpp_uno/msvc_shared/cpp2uno.cxx
index 15aa14d9b90b..d2bbf5ab22b4 100644
--- a/bridges/source/cpp_uno/msvc_shared/cpp2uno.cxx
+++ b/bridges/source/cpp_uno/msvc_shared/cpp2uno.cxx
@@ -163,9 +163,6 @@ cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy* 
pThis,
 TYPELIB_DANGER_RELEASE(pReturnTD);
 
 msvc_raiseException(, pThis->getBridge()->getUno2Cpp()); // 
has to destruct the any
-
-// is here for dummy
-return typelib_TypeClass_VOID;
 }
 else // no exception occurred...
 {
diff --git a/bridges/source/cpp_uno/msvc_shared/except.cxx 
b/bridges/source/cpp_uno/msvc_shared/except.cxx
index b68dd41d6bdc..b6c6715e0336 100644
--- a/bridges/source/cpp_uno/msvc_shared/except.cxx
+++ b/bridges/source/cpp_uno/msvc_shared/except.cxx
@@ -21,6 +21,7 @@
 
 #include 
 
+#include 
 #include 
 #include 
 #include 
@@ -196,6 +197,7 @@ void msvc_raiseException(uno_Any* pUnoExc, uno_Mapping* 
pUno2Cpp)
 
 // last point to release anything not affected by stack unwinding
 RaiseException(MSVC_EH_MAGIC_CODE, EXCEPTION_NONCONTINUABLE, 
MSVC_EH_PARAMETERS, arFilterArgs);
+std::abort();
 }
 
 // This function does the same check as __CxxDetectRethrow from msvcrt (see its


core.git: wizards/source

2024-03-22 Thread Jean-Pierre Ledure (via logerrit)
 wizards/source/scriptforge/SF_Session.xba |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 065fa9d77e5bd550600e8985d7e7aac8e10745c4
Author: Jean-Pierre Ledure 
AuthorDate: Thu Mar 21 15:54:55 2024 +0100
Commit: Jean-Pierre Ledure 
CommitDate: Fri Mar 22 09:54:47 2024 +0100

ScriptForge (session).RunApplication() crash fix tdf#160222

Use
 com.sun.star.system.SystemShellExecuteFlags.DEFAULTS
i.o.
 com.sun.star.system.SystemShellExecuteFlags.URIS_ONLY

as argument of
 com.sun.star.system.SystemShellExecute.execute()

Change-Id: I3919777cf9442387aec6ed694a2883519e4a7910
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165105
Reviewed-by: Jean-Pierre Ledure 
Tested-by: Jenkins

diff --git a/wizards/source/scriptforge/SF_Session.xba 
b/wizards/source/scriptforge/SF_Session.xba
index aeca1133e346..307fb7a8f4bf 100644
--- a/wizards/source/scriptforge/SF_Session.xba
+++ b/wizards/source/scriptforge/SF_Session.xba
@@ -587,7 +587,7 @@ Check:
 Try:
Set oShell = SF_Utils._GetUNOService(SystemShellExecute)
sCommand = SF_FileSystem._ConvertToUrl(Command)
-   oShell.execute(sCommand, Parameters, 
com.sun.star.system.SystemShellExecuteFlags.URIS_ONLY)
+   oShell.execute(sCommand, Parameters, 
com.sun.star.system.SystemShellExecuteFlags.DEFAULTS)
bReturn = True
 
 Finally:


Removed uppercase DEBUG, ENABLE_SYMBOLS, DBGLEVEL make variables

2024-03-22 Thread Stephan Bergmann
On recent master, to simplify the code somewhat, I removed the redundant 
all-uppercase variants of some make variables (e.g., `make DEBUG=t` -> 
`make debug=t`), and only left the all-lowercase variants:



diff --git a/solenv/gbuild/gbuild.help.txt b/solenv/gbuild/gbuild.help.txt
index c677541309f5..647bd74afea1 100644
--- a/solenv/gbuild/gbuild.help.txt
+++ b/solenv/gbuild/gbuild.help.txt
@@ -110,11 +110,9 @@ INTERACTIVE VARIABLES:
BUILDTOOLTRACE  Run all commands that invoke built tools in strace,
valgrind or a debugger:
BUILDTOOLTRACE='$(DEVENV) /debugexe' PARALLELISM=1 make
-   DEBUG / debug   If not empty, build as with --enable-debug.
-   ENABLE_SYMBOLS / enable_symbols
-   If not empty, build as with --enable-symbols.
-   DBGLEVEL / dbglevel
-   If not empty, force the debug level to the specified 
value. The
+   debug   If not empty, build as with --enable-debug.
+   enable_symbols  If not empty, build as with --enable-symbols.
+   dbglevelIf not empty, force the debug level to the specified 
value. The
debug level is passed to the source code through 
OSL_DEBUG_LEVEL
macro.
0 = no debug (as with --disable-debug)


(Done as one small step of the overall quest to cut down on our somewhat 
confusing zoo of debugging-related configure options, make variables, 
and C/C++ macros.)


[Bug 108253] [META] Calc cell formula bugs and enhancements

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=108253
Bug 108253 depends on bug 159687, which changed state.

Bug 159687 Summary: Cutting rows from specific file with whole column 
references in formula is slow
https://bugs.documentfoundation.org/show_bug.cgi?id=159687

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

-- 
You are receiving this mail because:
You are the assignee for the bug.

core.git: sc/qa sc/source

2024-03-22 Thread Balazs Varga (via logerrit)
 sc/qa/unit/ucalc_formula.cxx |2 +-
 sc/source/core/tool/compiler.cxx |   35 +++
 2 files changed, 36 insertions(+), 1 deletion(-)

New commits:
commit ba0ec4a5d2b025b675410cd18890d1cca3bc5a2f
Author: Balazs Varga 
AuthorDate: Wed Mar 20 18:32:44 2024 +0100
Commit: Balazs Varga 
CommitDate: Fri Mar 22 09:23:58 2024 +0100

tdf#159687 sc formula SUMPRODUCT performance fix: add more binary

operators which need to be checked if they are next to a trimmable
DoubleRef arguments or not.
Example:
=SUMPRODUCT(($D:$D>M47:M47)*($D:$D
$D:$D and $I:$I columns are trimmable.

Recalculation of formulas with a lot of SUMPRODUCT where we comparing
full columns could take minutes during editing a sheet. With reducing
the size of the compared ranges to the actual data could significantly
speed up the recalculation.

This takes the recalculation time from ~50 sec to <1 sec on my machine.

Note: probabaly the same could be applied to the SUM function.

Change-Id: I758660d0b638ef7255bd5a41a96755289b5a2b41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165074
Tested-by: Jenkins
Reviewed-by: Noel Grandin 
Reviewed-by: Balazs Varga 

diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 105c7e4a772d..adbc9c121042 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -1464,7 +1464,7 @@ CPPUNIT_TEST_FIXTURE(TestFormula, 
testFormulaAnnotateTrimOnDoubleRefs)
 
 {
 "=SUMPRODUCT(A:A=$C$1; 1-(A:A=$C$1))",
-ScRange(-1, -1, -1, -1, -1, -1), // Has no trimmable 
double-ref.
+ScRange(0, 0, 0, 0, 1048575, 0),
 0.0,
 false// Not in matrix mode.
 },
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 5e0258b3fd21..152a75f949b1 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -6564,6 +6564,8 @@ void ScCompiler::AnnotateTrimOnDoubleRefs()
 // such that one of the operands of ocEqual is a double-ref.
 // Examples of formula that matches this are:
 //   SUMPRODUCT(IF($A:$A=$L12;$D:$D*G:G))
+// Also in case of DoubleRef arguments around other Binary operators 
can be trimmable:
+//   SUMPRODUCT(($D:$D>M47:M47)*($D:$DIsInForceArray())
+break;
+FormulaToken* pLHS = *(ppTok - 1);
+FormulaToken* pRHS = *(ppTok - 2);
+StackVar lhsType = pLHS->GetType();
+StackVar rhsType = pRHS->GetType();
+if (lhsType == svDoubleRef && (rhsType == svSingleRef 
|| rhsType == svDoubleRef))
+{
+pLHS->GetDoubleRef()->SetTrimToData(true);
+}
+if (rhsType == svDoubleRef && (lhsType == svSingleRef 
|| lhsType == svDoubleRef))
+{
+pRHS->GetDoubleRef()->SetTrimToData(true);
+}
+}
+break;
 case ocPush:
 break;
 case ocClose:


[Bug 160005] Windows installer Online Update component option: description misleading/unclear on role/purpose

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160005

Stephan Bergmann  changed:

   What|Removed |Added

 Resolution|--- |WONTFIX
 Status|UNCONFIRMED |RESOLVED

--- Comment #2 from Stephan Bergmann  ---
The current state is admittedly a bit confusing, because there are currently
two competing update mechanisms on Windows:

For one, there is the "traditional" notification-based mechanism (that only
tells you that a new version is available, and optionally downloads it, but
never automatically installs it for you).  This functionality is only installed
when not de-selecting the "Online Update" optional component during
installation.  Additionally, the option "Check for updates automatically" on
LO's "Online Update" options tab page must not be de-selected.

For another, there is a new, still experimental MAR-based mechanism (that
automatically installs a new version for you).  This functionality is installed
unconditionally (but see bug 159979 "Make installation of MAR-based update
functionality optional in the MSI installer").  Additionally, the "Enable
experimental features" option and the option "Enable automatic update" on LO's
"Online Update" options tab page must be selected.

The plan is to eventually drop the first mechanism and make the second
mechanism non-experimental and enabled by default.

(In reply to Philippe Cloutier from comment #0)
> I am skeptical that I did opt out from Online Update, but if I did, that
> could have been due to its description (STR_DESC_MODULE_OPT_ONLINEUPDATE):
> > Get automatically notified when a new update of %PRODUCTNAME becomes 
> > available.  (English)
> > Recevez une notification automatique lorsqu'une nouvelle mise à jour de 
> > %PRODUCTNAME est disponible. (French)
> 
> The phrasing implies one cannot opt out from these notifications. In
> reality, options allow to disable these checks even if the component is
> installed.
> 
> I suggest to rectify by indicating the behavior is optional, with a label
> like:
> 
> 
> > Allows to be notified when a new update of %PRODUCTNAME becomes available.

I personally don't think such a rewording would be useful, neither in light of
that optional component potentially going away anyway (see above), nor in
making it more clear what that option does (many things can be turned off in
LO's options pages, still we don't generally phrase the corresponding features
as "allows to have this feature available, unless you switch it off").

I'll thus tentatively close as WONTFIX.  If you disagree, please reopen and add
the "needsUXEval" keyword.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 156066] [META] SVG filters

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=156066

Xisco Faulí  changed:

   What|Removed |Added

 Depends on||160311


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=160311
[Bug 160311] SVG: Add support for feComponentTransfer
-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 88278] [META] SVG import image filter (all modules)

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=88278

Xisco Faulí  changed:

   What|Removed |Added

 Depends on||160311


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=160311
[Bug 160311] SVG: Add support for feComponentTransfer
-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 160311] SVG: Add support for feComponentTransfer

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160311

Xisco Faulí  changed:

   What|Removed |Added

 Blocks||88278, 156066
 CC||xiscofa...@libreoffice.org


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=88278
[Bug 88278] [META] SVG import image filter (all modules)
https://bugs.documentfoundation.org/show_bug.cgi?id=156066
[Bug 156066] [META] SVG filters
-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 160311] New: SVG: Add support for feComponentTransfer

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160311

Bug ID: 160311
   Summary: SVG: Add support for feComponentTransfer
   Product: LibreOffice
   Version: 24.8.0.0 alpha0+ Master
  Hardware: All
OS: All
Status: UNCONFIRMED
  Severity: normal
  Priority: medium
 Component: filters and storage
  Assignee: libreoffice-bugs@lists.freedesktop.org
  Reporter: xiscofa...@libreoffice.org

Created attachment 193237
  --> https://bugs.documentfoundation.org/attachment.cgi?id=193237=edit
Sample file

Steps to reproduce:
1. Open attached document

Reproduced in: 
Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 21d39b5a8c36203d18c5d67c9d2f2bb8d89a53de
CPU threads: 8; OS: Linux 6.1; UI render: default; VCL: gtk3
Locale: es-ES (es_ES.UTF-8); UI: en-US
Calc: threaded

-- 
You are receiving this mail because:
You are the assignee for the bug.

core.git: configmgr/source

2024-03-22 Thread Michael Stahl (via logerrit)
 configmgr/source/xcsparser.cxx |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit 8350404ec1c02df8b4f6b4f48947ddbff53d91e5
Author: Michael Stahl 
AuthorDate: Thu Mar 21 18:47:03 2024 +0100
Commit: Michael Stahl 
CommitDate: Fri Mar 22 08:46:04 2024 +0100

configmgr: fix parse error if subelements of  used

The unused but valid child elements of  such as  may be
used by exentions. This fails with:

  warn:configmgr:15104:10916:configmgr/source/components.cxx:660: error 
reading 
"file:///instdir/program/../share/uno_packages/cache/uno_packages/xcs" 
com.sun.star.uno.RuntimeException message: "bad member  in xcs 
at configmgr/source/xcsparser.cxx:289"

Because ending the first such element sets bIsParsingInfo_ to false.

This fix just concatenates all the characters in all the children,
should work well enough for extensions.

(regression from commit db3078bd8c8e3ce3a99fc3987bb6e93b609990c1)

Change-Id: I17a3fb7014cd34c1d546701036550085365432a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165143
Tested-by: Jenkins
Reviewed-by: Michael Stahl 

diff --git a/configmgr/source/xcsparser.cxx b/configmgr/source/xcsparser.cxx
index e70ddac6a6c9..35f61fa1959e 100644
--- a/configmgr/source/xcsparser.cxx
+++ b/configmgr/source/xcsparser.cxx
@@ -129,7 +129,9 @@ bool XcsParser::startElement(
 // illegal content):
 if (ignoring_ > 0
 || (nsId == xmlreader::XmlReader::NAMESPACE_NONE
-&& (name == "import" || name == "uses" || name == "constraints" || 
name == "desc")))
+&& (name == "import" || name == "uses" || name == "constraints" || 
name == "desc"
+// the following are unused by LO but valid
+|| name == "deprecated" || name == "author" || name == 
"label")))
 {
 assert(ignoring_ < LONG_MAX);
 ++ignoring_;


[Bug 160231] Images in Calc get lost even in the newest version of Libreoffice 24.2.0.3

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160231

--- Comment #7 from Urs Weder  ---
I'm struggling with the this bug also.
In my case it happens when I apply a filter on and off. If I save the document
afterwards, then many images are "lost".
Actually the images are not lost, they are at just very different locations in
the document or not visible anymore.
I made sure that every image is anchored to the cell but this bug still
happens.

As a work-around the bug I either:
- filter the document and view it without saving afterwards
- change the document without filtering
This way the images stay in their positions and everything looks good.

When I open the ods file as zip file, all images are still contained in the
file.

So for me it is very reproducible.

-- 
You are receiving this mail because:
You are the assignee for the bug.

core.git: 3 commits - solenv/gbuild

2024-03-22 Thread Stephan Bergmann (via logerrit)
 solenv/gbuild/gbuild.help.txt |3 +--
 solenv/gbuild/gbuild.mk   |   35 ++-
 2 files changed, 15 insertions(+), 23 deletions(-)

New commits:
commit b42429f68cb83fcfc5de102b0922b05ecd6c528e
Author: Stephan Bergmann 
AuthorDate: Wed Mar 20 22:53:27 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Fri Mar 22 08:42:25 2024 +0100

Determine OSL_DEBUG_LEVEL directly from dbglevel

...and reorder the code a bit, so that the dbglevel-releated code is 
separated
from the gb_ENABLE_SYMBOLS_FOR-related code

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

diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 42a2617b92c1..a36b2b758479 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -84,31 +84,30 @@ ifneq ($(strip $(TIMELOG)$(timelog)),)
 gb_TIMELOG := 1
 endif
 
+ifeq ($(strip $(dbglevel)),)
+ifeq ($(debug),)
+dbglevel := 0
+else
+dbglevel := 1
+endif
+endif
+
 gb_ENABLE_SYMBOLS_FOR := $(ENABLE_SYMBOLS_FOR)
 
 # enable_symbols (presumably from the command line)
 ifneq ($(strip $(enable_symbols)),)
 gb_ENABLE_SYMBOLS_FOR := $(enable_symbols)
 endif
-
-# note: ENABLE_BREAKPAD turns on symbols
-ifneq ($(strip $(ENABLE_BREAKPAD)),)
-gb_ENABLE_SYMBOLS_FOR := all
-endif
-
-gb_DEBUGLEVEL := 0
-ifneq ($(strip $(debug)),)
-gb_DEBUGLEVEL := 1
 ifeq ($(origin debug),command line)
 gb_ENABLE_SYMBOLS_FOR := all
 endif
-endif
-
-ifneq ($(strip $(dbglevel)),)
-gb_DEBUGLEVEL := $(strip $(dbglevel))
 ifeq ($(origin dbglevel),command line)
 gb_ENABLE_SYMBOLS_FOR := all
 endif
+
+# note: ENABLE_BREAKPAD turns on symbols
+ifneq ($(strip $(ENABLE_BREAKPAD)),)
+gb_ENABLE_SYMBOLS_FOR := all
 endif
 
 # handle special cases
@@ -206,7 +205,7 @@ gb_CPUDEFS += -D$(CPUNAME)
 
 gb_GLOBALDEFS := \
-D_REENTRANT \
-   -DOSL_DEBUG_LEVEL=$(gb_DEBUGLEVEL) \
+   -DOSL_DEBUG_LEVEL=$(dbglevel) \
$(gb_OSDEFS) \
$(gb_COMPILERDEFS) \
$(gb_CPUDEFS) \
commit 8e10fd30cf7ef5774c54dc2dce0f8e00b279b106
Author: Stephan Bergmann 
AuthorDate: Wed Mar 20 22:34:39 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Fri Mar 22 08:42:18 2024 +0100

$(ENABLE_DBGUTIL) implies $(debug) (aka $(ENABLE_DEBUG))

...so no need to check the former in addition to the latter (which is done 
a few
lines up)

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

diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index d842e0af0b86..42a2617b92c1 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -103,9 +103,6 @@ ifeq ($(origin debug),command line)
 gb_ENABLE_SYMBOLS_FOR := all
 endif
 endif
-ifeq ($(ENABLE_DBGUTIL),TRUE)
-gb_DEBUGLEVEL := 1
-endif
 
 ifneq ($(strip $(dbglevel)),)
 gb_DEBUGLEVEL := $(strip $(dbglevel))
commit 21d51ae1a41dca6198a3d8563873cbeccb960a26
Author: Stephan Bergmann 
AuthorDate: Wed Mar 20 22:25:48 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Fri Mar 22 08:42:10 2024 +0100

Drop upper-case ENABLE_SYMBOLS, consolidate on lower-case enable_symbols

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

diff --git a/solenv/gbuild/gbuild.help.txt b/solenv/gbuild/gbuild.help.txt
index 1ced8090a458..647bd74afea1 100644
--- a/solenv/gbuild/gbuild.help.txt
+++ b/solenv/gbuild/gbuild.help.txt
@@ -111,8 +111,7 @@ INTERACTIVE VARIABLES:
valgrind or a debugger:
BUILDTOOLTRACE='$(DEVENV) /debugexe' PARALLELISM=1 make
debug   If not empty, build as with --enable-debug.
-   ENABLE_SYMBOLS / enable_symbols
-   If not empty, build as with --enable-symbols.
+   enable_symbols  If not empty, build as with --enable-symbols.
dbglevelIf not empty, force the debug level to the specified 
value. The
debug level is passed to the source code through 
OSL_DEBUG_LEVEL
macro.
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 5b76a58bdada..d842e0af0b86 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -86,10 +86,7 @@ endif
 
 gb_ENABLE_SYMBOLS_FOR := $(ENABLE_SYMBOLS_FOR)
 
-# ENABLE_SYMBOLS (presumably from the command line)
-ifneq ($(strip $(ENABLE_SYMBOLS)),)
-gb_ENABLE_SYMBOLS_FOR := $(ENABLE_SYMBOLS)
-endif
+# enable_symbols (presumably from the command line)
 ifneq ($(strip $(enable_symbols)),)
 gb_ENABLE_SYMBOLS_FOR := $(enable_symbols)
 endif


core.git: 2 commits - solenv/gbuild

2024-03-22 Thread Stephan Bergmann (via logerrit)
 solenv/gbuild/gbuild.help.txt   |2 +-
 solenv/gbuild/gbuild.mk |   17 ++---
 solenv/gbuild/platform/com_GCC_defs.mk  |4 ++--
 solenv/gbuild/platform/com_MSC_class.mk |2 +-
 4 files changed, 6 insertions(+), 19 deletions(-)

New commits:
commit 42a76c7bf5a6c5cc60487f4bdc7bf0a7bab3c47a
Author: Stephan Bergmann 
AuthorDate: Wed Mar 20 22:13:22 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Fri Mar 22 08:42:03 2024 +0100

Drop upper-case DEBUG, consolidate on lower-case debug

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

diff --git a/solenv/gbuild/gbuild.help.txt b/solenv/gbuild/gbuild.help.txt
index fb12142d4aff..1ced8090a458 100644
--- a/solenv/gbuild/gbuild.help.txt
+++ b/solenv/gbuild/gbuild.help.txt
@@ -110,7 +110,7 @@ INTERACTIVE VARIABLES:
BUILDTOOLTRACE  Run all commands that invoke built tools in strace,
valgrind or a debugger:
BUILDTOOLTRACE='$(DEVENV) /debugexe' PARALLELISM=1 make
-   DEBUG / debug   If not empty, build as with --enable-debug.
+   debug   If not empty, build as with --enable-debug.
ENABLE_SYMBOLS / enable_symbols
If not empty, build as with --enable-symbols.
dbglevelIf not empty, force the debug level to the specified 
value. The
diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index f91663e217d1..5b76a58bdada 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -100,13 +100,6 @@ gb_ENABLE_SYMBOLS_FOR := all
 endif
 
 gb_DEBUGLEVEL := 0
-ifneq ($(strip $(DEBUG)),)
-gb_DEBUGLEVEL := 1
-# make DEBUG=true should force -g
-ifeq ($(origin DEBUG),command line)
-gb_ENABLE_SYMBOLS_FOR := all
-endif
-endif
 ifneq ($(strip $(debug)),)
 gb_DEBUGLEVEL := 1
 ifeq ($(origin debug),command line)
commit 77b09314b45c178bb8b93e887efb99162c070ab3
Author: Stephan Bergmann 
AuthorDate: Wed Mar 20 21:16:12 2024 +0100
Commit: Stephan Bergmann 
CommitDate: Fri Mar 22 08:41:55 2024 +0100

Drop redundant gb_ENABLE_DBGUTIL

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

diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk
index 9b3b1d519b05..f91663e217d1 100644
--- a/solenv/gbuild/gbuild.mk
+++ b/solenv/gbuild/gbuild.mk
@@ -84,12 +84,6 @@ ifneq ($(strip $(TIMELOG)$(timelog)),)
 gb_TIMELOG := 1
 endif
 
-ifneq ($(ENABLE_DBGUTIL),)
-gb_ENABLE_DBGUTIL := $(true)
-else
-gb_ENABLE_DBGUTIL := $(false)
-endif
-
 gb_ENABLE_SYMBOLS_FOR := $(ENABLE_SYMBOLS_FOR)
 
 # ENABLE_SYMBOLS (presumably from the command line)
@@ -119,7 +113,7 @@ ifeq ($(origin debug),command line)
 gb_ENABLE_SYMBOLS_FOR := all
 endif
 endif
-ifeq ($(gb_ENABLE_DBGUTIL),$(true))
+ifeq ($(ENABLE_DBGUTIL),TRUE)
 gb_DEBUGLEVEL := 1
 endif
 
@@ -230,7 +224,7 @@ gb_GLOBALDEFS := \
$(gb_COMPILERDEFS) \
$(gb_CPUDEFS) \
 
-ifeq ($(gb_ENABLE_DBGUTIL),$(true))
+ifeq ($(ENABLE_DBGUTIL),TRUE)
 gb_GLOBALDEFS += -DDBG_UTIL
 
 ifneq ($(COM)-$(MSVC_USE_DEBUG_RUNTIME),MSC-)
diff --git a/solenv/gbuild/platform/com_GCC_defs.mk 
b/solenv/gbuild/platform/com_GCC_defs.mk
index 57338bc7f170..e8bf170bd454 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -49,7 +49,7 @@ gb_COMPILERDEFS := \
$(if $(filter EMSCRIPTEN,$(OS)),-U_FORTIFY_SOURCE) \
 
 # enable debug STL
-ifeq ($(gb_ENABLE_DBGUTIL),$(true))
+ifeq ($(ENABLE_DBGUTIL),TRUE)
 ifneq ($(HAVE_LIBSTDCPP),)
 gb_COMPILERDEFS_STDLIB_DEBUG = -D_GLIBCXX_DEBUG
 else
@@ -202,7 +202,7 @@ endif
 gb_LinkTarget_EXCEPTIONFLAGS := \
-fexceptions
 
-ifeq ($(gb_ENABLE_DBGUTIL),$(false))
+ifeq ($(ENABLE_DBGUTIL),)
 # Clang doesn't have this option
 ifeq ($(HAVE_GCC_FNO_ENFORCE_EH_SPECS),TRUE)
 gb_LinkTarget_EXCEPTIONFLAGS += \
diff --git a/solenv/gbuild/platform/com_MSC_class.mk 
b/solenv/gbuild/platform/com_MSC_class.mk
index 6c3182b54aa4..eccc64e1b2f1 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -330,7 +330,7 @@ gb_Windows_PE_TARGETTYPEFLAGS := \
-manifest
 
 # link.exe in -LIB mode doesn't understand -debug, use it only for EXEs and 
DLLs
-ifeq ($(gb_ENABLE_DBGUTIL),$(true))
+ifeq ($(ENABLE_DBGUTIL),TRUE)
 # fastlink is faster but pdb files reference .obj files
 # but don't do that for setup_native DLLs: this produces make error 139 in 
some configurations
 gb_Windows_PE_TARGETTYPEFLAGS_DEBUGINFO = $(if $(filter 
-U_DLL,$(1)),-debug,-debug:fastlink)


[Bug 160208] Crash in: cppu::UnoType::get() when changing chart element's corner style in sidebar

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160208

Julien Nabet  changed:

   What|Removed |Added

 CC|serval2...@yahoo.fr |

--- Comment #12 from Julien Nabet  ---
I still don't see how to test the 2 commands on master branch (I understood
that they're been removed from sidebar but it seems they're nowhere to be seen
at all in the whole UI).
uncc myself.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Re: Import of 3D-Image from pptx

2024-03-22 Thread Miklos Vajna
Hi Regina,

On Thu, Mar 21, 2024 at 11:41:07PM +0100, Regina Henschel 
 wrote:
> at the moment, a 3D image is imported as an image and displayed in Impress
> without 3D. The 3D properties are in the InteropGrabBag and are written out
> again on export, in addition to a rotation or mirroring that the user has
> made with the image in LO.
> 
> The 3D image could be treated in the same way as an image that has been
> cropped to a shape in PowerPoint. Such an image is imported as a custom
> shape with bitmap filling. Such a custom shape can then be displayed in 3D
> mode. When saving, however, as with the cropped image, the result would not
> be a pure image but a shape with a bitmap fill.
> 
> What do you think? Should I implement this or should I continue to import a
> 3D image as a pure image?

I think in both cases the ideal would be to extend SdrGrafObj, to
support cropping and 3D properties if PPTX supports that. Of course,
it's good to share code with SdrObjCustomShape in the implementation if
possible.

If that's not possible (takes too much time, too complex), then it's an
option to map the images to custom shapes in our side, but sooner or
later these workarounds cause some problems. So at least some TODO /
FIXME comment would be nice, if you go this way.

Thanks,

Miklos


[Bug 157981] Import/Export word list to make (custom) dictionaries portable

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=157981

Heiko Tietze  changed:

   What|Removed |Added

   Keywords|needsUXEval |
 Status|NEEDINFO|NEW
 CC|libreoffice-ux-advise@lists |heiko.tietze@documentfounda
   |.freedesktop.org|tion.org
Summary|personal / custom   |Import/Export word list to
   |dictionaries should be  |make (custom) dictionaries
   |easily portable |portable

--- Comment #6 from Heiko Tietze  ---
We discussed the topic in the design meeting.

Just placing a dictionary (*.dic/aff) in some folder (which can be added via
tools > options > path to the dictionary locations) does not make it available
as writing aid; the procedure apparently needs some registration. And while
export/import could be a nice task for a macro it's a generic use case for the
majority of users and adding this to the core makes sense

So the recommendation is to add export/import buttons to the dictionary dialog.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

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

2024-03-22 Thread Mike Kaganski (via logerrit)
 sw/qa/extras/unowriter/unowriter.cxx |   21 +
 sw/source/core/unocore/unoobj.cxx|   12 +---
 2 files changed, 30 insertions(+), 3 deletions(-)

New commits:
commit 41586f2f417a2d55d6baa07d3885d2d117a16d1d
Author: Mike Kaganski 
AuthorDate: Wed Mar 20 16:24:07 2024 +0500
Commit: Xisco Fauli 
CommitDate: Fri Mar 22 08:35:46 2024 +0100

tdf#160278: restore cursor bounds properly

The passed string length is not a correct measure of how many steps
should the selection expand in the resulting text: the cursor goes
over glyphs, not over UTF-16 code units. Thus, it's easier to store
the position prior to insertion, and restore it from the indexes.

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

diff --git a/sw/qa/extras/unowriter/unowriter.cxx 
b/sw/qa/extras/unowriter/unowriter.cxx
index 8bcadbaf4227..80b9e556f73b 100644
--- a/sw/qa/extras/unowriter/unowriter.cxx
+++ b/sw/qa/extras/unowriter/unowriter.cxx
@@ -1201,6 +1201,27 @@ CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf129841)
 CPPUNIT_ASSERT_EQUAL(aRefColor, aColor);
 }
 
+CPPUNIT_TEST_FIXTURE(SwUnoWriter, testTdf160278)
+{
+createSwDoc();
+auto xTextDocument(mxComponent.queryThrow());
+auto xText(xTextDocument->getText());
+xText->setString(u"123"_ustr);
+CPPUNIT_ASSERT_EQUAL(u"123"_ustr, xText->getString());
+auto xCursor = xText->createTextCursorByRange(xText->getEnd());
+xCursor->goLeft(1, true);
+CPPUNIT_ASSERT_EQUAL(u"3"_ustr, xCursor->getString());
+// Insert an SMP character U+1f702 (so it's two UTF-16 code units, 0xd83d 
0xdf02):
+xCursor->setString(u""_ustr);
+// Without the fix, the replacement would expand the cursor one too many 
characters to the left,
+// and the cursor text would become "2", failing the next test:
+CPPUNIT_ASSERT_EQUAL(u""_ustr, xCursor->getString());
+xCursor->setString(u"test"_ustr);
+CPPUNIT_ASSERT_EQUAL(u"test"_ustr, xCursor->getString());
+// This test would fail, too; the text would be "1test":
+CPPUNIT_ASSERT_EQUAL(u"12test"_ustr, xText->getString());
+}
+
 CPPUNIT_PLUGIN_IMPLEMENT();
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/core/unocore/unoobj.cxx 
b/sw/source/core/unocore/unoobj.cxx
index 49562c1d0284..df02c4773a15 100644
--- a/sw/source/core/unocore/unoobj.cxx
+++ b/sw/source/core/unocore/unoobj.cxx
@@ -752,13 +752,19 @@ void SwXTextCursor::DeleteAndInsert(std::u16string_view 
aText,
 }
 if(nTextLen)
 {
+// Store node and content indexes prior to insertion: to select 
the inserted text,
+// we need to account for possible surrogate pairs, combining 
characters, etc.; it
+// is easier to just restore the correct position from the indexes.
+const auto start = pCurrent->Start();
+const auto nodeIndex = start->GetNodeIndex();
+const auto contentIndex = start->GetContentIndex();
 const bool bSuccess(
 SwUnoCursorHelper::DocInsertStringSplitCR(
-rDoc, *pCurrent, aText, bool(eMode & 
::sw::DeleteAndInsertMode::ForceExpandHints)));
+rDoc, SwPaM(*start, pCurrent), aText, bool(eMode & 
::sw::DeleteAndInsertMode::ForceExpandHints)));
 OSL_ENSURE( bSuccess, "Doc->Insert(Str) failed." );
 
-SwUnoCursorHelper::SelectPam(*pUnoCursor, true);
-pCurrent->Left(aText.size());
+pCurrent->SetMark();
+pCurrent->GetPoint()->Assign(nodeIndex, contentIndex);
 }
 pCurrent = pCurrent->GetNext();
 } while (pCurrent != pUnoCursor);


[Bug 157981] Import/Export word list to make (custom) dictionaries portable

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=157981

Heiko Tietze  changed:

   What|Removed |Added

   Keywords|needsUXEval |
 Status|NEEDINFO|NEW
 CC|libreoffice-ux-advise@lists |heiko.tietze@documentfounda
   |.freedesktop.org|tion.org
Summary|personal / custom   |Import/Export word list to
   |dictionaries should be  |make (custom) dictionaries
   |easily portable |portable

--- Comment #6 from Heiko Tietze  ---
We discussed the topic in the design meeting.

Just placing a dictionary (*.dic/aff) in some folder (which can be added via
tools > options > path to the dictionary locations) does not make it available
as writing aid; the procedure apparently needs some registration. And while
export/import could be a nice task for a macro it's a generic use case for the
majority of users and adding this to the core makes sense

So the recommendation is to add export/import buttons to the dictionary dialog.

-- 
You are receiving this mail because:
You are the assignee for the bug.

autosave errors

2024-03-22 Thread jax999
 
  
 When LibreOfficeWriter makes an automatic back-up save ... the text you write 
while this is happening, is lost. For most users, this might be a small 
problem, but when you, like me, work with rather large files and write 
relatively quickly, sometimes whole words end up missing that way ... and I 
have to be extra careful reading afterwards to find these 'holes' in the text.  
 Other word processing systems I have used so far have a buffer function, where 
the text that is written during auto-save is saved and then when the auto-save 
is over, inserted in the right place. I would think such a feature would be a 
great improvement for Libre.   Unfortunately, I don't know enough programming 
to fix the problem myself... but I saw a while ago that you asked for user 
feedback, so this is my contribution.   Jack Jensen  
 


[Bug 160310] FILEOPEN: Minor error reported when moving between calc and excel

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160310

--- Comment #1 from Paul Thompson  ---
Created attachment 193236
  --> https://bugs.documentfoundation.org/attachment.cgi?id=193236=edit
Error message

The error message

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 160310] New: FILEOPEN: Minor error reported when moving between calc and excel

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160310

Bug ID: 160310
   Summary: FILEOPEN: Minor error reported when moving between
calc and excel
   Product: LibreOffice
   Version: 24.2.1.2 release
  Hardware: All
OS: Windows (All)
Status: UNCONFIRMED
  Severity: minor
  Priority: medium
 Component: Calc
  Assignee: libreoffice-bugs@lists.freedesktop.org
  Reporter: pthompson2...@gmail.com

Description:
If I edit a spreadsheet in Calc, save it and then edit it in MS Excel, Excel
reports "We found a problem with some content in ''. Do you want us
to try to recover as much as we can?"

The error occurs because I use Calc and send spreadsheets to others who use MS
Excel.

Steps to Reproduce:
1. Edit a file in Calc and save it
2. Open the file in MS Excel
3.

Actual Results:
The above error is displayed in MS Excel. The error is then corrected by MS
Excel and Excel reports "Repaired records. Drawing from
/xl/drawings/drawing1.xml pare (Drawing shape)"

Expected Results:
MS Excel should be able to open the file without error.


Reproducible: Always


User Profile Reset: No

Additional Info:
XML Error file

http://schemas.openxmlformats.org/spreadsheetml/2006/main;>error047120_01.xmlErrors
were detected in file
'https://d.docs.live.net/3eec8a413510c938/Documents/Apartments -
Sydney/2023-2024/Rent Income -
Test.xlsx'Repaired Records: Drawing
from /xl/drawings/drawing1.xml part (Drawing
shape)Repaired Records: Drawing from
/xl/drawings/drawing2.xml part (Drawing
shape)Repaired Records: Drawing from
/xl/drawings/drawing3.xml part (Drawing
shape)

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 107575] [META] Number format bugs and enhancements

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=107575

Heiko Tietze  changed:

   What|Removed |Added

 Depends on||148184


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=148184
[Bug 148184] FORMATTING create a means to represent an integer as an IP Address
-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 148184] FORMATTING create a means to represent an integer as an IP Address

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=148184

Heiko Tietze  changed:

   What|Removed |Added

 Blocks||107575


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=107575
[Bug 107575] [META] Number format bugs and enhancements
-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 148184] FORMATTING create a means to represent an integer as an IP Address

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=148184

Heiko Tietze  changed:

   What|Removed |Added

 Blocks||107575


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=107575
[Bug 107575] [META] Number format bugs and enhancements
-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug 148184] FORMATTING create a means to represent an integer as an IP Address

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=148184

Heiko Tietze  changed:

   What|Removed |Added

 Resolution|--- |WONTFIX
 Status|UNCONFIRMED |RESOLVED

--- Comment #8 from Heiko Tietze  ---
We discussed the topic in the design meeting.

There are plenty of solutions like the one in comment 2 (although not
supporting IPv6). If changes are needed we should invest in the user-defined
formatting rather than introducing another number format that likely is not
standardized in the open document format.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 148184] FORMATTING create a means to represent an integer as an IP Address

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=148184

Heiko Tietze  changed:

   What|Removed |Added

 Resolution|--- |WONTFIX
 Status|UNCONFIRMED |RESOLVED

--- Comment #8 from Heiko Tietze  ---
We discussed the topic in the design meeting.

There are plenty of solutions like the one in comment 2 (although not
supporting IPv6). If changes are needed we should invest in the user-defined
formatting rather than introducing another number format that likely is not
standardized in the open document format.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug 108364] [META] Table/Row/Column/Cell management function bugs and enhancements

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=108364

Heiko Tietze  changed:

   What|Removed |Added

 Depends on||160011


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=160011
[Bug 160011] Hidden columns should not prevent text from preceding columns from
overflowing over their cells
-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 160011] Hidden columns should not prevent text from preceding columns from overflowing over their cells

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160011

Heiko Tietze  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW
   Keywords|needsUXEval |
 CC|libreoffice-ux-advise@lists |heiko.tietze@documentfounda
   |.freedesktop.org|tion.org
 Blocks||108364

--- Comment #16 from Heiko Tietze  ---
We discussed the topic in the design meeting and welcome the suggestion.

Based on the discussion here it might be the best to make the new feature
optionally. Having this option as compatibility flag makes it a bit hard to
find, but on the other hand clutters the tab as view option.


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=108364
[Bug 108364] [META] Table/Row/Column/Cell management function bugs and
enhancements
-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 160011] Hidden columns should not prevent text from preceding columns from overflowing over their cells

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=160011

Heiko Tietze  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 Status|UNCONFIRMED |NEW
   Keywords|needsUXEval |
 CC|libreoffice-ux-advise@lists |heiko.tietze@documentfounda
   |.freedesktop.org|tion.org
 Blocks||108364

--- Comment #16 from Heiko Tietze  ---
We discussed the topic in the design meeting and welcome the suggestion.

Based on the discussion here it might be the best to make the new feature
optionally. Having this option as compatibility flag makes it a bit hard to
find, but on the other hand clutters the tab as view option.


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=108364
[Bug 108364] [META] Table/Row/Column/Cell management function bugs and
enhancements
-- 
You are receiving this mail because:
You are on the CC list for the bug.

[Bug 158556] DOCX Document That Opens/Loads Extremely Slowly

2024-03-22 Thread bugzilla-daemon
https://bugs.documentfoundation.org/show_bug.cgi?id=158556

--- Comment #14 from Commit Notification 
 ---
Noel Grandin committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/284d80825ec7cf3c39af91959e4bf3d539b066f4

tdf#158556 speed up SwNodes::RemoveNode

It will be available in 24.8.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.

-- 
You are receiving this mail because:
You are the assignee for the bug.

core.git: sw/inc sw/source

2024-03-22 Thread Noel Grandin (via logerrit)
 sw/inc/bparr.hxx |5 
 sw/source/core/bastyp/bparr.cxx  |   41 +++
 sw/source/core/docnode/nodes.cxx |8 ---
 3 files changed, 47 insertions(+), 7 deletions(-)

New commits:
commit 284d80825ec7cf3c39af91959e4bf3d539b066f4
Author: Noel Grandin 
AuthorDate: Wed Mar 20 14:43:44 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri Mar 22 08:00:40 2024 +0100

tdf#158556 speed up SwNodes::RemoveNode

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

diff --git a/sw/inc/bparr.hxx b/sw/inc/bparr.hxx
index 9f3e17f8d140..4f831c8bab19 100644
--- a/sw/inc/bparr.hxx
+++ b/sw/inc/bparr.hxx
@@ -91,6 +91,11 @@ public:
 void Move( sal_Int32 from, sal_Int32 to );
 void Replace( sal_Int32 pos, BigPtrEntry* p);
 
+/** Speed up the complicated removal logic in SwNodes::RemoveNode.
+Returns the entry before pNotTheOne.
+*/
+BigPtrEntry* ReplaceTheOneAfter( BigPtrEntry* pNotTheOne, BigPtrEntry* 
pNewEntry);
+
 SW_DLLPUBLIC BigPtrEntry* operator[]( sal_Int32 ) const;
 };
 
diff --git a/sw/source/core/bastyp/bparr.cxx b/sw/source/core/bastyp/bparr.cxx
index b99385bfd3dc..03e035c69621 100644
--- a/sw/source/core/bastyp/bparr.cxx
+++ b/sw/source/core/bastyp/bparr.cxx
@@ -397,6 +397,47 @@ void BigPtrArray::Replace( sal_Int32 idx, BigPtrEntry* 
pElem)
 p->mvData[ idx - p->nStart ] = pElem;
 }
 
+/** Speed up the complicated removal logic in SwNodes::RemoveNode.
+Replaces the node AFTER pNotTheOne.
+Returns the entry BEFORE pNotTheOne.
+*/
+BigPtrEntry* BigPtrArray::ReplaceTheOneAfter( BigPtrEntry* pNotTheOne, 
BigPtrEntry* pNewEntry)
+{
+assert(pNotTheOne->m_pBlock->pBigArr == this);
+BlockInfo* p = pNotTheOne->m_pBlock;
+sal_uInt16 nOffset = pNotTheOne->m_nOffset;
+
+// if the next node is inside the current block
+if (nOffset < p->nElem - 1)
+{
+++nOffset;
+p->mvData[nOffset] = pNewEntry;
+pNewEntry->m_nOffset = nOffset;
+pNewEntry->m_pBlock = p;
+--nOffset;
+}
+else
+{
+// slow path
+BigPtrArray::Replace( pNotTheOne->GetPos()+1, pNewEntry );
+}
+
+// if the previous node is inside the current block
+if (nOffset != 0)
+{
+--nOffset;
+return p->mvData[nOffset];
+}
+else
+{
+// slow path
+sal_Int32 nPrevPos = pNotTheOne->GetPos();
+if (nPrevPos == 0)
+return nullptr;
+return BigPtrArray::operator[]( nPrevPos - 1 );
+}
+}
+
 /** Compress the array */
 sal_uInt16 BigPtrArray::Compress()
 {
diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx
index 0e2a0bc95c5d..5f059f94c519 100644
--- a/sw/source/core/docnode/nodes.cxx
+++ b/sw/source/core/docnode/nodes.cxx
@@ -2413,14 +2413,8 @@ void SwNodes::RemoveNode( SwNodeOffset nDelPos, 
SwNodeOffset nSz, bool bDel )
 delete pDel;
 // coverity[use_after_free : FALSE] - pPrev will be reassigned if 
there will be another iteration to the loop
 pDel = pPrev;
-sal_uLong nPrevNdIdx = pPrev->GetPos();
 BigPtrEntry* pTempEntry = [sal_Int32(nCnt)];
-BigPtrArray::Replace( nPrevNdIdx+1, pTempEntry );
-if( nCnt )
-pPrev = BigPtrArray::operator []( nPrevNdIdx  - 1 );
-// the accessed element can be a naked BigPtrEntry from
-// aTempEntries, so the downcast to SwNode* in
-// SwNodes::operator[] would be illegal (and unnecessary)
+pPrev = ReplaceTheOneAfter(pPrev, pTempEntry);
 }
 nDelPos = SwNodeOffset(pDel->GetPos() + 1);
 }


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

2024-03-22 Thread Caolán McNamara (via logerrit)
 bin/find-can-be-private-symbols.functions.results |1 -
 include/svl/numformat.hxx |3 ++-
 include/svl/zformat.hxx   |   18 +-
 sc/source/ui/view/viewfunc.cxx|2 +-
 svl/source/numbers/zformat.cxx|   18 +-
 sw/source/uibase/utlui/numfmtlb.cxx   |2 +-
 6 files changed, 22 insertions(+), 22 deletions(-)

New commits:
commit 80570de114d31f4ae5114b6fd6fd3ea365b14d63
Author: Caolán McNamara 
AuthorDate: Thu Mar 21 17:44:13 2024 +
Commit: Noel Grandin 
CommitDate: Fri Mar 22 07:57:21 2024 +0100

Related: tdf#160056 these methods can be const

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

diff --git a/include/svl/zformat.hxx b/include/svl/zformat.hxx
index 30f74af23a88..f60e74783d5c 100644
--- a/include/svl/zformat.hxx
+++ b/include/svl/zformat.hxx
@@ -242,8 +242,8 @@ public:
 bool GetOutputString( double fNumber, sal_uInt16 nCharCount, OUString& 
rOutString ) const;
 
 // bStarFlag: Take *n format as ESC n
-bool GetOutputString( double fNumber, OUString& OutString, const Color** 
ppColor, bool bStarFlag = false );
-void GetOutputString( std::u16string_view sString, OUString& OutString, 
const Color** ppColor, bool bStarFlag = false );
+bool GetOutputString( double fNumber, OUString& OutString, const Color** 
ppColor, bool bStarFlag = false ) const;
+void GetOutputString( std::u16string_view sString, OUString& OutString, 
const Color** ppColor, bool bStarFlag = false ) const;
 
 // True if type text
 bool IsTextFormat() const { return bool(eType & SvNumFormatType::TEXT); }
@@ -628,7 +628,7 @@ private:
 sal_uInt16 nIx,
 short eSymbolType,
 bool bStarFlag,
-bool bInsertRightBlank = false );
+bool bInsertRightBlank = false ) const;
 
 // Helper function to fill in the integer part and the group (AKA 
thousand) separators
 SVL_DLLPRIVATE bool ImpNumberFillWithThousands(OUStringBuffer& sStr,
@@ -673,31 +673,31 @@ private:
 SVL_DLLPRIVATE bool ImpGetFractionOutput(double fNumber,
  sal_uInt16 nIx,
  bool bStarFlag,
- OUStringBuffer& OutString);
+ OUStringBuffer& OutString) const;
 SVL_DLLPRIVATE bool ImpGetScientificOutput(double fNumber,
sal_uInt16 nIx,
bool bStarFlag,
-   OUStringBuffer& OutString);
+   OUStringBuffer& OutString) 
const;
 
 SVL_DLLPRIVATE bool ImpGetDateOutput( double fNumber,
   sal_uInt16 nIx,
   bool bStarFlag,
-  OUStringBuffer& OutString );
+  OUStringBuffer& OutString ) const;
 SVL_DLLPRIVATE bool ImpGetTimeOutput( double fNumber,
   sal_uInt16 nIx,
   bool bStarFlag,
-  OUStringBuffer& OutString );
+  OUStringBuffer& OutString ) const;
 SVL_DLLPRIVATE bool ImpGetDateTimeOutput( double fNumber,
   sal_uInt16 nIx,
   bool bStarFlag,
-  OUStringBuffer& OutString );
+  OUStringBuffer& OutString ) 
const;
 
 // Switches to the "gregorian" calendar if the current calendar is
 // non-"gregorian" and the era is a "Dummy" era of a calendar which doesn't
 // know a "before" era (like zh_TW ROC or ja_JP Gengou). If switched and
 // rOrgCalendar was "gregorian" the string is emptied. If rOrgCalendar was
 // empty the previous calendar name and date/time are returned.
-SVL_DLLPRIVATE bool ImpFallBackToGregorianCalendar( OUString& 
rOrgCalendar, double& fOrgDateTime );
+SVL_DLLPRIVATE bool ImpFallBackToGregorianCalendar(OUString& rOrgCalendar, 
double& fOrgDateTime) const;
 
 // Append a "G" short era string of the given calendar. In the case of a
 // Gengou calendar this is a one character abbreviation, for other
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index e4153cb0d826..370097507f06 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -2991,7 +2991,7 @@ void ScViewFunc::ChangeNumFmtDecimals( bool bIncrement )
 

core.git: sw/source

2024-03-22 Thread Noel Grandin (via logerrit)
 sw/source/core/frmedt/fefly1.cxx |   21 +++--
 1 file changed, 7 insertions(+), 14 deletions(-)

New commits:
commit 64aeb5ad0fa2497007c9ee9808f0881bfec99b24
Author: Noel Grandin 
AuthorDate: Wed Mar 20 10:45:35 2024 +0200
Commit: Noel Grandin 
CommitDate: Fri Mar 22 07:56:14 2024 +0100

avoid O(n^2) loop in writer

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

diff --git a/sw/source/core/frmedt/fefly1.cxx b/sw/source/core/frmedt/fefly1.cxx
index 4529e175afb3..494b08b1c77c 100644
--- a/sw/source/core/frmedt/fefly1.cxx
+++ b/sw/source/core/frmedt/fefly1.cxx
@@ -1939,15 +1939,11 @@ void 
SwFEShell::GetConnectableFrameFormats(SwFrameFormat & rFormat,
 if (pOldChainPrev)
 mxDoc->Unchain(*pOldChainPrev);
 
-const size_t nCnt = mxDoc->GetFlyCount(FLYCNTTYPE_FRM);
-
 /* potential successors resp. predecessors */
-std::vector< const SwFrameFormat * > aTmpSpzArray;
+std::vector aTmpSpzArray = 
mxDoc->GetFlyFrameFormats(FLYCNTTYPE_FRM, false);
 
-for (size_t n = 0; n < nCnt; ++n)
+for (auto it = aTmpSpzArray.begin(); it != aTmpSpzArray.end(); ++it)
 {
-const SwFrameFormat & rFormat1 = *(mxDoc->GetFlyNum(n, 
FLYCNTTYPE_FRM));
-
 /*
pFormat is a potential successor of rFormat if it is chainable after
rFormat.
@@ -1959,17 +1955,14 @@ void 
SwFEShell::GetConnectableFrameFormats(SwFrameFormat & rFormat,
 SwChainRet nChainState;
 
 if (bSuccessors)
-nChainState = mxDoc->Chainable(rFormat, rFormat1);
+nChainState = mxDoc->Chainable(rFormat, **it);
 else
-nChainState = mxDoc->Chainable(rFormat1, rFormat);
-
-if (nChainState == SwChainRet::OK)
-{
-aTmpSpzArray.push_back();
-
-}
+nChainState = mxDoc->Chainable(**it, rFormat);
 
+if (nChainState != SwChainRet::OK)
+*it = nullptr;
 }
+std::erase(aTmpSpzArray, nullptr);
 
 if  (!aTmpSpzArray.empty())
 {


core.git: vcl/inc vcl/qa

2024-03-22 Thread Tomaž Vajngerl (via logerrit)
 vcl/inc/bitmap/ScanlineTools.hxx |   56 ---
 vcl/qa/cppunit/ScanlineToolsTest.cxx |   42 --
 2 files changed, 98 deletions(-)

New commits:
commit bbfe52997225a2fb387c94462c867d670954b9b4
Author: Tomaž Vajngerl 
AuthorDate: Wed Mar 13 14:51:47 2024 +0900
Commit: Tomaž Vajngerl 
CommitDate: Fri Mar 22 07:37:52 2024 +0100

vcl: remove 4-bit scanline transformer

We don't use 4-bit bitmap anymore and haven't for a long time.

Change-Id: I00b55a82df4609fbddd50b35f67e338e06f02c4c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164754
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl 

diff --git a/vcl/inc/bitmap/ScanlineTools.hxx b/vcl/inc/bitmap/ScanlineTools.hxx
index 99ce5dc33aae..1b7db0eadffc 100644
--- a/vcl/inc/bitmap/ScanlineTools.hxx
+++ b/vcl/inc/bitmap/ScanlineTools.hxx
@@ -110,60 +110,6 @@ public:
 }
 };
 
-class ScanlineTransformer_4BitPalette final : public ScanlineTransformer
-{
-private:
-sal_uInt8* pData;
-const BitmapPalette& mrPalette;
-sal_uInt32 mnX;
-sal_uInt32 mnShift;
-
-public:
-explicit ScanlineTransformer_4BitPalette(const BitmapPalette& rPalette)
-: pData(nullptr)
-, mrPalette(rPalette)
-, mnX(0)
-, mnShift(0)
-{
-}
-
-virtual void skipPixel(sal_uInt32 nPixel) override
-{
-mnX += nPixel;
-if (nPixel & 1) // is nPixel an odd number
-mnShift ^= 4;
-}
-
-virtual void startLine(sal_uInt8* pLine) override
-{
-pData = pLine;
-mnX = 0;
-mnShift = 4;
-}
-
-virtual Color readPixel() override
-{
-const sal_uInt32 nDataIndex = mnX / 2;
-const sal_uInt8 nIndex((pData[nDataIndex] >> mnShift) & 0x0f);
-mnX++;
-mnShift ^= 4;
-
-if (nIndex < mrPalette.GetEntryCount())
-return mrPalette[nIndex];
-else
-return COL_BLACK;
-}
-
-virtual void writePixel(Color nColor) override
-{
-const sal_uInt32 nDataIndex = mnX / 2;
-const sal_uInt8 nColorIndex = mrPalette.GetBestIndex(nColor);
-pData[nDataIndex] |= (nColorIndex & 0x0f) << mnShift;
-mnX++;
-mnShift ^= 4;
-}
-};
-
 class ScanlineTransformer_1BitPalette final : public ScanlineTransformer
 {
 private:
@@ -215,8 +161,6 @@ std::unique_ptr 
getScanlineTransformer(sal_uInt16 nBits,
 {
 case 1:
 return std::make_unique(rPalette);
-case 4:
-return std::make_unique(rPalette);
 case 8:
 return std::make_unique(rPalette);
 case 24:
diff --git a/vcl/qa/cppunit/ScanlineToolsTest.cxx 
b/vcl/qa/cppunit/ScanlineToolsTest.cxx
index 97233f2692af..afb44a54f005 100644
--- a/vcl/qa/cppunit/ScanlineToolsTest.cxx
+++ b/vcl/qa/cppunit/ScanlineToolsTest.cxx
@@ -20,14 +20,12 @@ class ScanlineToolsTest : public CppUnit::TestFixture
 void ScanlineTransformer_32_ARGB();
 void ScanlineTransformer_24_BGR();
 void ScanlineTransformer_8bit_Palette();
-void ScanlineTransformer_4bit_Palette();
 void ScanlineTransformer_1bit_Palette();
 
 CPPUNIT_TEST_SUITE(ScanlineToolsTest);
 CPPUNIT_TEST(ScanlineTransformer_32_ARGB);
 CPPUNIT_TEST(ScanlineTransformer_24_BGR);
 CPPUNIT_TEST(ScanlineTransformer_8bit_Palette);
-CPPUNIT_TEST(ScanlineTransformer_4bit_Palette);
 CPPUNIT_TEST(ScanlineTransformer_1bit_Palette);
 CPPUNIT_TEST_SUITE_END();
 };
@@ -129,46 +127,6 @@ void ScanlineToolsTest::ScanlineTransformer_8bit_Palette()
 }
 }
 
-void ScanlineToolsTest::ScanlineTransformer_4bit_Palette()
-{
-std::vector aColors{
-Color(10, 250, 120), Color(30, 230, 110), Color(50, 210, 100),
-Color(70, 190, 90),  Color(90, 170, 80),  Color(110, 150, 70),
-};
-
-BitmapPalette aPalette(16);
-for (size_t i = 0; i < aColors.size(); ++i)
-{
-aPalette[i] = aColors[i];
-}
-
-std::unique_ptr pScanlineTransformer
-= vcl::bitmap::getScanlineTransformer(4, aPalette);
-
-std::vector aScanLine(3, 0); // 6 * 0.5 BytesPerPixel
-pScanlineTransformer->startLine(aScanLine.data());
-
-for (Color const& aColor : aColors)
-{
-pScanlineTransformer->writePixel(aColor);
-}
-
-std::vector aExpectedBytes{ 0x01, 0x23, 0x45 };
-
-for (size_t i = 0; i < aScanLine.size(); ++i)
-{
-CPPUNIT_ASSERT_EQUAL(int(aExpectedBytes[i]), int(aScanLine[i]));
-}
-
-pScanlineTransformer->startLine(aScanLine.data());
-
-for (Color const& rColor : aColors)
-{
-Color aColor = pScanlineTransformer->readPixel();
-CPPUNIT_ASSERT_EQUAL(rColor, aColor);
-}
-}
-
 void ScanlineToolsTest::ScanlineTransformer_1bit_Palette()
 {
 std::vector aColors{


<    1   2   3