core.git: officecfg/registry sw/inc sw/source

2024-04-24 Thread Mohit Marathe (via logerrit)
 officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs |   12 +
 sw/inc/strings.hrc|2 
 sw/inc/viewsh.hxx |4 +
 sw/source/core/doc/DocumentSettingManager.cxx |2 
 sw/source/core/view/viewsh.cxx|   24 
++
 sw/source/ui/config/optcomp.cxx   |   12 +
 6 files changed, 56 insertions(+)

New commits:
commit b51271b85387a57b4cdd20ee6277c1a955706fc1
Author: Mohit Marathe 
AuthorDate: Fri Apr 12 23:31:51 2024 +0530
Commit: Mike Kaganski 
CommitDate: Thu Apr 25 07:45:54 2024 +0200

tdf#76005 add TabsRelativeToIndent, TabOverMargin compat option to dialog

Change-Id: I17703c2fe388f485462bd82982664f0b4a14d537
Signed-off-by: Mohit Marathe 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166040
Tested-by: Jenkins
Reviewed-by: Mike Kaganski 

diff --git a/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs 
b/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs
index 8d5f1e172918..085a380cbd41 100644
--- a/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs
@@ -140,6 +140,18 @@
 
 false
   
+  
+
+  Set tabstops relative to indent of paragraph
+
+true
+  
+  
+
+  Allow tabs to extend beyond the right margin
+
+false
+  
 
   
   
diff --git a/sw/inc/strings.hrc b/sw/inc/strings.hrc
index ea58fccb736c..a0d04e35ba29 100644
--- a/sw/inc/strings.hrc
+++ b/sw/inc/strings.hrc
@@ -1490,6 +1490,8 @@
 #define STR_COMPAT_OPT_EMPTYDBFIELDHIDESPARA
NC_("STR_COMPAT_OPT_EMPTYDBFIELDHIDESPARA", "Hide paragraphs of database fields 
(e.g., mail merge) with an empty value")
 #define STR_COMPAT_OPT_USEVARIABLEWIDTHNBSP 
NC_("STR_COMPAT_OPT_USEVARIABLEWIDTHNBSP", "Render non-breaking spaces (NBSP) 
as standard-space-width (off for fixed size)")
 #define STR_COMPAT_OPT_NOGAPAFTERNOTENUMBER 
NC_("STR_COMPAT_OPT_NOGAPAFTERNOTENUMBER", "Do not add an extra space after 
number in footnotes / endnotes with hanging first line")
+#define STR_COMPAT_OPT_TABSRELATIVETOINDENT 
NC_("STR_COMPAT_OPT_TABSRELATIVETOINDENT", "Set tabstops relative to indent of 
paragraph")
+#define STR_COMPAT_OPT_TABOVERMARGIN
NC_("STR_COMPAT_OPT_TABOVERMARGIN", "Allow tabs to extend beyond the right 
margin")
 
 #define STR_TABLE_PANEL_ALIGN_AUTO  
NC_("sidebartableedit|alignautolabel", "Automatic")
 #define STR_TABLE_PANEL_ALIGN_LEFT  
NC_("sidebartableedit|alignleftlabel", "Left")
diff --git a/sw/inc/viewsh.hxx b/sw/inc/viewsh.hxx
index a55da3bc1f69..9417702f5b86 100644
--- a/sw/inc/viewsh.hxx
+++ b/sw/inc/viewsh.hxx
@@ -447,6 +447,10 @@ public:
 
 SW_DLLPUBLIC void SetNoGapAfterNoteNumber(bool bNew);
 
+SW_DLLPUBLIC void SetTabsRelativeToIndent(bool bNew);
+
+SW_DLLPUBLIC void SetTabOverMargin(bool bNew);
+
 // DOCUMENT COMPATIBILITY FLAGS END
 
 // Calls Idle-formatter of Layout.
diff --git a/sw/source/core/doc/DocumentSettingManager.cxx 
b/sw/source/core/doc/DocumentSettingManager.cxx
index 4f768933f633..4e093c9230bf 100644
--- a/sw/source/core/doc/DocumentSettingManager.cxx
+++ b/sw/source/core/doc/DocumentSettingManager.cxx
@@ -137,6 +137,8 @@ sw::DocumentSettingManager::DocumentSettingManager(SwDoc 
&rDoc)
 mbEmptyDbFieldHidesPara = 
aOptions.get(u"EmptyDbFieldHidesPara"_ustr);
 mbUseVariableWidthNBSP  = 
aOptions.get(u"UseVariableWidthNBSP"_ustr);
 mbNoGapAfterNoteNumber  = 
aOptions.get(u"NoGapAfterNoteNumber"_ustr);
+mbTabRelativeToIndent   = 
aOptions.get(u"TabsRelativeToIndent"_ustr);
+mbTabOverMargin = 
aOptions.get(u"TabOverMargin"_ustr);
 }
 else
 {
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 7f048409bc02..5ec658a9cd14 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -1059,6 +1059,30 @@ void SwViewShell::SetNoGapAfterNoteNumber(bool bNew)
 }
 }
 
+void SwViewShell::SetTabsRelativeToIndent(bool bNew)
+{
+IDocumentSettingAccess& rIDSA = getIDocumentSettingAccess();
+if (rIDSA.get(DocumentSettingId::TABS_RELATIVE_TO_INDENT) != bNew)
+{
+SwWait aWait(*GetDoc()->GetDocShell(), true);
+rIDSA.set(DocumentSettingId::TABS_RELATIVE_TO_INDENT, bNew);
+const SwInvalidateFlags nInv = SwInvalidateFlags::Size | 
SwInvalidateFlags::Section | SwInvalidateFlags::PrtArea | 
SwInvalidateFlags::Table | SwInvalidateFlags::Pos;
+lcl_InvalidateAllContent(*this, nInv);
+}
+}
+
+void SwViewShell::SetTabOverMargin(bool bNew)
+{
+IDocumentSettingAccess& rIDSA = getIDocumentSettingAccess();
+   

core.git: include/svx sd/inc sd/source svx/Library_svxcore.mk svx/source

2024-04-24 Thread Tomaž Vajngerl (via logerrit)
 include/svx/annotation/Annotation.hxx |   57 ++
 sd/inc/Annotation.hxx |   18 ++---
 sd/source/core/annotations/Annotation.cxx |8 +---
 svx/Library_svxcore.mk|1 
 svx/source/annotation/Annotation.cxx  |   18 +
 5 files changed, 82 insertions(+), 20 deletions(-)

New commits:
commit a938ed2be520426ce7949c4fd30a6e7e31d7c279
Author: Tomaž Vajngerl 
AuthorDate: Thu Apr 18 14:54:52 2024 +0900
Commit: Tomaž Vajngerl 
CommitDate: Thu Apr 25 07:17:51 2024 +0200

annot: added Annotation impl. to svx, moved some thing from sd

This is an attempt to move the sd::Annotation to the common code
in the svx module. This will need to be done in multiple steps so
the first one is to introduce sdr::annotation::Annotation class in
svx module, which is derived by sd::Annotation. Non-problematic
functionality and members are also moved to the svx Annotation.

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

diff --git a/include/svx/annotation/Annotation.hxx 
b/include/svx/annotation/Annotation.hxx
new file mode 100644
index ..13881a58d070
--- /dev/null
+++ b/include/svx/annotation/Annotation.hxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#pragma once
+
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+namespace sdr::annotation
+{
+class SVXCORE_DLLPUBLIC Annotation
+{
+private:
+static sal_uInt32 m_nLastId;
+static sal_uInt32 nextID() { return m_nLastId++; }
+
+protected:
+SdrPage* mpSdrPage;
+sal_uInt32 m_nId;
+
+css::geometry::RealPoint2D m_Position;
+css::geometry::RealSize2D m_Size;
+OUString m_Author;
+OUString m_Initials;
+css::util::DateTime m_DateTime;
+bool m_bIsFreeText = false;
+
+public:
+Annotation(SdrPage* pPage)
+: mpSdrPage(pPage)
+, m_nId(nextID())
+{
+}
+
+SdrModel* GetModel()
+{
+return mpSdrPage != nullptr ? &mpSdrPage->getSdrModelFromSdrPage() : 
nullptr;
+}
+
+sal_uInt32 GetId() const { return m_nId; }
+};
+
+//typedef std::vector> AnnotationVector;
+
+} // namespace sdr::annotation
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/inc/Annotation.hxx b/sd/inc/Annotation.hxx
index 965cbded3719..558271dbc04e 100644
--- a/sd/inc/Annotation.hxx
+++ b/sd/inc/Annotation.hxx
@@ -26,6 +26,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "sdpage.hxx"
 #include "textapi.hxx"
@@ -67,19 +68,16 @@ struct SD_DLLPUBLIC CustomAnnotationMarker
 };
 
 class SAL_DLLPUBLIC_RTTI Annotation final :
-   public 
::comphelper::WeakComponentImplHelper,
-   public ::cppu::PropertySetMixin
+public sdr::annotation::Annotation,
+public 
::comphelper::WeakComponentImplHelper,
+ public ::cppu::PropertySetMixin
 {
 public:
 explicit Annotation( const 
css::uno::Reference& context, SdPage* pPage );
 Annotation(const Annotation&) = delete;
 Annotation& operator=(const Annotation&) = delete;
 
-static sal_uInt32 m_nLastId;
-
 SdPage* GetPage() const { return mpPage; }
-SdrModel* GetModel() { return (mpPage != nullptr) ? 
&mpPage->getSdrModelFromSdrPage() : nullptr; }
-sal_uInt32 GetId() const { return m_nId; }
 
 // XInterface:
 virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type) 
override;
@@ -141,17 +139,9 @@ private:
 
 void createChangeUndoImpl(std::unique_lock& g);
 
-sal_uInt32 m_nId;
 SdPage* mpPage;
-css::geometry::RealPoint2D m_Position;
-css::geometry::RealSize2D m_Size;
-OUString m_Author;
-OUString m_Initials;
-css::util::DateTime m_DateTime;
 rtl::Reference m_TextRange;
-
 std::unique_ptr m_pCustomAnnotationMarker;
-bool m_bIsFreeText;
 };
 
 }
diff --git a/sd/source/core/annotations/Annotation.cxx 
b/sd/source/core/annotations/Annotation.cxx
index fee7312bcca2..b3938002b87c 100644
--- a/sd/source/core/annotations/Annotation.cxx
+++ b/sd/source/core/annotations/Annotation.cxx
@@ -115,14 +115,10 @@ void createAnnotation(rtl::Reference& 
xAnnotation, SdPage* pPage )
 pPage->addAnnotation(xAnnotation, -1);
 }
 
-sal_uInt32 Annotation::m_nLastId = 1;
-
 Annotation::Annotation(const uno::Reference& context, 
SdPage* pPage)
-: ::cppu::PropertySetMixin(context, 
IMPLEMENTS_PROPERTY_SET,
-uno::Sequence())
-, m_nId(m_nLastId++)
+: sdr::annotation::Annotat

core.git: sw/source sw/uiconfig

2024-04-24 Thread Jim Raykowski (via logerrit)
 sw/source/uibase/utlui/content.cxx |  109 +++--
 sw/uiconfig/swriter/ui/navigatorcontextmenu.ui |   35 
 2 files changed, 136 insertions(+), 8 deletions(-)

New commits:
commit b2b84dfa1d4f5da32f3335c59d618d385173a170
Author: Jim Raykowski 
AuthorDate: Sun Apr 21 19:23:34 2024 -0800
Commit: Jim Raykowski 
CommitDate: Thu Apr 25 05:38:42 2024 +0200

tdf#160598 SwNavigator enhancement to delete footnotes/endnotes

m_bDocHasChanged is checked first in the tooltip and mouse move handlers
to prevent crashes/asserts that happen when SfxPoolItemHolder m_aAttr
references a delete poolitem or poolitem data. Without this check the
following types of crashes/asserts can happen:



Unspecified Application Error

Fatal exception: Signal 6
Stack:
0 sal::backtrace_get(unsigned int) at /home/lo/Dev/LO1/core/sal/osl/
unx/backtraceapi.cxx:42 (discriminator 3)
1 (anonymous namespace)::printStack(int) at /home/lo/Dev/LO1/core/sal/
osl/unx/signal.cxx:289
2 (anonymous namespace)::callSystemHandler(int, siginfo_t*, void*) at /
home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:330
3 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*)
at /home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:427
4 __restore_rt at libc_sigaction.c:?
5 __pthread_kill_implementation at ./nptl/pthread_kill.c:44
6 __GI_raise at ./signal/../sysdeps/posix/raise.c:27
7 __GI_abort at ./stdlib/abort.c:81 (discriminator 21)
8 SalAbort(rtl::OUString const&, bool) at /home/lo/Dev/LO1/core/vcl/
source/app/salplug.cxx:412
9 Application::Abort(rtl::OUString const&) at /home/lo/Dev/LO1/core/
vcl/source/app/svapp.cxx:316
10 desktop::Desktop::Exception(ExceptionCategory) at /home/lo/Dev/LO1/
core/desktop/source/app/app.cxx:1203 (discriminator 2)
11 VCLExceptionSignal_impl(void*, oslSignalInfo*) at /home/lo/Dev/LO1/
core/vcl/source/app/svmain.cxx:176
12 callSignalHandler(oslSignalInfo*) at /home/lo/Dev/LO1/core/sal/osl/
all/signalshared.cxx:47
13 (anonymous namespace)::signalHandlerFunction(int, siginfo_t*, void*)
at /home/lo/Dev/LO1/core/sal/osl/unx/signal.cxx:423
14 __restore_rt at libc_sigaction.c:?
15 SfxPoolItem::Which() const at /home/lo/Dev/LO1/core/include/svl/
poolitem.hxx:225
16 SfxPoolItemHolder::Which() const at /home/lo/Dev/LO1/core/include/
svl/itemset.hxx:74 (discriminator 1)
17 SwTextAttr::GetFootnote() const at /home/lo/Dev/LO1/core/sw/inc/
txatbase.hxx:223 (discriminator 1)
18 SwContentTree::QueryTooltipHdl(weld::TreeIter const&) at /home/lo/
Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4974
19 SwContentTree::LinkStubQueryTooltipHdl(void*, weld::TreeIter const&)
at /home/lo/Dev/LO1/core/sw/source/uibase/utlui/content.cxx:4895
20 Link::Call(weld::TreeIter
const&) const at /home/lo/Dev/LO1/core/include/tools/link.hxx:111
21 weld::TreeView::signal_query_tooltip(weld::TreeIter const&) at /
home/lo/Dev/LO1/core/include/vcl/weld.hxx:977
22 SalInstanceTreeView::TooltipHdl(SvTreeListEntry*) at /home/lo/Dev/
LO1/core/vcl/source/app/salvtables.cxx:5154
23 SalInstanceTreeView::LinkStubTooltipHdl(void*, SvTreeListEntry*) at
/home/lo/Dev/LO1/core/vcl/source/app/salvtables.cxx:5151
24 Link::Call(SvTreeListEntry*) const
at /home/lo/Dev/LO1/core/include/tools/link.hxx:111
25 SvTreeListBox::RequestHelp(HelpEvent const&) at /home/lo/Dev/LO1/
core/vcl/source/treelist/treelistbox.cxx:3284
26 ImplHandleMouseHelpRequest(vcl::Window*, Point const&) at /home/lo/
Dev/LO1/core/vcl/source/window/winproc.cxx:186
27 ImplHandleMouseEvent(VclPtr const&, NotifyEventType,
bool, long, long, unsigned long, unsigned short, MouseEventModifiers) at
/home/lo/Dev/LO1/core/vcl/source/window/winproc.cxx:740
28 ImplHandleSalMouseMove(vcl::Window*, SalMouseEvent const*) at /home/
lo/Dev/LO1/core/vcl/source/window/winproc.cxx:2332
29 ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) at /home/
lo/Dev/LO1/core/vcl/source/window/winproc.cxx:2665 (discriminator 1)
30 SalFrame::CallCallback(SalEvent, void const*) const at /home/lo/Dev/
LO1/core/vcl/inc/salframe.hxx:312 (discriminator 1)
31 QtFrame::CallCallback(SalEvent, void const*) const at /home/lo/Dev/
LO1/core/vcl/inc/qt5/QtFrame.hxx:228
32 QtWidget::mouseMoveEvent(QMouseEvent*) at /home/lo/Dev/LO1/core/vcl/
qt5/QtWidget.cxx:202
33 QWidget::event(QEvent*) in /lib/x86_64-linux-gnu/libQt5Widgets.so.5
34 QtWidget::event(QEvent*) at /home/lo/Dev/LO1/core/vcl/qt5/
QtWidget.cxx:738 (discriminator 2)
35 QApplicationPrivate::notify_helper(QObject*, QEvent*) in /lib/
x86_64-linux-gnu/libQt5Widgets.so.5
36 QApplication::notify(QObject*, QEvent*) in /lib/x86_64-linux-gnu/
libQt5Widgets.so.5
37 QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib/x86_64-

Re: Uploading external tarballs to ?

2024-04-24 Thread Guilhem Moulin
On Wed, 24 Apr 2024 at 19:24:40 +0200, Guilhem Moulin wrote:
> On Wed, 24 Apr 2024 at 19:19:04 +0200, Stephan Bergmann wrote:
>> Is there a new mechanism in place to do so?  The relevant directory appears
>> to only be root-writable now?
>
> 2024-04-19 17:09:22 <@guilhem> i'm freezing 
> dev-www.libreoffice.org/{src,external}
> on gimli while the data is being relocated.  there will be a change in
> workflow for those who upload there, will send an announce to the dev
> list in due time (hopefully tonight, otherwise during the week-end).
> shout out if something urgently needs to be uploaded in the meantime
>
> Which didn't happen yet due to the regressions caused by the last gerrit
> upgrade.  Writing docs for the new workflow now.

See https://git.libreoffice.org/extern#introduction .

-- 
Guilhem.


signature.asc
Description: PGP signature


core.git: 2 commits - accessibility/source dbaccess/source editeng/source offapi/com sc/source sd/source svx/source sw/source test/source toolkit/source vcl/osx vcl/qa vcl/qt5 vcl/source vcl/unx winac

2024-04-24 Thread Michael Weghorn (via logerrit)
 accessibility/source/extended/accessiblelistboxentry.cxx   |2 
 accessibility/source/extended/textwindowaccessibility.cxx  |6 +-
 accessibility/source/standard/floatingwindowaccessible.cxx |2 
 accessibility/source/standard/vclxaccessiblelist.cxx   |2 
 accessibility/source/standard/vclxaccessibleradiobutton.cxx|2 
 dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx|2 
 dbaccess/source/ui/querydesign/TableWindowAccess.cxx   |   10 ++--
 editeng/source/accessibility/AccessibleEditableTextPara.cxx|8 +--
 offapi/com/sun/star/accessibility/AccessibleRelation.idl   |2 
 offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl |1 
 sc/source/ui/Accessibility/AccessibleCell.cxx  |4 -
 sc/source/ui/Accessibility/AccessibleCsvControl.cxx|4 -
 sc/source/ui/Accessibility/AccessibleEditObject.cxx|4 -
 sd/source/console/PresenterAccessibility.cxx   |4 -
 svx/source/accessibility/AccessibleControlShape.cxx|2 
 svx/source/accessibility/AccessibleShape.cxx   |2 
 svx/source/accessibility/svxrectctaccessiblecontext.cxx|2 
 sw/source/core/access/accpara.cxx  |4 -
 sw/source/core/access/acctextframe.cxx |2 
 test/source/a11y/accessibletestbase.cxx|   10 +---
 toolkit/source/awt/vclxaccessiblecomponent.cxx |6 +-
 vcl/osx/a11ywrapper.mm |   12 ++---
 vcl/qa/cppunit/a11y/atspi2/atspi2.cxx  |3 -
 vcl/qt5/QtAccessibleWidget.cxx |2 
 vcl/source/app/salvtables.cxx  |4 -
 vcl/unx/gtk3/a11y/atkwrapper.cxx   |5 --
 winaccessibility/source/UAccCOM/AccRelation.cxx|8 +--
 winaccessibility/source/UAccCOM/MAccessible.cxx|   22 
--
 28 files changed, 64 insertions(+), 73 deletions(-)

New commits:
commit d4f6534e8870e8f271984c37ce54a6878f372ae1
Author: Michael Weghorn 
AuthorDate: Wed Apr 24 14:39:46 2024 +0200
Commit: Michael Weghorn 
CommitDate: Wed Apr 24 23:04:35 2024 +0200

[API CHANGE] a11y: Use XAccessible for relation targets

Use a Sequence of XAccessible rather than its base
interface XInterface for AccessibleRelation's TargetSet.

As the targets are accessible objects as well,
anything other than XAccessible doesn't make much sense.
Using XAccessible right away makes that clearer and avoids
the need to query the XAccessible interface.

(The winaccessibility bridge was already using
`static_cast`, relying on the fact that the objects
are XAccessibles.)

The a11y UNO API is not published, so an API change
should be unproblematic.

Change-Id: I7f08e98d1ec303d5343d9a7954187cdd71495ebc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166586
Reviewed-by: Michael Weghorn 
Tested-by: Jenkins

diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx 
b/accessibility/source/extended/accessiblelistboxentry.cxx
index 6c8fa6fc26dc..a843b938b9a3 100644
--- a/accessibility/source/extended/accessiblelistboxentry.cxx
+++ b/accessibility/source/extended/accessiblelistboxentry.cxx
@@ -463,7 +463,7 @@ namespace accessibility
 if ( xParent.is() )
 {
 rtl::Reference 
pRelationSetHelper = new utl::AccessibleRelationSetHelper;
-Sequence< Reference< XInterface > > aSequence { xParent };
+Sequence> aSequence { xParent };
 pRelationSetHelper->AddRelation(
 AccessibleRelation( AccessibleRelationType::NODE_CHILD_OF, 
aSequence ) );
 xRelSet = pRelationSetHelper;
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx 
b/accessibility/source/extended/textwindowaccessibility.cxx
index f1ccc69c413d..5cef04128d82 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1293,14 +1293,14 @@ Document::retrieveParagraphRelationSet( Paragraph const 
* pParagraph )
 
 if ( aPara > m_aVisibleBegin && aPara < m_aVisibleEnd )
 {
-css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > 
aSequence { getAccessibleChild( aPara - 1 ) };
+
css::uno::Sequence> 
aSequence { getAccessibleChild(aPara - 1) };
 css::accessibility::AccessibleRelation aRelation( 
css::accessibility::AccessibleRelationType::CONTENT_FLOWS_FROM, aSequence );
 pRelationSetHelper->AddRelation( aRelation );
 }
 
 if ( aPara >= m_aVisibleBegin && aPara < m_aVisibleEnd -1 )
 {
-css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > 
aSequence { getAccessibleChild( aPara + 1 ) };
+
css::uno::Sequence> 
aS

core.git: i18npool/source

2024-04-24 Thread Eike Rathke (via logerrit)
 i18npool/source/localedata/data/en_ZA.xml |   46 +++---
 1 file changed, 23 insertions(+), 23 deletions(-)

New commits:
commit 92ea59703da91771ca78ade82ca796077c066da8
Author: Eike Rathke 
AuthorDate: Wed Apr 24 18:09:45 2024 +0200
Commit: Eike Rathke 
CommitDate: Wed Apr 24 22:40:02 2024 +0200

Resolves: tdf#159829 DecimalSeparator '.' period, ThousandSeparator ',' 
comma

Follows
https://unicode-org.atlassian.net/browse/CLDR-16247
https://unicode-org.atlassian.net/browse/CLDR-14707?focusedCommentId=161272

Change-Id: I7ad049dd06102b36ac8d7ff13f7604e5cbb10f9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166602
Reviewed-by: Eike Rathke 
Tested-by: Jenkins

diff --git a/i18npool/source/localedata/data/en_ZA.xml 
b/i18npool/source/localedata/data/en_ZA.xml
index 1e9175837279..dd61e98a2349 100644
--- a/i18npool/source/localedata/data/en_ZA.xml
+++ b/i18npool/source/localedata/data/en_ZA.xml
@@ -31,10 +31,10 @@
   
 
   /
-   
-  ,
+  ,
+  .
   :
-  ,
+  .
   ;


@@ -62,22 +62,22 @@
   0
 
 
-  0,00
+  0.00
 
 
-  # ##0
+  #,##0
 
 
-  # ##0,00
+  #,##0.00
 
 
-  # ###,00
+  #,###.00
 
 
-  # ##0_);(# ##0)
+  #,##0_);(#,##0)
 
 
-  # ##0,00_);(# ##0,00)
+  #,##0.00_);(#,##0.00)
 
 
   [NatNum12 cardinal]0
@@ -92,49 +92,49 @@
   [NatNum12 upper cardinal]0
 
 
-  0,00E+000
+  0.00E+000
 
 
-  0,00E+00
+  0.00E+00
 
 
-  ##0,00E+00
+  ##0.00E+00
 
 
   0%
 
 
-  0,00%
+  0.00%
 
 
-  [CURRENCY] # ##0;[CURRENCY]-# ##0
+  [CURRENCY] #,##0;[CURRENCY]-#,##0
 
 
-  [CURRENCY] # ##0,00;[CURRENCY]-# ##0,00
+  [CURRENCY] #,##0.00;[CURRENCY]-#,##0.00
 
 
-  [CURRENCY] # ##0;[RED][CURRENCY]-# ##0
+  [CURRENCY] #,##0;[RED][CURRENCY]-#,##0
 
 
-  [CURRENCY] # ##0,00;[RED][CURRENCY]-# ##0,00
+  [CURRENCY] #,##0.00;[RED][CURRENCY]-#,##0.00
 
 
-  # ##0,00 CCC
+  #,##0.00 CCC
 
 
-  [CURRENCY] # ##0,--;[RED][CURRENCY]-# ##0,--
+  [CURRENCY] #,##0,--;[RED][CURRENCY]-#,##0,--
 
 
   [NatNum12 title CURRENCY]0
 
 
-  [NatNum12 title CURRENCY]0,00
+  [NatNum12 title CURRENCY]0.00
 
 
   [NatNum12 upper CURRENCY]0
 
 
-  [NatNum12 upper CURRENCY]0,00
+  [NatNum12 upper CURRENCY]0.00
 
 
   YY-MM-DD
@@ -222,10 +222,10 @@
   [HH]:MM:SS
 
 
-  MM:SS,00
+  MM:SS.00
 
 
-  [HH]:MM:SS,00
+  [HH]:MM:SS.00
 
 
   YY-MM-DD HH:MM


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

2024-04-24 Thread Heiko Tietze (via logerrit)
 sc/uiconfig/scalc/ui/conditionalentry.ui |  343 ++-
 1 file changed, 160 insertions(+), 183 deletions(-)

New commits:
commit 32f7ef29615b25e91a73fe33632bb3b7ca506d04
Author: Heiko Tietze 
AuthorDate: Wed Apr 24 11:38:51 2024 +0200
Commit: Adolfo Jayme Barrientos 
CommitDate: Wed Apr 24 21:48:39 2024 +0200

Resolves tdf#159569 - Conditional Formatting dialog jumps with message 
string

Some defined width solves the issue

Change-Id: I1f92815e690828e283c275a58a71dd07613642fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166579
Tested-by: Jenkins
Reviewed-by: Heiko Tietze 
(cherry picked from commit 9d29a2a6aad679129218ab4c5020c92bb3ce9cb3)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166520
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/sc/uiconfig/scalc/ui/conditionalentry.ui 
b/sc/uiconfig/scalc/ui/conditionalentry.ui
index 1ff40d10460f..6e40f6cc6acc 100644
--- a/sc/uiconfig/scalc/ui/conditionalentry.ui
+++ b/sc/uiconfig/scalc/ui/conditionalentry.ui
@@ -1,216 +1,217 @@
 
-
+
 
   
   
 True
-True
+True
 True
-never
-never
-in
+never
+never
+in
 
   
 True
-False
+False
 True
 
-  
+  
   
 True
-False
+False
 True
-6
-6
-12
+6
+6
+12
 
-  
+  
   
 True
-False
+False
 True
-12
+12
 
   
 True
-False
+False
   
   
-0
-0
+0
+0
   
 
 
   
-10
+10
 True
-False
+False
 True
 end
   
   
-1
-0
+1
+0
   
 
   
   
-0
-0
+0
+0
   
 
 
-  
+  
   
 True
-False
+False
 True
-6
-12
-True
+6
+12
+True
 
   
-False
-True
+False
+True
 Apply Style:
-True
-style
+True
+style
 0
   
   
-0
-2
+0
+2
   
 
 
   
-False
-True
+False
+True
 
   New Style...
 
   
   
-1
-2
+1
+2
   
 
 
   
-False
-True
+100
+False
+True
 Enter a value:
 0
   
   
-0
-3
+0
+3
 3
   
 
 
   
-True
-True
+True
+True
+True
 True
-True
   
   
-0
-4
+0
+4
   
 
 
   
-True
-True
+True
+True
+True
 True
-True
   
   
-1
-4
+1
+4
   
 
 
   
-True
-True
+True
+True
+   

core.git: sw/source

2024-04-24 Thread Jim Raykowski (via logerrit)
 sw/source/uibase/utlui/content.cxx |   12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

New commits:
commit 802bc63be79f5622d794345dbbc577b6c603b61b
Author: Jim Raykowski 
AuthorDate: Sat Apr 20 09:52:16 2024 -0800
Commit: Jim Raykowski 
CommitDate: Wed Apr 24 21:37:44 2024 +0200

SwContentTree: Don't show 'Delete' menu item when read-only

Change-Id: Ib3a1ec5635937b2dcb26144f621ee0bf4a0101d1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166413
Reviewed-by: Jim Raykowski 
Tested-by: Jenkins

diff --git a/sw/source/uibase/utlui/content.cxx 
b/sw/source/uibase/utlui/content.cxx
index 25186110de86..a7e3ff3c9289 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -1823,10 +1823,12 @@ IMPL_LINK(SwContentTree, CommandHdl, const 
CommandEvent&, rCEvt, bool)
 const bool bProtected = 
weld::fromId(m_xTreeView->get_id(*xEntry))->IsProtect();
 const bool bProtectBM = (ContentTypeId::BOOKMARK == nContentType)
 && 
m_pActiveShell->getIDocumentSettingAccess().get(DocumentSettingId::PROTECT_BOOKMARKS);
-const bool bEditable = pType->IsEditable() &&
-((bVisible && !bProtected) || ContentTypeId::REGION == 
nContentType);
-const bool bDeletable = pType->IsDeletable()
-&& ((bVisible && !bProtected && !bProtectBM) || 
ContentTypeId::REGION == nContentType);
+const bool bEditable
+= !bReadonly && pType->IsEditable()
+  && ((bVisible && !bProtected) || ContentTypeId::REGION == 
nContentType);
+const bool bDeletable = !bReadonly && pType->IsDeletable()
+&& ((bVisible && !bProtected && 
!bProtectBM)
+|| ContentTypeId::REGION == 
nContentType);
 const bool bRenamable
 = !bReadonly
   && (pType->IsRenamable()
@@ -1899,7 +1901,7 @@ IMPL_LINK(SwContentTree, CommandHdl, const CommandEvent&, 
rCEvt, bool)
 }
 bRemoveCopyEntry = false;
 }
-else if (!bReadonly && bEditable)
+else if (bEditable)
 {
 if(ContentTypeId::INDEX == nContentType)
 {


core.git: sw/source

2024-04-24 Thread Jim Raykowski (via logerrit)
 sw/source/uibase/inc/content.hxx   |2 ++
 sw/source/uibase/utlui/content.cxx |   29 -
 2 files changed, 18 insertions(+), 13 deletions(-)

New commits:
commit 74bd60c433cdc135d8a465eb5cea8ee6ce84b436
Author: Jim Raykowski 
AuthorDate: Sat Apr 20 09:14:00 2024 -0800
Commit: Jim Raykowski 
CommitDate: Wed Apr 24 21:36:57 2024 +0200

Rework SwContentTree context menu item 'Rename' inclusion

Change-Id: Ice211a3026d07a21b1b6e47ee1c16086401714d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166412
Tested-by: Jenkins
Reviewed-by: Jim Raykowski 

diff --git a/sw/source/uibase/inc/content.hxx b/sw/source/uibase/inc/content.hxx
index c6698f4b0322..f0aad555619c 100644
--- a/sw/source/uibase/inc/content.hxx
+++ b/sw/source/uibase/inc/content.hxx
@@ -188,6 +188,7 @@ class SwContentType final : public SwTypeNumber
 boolm_bDataValid :1;
 boolm_bEdit:  1;  // can this type be edited?
 boolm_bDelete:1;  // can this type be deleted?
+bool m_bRenamable = false;
 
 bool m_bAlphabeticSort = false;
 
@@ -221,6 +222,7 @@ public:
 
 boolIsEditable() const {return m_bEdit;}
 boolIsDeletable() const {return m_bDelete;}
+bool IsRenamable() const {return m_bRenamable;}
 };
 
 #endif
diff --git a/sw/source/uibase/utlui/content.cxx 
b/sw/source/uibase/utlui/content.cxx
index eff50a0ea76c..25186110de86 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -379,18 +379,22 @@ SwContentType::SwContentType(SwWrtShell* pShell, 
ContentTypeId nType, sal_uInt8
 case ContentTypeId::TABLE:
 m_sTypeToken = "table";
 m_bEdit = true;
+m_bRenamable = true;
 break;
 case ContentTypeId::FRAME:
 m_sTypeToken = "frame";
 m_bEdit = true;
+m_bRenamable = true;
 break;
 case ContentTypeId::GRAPHIC:
 m_sTypeToken = "graphic";
 m_bEdit = true;
+m_bRenamable = true;
 break;
 case ContentTypeId::OLE:
 m_sTypeToken = "ole";
 m_bEdit = true;
+m_bRenamable = true;
 break;
 case ContentTypeId::TEXTFIELD:
 m_bEdit = true;
@@ -407,16 +411,19 @@ SwContentType::SwContentType(SwWrtShell* pShell, 
ContentTypeId nType, sal_uInt8
 DocumentSettingId::PROTECT_BOOKMARKS);
 m_bEdit = true;
 m_bDelete = !bProtectedBM;
+m_bRenamable = !bProtectedBM;
 }
 break;
 case ContentTypeId::REGION:
 m_sTypeToken = "region";
 m_bEdit = true;
 m_bDelete = true;
+m_bRenamable = true;
 break;
 case ContentTypeId::INDEX:
 m_bEdit = true;
 m_bDelete = true;
+m_bRenamable = true;
 break;
 case ContentTypeId::REFERENCE:
 m_bEdit = false;
@@ -432,6 +439,7 @@ SwContentType::SwContentType(SwWrtShell* pShell, 
ContentTypeId nType, sal_uInt8
 case ContentTypeId::DRAWOBJECT:
 m_sTypeToken = "drawingobject";
 m_bEdit = true;
+m_bRenamable = true;
 break;
 default: break;
 }
@@ -1819,15 +1827,11 @@ IMPL_LINK(SwContentTree, CommandHdl, const 
CommandEvent&, rCEvt, bool)
 ((bVisible && !bProtected) || ContentTypeId::REGION == 
nContentType);
 const bool bDeletable = pType->IsDeletable()
 && ((bVisible && !bProtected && !bProtectBM) || 
ContentTypeId::REGION == nContentType);
-const bool bRenamable = bEditable && !bReadonly &&
-(ContentTypeId::TABLE == nContentType ||
- ContentTypeId::FRAME == nContentType ||
- ContentTypeId::GRAPHIC == nContentType ||
- ContentTypeId::OLE == nContentType ||
- (ContentTypeId::BOOKMARK == nContentType && !bProtectBM) 
||
- ContentTypeId::REGION == nContentType ||
- ContentTypeId::INDEX == nContentType ||
- ContentTypeId::DRAWOBJECT == nContentType);
+const bool bRenamable
+= !bReadonly
+  && (pType->IsRenamable()
+  || (ContentTypeId::BOOKMARK == nContentType && 
!bProtectBM));
+
 // Choose which Delete entry to show.
 if (bDeletable)
 {
@@ -1932,12 +1936,11 @@ IMPL_LINK(SwContentTree, CommandHdl, const 
CommandEvent&, rCEvt, bool)
 xPop->set_active("protectsection", bProtected);
 xPop->set_active("hidesection", bHidden);
 }
-else if (bEditable)
+else
 bRemoveEditEntry = false;
-//Rename ob

Minutes from the UX/design meeting 2023-Apr-24

2024-04-24 Thread Heiko Tietze

Present: Cor, Sahil, John, Ring, Heiko
Comments: Stephane, Eyal, Stuart

Tickets/Topics

 * Bullets and Numbering dialog in Writer does not say it's about an
   implicit list style
   + https://bugs.documentfoundation.org/show_bug.cgi?id=160629
   + list styles created and applied via toolbar are hard to identify
 as such in the B&N dialog
   + no label substitutes the need to learn how this works; we may drop
 all shortcuts and ease functions but the cost is too high (Heiko, Cor)
   => suggest WF

 * Want indication of whether a master slide is in use or not
   + https://bugs.documentfoundation.org/show_bug.cgi?id=160403
   + MSO Powerpoints shows the number of slides in a tooltip (Stephane)
   + additional boolean indication would be nice (Eyal)
   + tooltip sounds good and is not harmful (John)
   + not much useful since "Delete Master" is only available if the
 slide master is not in use (Cor)
   => no objection, low priority

 * When right-clicking a font family combo-box, offer font meta-data
   + https://bugs.documentfoundation.org/show_bug.cgi?id=152487
   + unclear use case and much likely off-topic being available in
 font management tools (Heiko)
   + info dialog sounds good but rather via special characters or
 in the character properties dialog (Stuart)
   + only use case is compatibility with some other font (John)
 + likely not part of the meta data
   + the Internet returns all search results (Cor)
   => idea does not find support; WF

 * Make possible 2 or more impress in fullscreen each on a dedicated
   monitor AND each seekable independently with user-defined hotkeys
   per each file
   + https://bugs.documentfoundation.org/show_bug.cgi?id=160242
   + start Impress twice (Stephane), workflow is supported with a third
 monitor (John)
   + too niche, better suited for an extension (Stephane, Sahil)
   => WF


OpenPGP_signature.asc
Description: OpenPGP digital signature


core.git: instsetoo_native/inc_openoffice

2024-04-24 Thread kubak (via logerrit)
 instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit f91e8fe61f15f0365cc65183d3fb3573d5215d3f
Author: kubak 
AuthorDate: Wed Apr 24 00:29:02 2024 +0200
Commit: Adolfo Jayme Barrientos 
CommitDate: Wed Apr 24 20:22:23 2024 +0200

MSI: Fix use of undefined TextStyle

ICE31 ERROR Control AdminNetworkLocation.DlgTitle uses undefined TextStyle 
MSSansBold8.

In the Control table in the Text column there is:

{&MSSansBold8}Network Location

and the Text Style from the TextStyle table should be used and look like 
this:

{&DialogDefaultBold}Network Location

https: //learn.microsoft.com/en-us/windows/win32/msi/ice31
Change-Id: I4fa1048cc28d042fc8a78b4dba1495ad75fc017a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166568
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos 

diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf 
b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
index fcea59317f08..432e451fdc22 100644
--- a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
+++ b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf
@@ -56,7 +56,7 @@ en-US = "Specify a network location for the server image of 
the product."
 en-US = "Enter the network location or click Change to browse to a location. 
Click Install to create a server image of [ProductName] at the specified 
network location or click Cancel to exit the wizard."
 
 [OOO_CONTROL_21]
-en-US = "{&MSSansBold8}Network Location"
+en-US = "{&DialogDefaultBold}Network Location"
 
 [OOO_CONTROL_22]
 en-US = "&Install"


core.git: vcl/qa vcl/source

2024-04-24 Thread Patrick Luby (via logerrit)
 vcl/qa/cppunit/pdfexport/pdfexport2.cxx |6 +-
 vcl/source/gdi/pdfwriter_impl.cxx   |   14 ++
 2 files changed, 15 insertions(+), 5 deletions(-)

New commits:
commit 4b31f87e918c38a7eb30ceb85563a5c98b426da5
Author: Patrick Luby 
AuthorDate: Mon Apr 22 19:36:14 2024 -0400
Commit: Patrick Luby 
CommitDate: Wed Apr 24 20:17:56 2024 +0200

tdf#160714 use crop box for bounds of embedded PDF object

If there is no crop box, fallback to the media box just to be safe.

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

diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index 525f1d91a449..ccaab1d5c9bf 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -45,6 +45,7 @@
 #include 
 
 #include 
+#include 
 #include 
 #include 
 
@@ -4627,7 +4628,10 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, 
testRexportMediaBoxOrigin)
 = { // Rotation by $   heta$ $cos( heta), sin( heta), -sin(
heta), cos( heta)$
 0, -1, 1, 0,
 // Translate x,y
--aOrigin[1] - aSize[1] / 2 + aSize[0] / 2, aOrigin[0] + aSize[0] / 
2 + aSize[1] / 2
+-aOrigin[1] - aSize[1] / vcl::PDF_INSERT_MAGIC_SCALE_FACTOR / 2
++ aSize[0] / vcl::PDF_INSERT_MAGIC_SCALE_FACTOR / 2,
+aOrigin[0] + aSize[0] / vcl::PDF_INSERT_MAGIC_SCALE_FACTOR / 2
++ aSize[1] / vcl::PDF_INSERT_MAGIC_SCALE_FACTOR / 2
   };
 
 for (sal_Int32 nIdx = 0; nIdx < 6; ++nIdx)
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx 
b/vcl/source/gdi/pdfwriter_impl.cxx
index d780b0c4f88e..cf5a5fc39546 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -9124,9 +9124,15 @@ void PDFWriterImpl::writeReferenceXObject(const 
ReferenceXObjectEmit& rEmit)
 }
 
 double aOrigin[2] = { 0.0, 0.0 };
-if (auto* pArray = 
dynamic_cast(pPage->Lookup("MediaBox"_ostr)))
+
+// tdf#160714 use crop box for bounds of embedded PDF object
+// If there is no crop box, fallback to the media box just to be safe.
+auto* pBoundsArray = 
dynamic_cast(pPage->Lookup("CropBox"_ostr));
+if (!pBoundsArray)
+pBoundsArray = 
dynamic_cast(pPage->Lookup("MediaBox"_ostr));
+if (pBoundsArray)
 {
-const auto& rElements = pArray->GetElements();
+const auto& rElements = pBoundsArray->GetElements();
 if (rElements.size() >= 4)
 {
 // get x1, y1 of the rectangle.
@@ -9239,9 +9245,9 @@ void PDFWriterImpl::writeReferenceXObject(const 
ReferenceXObjectEmit& rEmit)
 // Now transform the object: rotate around the center and make 
sure that the rotation
 // doesn't affect the aspect ratio.
 basegfx::B2DHomMatrix aMat;
-aMat.translate(-0.5 * aBBox.getWidth() - aOrigin[0], -0.5 * 
aBBox.getHeight() - aOrigin[1]);
+aMat.translate((-0.5 * aBBox.getWidth() / fMagicScaleFactor) - 
aOrigin[0], (-0.5 * aBBox.getHeight() / fMagicScaleFactor) - aOrigin[1]);
 aMat.rotate(basegfx::deg2rad(nAngle));
-aMat.translate(0.5 * nWidth, 0.5 * nHeight);
+aMat.translate(0.5 * nWidth / fMagicScaleFactor, 0.5 * nHeight / 
fMagicScaleFactor);
 
 aLine.append(" /Matrix [ ");
 aLine.append(aMat.a());


Re: Uploading external tarballs to ?

2024-04-24 Thread Guilhem Moulin
On Wed, 24 Apr 2024 at 19:19:04 +0200, Stephan Bergmann wrote:
> Is there a new mechanism in place to do so?  The relevant directory appears
> to only be root-writable now?

2024-04-19 17:09:22 <@guilhem> i'm freezing 
dev-www.libreoffice.org/{src,external}
  on gimli while the data is being relocated.  there will be a change in
  workflow for those who upload there, will send an announce to the dev
  list in due time (hopefully tonight, otherwise during the week-end).
  shout out if something urgently needs to be uploaded in the meantime

Which didn't happen yet due to the regressions caused by the last gerrit
upgrade.  Writing docs for the new workflow now.

-- 
Guilhem.


signature.asc
Description: PGP signature


Uploading external tarballs to ?

2024-04-24 Thread Stephan Bergmann
Is there a new mechanism in place to do so?  The relevant directory 
appears to only be root-writable now?


Jakub Kościelak license statement

2024-04-24 Thread Jakub Kościelak

All of my past & future contributions to LibreOffice may be
   licensed under the MPLv2/LGPLv3+ dual license.


core.git: download.lst

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

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

NotoSerifHebrew: upgrade to v2.004

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

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


core.git: bridges/source

2024-04-24 Thread Stephan Bergmann (via logerrit)
 bridges/source/cpp_uno/msvc_win32_arm64/abi.cxx   |6 
 bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S |   74 +-
 bridges/source/cpp_uno/msvc_win32_arm64/cpp2uno.cxx   |6 
 bridges/source/cpp_uno/msvc_win32_arm64/uno2cpp.cxx   |   18 +-
 bridges/source/cpp_uno/msvc_win32_arm64/vtableslotcall.S  |1 
 5 files changed, 60 insertions(+), 45 deletions(-)

New commits:
commit ae6ee262d7649222a137f8722886a10db274ddf5
Author: Stephan Bergmann 
AuthorDate: Wed Apr 24 14:06:11 2024 +0200
Commit: Stephan Bergmann 
CommitDate: Wed Apr 24 19:03:19 2024 +0200

Some fixing of msvc_win32_arm64 UNO bridge

For one, the Windows ABI deviates from the generic aarch64 ABI regarding
returning class instances by value from non-static member functions, see

:
"The caller shall reserve a block of memory of sufficient size and 
alignment to
hold the result.  The address of the memory block shall be passed as an
additional argument to the function in x0, or x1 if $this is passed in x0.  
The
callee may modify the result memory block at any point during the execution 
of
the subroutine.  The callee returns the address of the memory block in x0."
That means RETURN_KIND_HFA_FLOAT and RETURN_KIND_HFA_DOUBLE are not needed, 
and
can be cleaned up in a follow-up commit.

And for another, setting up a call stack frame in call() in uno2cpp.cxx for
callVirtualFunction() didn't actually work, so go with a slightly less 
ambitious
aproach (as also used by the gcc_linux_aarch64 bridge) and explicitly copy 
the
arguments that end up on the stack around in callVirtualFunction().

This allows CustomTarget_testtools/uno_test to proceed at least as far as 
the
call of getRaiseAttr1(), which still leads to an uncaught
css::uno::RuntimeException.

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

diff --git a/bridges/source/cpp_uno/msvc_win32_arm64/abi.cxx 
b/bridges/source/cpp_uno/msvc_win32_arm64/abi.cxx
index c88873143898..b8a1c73fb6f3 100644
--- a/bridges/source/cpp_uno/msvc_win32_arm64/abi.cxx
+++ b/bridges/source/cpp_uno/msvc_win32_arm64/abi.cxx
@@ -144,13 +144,13 @@ ReturnKind getReturnKind(typelib_TypeDescription const* 
type)
 switch 
(getStructKind(reinterpret_cast(type)))
 {
 case STRUCT_KIND_FLOAT:
-return RETURN_KIND_HFA_FLOAT;
+return RETURN_KIND_INDIRECT;
 case STRUCT_KIND_DOUBLE:
-return RETURN_KIND_HFA_DOUBLE;
+return RETURN_KIND_INDIRECT;
 case STRUCT_KIND_DTOR:
 return RETURN_KIND_INDIRECT;
 default:
-return RETURN_KIND_REG;
+return RETURN_KIND_INDIRECT;
 }
 }
 }
diff --git a/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S 
b/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S
index a058e47d0038..546c02cf5040 100644
--- a/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S
+++ b/bridges/source/cpp_uno/msvc_win32_arm64/callvirtualfunction.S
@@ -19,53 +19,63 @@
 /*
extern void callVirtualFunction
 
-   x0 stack
-   x1 frame
-   x2 function
-   x3 return
+   x0 regs
+   x1 stack
+   x2 stack count
+   x3 function
 */
 
-NESTED_ENTRY callVirtualFunction_fake
+NESTED_ENTRY callVirtualFunction
 
-// for unwind information, Windows has to store fp and lr
-PROLOG_SAVE_REG_PAIR   x29, x30, #-32!
+sub   sp, sp, #32
+stp   fp, lr, [sp]
+mov   fp, sp
 
-ALTERNATE_ENTRY callVirtualFunction
+// Stack space for arguments >= 8 (16-byte aligned):
+lsl   x2, x2, #3
+sub   x9, sp, x2
+bfc   x9, #0, #4
+mov   sp, x9
 
-// use a stack frame allocated by our caller
-stp   x29, x30, [x1]
-mov   x29, x1
-mov   sp, x0
+// Copy arguments >= 8:
+cbz   x2, done
+loop
+sub   x2, x2, #8
+ldr   x9, [x1, x2]
+str   x9, [sp, x2]
+cbnz  x2, loop
+done
 
-mov   x9, x2  // function
-mov   x8, x3  // complex return
-str   x3, [x29, #16]  // save rvalue
+mov   x9, x3  // function
+
+mov   x10, x0
+str   x10, [fp, #16]
 
 // load the core argument passing registers
-ldp   x0, x1, [sp, #-128]
-ldp   x2, x3, [sp, #-112]
-ldp   x4, x5, [sp, #-96]
-ldp   x6, x7, [sp, #-80]
+ldp   x0, x1, [x10, #0]
+ldp   x2, x3, [x10, #16]
+ldp   x4, x5, [x10, #32]
+ldp   x6, x7, [

ESC meeting agenda: 2024-04-25 16:00 CEST

2024-04-24 Thread Miklos Vajna

Hi,

The prototype agenda is below. Extra items are appreciated either in
this document or as a reply to this mail:

https://pad.documentfoundation.org/p/esc

You can join using Jitsi here:

https://jitsi.documentfoundation.org/esc

Regards,

Miklos

---

* Present:
+

* Completed Action Items:

* Pending Action Items:
+ Update api.libreoffice.org from 7.4 (Cloph)

* Release Engineering update (Cloph)
+ 7.6: 7.6.7 RC2 next week?
+ 24.2: 24.2.3 RC2 this week?

* Documentation (Olivier)
+ Bugzilla Documentation statistics
264(264) bugs open
+ Updates:
BZ changes   1 week   1 month   3 months   12 months
   created 15(7)37(7)  98(9) 222(4)
 commented 26(23)   68(11)246(11)856(20)
  resolved  5(-1)   17(1)  46(3) 117(1)
+ top 10 contributors:
  Olivier Hallot made 43 changes in 1 month, and 263 changes in 1 year
  Stéphane Guillou made 25 changes in 1 month, and 255 changes in 1 year
  Dione Maddern made 16 changes in 1 month, and 31 changes in 1 year
  MeBugzilla made 7 changes in 1 month, and 7 changes in 1 year
  Weghorn, Michael made 7 changes in 1 month, and 8 changes in 1 year
  Nabet, Julien made 7 changes in 1 month, and 53 changes in 1 year
  Ilmari Lauhakangas made 6 changes in 1 month, and 71 changes in 1 year
  Kaganski, Mike made 4 changes in 1 month, and 68 changes in 1 year
  Adolfo Jayme Barrientos made 3 changes in 1 month, and 24 changes in 
1 year
  Heiko Tietze made 3 changes in 1 month, and 82 changes in 1 year

* UX Update (Heiko)
+ Bugzilla (topicUI) statistics
241(241) (topicUI) bugs open, 38(38) (needsUXEval) needs to be 
evaluated by the UXteam
+ Updates:
BZ changes   1 week1 month3 months   12 months
 added  2(-2)  9(-10)16(-7)  24(-7)
 commented 50(-21)   196(-35)   556(-8)1894(-55)
   removed  1(0)   3(1)   3(1)   12(0)
  resolved  9(1)  32(4)  89(4)  314(-6)
+ top 10 contributors:
  Vernon, Stuart Foote made 109 changes in 1 month, and 309 changes in 
1 year
  Heiko Tietze made 84 changes in 1 month, and 1079 changes in 1 year
  Stéphane Guillou made 79 changes in 1 month, and 644 changes in 1 year
  Ilmari Lauhakangas made 19 changes in 1 month, and 144 changes in 1 
year
  Dieter made 15 changes in 1 month, and 148 changes in 1 year
  Eyal Rozenberg made 15 changes in 1 month, and 143 changes in 1 year
  Justin Luth made 15 changes in 1 month, and 140 changes in 1 year
  Petros Christopoulos made 7 changes in 1 month, and 7 changes in 1 
year
  Robert Großkopf made 6 changes in 1 month, and 11 changes in 1 year
  *UNKNOWN* made 5 changes in 1 month, and 5 changes in 1 year

* Crash Testing (Caolan)
+ 24(+0) import failure, 19(+0) export failures
+ ??? coverity issues
+ Google / ossfuzz: ?? fuzzers active now

* Crash Reporting (Xisco)
+ 24.2.0.316125(+718)
+ 24.2.1.167(+4)
+ 24.2.1.212036(+1143)
+ 24.2.2.24911(+1790)

* Mentoring (Hossein)
  committer...   1 week1 month  3 months 12 months
  open  92(46)143(23)  171(28)   171(28)
   reviews 357(39)   1211(-165)   3695(-167)   12499(-19)
merged 245(32)964(-17)3229(-48)12441(-53)
 abandoned  21(12) 55(6)   171(4)658(-7)
   own commits 183(54)679(38) 2152(8)   9191(-1)
review commits  67(24)264(5)   873(1)   3068(13)
contributor...   1 week 1 month3 months12 months
  open  44(8)   93(-6)103(-2)  103(-2)
   reviews 745(163)   2605(-7)   7649(-41)   29453(-117)
merged  29(12) 147(10)373(17) 1734(10)
 abandoned  12(1)   51(6) 295(5)   698(8)
   own commits  31(15) 151(-2)442(-4) 1122(5)
review commits   0(0)0(0)   0(0) 0(0)
+ easyHack statistics:
   needsDevEval 8(8)   needsUXEval 1(1)   cleanup_comments 331(331)
   total 413(413)   assigned 28(28)   open 351(351)
+ top 10 contributors:
  LeSasse made 19 patches in 1 month, and 19 patches in 1 year
  Armin Le Grand (allotropia) made 12 patches in 1 month, and 89 
patches in 1 year
  Ritobroto Mukherjee made 10 patches in 1 month, and 14 patches in 1 
year
  Rafał Dobrakowski made 8 patches in 1 month, and 16 patches in 1 year
  Dione Maddern made 8 patches in 1 month, and 34 patches in 1 year
  Bogdan B made 5 patches in 1 month, and 20 patches in 1 year
  Aaron Bourdeaux made 5 patches in 1 month, and 5 patches in 1 year
  

core.git: sw/qa sw/source sw/uiconfig

2024-04-24 Thread Heiko Tietze (via logerrit)
 sw/qa/uitest/writer_tests2/formatCharacter.py |   47 -
 sw/source/ui/chrdlg/chardlg.cxx   |  211 --
 sw/source/uibase/inc/chrdlg.hxx   |   30 ---
 sw/uiconfig/swriter/ui/characterproperties.ui |   30 ---
 4 files changed, 3 insertions(+), 315 deletions(-)

New commits:
commit 63315d601296f7c188e920f73b12260d018807d0
Author: Heiko Tietze 
AuthorDate: Tue Apr 23 17:20:47 2024 +0200
Commit: Heiko Tietze 
CommitDate: Wed Apr 24 16:13:15 2024 +0200

Resolves tdf#132253 - Remove hyperlink tab from character dialog

Change-Id: Idb7fa74dbe196262cea64946452043f7de6fa20c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166553
Tested-by: Jenkins
Reviewed-by: Heiko Tietze 

diff --git a/sw/qa/uitest/writer_tests2/formatCharacter.py 
b/sw/qa/uitest/writer_tests2/formatCharacter.py
index 265f7b4df92e..724b8813029e 100644
--- a/sw/qa/uitest/writer_tests2/formatCharacter.py
+++ b/sw/qa/uitest/writer_tests2/formatCharacter.py
@@ -65,8 +65,6 @@ class formatCharacter(UITestCase):
 xLangFontCTL = xDialog.getChild("cbCTLLanguage")
 self.assertEqual(get_state_as_dict(xLangFontCTL)["Text"], 
"[None]")
 
-
-
def test_format_character_tab_font_effects(self):
 with self.ui_test.create_doc_in_start_center("writer"):
 
@@ -115,47 +113,6 @@ class formatCharacter(UITestCase):
 
self.assertEqual(get_state_as_dict(xEmphasis)["SelectEntryText"], "Dot")
 
self.assertEqual(get_state_as_dict(xPosition)["SelectEntryText"], "Below text")
 
-
-
-   def test_format_character_tab_hyperlink(self):
-with self.ui_test.create_doc_in_start_center("writer") as document:
-
-with 
self.ui_test.execute_dialog_through_command(".uno:FontDialog") as xDialog:
-xTabs = xDialog.getChild("tabcontrol")
-select_pos(xTabs, "4")
-
-xURL = xDialog.getChild("urled")
-xURL.executeAction("TYPE", 
mkPropertyValues({"TEXT":"libreoffice.org"}))
-xTexted = xDialog.getChild("texted")
-xTexted.executeAction("TYPE", 
mkPropertyValues({"TEXT":"LibreOffice"}))
-xName = xDialog.getChild("nameed")
-xName.executeAction("TYPE", 
mkPropertyValues({"TEXT":"hyperlink"}))
-
-xVisited = xDialog.getChild("visitedlb")
-select_by_text(xVisited, "Bullets")
-xUnVisited = xDialog.getChild("unvisitedlb")
-select_by_text(xUnVisited, "Bullets")
-
-
-self.xUITest.executeCommand(".uno:GoLeft")
-self.assertEqual(document.Text.String[0:11], "LibreOffice")
-
-with 
self.ui_test.execute_dialog_through_command(".uno:FontDialog", 
close_button="cancel") as xDialog:
-xTabs = xDialog.getChild("tabcontrol")
-select_pos(xTabs, "4")
-xURL = xDialog.getChild("urled")
-xTexted = xDialog.getChild("texted")
-xName = xDialog.getChild("nameed")
-xVisited = xDialog.getChild("visitedlb")
-xUnVisited = xDialog.getChild("unvisitedlb")
-
-self.assertEqual(get_state_as_dict(xURL)["Text"], 
"http://libreoffice.org/";)
-self.assertEqual(get_state_as_dict(xTexted)["Text"], 
"LibreOffice")
-self.assertEqual(get_state_as_dict(xName)["Text"], "hyperlink")
-
self.assertEqual(get_state_as_dict(xVisited)["SelectEntryText"], "Bullets")
-
self.assertEqual(get_state_as_dict(xUnVisited)["SelectEntryText"], "Bullets")
-
-
def test_format_character_tab_asian_layout(self):
 with self.ui_test.create_doc_in_start_center("writer"):
 
@@ -221,8 +178,6 @@ class formatCharacter(UITestCase):
 self.assertEqual(get_state_as_dict(xFitToLine)["Selected"], 
"true")
 
self.assertEqual(get_state_as_dict(xNoHyphenation)["Selected"], "true")
 
-
-
def test_format_character_tab_position_scalewidthsb(self):
 with self.ui_test.create_doc_in_start_center("writer"):
 
@@ -240,6 +195,4 @@ class formatCharacter(UITestCase):
 xScalewidth = xDialog.getChild("scalewidthsb")
 self.assertEqual(get_state_as_dict(xScalewidth)["Text"], 
"101%")
 
-
-
 # vim: set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/sw/source/ui/chrdlg/chardlg.cxx b/sw/source/ui/chrdlg/chardlg.cxx
index 14833d719282..f57a78d735c9 100644
--- a/sw/source/ui/chrdlg/chardlg.cxx
+++ b/sw/source/ui/chrdlg/chardlg.cxx
@@ -17,37 +17,18 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include 
-#include 
-
-#include 
-#include 
-#include 
 #include 
-#include 
 #include 
-#include 
-#include 
 
 #include 
 #include 
 #include 
 #include 
-#include 
-#include 
-#include 
 #include 
-#include 
-#include 
 
 #include 
 #include 
-#include 
-#include 
-#include 
 #include 
-#include 
-#includ

core.git: solenv/gbuild

2024-04-24 Thread Christian Lohmaier (via logerrit)
 solenv/gbuild/platform/windows.mk |2 ++
 1 file changed, 2 insertions(+)

New commits:
commit 497fc304d49577df43842d56eb3ccbe6875fcafd
Author: Christian Lohmaier 
AuthorDate: Tue Jul 11 18:30:20 2023 +0200
Commit: Christian Lohmaier 
CommitDate: Wed Apr 24 15:51:34 2024 +0200

windows: set CONFIG_SHELL for external configure runs

Change-Id: I9cb03692524eced35935ad1979027f7b196e5ed6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166329
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier 

diff --git a/solenv/gbuild/platform/windows.mk 
b/solenv/gbuild/platform/windows.mk
index dc7a76d1515c..797680038320 100644
--- a/solenv/gbuild/platform/windows.mk
+++ b/solenv/gbuild/platform/windows.mk
@@ -19,6 +19,8 @@ gb_Helper_LIBRARY_PATH_VAR := PATH
 
 gb_MKTEMP := mktemp --tmpdir=$(TMPDIR) gbuild.XX
 
+gb_RUN_CONFIGURE := CONFIG_SHELL=$(shell cygpath -ms /bin/sh)
+
 # define _WIN32_WINNT and WINVER will be derived from it in sdkddkver.h
 # current baseline is Windows 7 (NT 6.1)
 # for _WIN32_IE, if _WIN32_WINNT >= 0x0600 the derived value from


core.git: external/breakpad external/coinmp external/lcms2 external/libtommath external/python3 external/skia

2024-04-24 Thread Christian Lohmaier (via logerrit)
 external/breakpad/UnpackedTarball_breakpad.mk |6 ++
 external/coinmp/UnpackedTarball_coinmp.mk |5 +
 external/lcms2/UnpackedTarball_lcms2.mk   |5 +
 external/libtommath/UnpackedTarball_libtommath.mk |5 +
 external/python3/UnpackedTarball_python3.mk   |5 +
 external/skia/UnpackedTarball_skia.mk |5 +
 6 files changed, 31 insertions(+)

New commits:
commit c1256034ffb585cd818eedb49c88c86d414224b9
Author: Christian Lohmaier 
AuthorDate: Tue Aug 8 12:13:53 2023 +0200
Commit: Christian Lohmaier 
CommitDate: Wed Apr 24 15:50:35 2024 +0200

use --binary flag when applying patches with patch from git-bash

Change-Id: Idbd4ad7ad89dc727e2f0cf851c4c62f05d5b2a0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166328
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier 

diff --git a/external/breakpad/UnpackedTarball_breakpad.mk 
b/external/breakpad/UnpackedTarball_breakpad.mk
index eca3d550d0d4..ce553e334251 100644
--- a/external/breakpad/UnpackedTarball_breakpad.mk
+++ b/external/breakpad/UnpackedTarball_breakpad.mk
@@ -19,6 +19,12 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,breakpad,$(BREAKPAD_TARBALL)))
 # external/breakpad/SIGSTKSZ.patch upstreamed at
 #   
"Adpat to SIGSTKSZ type
 #  in glibc 2.34":
+
+ifneq ($(MSYSTEM),)
+# use binary flag so patch from git-bash won't choke on mixed line-endings in 
patches
+$(eval $(call gb_UnpackedTarball_set_patchflags,breakpad,--binary))
+endif
+
 $(eval $(call gb_UnpackedTarball_add_patches,breakpad,\
external/breakpad/breakpad-use-correct-http-header.patch.1 \
external/breakpad/breakpad-wshadow.patch.1 \
diff --git a/external/coinmp/UnpackedTarball_coinmp.mk 
b/external/coinmp/UnpackedTarball_coinmp.mk
index 83ebfca80193..20cf9184516e 100644
--- a/external/coinmp/UnpackedTarball_coinmp.mk
+++ b/external/coinmp/UnpackedTarball_coinmp.mk
@@ -29,6 +29,11 @@ $(eval $(call 
gb_UnpackedTarball_update_autoconf_configs,coinmp,\
Osi \
 ))
 
+ifneq ($(MSYSTEM),)
+# use binary flag so patch from git-bash won't choke on mixed line-endings in 
patches
+$(eval $(call gb_UnpackedTarball_set_patchflags,coinmp,--binary))
+endif
+
 # * external/coinmp/Wnon-c-typedef-for-linkage.patch upstream at
 #   
 
"[Coin-discuss]
 #   Small patch to fix Clang -Wnon-c-typedef-for-linkage in Clp":
diff --git a/external/lcms2/UnpackedTarball_lcms2.mk 
b/external/lcms2/UnpackedTarball_lcms2.mk
index 745da1a0a782..f44683e03809 100644
--- a/external/lcms2/UnpackedTarball_lcms2.mk
+++ b/external/lcms2/UnpackedTarball_lcms2.mk
@@ -15,6 +15,11 @@ $(eval $(call 
gb_UnpackedTarball_update_autoconf_configs,lcms2))
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,lcms2,3))
 
+ifneq ($(MSYSTEM),)
+# use binary flag so patch from git-bash won't choke on mixed line-endings in 
patches
+$(eval $(call gb_UnpackedTarball_set_patchflags,lcms2,--binary))
+endif
+
 # external/lcms2/0001-Added-missing-export.patch.1:
 # backport of 
https://github.com/mm2/Little-CMS/commit/f7b3c637c20508655f8b49935a4b556d52937b69
 $(eval $(call gb_UnpackedTarball_add_patches,lcms2,\
diff --git a/external/libtommath/UnpackedTarball_libtommath.mk 
b/external/libtommath/UnpackedTarball_libtommath.mk
index 8961a46162c5..6d8e1e9fdd57 100644
--- a/external/libtommath/UnpackedTarball_libtommath.mk
+++ b/external/libtommath/UnpackedTarball_libtommath.mk
@@ -13,6 +13,11 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,libtommath,$(LIBTOMMATH_TARBALL)))
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,libtommath,0))
 
+ifneq ($(MSYSTEM),)
+# use binary flag so patch from git-bash won't choke on mixed line-endings in 
patches
+$(eval $(call gb_UnpackedTarball_set_patchflags,libtommath,--binary))
+endif
+
 $(eval $(call gb_UnpackedTarball_add_patches,libtommath,\
 ))
 
diff --git a/external/python3/UnpackedTarball_python3.mk 
b/external/python3/UnpackedTarball_python3.mk
index 6eaa4ca82784..cbb85e14e405 100644
--- a/external/python3/UnpackedTarball_python3.mk
+++ b/external/python3/UnpackedTarball_python3.mk
@@ -16,6 +16,11 @@ $(eval $(call gb_UnpackedTarball_fix_end_of_line,python3,\
PCbuild/pcbuild.sln \
 ))
 
+ifneq ($(MSYSTEM),)
+# use binary flag so patch from git-bash won't choke on mixed line-endings in 
patches
+$(eval $(call gb_UnpackedTarball_set_patchflags,python3,--binary))
+endif
+
 $(eval $(call gb_UnpackedTarball_add_patches,python3,\
external/python3/i100492-freebsd.patch.1 \
external/python3/python-3.3.0-darwin.patch.1 \
diff --git a/external/skia/UnpackedTarball_skia.mk 
b/external/skia/UnpackedTarball_skia.mk
index 9e603dcb28dd..683de8e9d69c 100644
--- a/external/skia/UnpackedTarball_skia.mk
+++ b/external/skia/UnpackedTarball_skia.mk
@@ -45,6 +45,11 @@ skia_patches := \
 
 $(eval $(call gb_UnpackedTarball_set_patchl

core.git: helpcontent2

2024-04-24 Thread Christian Lohmaier (via logerrit)
 helpcontent2 |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 6e18734c5c3b026669da89b2b535383eccd4c083
Author: Christian Lohmaier 
AuthorDate: Wed Apr 24 15:32:43 2024 +0200
Commit: Gerrit Code Review 
CommitDate: Wed Apr 24 15:32:43 2024 +0200

Update git submodules

* Update helpcontent2 from branch 'master'
  to f32f607fcfb59c462919261f26f8ae07e1e4707f
  - Revert "win doesn't like (foo || bar) | … construct, suspends xsltproc"

This reverts commit b066c7f1008ce7d433683324dc9ef441478c832c.

Reason for revert: not all xargs versions know -a option (mac)

Change-Id: Ia2a54e1dffe459b058f1e11a35372bb38774044f
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/166519
Reviewed-by: Christian Lohmaier 
Tested-by: Jenkins

diff --git a/helpcontent2 b/helpcontent2
index 67dd141b0f05..f32f607fcfb5 16
--- a/helpcontent2
+++ b/helpcontent2
@@ -1 +1 @@
-Subproject commit 67dd141b0f05a334a51a36d14cbe666559949715
+Subproject commit f32f607fcfb59c462919261f26f8ae07e1e4707f


help.git: CustomTarget_html.mk

2024-04-24 Thread Christian Lohmaier (via logerrit)
 CustomTarget_html.mk |   18 ++
 1 file changed, 6 insertions(+), 12 deletions(-)

New commits:
commit f32f607fcfb59c462919261f26f8ae07e1e4707f
Author: Christian Lohmaier 
AuthorDate: Wed Apr 24 15:10:58 2024 +0200
Commit: Christian Lohmaier 
CommitDate: Wed Apr 24 15:32:42 2024 +0200

Revert "win doesn't like (foo || bar) | … construct, suspends xsltproc"

This reverts commit b066c7f1008ce7d433683324dc9ef441478c832c.

Reason for revert: not all xargs versions know -a option (mac)

Change-Id: Ia2a54e1dffe459b058f1e11a35372bb38774044f
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/166519
Reviewed-by: Christian Lohmaier 
Tested-by: Jenkins

diff --git a/CustomTarget_html.mk b/CustomTarget_html.mk
index c8ac9250df..a3a9cec55f 100644
--- a/CustomTarget_html.mk
+++ b/CustomTarget_html.mk
@@ -278,32 +278,26 @@ html_gen_bookmarks_deps = $(call 
html__gen_bookmarks_deps,$(firstword $(1)),$(la
 
 $(eval $(foreach module,$(html_BMARK_MODULES),$(call 
html_gen_bookmarks_deps,$(subst :, ,$(module)
 
-# intermediate responsefile target, make will clear those automatically
-# unless they are explicitly listed as target or non-pattern prerequisite
-# depend on the online_transform.xsl just as a proxy to make sure the 
directory exists
-# is only intermediate because those were used as temp files previously - 
could just
-# as well be plain/explicit targets
-$(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%_bookmarks.part.responsefile:|
 $(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/online_transform.xsl
-   $(file > $@,$(subst 
helpcontent2/source/text/,,$(gb_AllLangHelp_$*_BOOKMARK_HELPFILES))$(if 
$(filter WNT,$(OS)), ))
-
 # strip the helpcontent2/source/text prefix and cd to the corresponding 
directory to maximize
 # the number of files that xargs can squeeze into a single invocation of 
xsltproc
 $(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/bookmarks.part : \
 $(SRCDIR)/helpcontent2/help3xsl/get_bookmark.xsl \
 $(SRCDIR)/helpcontent2/help3xsl/brand.xsl \
-$(foreach module,$(html_TREE_MODULES),$(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/$(module)_bookmarks.part.responsefile)
 \
 | $(call gb_ExternalExecutable_get_dependencies,xsltproc)
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XSL,1)
$(call gb_Trace_StartRange,$*/$(@F),XSL)
-   cd $(if $(filter en-US,$(HELP_LANG)),$(SRCDIR),$(call 
gb_HelpTranslatePartTarget_get_workdir,$(HELP_LANG)))/helpcontent2/source/text \
-   && $(call gb_ExternalExecutable_get_command,xsltproc,$(if $(filter 
WNT,$(OS)),env -i $(gb_Helper_set_ld_path)) xargs -a $(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/$(firstword $(subst /, 
,$*))_bookmarks.part.responsefile) \
+   RESPONSEFILE=$(call gb_var2file,$(shell $(gb_MKTEMP)),$(subst 
helpcontent2/source/text/,,$(gb_AllLangHelp_$(APPDIR)_BOOKMARK_HELPFILES))$(if 
$(filter WNT,$(OS)), )) \
+   && cd $(if $(filter en-US,$(HELP_LANG)),$(SRCDIR),$(call 
gb_HelpTranslatePartTarget_get_workdir,$(HELP_LANG)))/helpcontent2/source/text \
+   && ( \
+   $(call gb_ExternalExecutable_get_command,xsltproc,$(if $(filter 
WNT,$(OS)),env -i $(gb_Helper_set_ld_path)) xargs) \
--stringparam app $(APP) \
--stringparam Language $(HELP_LANG) \
--stringparam local $(if $(HELP_ONLINE),'no','yes') \
--stringparam productname "$(gb_PRODUCTNAME_HTML)" \
--stringparam productversion "$(PRODUCTVERSION)" \
$(SRCDIR)/helpcontent2/help3xsl/get_bookmark.xsl \
-   | sort -k3b -s >$@
+   <$$RESPONSEFILE || { rm $$RESPONSEFILE; exit 1; } \
+   ) | sort -k3b -s >$@ && rm "$$RESPONSEFILE"
$(call gb_Trace_EndRange,$*/$(@F),XSL)
 
 # The various gid_File_Help_*_Zip in scp2 that use 
EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG expect


core.git: include/vcl vcl/source

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

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

vcl: Factor out common code and simplify

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

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

core.git: sc/qa sc/source

2024-04-24 Thread Miklos Vajna (via logerrit)
 sc/qa/unit/tiledrendering/tiledrendering.cxx   |4 ++--
 sc/qa/unit/tiledrendering2/tiledrendering2.cxx |8 
 sc/source/ui/view/viewfun3.cxx |2 +-
 3 files changed, 11 insertions(+), 3 deletions(-)

New commits:
commit 9f7c961e1c6e7b6aec783ba55a6b8cb6ebcf811d
Author: Miklos Vajna 
AuthorDate: Wed Apr 24 08:22:10 2024 +0200
Commit: Miklos Vajna 
CommitDate: Wed Apr 24 15:11:12 2024 +0200

cool#8789 sc lok: classify multi-selection with 2 cells as simple

The trouble was that even if commit
b13c7b31f9ce3c3a25cffd0c35e7ee6b8c2a1895 (cool#8789 sc lok: fix copy for
multi-selections, 2024-04-19) made multi-selection copy work, just 2
cells in a multi-selection was classified as a complex selection at a
LOK level, while 2 cells next to each other is a simple selection, which
is inconsistent. (A LOK client can provide a simpler UI for simple
selections.)

What happens is that the multi-selection clipboard document had no
selection ranges defined, so ScDocument::GetClipArea() returned early,
so the numbers in the ScTransferObj ctor were left initialized, which at
the end lead to a >1000 cells in ScTransferObj::isComplex(), because we
were calculating uninitialized data.

Fix the problem by passing a range (that covers all ranges of the
multi-selection) to ScViewFunc::CopyToTransferable(), which avoids the
wrong col/row start/length, so the selection is classified as simple.

Also adapt testRowColumnSelections, which was just meant to check we
don't crash, but now the cell under the cell cursor is returned, so the
assert about the empty selection would fail.

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

diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx 
b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index 6368a7f68b2e..651df397cc71 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -214,7 +214,7 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, 
testRowColumnSelections)
 // When we copy this, we don't get anything useful, but we must not crash
 // (used to happen)
 aResult = 
apitest::helper::transferable::getTextSelection(pModelObj->getSelection(), 
"text/plain;charset=utf-8"_ostr);
-CPPUNIT_ASSERT_EQUAL(OString(), aResult);
+CPPUNIT_ASSERT_EQUAL("9"_ostr, aResult);
 
 // TODO check that we really selected what we wanted here
 
@@ -226,7 +226,7 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, 
testRowColumnSelections)
 // When we copy this, we don't get anything useful, but we must not crash
 // (used to happen)
 aResult = 
apitest::helper::transferable::getTextSelection(pModelObj->getSelection(), 
"text/plain;charset=utf-8"_ostr);
-CPPUNIT_ASSERT_EQUAL(OString(), aResult);
+CPPUNIT_ASSERT_EQUAL("1"_ostr, aResult);
 
 // TODO check that we really selected what we wanted here
 
diff --git a/sc/qa/unit/tiledrendering2/tiledrendering2.cxx 
b/sc/qa/unit/tiledrendering2/tiledrendering2.cxx
index 65a85c685b33..737a0be6a3c8 100644
--- a/sc/qa/unit/tiledrendering2/tiledrendering2.cxx
+++ b/sc/qa/unit/tiledrendering2/tiledrendering2.cxx
@@ -11,6 +11,8 @@
 
 #include 
 
+#include 
+
 #include 
 #include 
 #include 
@@ -203,6 +205,12 @@ CPPUNIT_TEST_FIXTURE(Test, testCopyMultiSelection)
 
 // Make sure we get A1+A3 instead of an error:
 CPPUNIT_ASSERT(xTransferable.is());
+
+// Also make sure that just 2 cells is classified as a simple selection:
+uno::Reference xTransferable2(xTransferable, 
uno::UNO_QUERY);
+CPPUNIT_ASSERT(xTransferable2.is());
+// Without the fix, the text selection was complex.
+CPPUNIT_ASSERT(!xTransferable2->isComplex());
 }
 }
 
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index 615fa4ae89af..e287609906b6 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -462,7 +462,7 @@ rtl::Reference 
ScViewFunc::CopyToTransferable()
 {
 ScDocumentUniquePtr pClipDoc(new ScDocument(SCDOCMODE_CLIP));
 // This takes care of the input line and calls CopyToClipMultiRange() 
for us.
-CopyToClip(pClipDoc.get(), /*bCut=*/false, /*bApi=*/true);
+CopyToClip(pClipDoc.get(), aRange, /*bCut=*/false, /*bApi=*/true);
 TransferableObjectDescriptor aObjDesc;
 return new ScTransferObj(std::move(pClipDoc), std::move(aObjDesc));
 }


core.git: sc/uiconfig

2024-04-24 Thread Heiko Tietze (via logerrit)
 sc/uiconfig/scalc/ui/conditionalentry.ui |  343 ++-
 1 file changed, 160 insertions(+), 183 deletions(-)

New commits:
commit 9d29a2a6aad679129218ab4c5020c92bb3ce9cb3
Author: Heiko Tietze 
AuthorDate: Wed Apr 24 11:38:51 2024 +0200
Commit: Heiko Tietze 
CommitDate: Wed Apr 24 14:58:11 2024 +0200

Resolves tdf#159569 - Conditional Formatting dialog jumps with message 
string

Some defined width solves the issue

Change-Id: I1f92815e690828e283c275a58a71dd07613642fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166579
Tested-by: Jenkins
Reviewed-by: Heiko Tietze 

diff --git a/sc/uiconfig/scalc/ui/conditionalentry.ui 
b/sc/uiconfig/scalc/ui/conditionalentry.ui
index 1ff40d10460f..6e40f6cc6acc 100644
--- a/sc/uiconfig/scalc/ui/conditionalentry.ui
+++ b/sc/uiconfig/scalc/ui/conditionalentry.ui
@@ -1,216 +1,217 @@
 
-
+
 
   
   
 True
-True
+True
 True
-never
-never
-in
+never
+never
+in
 
   
 True
-False
+False
 True
 
-  
+  
   
 True
-False
+False
 True
-6
-6
-12
+6
+6
+12
 
-  
+  
   
 True
-False
+False
 True
-12
+12
 
   
 True
-False
+False
   
   
-0
-0
+0
+0
   
 
 
   
-10
+10
 True
-False
+False
 True
 end
   
   
-1
-0
+1
+0
   
 
   
   
-0
-0
+0
+0
   
 
 
-  
+  
   
 True
-False
+False
 True
-6
-12
-True
+6
+12
+True
 
   
-False
-True
+False
+True
 Apply Style:
-True
-style
+True
+style
 0
   
   
-0
-2
+0
+2
   
 
 
   
-False
-True
+False
+True
 
   New Style...
 
   
   
-1
-2
+1
+2
   
 
 
   
-False
-True
+100
+False
+True
 Enter a value:
 0
   
   
-0
-3
+0
+3
 3
   
 
 
   
-True
-True
+True
+True
+True
 True
-True
   
   
-0
-4
+0
+4
   
 
 
   
-True
-True
+True
+True
+True
 True
-True
   
   
-1
-4
+1
+4
   
 
 
   
-True
-True
+True
+True
+True
 True
-True
   
   
-2
-4
+2
+4

core.git: Changes to 'refs/tags/cp-24.04.1-4'

2024-04-24 Thread Aron Budea (via logerrit)
Tag 'cp-24.04.1-4' created by Aron Budea  at 
2024-04-24 11:42 +

cp-24.04.1-4

Changes since cp-24.04.1-3-5:
---
 0 files changed
---


core.git: Branch 'distro/collabora/co-24.04' - configure.ac

2024-04-24 Thread Aron Budea (via logerrit)
 configure.ac |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 91ae3cd2d8d77b19fdda6e819fae5f2d15395db5
Author: Aron Budea 
AuthorDate: Wed Apr 24 13:24:20 2024 +0200
Commit: Aron Budea 
CommitDate: Wed Apr 24 13:24:20 2024 +0200

Bump version to 24.04.1.4

Change-Id: I94576bbd5fde3526450640cc7aeee5859d6da504

diff --git a/configure.ac b/configure.ac
index 50351e596c1e..9919fc0ea251 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([Collabora Office],[24.04.1.3],[],[],[https://collaboraoffice.com/])
+AC_INIT([Collabora Office],[24.04.1.4],[],[],[https://collaboraoffice.com/])
 
 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: sw/qa

2024-04-24 Thread Miklos Vajna (via logerrit)
 sw/qa/extras/rtfexport/rtfexport4.cxx | 1404 +++---
 1 file changed, 816 insertions(+), 588 deletions(-)

New commits:
commit 88ef23726498b65b33d80a2e4cf71b00205f80bd
Author: Miklos Vajna 
AuthorDate: Wed Apr 24 08:27:19 2024 +0200
Commit: Miklos Vajna 
CommitDate: Wed Apr 24 12:51:23 2024 +0200

CppunitTest_sw_rtfexport4: avoid DECLARE_RTFEXPORT_TEST

No need to go via Writer-specific macros here.

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

diff --git a/sw/qa/extras/rtfexport/rtfexport4.cxx 
b/sw/qa/extras/rtfexport/rtfexport4.cxx
index 25f5394b6ae5..d55bb4279252 100644
--- a/sw/qa/extras/rtfexport/rtfexport4.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport4.cxx
@@ -46,294 +46,403 @@ public:
 }
 };
 
-DECLARE_RTFEXPORT_TEST(testCjklist12, "cjklist12.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist12)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::AIU_HALFWIDTH_JA, numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::AIU_HALFWIDTH_JA, 
numFormat);
+};
+createSwDoc("cjklist12.rtf");
+verify();
+saveAndReload(mpFilter);
+verify();
 }
 
-DECLARE_RTFEXPORT_TEST(testCjklist13, "cjklist13.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist13)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::IROHA_HALFWIDTH_JA, numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::IROHA_HALFWIDTH_JA, 
numFormat);
+};
+createSwDoc("cjklist13.rtf");
+verify();
+saveAndReload(mpFilter);
+verify();
 }
 
-DECLARE_RTFEXPORT_TEST(testCjklist16, "cjklist16.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist16)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_TRADITIONAL_JA, 
numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::NUMBER_TRADITIONAL_JA, 
numFormat);
+};
+createSwDoc("cjklist16.rtf");
+verify();
+saveAndReload(mpFilter);
+verify();
 }
 
-DECLARE_RTFEXPORT_TEST(testCjklist20, "cjklist20.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist20)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::AIU_FULLWIDTH_JA, numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::AIU_FULLWIDTH_JA, 
numFormat);
+};
+createSwDoc("cjklist20.rtf");
+verify();
+saveAndReload(mpFilter);
+verify();
 }
 
-DECLARE_RTFEXPORT_TEST(testCjklist21, "cjklist21.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist21)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::IROHA_FULLWIDTH_JA, numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::IROHA_FULLWIDTH_JA, 
numFormat);
+};
+createSwDoc("cjklist21.rtf");
+verify();
+saveAndReload(mpFilter);
+verify();
 }
 
-DECLARE_RTFEXPORT_TEST(testCjklist24, "cjklist24.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist24)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::HANGUL_SYLLABLE_KO, numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::HANGUL_SYLLABLE_KO, 
numFormat);
+};
+createSwDoc("cjklist24.rtf");
+verify();
+saveAndReload(mpFilter);
+verify();
 }
 
-DECLARE_RTFEXPORT_TEST(testCjklist25, "cjklist25.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist25)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::HANGUL_JAMO_KO, numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::HANGUL_JAMO_KO, numFormat);
+};
+createSwDoc("cjklist25.rtf");
+verify();
+saveAndReload(mpFilter);
+verify();
 }
 
-DECLARE_RTFEXPORT_TEST(testCjklist30, "cjklist30.rtf")
+CPPUNIT_TEST_FIXTURE(Test, testCjklist30)
 {
-sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
-CPPUNIT_ASSERT_EQUAL(style::NumberingType::TIAN_GAN_ZH, numFormat);
+auto verify = [this]() {
+sal_Int16 numFormat = getNumberingTypeOfParagraph(1);
+CPPUNIT_ASSERT_EQUAL(style::NumberingType::TIAN_GAN_ZH, numFormat);
+};
+createSw

Re: Windows installer errors and warnings

2024-04-24 Thread Eike Rathke
Hi,

On Tuesday, 2024-04-23 19:11:58 +0200, Jakub Kościelak wrote:

> > > ICE03 ERROR   Invalid identifier; Table: Directory, Column: 
> > > Directory, Key(s): LO_progr_resou_ca@va_LCMES_c8cb7e943
> > > ICE03 ERROR   Invalid identifier; Table: Directory, Column: 
> > > Directory, Key(s): LO_progr_resou_kmr@l_LCMES_c75f6f5fa
> > where ca@va seems to stem from ca-valencia or kmr@l from kmr-Latn.
> 
> I now know where these "@" signs come from. We use this script
> C:\24.2.3.1\solenv\bin\localestr: #!/bin/sh case "$1" in ca-valencia) echo
> ca@valencia ;; kmr-Latn) echo kmr@latin ;; sr-Latn) echo sr@latin ;;
> hu-hung) echo hu@hung ;; *) echo $1 | tr '-' '_' ;; esac in these places:
> C:\24.2.3.1\scp2\macros\macro.pl
> C:\24.2.3.1\solenv\gbuild\AllLangMoTarget.mk
> C:\24.2.3.1\solenv\gbuild\extensions\post_PackageInfo.mk and now out of
> curiosity I have 2 questions: 1. What was/is the reason that for 4 languages
> we replace "-" with "@" instead of underscore? 2. Is it obsolete or is it
> still needed?

The ca@valencia and the like include the glibc @modifiers. This is
correct. Whatever later scrambles those to ca@va_LCMES_c8cb7e943 for
Windows would need to adjust that to something like
ca_va_LCMES_c8cb7e943

  Eike

-- 
GPG key 0x6A6CD5B765632D3A - 2265 D7F3 A7B0 95CC 3918  630B 6A6C D5B7 6563 2D3A


signature.asc
Description: PGP signature


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

2024-04-24 Thread Miklos Vajna (via logerrit)
 sc/qa/unit/tiledrendering/tiledrendering.cxx |   10 --
 sc/source/ui/view/viewfun3.cxx   |2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit 5fcde58ce0b2f3e42dd2e62246ca9704560e57d8
Author: Miklos Vajna 
AuthorDate: Wed Apr 24 08:22:10 2024 +0200
Commit: Miklos Vajna 
CommitDate: Wed Apr 24 11:50:13 2024 +0200

cool#8789 sc lok: classify multi-selection with 2 cells as simple

The trouble was that even if commit
b13c7b31f9ce3c3a25cffd0c35e7ee6b8c2a1895 (cool#8789 sc lok: fix copy for
multi-selections, 2024-04-19) made multi-selection copy work, just 2
cells in a multi-selection was classified as a complex selection at a
LOK level, while 2 cells next to each other is a simple selection, which
is inconsistent. (A LOK client can provide a simpler UI for simple
selections.)

What happens is that the multi-selection clipboard document had no
selection ranges defined, so ScDocument::GetClipArea() returned early,
so the numbers in the ScTransferObj ctor were left initialized, which at
the end lead to a >1000 cells in ScTransferObj::isComplex(), because we
were calculating uninitialized data.

Fix the problem by passing a range (that covers all ranges of the
multi-selection) to ScViewFunc::CopyToTransferable(), which avoids the
wrong col/row start/length, so the selection is classified as simple.

Also adapt testRowColumnSelections, which was just meant to check we
don't crash, but now the cell under the cell cursor is returned, so the
assert about the empty selection would fail.

Change-Id: If98212c623fa75adb2ddf628a6e90f3eef450e59
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166574
Reviewed-by: Caolán McNamara 
Tested-by: Jenkins CollaboraOffice 
(cherry picked from commit fca9f7899843336d0ff0198a522ec8ccbb4273da)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166578
Reviewed-by: Miklos Vajna 

diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx 
b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index 3a9ee97ee49a..1c183521b605 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -223,7 +223,7 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, 
testRowColumnSelections)
 // When we copy this, we don't get anything useful, but we must not crash
 // (used to happen)
 aResult = 
apitest::helper::transferable::getTextSelection(pModelObj->getSelection(), 
"text/plain;charset=utf-8"_ostr);
-CPPUNIT_ASSERT_EQUAL(OString(), aResult);
+CPPUNIT_ASSERT_EQUAL("9"_ostr, aResult);
 
 // TODO check that we really selected what we wanted here
 
@@ -235,7 +235,7 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, 
testRowColumnSelections)
 // When we copy this, we don't get anything useful, but we must not crash
 // (used to happen)
 aResult = 
apitest::helper::transferable::getTextSelection(pModelObj->getSelection(), 
"text/plain;charset=utf-8"_ostr);
-CPPUNIT_ASSERT_EQUAL(OString(), aResult);
+CPPUNIT_ASSERT_EQUAL("1"_ostr, aResult);
 
 // TODO check that we really selected what we wanted here
 
@@ -3926,6 +3926,12 @@ CPPUNIT_TEST_FIXTURE(ScTiledRenderingTest, 
testCopyMultiSelection)
 
 // Make sure we get A1+A3 instead of an error:
 CPPUNIT_ASSERT(xTransferable.is());
+
+// Also make sure that just 2 cells is classified as a simple selection:
+uno::Reference xTransferable2(xTransferable, 
uno::UNO_QUERY);
+CPPUNIT_ASSERT(xTransferable2.is());
+// Without the fix, the text selection was complex.
+CPPUNIT_ASSERT(!xTransferable2->isComplex());
 }
 
 CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index aa8daeb8338f..6003878133cd 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -462,7 +462,7 @@ rtl::Reference 
ScViewFunc::CopyToTransferable()
 {
 ScDocumentUniquePtr pClipDoc(new ScDocument(SCDOCMODE_CLIP));
 // This takes care of the input line and calls CopyToClipMultiRange() 
for us.
-CopyToClip(pClipDoc.get(), /*bCut=*/false, /*bApi=*/true);
+CopyToClip(pClipDoc.get(), aRange, /*bCut=*/false, /*bApi=*/true);
 TransferableObjectDescriptor aObjDesc;
 return new ScTransferObj(std::move(pClipDoc), std::move(aObjDesc));
 }


core.git: sw/uiconfig

2024-04-24 Thread Heiko Tietze (via logerrit)
 sw/uiconfig/swriter/ui/characterproperties.ui |  272 --
 1 file changed, 50 insertions(+), 222 deletions(-)

New commits:
commit e60ded9773673c356a88fa02867cb3692ee74c87
Author: Heiko Tietze 
AuthorDate: Tue Apr 23 16:42:56 2024 +0200
Commit: Heiko Tietze 
CommitDate: Wed Apr 24 11:48:28 2024 +0200

Bump Glade version

Change-Id: I53c7c6cab10663b50391a45c18e09dc3e81c87cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166546
Reviewed-by: Heiko Tietze 
Tested-by: Jenkins

diff --git a/sw/uiconfig/swriter/ui/characterproperties.ui 
b/sw/uiconfig/swriter/ui/characterproperties.ui
index 1ba9823a1c74..414edb773b86 100644
--- a/sw/uiconfig/swriter/ui/characterproperties.ui
+++ b/sw/uiconfig/swriter/ui/characterproperties.ui
@@ -1,36 +1,33 @@
 
-
+
 
   
   
-False
-False
-6
+False
+6
 Character
+False
 True
-0
-0
-dialog
-
-  
-
+0
+0
+dialog
 
   
-False
+False
 vertical
 12
 
   
-False
-end
+False
+end
 
   
 _Reset
 True
-True
-True
+True
+True
+Unsaved modifications to this tab are 
reverted.
 True
-Unsaved modifications to this tab are 
reverted.
 
   
 Revert any 
changes made on the tab shown here to the settings that were present when this 
dialog was opened.
@@ -45,12 +42,11 @@
 
 
   
-_Standard
-False
-True
-True
-True
-True
+_Standard
+True
+True
+True
+True
   
   
 False
@@ -62,10 +58,10 @@
   
 _OK
 True
-True
-True
-True
-True
+True
+True
+True
+True
 True
   
   
@@ -78,8 +74,8 @@
   
 _Cancel
 True
-True
-True
+True
+True
 True
   
   
@@ -92,8 +88,8 @@
   
 _Help
 True
-True
-True
+True
+True
 True
   
   
@@ -107,47 +103,23 @@
   
 False
 True
-end
+end
 0
   
 
 
   
 True
-True
+True
 True
 True
 True
-True
+True
 
   
   
 True
-False
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
+False
 
   
 
@@ -156,42 +128,18 @@
 
   
 True
-False
+False
 Font
   
   
-False
+False
   
 
 
   
   
 True
-False
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
-
-  
-
+False
 
   
 
@@ -203,43 +151,19 @@
 
   
 True
-False
+False
 Font Effects
   
   
 1
-False
+False
   
 
 
   
   
 True
-False
-
-  
-
-
-  

core.git: include/xmloff sw/qa sw/source xmloff/source

2024-04-24 Thread Mike Kaganski (via logerrit)
 include/xmloff/txtparae.hxx   |7 
 sw/qa/extras/htmlexport/xhtmlexport.cxx   |4 
 sw/qa/extras/odfexport/data/tdf160253_ordinary_numbering.fodt |   43 ++
 sw/qa/extras/odfexport/data/tdf160253_outline_numbering.fodt  |   37 ++
 sw/qa/extras/odfexport/odfexport2.cxx |   56 +++
 sw/source/core/text/txtfld.cxx|   22 -
 sw/source/filter/ww8/ww8par.cxx   |   19 -
 sw/source/filter/ww8/ww8par.hxx   |2 
 sw/source/filter/ww8/ww8par2.cxx  |4 
 sw/source/filter/ww8/ww8par5.cxx  |2 
 sw/source/filter/ww8/ww8par6.cxx  |4 
 sw/source/filter/xml/xmlfmte.cxx  |2 
 xmloff/source/text/txtparae.cxx   |  162 ++
 xmloff/source/text/txtparai.cxx   |   62 ++-
 14 files changed, 244 insertions(+), 182 deletions(-)

New commits:
commit 69ed893087f89d176a5ec4b263ce8d75774be72b
Author: Mike Kaganski 
AuthorDate: Wed Apr 24 07:55:35 2024 +0500
Commit: Mike Kaganski 
CommitDate: Wed Apr 24 11:37:27 2024 +0200

tdf#160253: fix list identifier export decision code

Commits 8f48f91009caa86d896f247059874242ed18bf39 (ODT export: omit
unreferenced , 2022-03-10) and
82bbf63582bdf28e7918e58ebf6657a9144bc9f3  (tdf#155823: Improve the
check if the list id is not required, 2023-06-14) tried to improve
deterministic ODF output, by omitting the list identifiers in case
when those identifiers were unreferenced. The latter of these used
document model node numbers to check if other lists appeared after
the last occurrence of the list  that is continuing in the current
node. But it turned out, that this isn't robust. Consider this ODF:

  
   
a
   
  
  bi
 
  
   x
  
 
  
   
c
   
  

The paragraphs a, b, and c are all in the main document body,  and
have sequential document model node numbers  (say, 15, 16, 17). If
these numbers are checked,  there is no node between node 15 ("a")
and node 17 ("c") with a different list  (both 15 and 17 belong to
a list with style "L1" and identifier "list1", and node 16 doesn't
belong to any lists). That suggests that the list identifier isn't
needed in this case. Bug when the actual output of node 16 is done,
it includes a node from an endnote  ("x"),  which is located  in a
different place in the document model,  and has a node number like
7 (so not between 15 and 17). The paragraph "x" belongs to another
list with style  "L2", and is output to ODF between paragraphs "a"
and "c". Here, we must refer from paragraph "c" to the list of the
paragraph "a" using the list id, but this is not obvious when only
considering node numbers,  and requires the prior knowledge of the
actual order of appearance of lists in the ODF.

Unless we build a DOM,  this is only possible, if we do a two-pass
output, and collect the nodes order in the first pass.  The output
already does that in a "collect autostyles" pass. The problem here
is that the  "collect autostyles"  pass used an optimized function,
XMLTextParagraphExport::collectTextAutoStylesOptimized, introduced
in commit  8195d7061ed52ebb98f46d35fe5929762c71e4b3  (INTEGRATION:
CWS swautomatic01 (1.126.4); FILE MERGED, 2006-12-01) for #i65476#
and which used style::XAutoStylesSupplier for optimization  to get
the autostyles.

This drops  XMLTextParagraphExport::collectTextAutoStylesOptimized,
and reverts to use of  collectTextAutoStyles,  which handles nodes
in the same order as when writing to ODF. There, we build a vector
of the node numbers sequence, used later to sort DocumentListNodes.

This uncovered an omission from the work on paragraph mark (commit
1a88efa8e02a6d765dab13c7110443bb9e6acecf  tdf#155238:  Reimplement
how ListAutoFormat is stored to ODF, 2023-05-11).  Turns out, that
the code in SwTextFormatter::NewNumberPortion introduced in commit
cb0e1b52d68aa6d5b505f91cb4ce577f7f3b2a8f  (sw,  numbering  portion
format: consider full-para char formats as well,  2022-10-20)  was
left behind when re-implementing paragraph marks  to use dedicated
property;  empty trailing spans still affected  how the lists were
rendered,  and that allowed to overlook import defects,  where the
paragraph mark properties weren't properly set.

In ODF import (XMLParaContext::endFastElement),  for compatibility,
this treats empty trailing spans as defining paragraph mark  (when
the paragraph mark wasn't set explicitly).  This way, the trailing
spans get converted to the paragraph mark.

In

core.git: sd/source

2024-04-24 Thread Sarper Akdemir (via logerrit)
 sd/source/ui/inc/ViewShell.hxx |1 
 sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx |1 
 sd/source/ui/view/drawview.cxx |1 
 sd/source/ui/view/sdwindow.cxx |   12 -
 sd/source/ui/view/viewshe2.cxx |   97 
--
 sd/source/ui/view/viewshel.cxx |7 
 6 files changed, 95 insertions(+), 24 deletions(-)

New commits:
commit dfb412699b96e12b2758be0e422c3e775f183d17
Author: Sarper Akdemir 
AuthorDate: Tue Apr 23 16:00:32 2024 +0200
Commit: Sarper Akdemir 
CommitDate: Wed Apr 24 11:28:00 2024 +0200

tdf#38164: sd: allow panning across pages when zoomed in

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

diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx
index 6ee126db9027..9e5e8e068160 100644
--- a/sd/source/ui/inc/ViewShell.hxx
+++ b/sd/source/ui/inc/ViewShell.hxx
@@ -382,6 +382,7 @@ public:
 */
 virtual void ShowUIControls (bool bVisible);
 bool IsPageFlipMode() const;
+bool CanPanAcrossPages() const;
 
 /** Set the given window as new parent window.  This is not possible for
 all views, so the return value tells the caller if the relocation
diff --git a/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx 
b/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx
index 9203c06e8f9f..e8fc847a4a7b 100644
--- a/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx
@@ -176,6 +176,7 @@ void CurrentSlideManager::SetCurrentSlideAtViewShellBase 
(const SharedPageDescri
 pDrawViewShell->SwitchPage(nPageNumber);
 TabControl& rPageTabControl = pDrawViewShell->GetPageTabControl();
 
rPageTabControl.SetCurPageId(rPageTabControl.GetPageId(nPageNumber));
+pDrawViewShell->UpdateScrollBars();
 }
 }
 }
diff --git a/sd/source/ui/view/drawview.cxx b/sd/source/ui/view/drawview.cxx
index 6792250fd8e7..99c166002cbd 100644
--- a/sd/source/ui/view/drawview.cxx
+++ b/sd/source/ui/view/drawview.cxx
@@ -407,6 +407,7 @@ void DrawView::Notify(SfxBroadcaster& rBC, const SfxHint& 
rHint)
 if ( mnPOCHSmph == 0 && eHintKind == SdrHintKind::PageOrderChange )
 {
 mpDrawViewShell->ResetActualPage();
+mpDrawViewShell->UpdateScrollBars();
 }
 else if ( eHintKind == SdrHintKind::LayerChange || eHintKind == 
SdrHintKind::LayerOrderChange )
 {
diff --git a/sd/source/ui/view/sdwindow.cxx b/sd/source/ui/view/sdwindow.cxx
index ab8a7bbd8889..8f71c17db957 100644
--- a/sd/source/ui/view/sdwindow.cxx
+++ b/sd/source/ui/view/sdwindow.cxx
@@ -667,8 +667,6 @@ void Window::SetVisibleXY(double fX, double fY)
 double Window::GetVisibleWidth() const
 {
 Size aWinSize = PixelToLogic(GetOutputSizePixel());
-if ( aWinSize.Width() > maViewSize.Width() )
-aWinSize.setWidth( maViewSize.Width() );
 return
 maViewSize.Width() == 0 ? 0 : (static_cast(aWinSize.Width()) / 
maViewSize.Width());
 }
@@ -680,8 +678,6 @@ double Window::GetVisibleWidth() const
 double Window::GetVisibleHeight() const
 {
 Size aWinSize = PixelToLogic(GetOutputSizePixel());
-if ( aWinSize.Height() > maViewSize.Height() )
-aWinSize.setHeight( maViewSize.Height() );
 return maViewSize.Height() == 0
 ? 0 : (static_cast(aWinSize.Height()) / maViewSize.Height());
 }
@@ -705,7 +701,7 @@ Point Window::GetVisibleCenter()
  */
 double Window::GetScrlLineWidth() const
 {
-return (GetVisibleWidth() * SCROLL_LINE_FACT);
+return std::min(1.0, GetVisibleWidth()) * SCROLL_LINE_FACT;
 }
 
 /**
@@ -714,7 +710,7 @@ double Window::GetScrlLineWidth() const
  */
 double Window::GetScrlLineHeight() const
 {
-return (GetVisibleHeight() * SCROLL_LINE_FACT);
+return std::min(1.0, GetVisibleHeight()) * SCROLL_LINE_FACT;
 }
 
 /**
@@ -723,7 +719,7 @@ double Window::GetScrlLineHeight() const
  */
 double Window::GetScrlPageWidth() const
 {
-return (GetVisibleWidth() * SCROLL_PAGE_FACT);
+return std::min(1.0, GetVisibleWidth()) * SCROLL_PAGE_FACT;
 }
 
 /**
@@ -732,7 +728,7 @@ double Window::GetScrlPageWidth() const
  */
 double Window::GetScrlPageHeight() const
 {
-return (GetVisibleHeight() * SCROLL_PAGE_FACT);
+return std::min(1.0, GetVisibleHeight()) * SCROLL_PAGE_FACT;
 }
 
 /**
diff --git a/sd/source/ui/view/viewshe2.cxx b/sd/source/ui/view/viewshe2.cxx
index b7ae44f2c3e1..18658fc8c929 100644
--- a/sd/source/ui/view/viewshe2.cxx
+++ b/sd/source/ui/view/viewshe2.cxx
@@ -63,6 +63,19 @@
 
 using namespace com::sun::star;
 
+namespace
+{
+inline double getViewToScrollScalarForPanAcrossPages(sal_uInt16 nTotalPages, 
double fVisibleHeight,

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

2024-04-24 Thread Miklos Vajna (via logerrit)
 sc/source/core/data/column3.cxx |5 +
 1 file changed, 5 insertions(+)

New commits:
commit 1f9f5e67a436d3bf2add9c28b09e34743dcac552
Author: Miklos Vajna 
AuthorDate: Wed Apr 24 09:37:35 2024 +0200
Commit: Caolán McNamara 
CommitDate: Wed Apr 24 10:37:25 2024 +0200

sc: fix crash in ScColumn::SetEditText()

Crashreport:

> SIG   Fatal signal received: SIGSEGV code: 128 for address: 0x0
> program/libsclo.so
>   ScColumn::SetEditText(int, std::unique_ptr >)
>   sc/source/core/data/column3.cxx:2362
> program/libsclo.so
>   ScTable::SetEditText(short, int, std::unique_ptr >)
>   
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:395
> program/libsclo.so
>   ScDocument::SetEditText(ScAddress const&, 
std::unique_ptr >)
>   
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:395
> program/libsclo.so
>   ScDocFunc::SetEditCell(ScAddress const&, EditTextObject const&, 
bool)
>   
/opt/rh/devtoolset-12/root/usr/include/c++/12/bits/unique_ptr.h:395
> program/libsclo.so
>   (anonymous 
namespace)::finalizeFormulaProcessing(std::shared_ptr<(anonymous 
namespace)::FormulaProcessingContext>)
>   sc/source/ui/view/viewfunc.cxx:565

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

diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 911e59ac7613..fdb8f050b196 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -2359,6 +2359,11 @@ bool ScColumn::SetString( SCROW nRow, SCTAB nTabP, const 
OUString& rString,
 
 void ScColumn::SetEditText( SCROW nRow, std::unique_ptr 
pEditText )
 {
+if (!pEditText)
+{
+return;
+}
+
 pEditText->NormalizeString(GetDoc().GetSharedStringPool());
 std::vector aNewSharedRows;
 sc::CellStoreType::iterator it = GetPositionToInsert(nRow, aNewSharedRows, 
false);


core.git: Branch 'libreoffice-24-2' - bin/find-can-be-private-symbols.functions.results include/formula include/svl svl/source

2024-04-24 Thread Caolán McNamara (via logerrit)
 bin/find-can-be-private-symbols.functions.results |5 
 include/formula/tokenarray.hxx|2 -
 include/svl/numformat.hxx |   27 +++---
 svl/source/numbers/zforlist.cxx   |   10 ++--
 4 files changed, 18 insertions(+), 26 deletions(-)

New commits:
commit 78b62dadcc119359e9fd5ceb670e2585d18d4c3a
Author: Caolán McNamara 
AuthorDate: Thu Mar 7 13:14:16 2024 +
Commit: Michael Stahl 
CommitDate: Wed Apr 24 10:07:04 2024 +0200

Related: tdf#160056 various methods that don't need to be exported

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 

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 

GetNonEndOfPathToken can be private

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

Related: tdf#160056 can be private and not exported

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

Related: tdf#160056 ImpSubstituteEntry can be private and not exported

Change-Id: I895db1f02338b6c2a1fec8bdfc15c2857fbee38f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165138
Tested-by: Jenkins
Reviewed-by: Noel Grandin 
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166124
Reviewed-by: Michael Stahl 

diff --git a/bin/find-can-be-private-symbols.functions.results 
b/bin/find-can-be-private-symbols.functions.results
index 99326b6aeede..43e5d0c181c3 100644
--- a/bin/find-can-be-private-symbols.functions.results
+++ b/bin/find-can-be-private-symbols.functions.results
@@ -9405,14 +9405,10 @@ SvNumberFormatter::GetTimeFormat(double, 
o3tl::strong_int >)
-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()
 SvNumberFormatter::SetDefaultSystemCurrency(std::basic_string_view >, o3tl::strong_int)
 SvNumberFormatter::SetNoZero(bool)
 SvNumberformat::GetCal() const
@@ -19343,7 +19339,6 @@ 
formula::FormulaTokenArray::operator=(formula::FormulaTokenArray const&)
 formula::FormulaTokenArray::operator=(formula::FormulaTokenArray&&)
 formula::FormulaTokenArrayPlainIterator::AfterRemoveToken(unsigned short, 
unsigned short)
 formula::FormulaTokenArrayPlainIterator::PeekNext()
-formula::FormulaTokenIterator::GetNonEndOfPathToken(short) const
 formula::FormulaTokenIterator::Item::Item(formula::FormulaTokenArray const*, 
short, short)
 formula::FormulaTokenIterator::Push(formula::FormulaTokenArray const*)
 formula::FormulaTypedDoubleToken::GetDoubleType() const
diff --git a/include/formula/tokenarray.hxx b/include/formula/tokenarray.hxx
index 330543d427dc..fbf2c186768a 100644
--- a/include/formula/tokenarray.hxx
+++ b/include/formula/tokenarray.hxx
@@ -577,7 +577,7 @@ public:
 void ReInit( const FormulaTokenArray& );
 
 private:
-const FormulaToken* GetNonEndOfPathToken( short nIdx ) const;
+SAL_DLLPRIVATE const FormulaToken* GetNonEndOfPathToken( short nIdx ) 
const;
 };
 
 // For use in SAL_INFO, SAL_WARN etc
diff --git a/include/svl/numformat.hxx b/include/svl/numformat.hxx
index 2a9c52ce33c2..bf31ff22b605 100644
--- a/include/svl/numformat.hxx
+++ b/include/svl/numformat.hxx
@@ -297,9 +297,6 @@ public:
 sal_uInt32 GetStandardFormat(double fNumber, sal_uInt32 nFIndex, 
SvNumFormatType eType,
  LanguageType eLnge);
 
-/// Whether nFIndex is a special builtin format
-bool IsSpecialStandardFormat(sal_uInt32 nFIndex, LanguageType eLnge);
-
 /** Return a time format that best matches fNumber. */
 sal_uInt32 GetTimeFormat(double fNumber, LanguageType eLnge, bool 
bForceDuration);
 
@@ -677,26 +674,30 @@ private:
 DECL_DLLPRIVATE_STATIC_LINK(SvNumberFormatter, CurrencyChangeLink, 
LinkParamNone*, void);
 
 // Substitute a format during GetFormatEntry(), i.e. system form

core.git: sc/qa sc/source

2024-04-24 Thread Andreas Heinisch (via logerrit)
 sc/qa/uitest/pasteSpecial/tdf160765.py |   75 +
 sc/source/ui/view/viewfun3.cxx |3 -
 2 files changed, 77 insertions(+), 1 deletion(-)

New commits:
commit a1694b194c2b3e89250c5b79a69e7dd184b69976
Author: Andreas Heinisch 
AuthorDate: Mon Apr 22 20:06:50 2024 +0200
Commit: Andreas Heinisch 
CommitDate: Wed Apr 24 10:06:48 2024 +0200

tdf#160765 - Save content for undo when pasting notes

even if no content was changed after pasting special. Otherwise, the undo 
functionality crashes due to undoing a cell with no content where the 
annotation indicator will remain (unod/redo of note captions are handled via 
drawing undo).

Change-Id: I7007fce510d6e9896cbda11a1e14a61b5ccb34a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166469
Tested-by: Jenkins
Reviewed-by: Stéphane Guillou 
Reviewed-by: Andreas Heinisch 

diff --git a/sc/qa/uitest/pasteSpecial/tdf160765.py 
b/sc/qa/uitest/pasteSpecial/tdf160765.py
new file mode 100755
index ..0b56be4c2dfa
--- /dev/null
+++ b/sc/qa/uitest/pasteSpecial/tdf160765.py
@@ -0,0 +1,75 @@
+# -*- 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.calc.document import get_cell_by_position
+from libreoffice.uno.propertyvalue import mkPropertyValues
+from uitest.uihelper.calc import enter_text_to_cell
+from libreoffice.calc.paste_special import reset_default_values
+
+class tdf160765(UITestCase):
+def test_tdf160765_undo_paste_comment(self):
+with self.ui_test.create_doc_in_start_center("calc") as document:
+xGridWin = self.xUITest.getTopFocusWindow().getChild("grid_window")
+
+# Write text to cell A1 and B1
+enter_text_to_cell(xGridWin, "A1", "A1 sample text")
+enter_text_to_cell(xGridWin, "B1", "B1 sample text")
+
+# Insert a comment in cell B1
+xArgs = mkPropertyValues({"Text": "Comment 1"})
+self.xUITest.executeCommandWithParameters(".uno:InsertAnnotation", 
xArgs)
+
+# Insert a comment in cell A2
+xGridWin.executeAction("SELECT", mkPropertyValues({"CELL":"A2"}))
+xArgs = mkPropertyValues({"Text": "Comment 2"})
+self.xUITest.executeCommandWithParameters(".uno:InsertAnnotation", 
xArgs)
+
+# Copy cell A2 to clipboard
+xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": "A2"}))
+self.xUITest.executeCommand(".uno:Copy")
+
+# Set cursor to cells and paste data using special options (check 
only comments)
+targetCells = ["A1", "B1"]
+for index, targetCell in enumerate(targetCells):
+xGridWin.executeAction("SELECT", mkPropertyValues({"CELL": 
targetCell}))
+with 
self.ui_test.execute_dialog_through_command(".uno:PasteSpecial") as 
xPasteSpecialDlg:
+reset_default_values(self, xPasteSpecialDlg)
+xDateTimeChkBox = xPasteSpecialDlg.getChild("datetime")
+xDateTimeChkBox.executeAction("CLICK", tuple())
+xTextChkBox = xPasteSpecialDlg.getChild("text")
+xTextChkBox.executeAction("CLICK", tuple())
+xNumbersChkBox = xPasteSpecialDlg.getChild("numbers")
+xNumbersChkBox.executeAction("CLICK", tuple())
+xCommentsChkBox = xPasteSpecialDlg.getChild("comments")
+xCommentsChkBox.executeAction("CLICK", tuple())
+
+# Undo both inserted comments
+self.xUITest.executeCommand(".uno:Undo")
+# Without the fix in place, this test would have failed with
+# AssertionError: 'Comment 1' != ''
+# i.e., the cell does not contain any comment
+self.assertEqual("Comment 1", get_cell_by_position(document, 0, 1, 
0).Annotation.String)
+self.xUITest.executeCommand(".uno:Undo")
+self.assertEqual("", get_cell_by_position(document, 0, 0, 
0).Annotation.String)
+
+# Redo both inserted comments
+self.xUITest.executeCommand(".uno:Redo")
+# Without the fix in place, this test would have failed with
+# AssertionError: 'Comment 2' != ''
+# i.e., the cell does not contain the restored comment
+self.assertEqual("Comment 2", get_cell_by_position(document, 0, 0, 
0).Annotation.String)
+self.xUITest.executeCommand(".uno:Redo")
+# Without the fix in place, this test would have failed with
+# AssertionError: 'Comment 2' != ''
+# i.e., the cell does not contain the r

Re: Windows installer errors and warnings

2024-04-24 Thread Julien Nabet

You're welcome! :-)

Unless I missed it, don't forget license part! (see 
https://wiki.documentfoundation.org/Development/GetInvolved#License_statement).


Julien



core.git: 2 commits - cpp.hint svgio/qa

2024-04-24 Thread Mike Kaganski (via logerrit)
 cpp.hint   |   15 +++
 svgio/qa/cppunit/SvgImportTest.cxx |   18 +++---
 2 files changed, 26 insertions(+), 7 deletions(-)

New commits:
commit d7b15f03e0b956d23854806f35636ab4acfb1296
Author: Mike Kaganski 
AuthorDate: Tue Apr 23 22:36:36 2024 +0500
Commit: Mike Kaganski 
CommitDate: Wed Apr 24 09:43:42 2024 +0200

Add some entries into cpp.hint

Improves VS integration: allows to find CPP unit tests defined using
DECLARE_SW_ROUNDTRIP_TEST and friends.

The macros are stripped down to the minimum to allow IntelliSense
do its job.

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

diff --git a/cpp.hint b/cpp.hint
index 67e06e24b646..1000d44cd627 100644
--- a/cpp.hint
+++ b/cpp.hint
@@ -46,3 +46,18 @@
 void TestBody();   
\
 }; 
\
 void TestName::TestBody()
+
+// From sw/qa/inc/swmodeltestbase.hxx
+// To allow searching for the test names, where they are defined using the 
macros
+#define DECLARE_SW_ROUNDTRIP_TEST(TestName, filename, password, BaseClass) \
+class TestName : public BaseClass {\
+public:\
+void verify() override;\
+}; \
+void TestName::verify()
+
+#define DECLARE_OOXMLEXPORT_TEST(TestName, filename) 
DECLARE_SW_ROUNDTRIP_TEST(TestName, filename, nullptr, Test)
+#define DECLARE_RTFEXPORT_TEST(TestName, filename) 
DECLARE_SW_ROUNDTRIP_TEST(TestName, filename, nullptr, Test)
+#define DECLARE_ODFEXPORT_TEST(TestName, filename) 
DECLARE_SW_ROUNDTRIP_TEST(TestName, filename, nullptr, Test)
+#define DECLARE_FODFEXPORT_TEST(TestName, filename) 
DECLARE_SW_ROUNDTRIP_TEST(TestName, filename, nullptr, Test)
+#define DECLARE_WW8EXPORT_TEST(TestName, filename) 
DECLARE_SW_ROUNDTRIP_TEST(TestName, filename, nullptr, Test)
commit d984836834e67b5bcd618ebd5d1633138985a881
Author: Mike Kaganski 
AuthorDate: Wed Apr 24 10:41:59 2024 +0500
Commit: Mike Kaganski 
CommitDate: Wed Apr 24 09:43:30 2024 +0200

Fix unit test after commit 98935eef13c7d755221d79fe7d3c5869a40a7c37

Similar to commit cfa9990d470b10548c7fed64eb1182fea11d41e0 (Enable
this test on all platforms. 2024-04-20), it seems that 'mask' gets
exported inconsistently. This patch workarouns the problem; a proper
fix would be finding the real cause.

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

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

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

2024-04-24 Thread Miklos Vajna (via logerrit)
 sc/qa/unit/tiledrendering/tiledrendering.cxx |   10 --
 sc/source/ui/view/viewfun3.cxx   |2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit fca9f7899843336d0ff0198a522ec8ccbb4273da
Author: Miklos Vajna 
AuthorDate: Wed Apr 24 08:22:10 2024 +0200
Commit: Caolán McNamara 
CommitDate: Wed Apr 24 09:37:08 2024 +0200

cool#8789 sc lok: classify multi-selection with 2 cells as simple

The trouble was that even if commit
b13c7b31f9ce3c3a25cffd0c35e7ee6b8c2a1895 (cool#8789 sc lok: fix copy for
multi-selections, 2024-04-19) made multi-selection copy work, just 2
cells in a multi-selection was classified as a complex selection at a
LOK level, while 2 cells next to each other is a simple selection, which
is inconsistent. (A LOK client can provide a simpler UI for simple
selections.)

What happens is that the multi-selection clipboard document had no
selection ranges defined, so ScDocument::GetClipArea() returned early,
so the numbers in the ScTransferObj ctor were left initialized, which at
the end lead to a >1000 cells in ScTransferObj::isComplex(), because we
were calculating uninitialized data.

Fix the problem by passing a range (that covers all ranges of the
multi-selection) to ScViewFunc::CopyToTransferable(), which avoids the
wrong col/row start/length, so the selection is classified as simple.

Also adapt testRowColumnSelections, which was just meant to check we
don't crash, but now the cell under the cell cursor is returned, so the
assert about the empty selection would fail.

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

diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx 
b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index 6e47eefd5cd0..65844f2546f8 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -407,7 +407,7 @@ void ScTiledRenderingTest::testRowColumnSelections()
 // When we copy this, we don't get anything useful, but we must not crash
 // (used to happen)
 aResult = 
apitest::helper::transferable::getTextSelection(pModelObj->getSelection(), 
"text/plain;charset=utf-8");
-CPPUNIT_ASSERT_EQUAL(OString(), aResult);
+CPPUNIT_ASSERT_EQUAL(OString("9"), aResult);
 
 // TODO check that we really selected what we wanted here
 
@@ -419,7 +419,7 @@ void ScTiledRenderingTest::testRowColumnSelections()
 // When we copy this, we don't get anything useful, but we must not crash
 // (used to happen)
 aResult = 
apitest::helper::transferable::getTextSelection(pModelObj->getSelection(), 
"text/plain;charset=utf-8");
-CPPUNIT_ASSERT_EQUAL(OString(), aResult);
+CPPUNIT_ASSERT_EQUAL(OString("1"), aResult);
 
 // TODO check that we really selected what we wanted here
 
@@ -4154,6 +4154,12 @@ void ScTiledRenderingTest::testCopyMultiSelection()
 
 // Make sure we get A1+A3 instead of an error:
 CPPUNIT_ASSERT(xTransferable.is());
+
+// Also make sure that just 2 cells is classified as a simple selection:
+uno::Reference xTransferable2(xTransferable, 
uno::UNO_QUERY);
+CPPUNIT_ASSERT(xTransferable2.is());
+// Without the fix, the text selection was complex.
+CPPUNIT_ASSERT(!xTransferable2->isComplex());
 }
 
 }
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index 769805d5d32a..6540e8f15f6f 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -464,7 +464,7 @@ rtl::Reference 
ScViewFunc::CopyToTransferable()
 {
 ScDocumentUniquePtr pClipDoc(new ScDocument(SCDOCMODE_CLIP));
 // This takes care of the input line and calls CopyToClipMultiRange() 
for us.
-CopyToClip(pClipDoc.get(), /*bCut=*/false, /*bApi=*/true);
+CopyToClip(pClipDoc.get(), aRange, /*bCut=*/false, /*bApi=*/true);
 TransferableObjectDescriptor aObjDesc;
 return new ScTransferObj(std::move(pClipDoc), std::move(aObjDesc));
 }


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

2024-04-24 Thread Justin Luth (via logerrit)
 sc/source/filter/excel/xestream.cxx |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit 1675c3e2f14c68873e63cb725e0dd6e4b70cb3c3
Author: Justin Luth 
AuthorDate: Thu Apr 18 17:30:06 2024 -0400
Commit: Miklos Vajna 
CommitDate: Wed Apr 24 09:11:59 2024 +0200

xlsx export: never export short-hand version of range address

If all the columns are in focus, LO was exporting
A10:XFD11 as 10:11.

Amazingly, we can't read that. Seriously?
Doesn't Microsoft ever export in shorthand?

I thought it would be helpful to find any instances
where LO is exporting shorthand, to verify that
we really do break import of round-tripped files.

I made a brief attempt at fixing the import,
but it will require lots of changes
and break lots of assumptions.
Obviously it can't be a hugely common problem
because I didn't find any bug reports about it...
I abandoned my attempt because it is too prone to disaster.

Change-Id: If59c316d0af466e5cf71ecc459bdf57bb2cd5144
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166269
Tested-by: Jenkins
Reviewed-by: Justin Luth 
Reviewed-by: Miklos Vajna 
(cherry picked from commit a29d91ac403f1ed431ca95b8b9c290bd354c3ae7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166515
Tested-by: Jenkins CollaboraOffice 

diff --git a/sc/source/filter/excel/xestream.cxx 
b/sc/source/filter/excel/xestream.cxx
index d511c6daebe1..c856eebd5c9c 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -745,7 +745,8 @@ OString XclXmlUtils::ToOString( const ScDocument& rDoc, 
const ScRange& rRange, b
 OString XclXmlUtils::ToOString( const ScDocument& rDoc, const ScRangeList& 
rRangeList )
 {
 OUString s;
-rRangeList.Format(s, ScRefFlags::VALID, rDoc, FormulaGrammar::CONV_XL_OOX, 
' ');
+rRangeList.Format(s, ScRefFlags::VALID, rDoc, FormulaGrammar::CONV_XL_OOX, 
' ',
+  /*FullAddressNotation=*/true);
 return s.toUtf8();
 }
 


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

2024-04-24 Thread Justin Luth (via logerrit)
 sc/qa/unit/data/xlsx/protectedRange.xlsx |binary
 sc/qa/unit/subsequent_export_test2.cxx   |   11 +++
 sc/source/core/tool/rangelst.cxx |4 
 sc/source/filter/excel/xestream.cxx  |3 ++-
 4 files changed, 17 insertions(+), 1 deletion(-)

New commits:
commit 34886ba8843b319e114742f5d42e30d835a85ae0
Author: Justin Luth 
AuthorDate: Thu Apr 18 17:30:06 2024 -0400
Commit: Miklos Vajna 
CommitDate: Wed Apr 24 09:11:40 2024 +0200

xlsx export: never export short-hand version of range address

If all the columns are in focus, LO was exporting
A10:XFD11 as 10:11.

Amazingly, we can't read that. Seriously?
Doesn't Microsoft ever export in shorthand?

I thought it would be helpful to find any instances
where LO is exporting shorthand, to verify that
we really do break import of round-tripped files.

I made a brief attempt at fixing the import,
but it will require lots of changes
and break lots of assumptions.
Obviously it can't be a hugely common problem
because I didn't find any bug reports about it...
I abandoned my attempt because it is too prone to disaster.

Change-Id: If59c316d0af466e5cf71ecc459bdf57bb2cd5144
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166269
Tested-by: Jenkins
Reviewed-by: Justin Luth 
Reviewed-by: Miklos Vajna 
(cherry picked from commit a29d91ac403f1ed431ca95b8b9c290bd354c3ae7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166514
Tested-by: Jenkins CollaboraOffice 

diff --git a/sc/qa/unit/data/xlsx/protectedRange.xlsx 
b/sc/qa/unit/data/xlsx/protectedRange.xlsx
new file mode 100644
index ..a185ac3598d0
Binary files /dev/null and b/sc/qa/unit/data/xlsx/protectedRange.xlsx differ
diff --git a/sc/qa/unit/subsequent_export_test2.cxx 
b/sc/qa/unit/subsequent_export_test2.cxx
index 9f281928c732..c0b17e11aeb8 100644
--- a/sc/qa/unit/subsequent_export_test2.cxx
+++ b/sc/qa/unit/subsequent_export_test2.cxx
@@ -1263,6 +1263,17 @@ CPPUNIT_TEST_FIXTURE(ScExportTest2, testTdf126024XLSX)
 "External");
 }
 
+CPPUNIT_TEST_FIXTURE(ScExportTest2, testProtectedRange)
+{
+createScDoc("xlsx/protectedRange.xlsx");
+save("Calc Office Open XML");
+
+xmlDocUniquePtr pDoc = parseExport("xl/worksheets/sheet1.xml");
+CPPUNIT_ASSERT(pDoc);
+// entire row was being exported as shorthand 'B:B' which LO couldn't read 
back
+assertXPath(pDoc, "//x:protectedRanges/x:protectedRange"_ostr, 
"sqref"_ostr, "B1:B1048576");
+}
+
 CPPUNIT_TEST_FIXTURE(ScExportTest2, testTdf91332)
 {
 createScDoc("xlsx/tdf91332.xlsx");
diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx
index f84c92c7a7ae..998187b42996 100644
--- a/sc/source/core/tool/rangelst.cxx
+++ b/sc/source/core/tool/rangelst.cxx
@@ -133,6 +133,10 @@ void ScRangeList::Format( OUString& rStr, ScRefFlags 
nFlags, const ScDocument& r
   formula::FormulaGrammar::AddressConvention eConv,
   sal_Unicode cDelimiter, bool bFullAddressNotation ) 
const
 {
+// LO's AddressConverter::parseOoxAddress2d cannot import a short-hand 
address,
+// so definitely do not export that way.
+assert(eConv != FormulaGrammar::CONV_XL_OOX || bFullAddressNotation);
+
 if (!cDelimiter)
 cDelimiter = ScCompiler::GetNativeSymbolChar(ocSep);
 
diff --git a/sc/source/filter/excel/xestream.cxx 
b/sc/source/filter/excel/xestream.cxx
index a70e4e08bd71..e4ae036ead48 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -748,7 +748,8 @@ OString XclXmlUtils::ToOString( const ScDocument& rDoc, 
const ScRange& rRange, b
 OString XclXmlUtils::ToOString( const ScDocument& rDoc, const ScRangeList& 
rRangeList )
 {
 OUString s;
-rRangeList.Format(s, ScRefFlags::VALID, rDoc, FormulaGrammar::CONV_XL_OOX, 
' ');
+rRangeList.Format(s, ScRefFlags::VALID, rDoc, FormulaGrammar::CONV_XL_OOX, 
' ',
+  /*FullAddressNotation=*/true);
 return s.toUtf8();
 }