Commit Graph
519527 Commits
Author SHA1 Message Date
Andrea Gelmini 467e3b4f49 Fix typos
Change-Id: I8000ee277d51b91e8e04c99afa4327a4245e435f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209475
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-22 10:26:48 +02:00
Andrea Gelmini 335726898d Fix typos
Change-Id: Idab619de99649c2fb0a1920844cb07e5ede9691c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209474
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-22 10:25:17 +02:00
Andrea Gelmini 8ff895d2b4 Fix typos
Change-Id: I042b75e729ce5ae92ae5a4fb294ead845428dce9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209476
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-08-22 10:17:24 +02:00
Andrea Gelmini cf0a1268e3 Fix typos
Change-Id: Ib8964b0b98005da480826cfdd2c64bd68c88575c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209460
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-22 10:15:11 +02:00
Andrea Gelmini d4b6258652 Fix typos
Change-Id: Iaf47a7c5698d8d846046b8078c4b55157df61082
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209477
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-22 10:11:30 +02:00
Justin Luth 2fd68a3365 tdf#163178 DOCX import: ignore column breaks in tables
Just like DOC import does, DOCX should ignore requests
for column breaks when inside of a table.

Based on a 2025 commit to allow page breaks during RTF import,
I assume that the same exception is needed for column breaks.
I tried to round-trip my example document into RTF,
but LO doesn't seem to have imported the column break anyway
(or perhaps it treated it as a page break since there are no columns).

make CppunitTest_sw_ooxmlexport27 \
    CPPUNIT_TEST_NAME=testTdf163178_columnbreakInTable

Change-Id: I9796c08b28d9a11730915c5bed0828cd5df300dd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209473
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-08-22 01:26:01 +02:00
Caolán McNamara 63ebf5c928 sc: search the name list forwards again in XclImpNameManager::FindName
revert:

commit ea093514e4
Date:   Sun Jan 29 20:59:44 2023 +0000

    crashtesting: crash in ReadQsiforum-mso-en4-30276.xls

as the workaround should no longer be needed.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8a3ac88d49464bb1fdd71f826183a82477adcd22
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9289
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 61037a6fced9d1b4b741002df99b986e48353aed)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209467
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-22 01:11:06 +02:00
Andrea Gelmini 3b30dd7104 Fix typo
Change-Id: Iabfe54c37123884e3349c542693782f64cbb20d4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209459
Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
Tested-by: Jenkins
2026-08-21 21:22:34 +02:00
ApurvR20 43954c426c tdf#168520 Rename testTdf118150 to testTdf118150ChartWidthXlsx
Change-Id: I61ad9daac20fbc1570b1c7bc8fc899309eb14d02
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209463
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-08-21 20:41:16 +02:00
Olivier Hallot 4f09a06484 Improve wording for "Resize all pages" in Impress page dialog
Change-Id: I774fa8133c62d12a59cf840bd4df1e5aecbf71e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209424
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Jenkins
2026-08-21 19:45:59 +02:00
Xisco Fauli c88eff5c40 checkExternalLibraries: add brotli's id
Change-Id: Iaeb8abf4a29871422dafe8b8b9d603d61f22f955
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209471
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 19:11:33 +02:00
Dan Williams b7585bbd83 sw/qa: check for headless mode in testTdf136841
Headless mode, when enabled, uses cairo. Thus we must also use
the test's cairo codepath otherwise the test fails on Mac.

Change-Id: I8a307a63c4358f73eaf4ab5ad6e6635b348ae44c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209036
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
2026-08-21 18:54:34 +02:00
Mike Kaganski 6214c82bd0 Fix signed/unsigned mismatch with MSVC 2026
After commit db92d0be756305ec0b1e122a1d00333477c17ba5 (dbase: apply
one consistent key-per-page limit in the .ndx index, 2026-08-19) a
local CODA-W build failed with:

 C:/lo/online/engine/connectivity/source/drivers/dbase/dindexnode.cxx(518): error C2220: the following warning is treated as an error
 C:/lo/online/engine/connectivity/source/drivers/dbase/dindexnode.cxx(518): warning C4018: '<': signed/unsigned mismatch
 C:/lo/online/engine/connectivity/source/drivers/dbase/dindexnode.cxx(599): warning C4018: '<': signed/unsigned mismatch

The problem was the change of type of nNewCount from sal_uInt16 to
sal_uInt32, which made the following comparison warn:

    if (nNewCount < (nMaxNodes_2 * 2))

nMaxNodes_2 is sal_uInt16, but multiplication gives int; before the
change, nNewCount was promoted from sal_uInt16 to int as well; but
now it isn't promoted, hence the problem.

Fix it by making sure that multiplication produces an unsigned value.

Change-Id: I056fa7517834b64706be27b4318bb21c42ecfebb
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9581
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit d68d84af021b67ceaf9f94294722c2e97ee9e963)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209455
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 18:46:35 +02:00
Caolán McNamara 2be1bbcc11 dbase: apply one consistent key-per-page limit in the .ndx index
db_maxkeys came from the index header, the key count of a page came from the
page itself, and node access used neither. Now the header value is capped to
the number of keys a DINDEX_PAGE_SIZE page can hold for the given key length,
each page keeps its own capacity and caps its key count to it, and node
positions are clamped to the same bound, so all three agree.

ODbaseIndex::CreateImpl worked out db_maxkeys from a four byte page header
while the reader counts eight bytes of page header, so use eight here too and
write an index the reader agrees with.

ONDXPage::Remove asserted on a position past the key count and then carried on
regardless, so return early instead.

ONDXPage::Merge added the key counts of two pages together in a sal_uInt16, so
widen the sum to sal_uInt32.

nValue was a file-level static shared by the page read and write operators for
no reason, so make it a local in the reader and write rPage.nCount directly.

The two GetChild overloads would load a child page that is already on the chain
of parents the descent came down, so leave such a page unread rather than
descending into a page we are inside. ONDXPage::Merge and ONDXPage::PrintPage
can then be handed a page that was left unread, so both check for one with
nothing loaded.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id51bf8368099447df41aaacbaebba7783c5769e2
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9518
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit db92d0be756305ec0b1e122a1d00333477c17ba5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209449
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 18:46:30 +02:00
Justin Luth 5e6e2892ef tdf#60632: sw: Allow SID_REPEAT even if numRule created
Repeat last change (Ctrl-Shift-Y) does work for numbering, but NOT
for repeating the first time, when the NumRule is first created.
That action was considered not repeatable, and thus it blocked
the entire request.

Well, nicely enough an attempt to repeat NUMRULE_CREATE
already does nothing at all, so don't invalidate CanRepeat.

I just reused the first existing unit test that I found with
nice-looking paragraphs that I could turn into numbering.

make CppunitTest_sw_uiwriter CPPUNIT_TEST_NAME=testFdo70807

Change-Id: If85fbe68dec934b0d76e8d4c70b925cf6ace78a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119201
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-08-21 17:52:49 +02:00
Caolán McNamara 744b0e2a99 sc: take std::unique_ptr<ScRangeData> in ScRangeName::insert
insert always took ownership of the raw pointer, so make that
visible in the signature and drop the manual delete branches
the callers no longer need

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iaf52cee659c297190d75e70c15a667bd6209d1a2
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9245
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 8ba26c1cf0cc930973dd29e13fe2ccb1fe5c4311)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209454
Tested-by: Jenkins
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 16:26:22 +02:00
Caolán McNamara 97d726a023 ScRangeName::insert: update an existing same-name entry in place
inserting under a name that is already present used to erase the old
map node and add a new one, so the container ended up with a different
object for the same name.

so move the values of the new entry into the existing one instead, and
return the surviving entry rather than a bool so callers continue with
the one object that now holds the values.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ib8a5a949caccf5b3ebcf24d9109848b0eac42694
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9244
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 4ebe359891e7eafb0f456bc7abc760872a6df5e9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209453
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 16:26:15 +02:00
Noel Grandin 37d0bc1d77 return by ref from ScDocument::GetRangeName
to make it obvious that it never returns nullptr

Change-Id: I8218f921583c49fcbd57a1693716317423a9febe
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/941
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 8a63916739a316a9432b47862d2212c1e689f9cf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209451
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 16:26:06 +02:00
Michael Weghorn c4b307b8d2 tdf#173219 tdf#130857 qt weld: Use QMessageBox API to add buttons
When adding buttons to a QMessageBox, use the QMessageBox API
(QMessageBox::addButton) instead of using the QDialogButtonBox
API of the button box inside of the message box.

While both should have the same effect in general, that is not
necessarily true in practice when a native platform implementation gets
used, like the one newly introduced for KDE Plasma in [1]

    commit e95889873fb03efbc1cea4d41b330f9243f5f626
    Author: Tobias Fella <fella@posteo.de>
    Date:   Tue Apr 28 15:02:17 2026 +0000

        Add QMessageBox backend for MessageDialog

        Make the Platform theme provide a native implementation of MessageDialog. For widgets apps, this effectively shouldn't change anything, since the implementation uses the same component; for QML apps using `MessageDialog`, the QMessageBox widget is now used as implementation instead of a qt-provided qml fallback, which is a significant visual improvement:
        [...]

QMessageDialogOptions::customButtons() used in the
KDEPlatformMessageDialogHelper (which subclasses
QPlatformMessageDialogHelper) implementation doesn't
return/take into account buttons directly added to the button
box, but takes into account those added using
QMessageBox::addButton.

Use the latter to add the buttons to avoid the problem
of message dialogs (like the "Save Document?" one)
missing buttons when using the qt6 or kf6 vcl plugin
with SAL_VCL_QT_USE_WELDED_WIDGETS=1 in a KDE Plasma
session new enough to make use of the native message dialog
introduced in the above plasma-integration commit.

(Issue seen e.g. with plasma-integration 6.7.4-1 on
Debian testing when the system Qt is used, but not
a self-compiled Qt dev, where the platform integration
wasn't used.)

[1] https://invent.kde.org/plasma/plasma-integration/-/commit/e95889873fb03efbc1cea4d41b330f9243f5f626

Change-Id: Ied541e76e119493be3288ea899e00d5fbd560ec2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209456
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-08-21 16:23:41 +02:00
Jesus Solis ac3e19d271 external: add brotli
brotli is a lossless compression algorithm using the "stream" format

Downloaded from https://github.com/google/brotli/archive/refs/tags/v1.2.0.tar.gz

Change-Id: Ia5dd6b6e321be4284342068250ae7a6118e192e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208008
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 15:13:53 +02:00
Jesus Solis 20716b38c8 external: add highway
highway is a C++ library that provides portable SIMD/vector intrinsics

Downloaded from https://github.com/google/highway/releases/download/1.4.0/highway-1.4.0.tar.gz

Change-Id: I0e8f0b9a649680e318a0ed7f127ace74310c87bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207706
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 15:13:36 +02:00
Marios 377968ba5f tdf#171853 Use endsWith instead of checking lastIndexOf at string end
Change-Id: I6ebb7f9b8e39c9a22c9aaa86509048bbcab51db4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209374
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2026-08-21 15:04:07 +02:00
Christian Lohmaier 11a59ecb92 update credits
Change-Id: Iaf6a7cf3f17c4b8f4691e958a3afc1ef22755b25
2026-08-21 14:44:54 +02:00
Dr. David Alan Gilbert 2c9e44601d tdf#100244,126710:sc:Create MemberSlimArray
Allocate and fill in the mpaMemberSlimArray.
In the eager init case, where everything is initially allocated
as Slim results, it uses less memory just to create a simple
linear array rather than storing a pointer for each one.

Fixup the promotion code to move between the arrays rather
than change the pointer in the MemberArray.

On tdf#126710 this saves ~11.5GB (maxresident)
   tdf#100244 (full case) this saves about 6.3GB (max resident)

In tdf#126710's case, the 'virt' column in top appeared to save
even more; possibly due to large reallocations in the vector that's
been removed?

Change-Id: I7681304310e060da191edc1fb243900ce59193a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209101
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2026-08-21 14:38:10 +02:00
Dr. David Alan Gilbert 0d5f7da5a9 tdf#100244,126710:sc:Make FindMember check Slim array as well
Make FindMember check the MemberSlimArray prior to checking the main
MemberArray.

Change-Id: Ib5c91fad563d5f7b9f41a6759585268dcfc0e375
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209100
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2026-08-21 14:38:03 +02:00
Dr. David Alan Gilbert 0a7c0f8aa1 tdf#100244,126710:sc: Template lcl_SearchMember
Convert lcl_SearchMember to use a templated core since
we're soon going to have two different types to iterate over
(One of which is a pointer, the other an object, hence
needing to parameterise the get function as well).

Change-Id: I4df6a011015ca917f5ad015393ff0f65b2a32ca9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209099
Reviewed-by: David Gilbert <freedesktop@treblig.org>
Tested-by: Jenkins
2026-08-21 14:37:51 +02:00
Dr. David Alan Gilbert 01a57e7bbd tdf#100244,126710:sc:Declare and use linear member array
Define mpaMemberSlimArray as a span of ScDPResultMemberSlim's,
we'll use this in future instead of the Vector that might
hold pointers to any subclass of ScDPResultMember.

Make GetMember and GetMemberCount reference it.

The actual allocation of the array comes later.

Change-Id: Id2abf23e72a92fee0dc3e4326370692a3567dafd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209098
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2026-08-21 14:37:28 +02:00
Manish Bera 6f61236fd9 Add drop cap paint tests
Change-Id: Ifc1647aa684a89558646cfb536a046ff9b37131b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209132
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
2026-08-21 14:35:27 +02:00
Dr. David Alan Gilbert 91cbdc057d tdf#100244,126710:sc:Use GetMember() in most places
Use GetMember() for most cases rather than directly
accessing the member array, since soon we'll have
two member arrays.

Change-Id: I76eca012af6743b29de1e53e96a2ff46187f8a8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209097
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2026-08-21 14:27:21 +02:00
Dr. David Alan Gilbert a25675d5ed tdf#100244,126710:sc:Use GetMemberCount()
Use GetMemberCount() rather than accessing maMemberArray.size()
directly in most cases, since we're going to have two different
arrays.

Change-Id: I35541b84e3e1704c9725491444b076c05197aa27
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209096
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2026-08-21 14:24:45 +02:00
Dr. David Alan Gilbert ef0e16d59a tdf#100244,126710:sc:Use find_if in ScDPResultDimension::FindMember
The hand coded linear array search in FindMember can be replaced with
std::ranges::find_if.
Note: A few months ago I added a comment saying I thought the 'IsNamedItem' check
above wass probably always true - it turns out it's not - which causes the linear
array to be used!

(I can't say I understand the case IsNamedItem is false, here, it
triggers in the tdf#126710 test)

Change-Id: Ia87998f910d1bbf9f120d70acf096d17d4ce4211
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209095
Reviewed-by: David Gilbert <freedesktop@treblig.org>
Tested-by: Jenkins
2026-08-21 14:24:23 +02:00
Andrea Gelmini 4f86cfa577 Fix typos
Change-Id: Ic09e8f2877a7106eb074586662d1733828d85197
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209422
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2026-08-21 14:19:46 +02:00
Andrea Gelmini c3684f7760 Fix typos
Change-Id: I7359cd221a5fd9e85e306845f6f4eeeff16220fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209417
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-08-21 14:13:26 +02:00
Regina Henschel 28341a6927 Adds color interpolation in the HSL color model
The patch adds a color interpolation in the HSL color model to the
BColor tools and extends the 'Duplicate' dialog to include these new
color interpolations.

This patch also solves bug tdf#173142.

Change-Id: Ie7f15d65f20b6a8d116c2ac03a57540e6be25ae1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209366
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
2026-08-21 14:06:08 +02:00
Caolán McNamara df8df5fb71 don't build the nss command line tools
only the nss shared libraries are used, the tools under nss/cmd like
certutil and pk12util are never installed or run

make the build a little faster

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8b906983f55bc21f3161d9f029fca1afaab02c8b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9500
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 302f1dd5e6a8d21576ca20803814da14ba0d8193)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209447
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 13:17:20 +02:00
Manish Bera 8514cd02d7 Fix the windows build issue of double line bracket test
The test checked the "symbol" attribute for an exact match against
"19SwDoubleLinePortion". This string comes from typeid().name(),
which looks different depending on the compiler. GCC/Clang add a
number prefix like "19...", but MSVC (Windows) writes it differently,
like "class SwDoubleLinePortion". So the exact match never worked on
Windows, and the test failed.

Fixed it by checking if the symbol just contains "SwDoubleLinePortion"
instead of matching it exactly. This works no matter which compiler
is used.

Change-Id: Id4ebf1e38b684746a12e93daf80faeb4eda49d26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208901
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2026-08-21 13:08:05 +02:00
Olivier Hallot 257452b052 Update git submodules
* Update helpcontent2 from branch 'master'
  to 8562577bff47dc7a3af556ebabbf56ca8f54e540
  - tdf#152689 Add VBA "Like" operator help page
    
    Change-Id: I718200df20bb34a84482d823ed7d9a1dd6ef2a84
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/209423
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-08-21 12:27:19 +02:00
Andreas Heinisch cba9a06b88 tdf#44196 - Keep relative paths on URL export
Change-Id: I2ee01e6ef1d1d7dbf2dbbf69440567d152e48f96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209326
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-08-21 12:23:45 +02:00
DrRobotto 94b1da6d3f tdf#120295 - Restrict primitive hit to visible layers (comments)
Change-Id: Ie814ed4624435851f1cdcc8e959f7faf0baf57c6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209348
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2026-08-21 12:22:53 +02:00
ApurvR20 ccba2e008f tdf#171853 Replace lastIndexOf by endsWith in pkgcontent.cxx
Change-Id: I9b1e840af20b80a946b7a79f141e505cc7aa4838
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209441
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-08-21 12:21:07 +02:00
Caolán McNamara 1bc7372569 share the four copies of SanitizePaletteIndex
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iaf7640a2be687edda1ed31932eae7c19b4678ec5
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9266
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit af2c9801021e42e0d327994cde0a8529450c6135)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209448
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 12:19:24 +02:00
Tomaž Vajngerl 30134a14fc sc: test that pivot table values keep the source number format
The result cells of the pivot table output, the grand total row and
the grand total column included, are shown with the number format of
the source data. There was no test for it.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I22eaacf72152bda1d24787cb5b106519411333c3
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8556
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 9630cf4f95123ed5de8450658868a06d4ec88084)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209433
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 10:32:55 +02:00
Tomaž Vajngerl 5826712e95 sc: draw all pivot table frames with one thin line width
The block frames of the pivot table output used a 1pt line inside
the table and a 2pt line on the outer edges of the table, and the
field cell frames used the 1pt line. Draw all of them with the
thin line width (0.75pt) instead, which is close to the line width
that the default OOXML pivot table style uses, so the whole table
uses one slim border.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: Iec99b6890ffa5c8dfc699a30e2fc58d452e5d9ff
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8255
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 411cfdb91ee02a10361c3d72e13bd64161bba4d5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209432
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 10:32:40 +02:00
Tomaž Vajngerl 2795944b41 sc: stop writing pivot table cell styles to the document
The pivot table output set pivot table specific cell styles on its
cells ("Pivot Table Value", "Pivot Table Result", ...) and created
them in the document on first use. Remove this, so adding a pivot
table no longer adds any cell styles.

The attributes that these styles carried are applied as direct
formatting instead. The member cells are aligned to the left, and
the subtotal and grand total labels and results are bold. The left
alignment is also what makes the member indents visible, an indent
has no effect in a centered cell. The style name mapping in
stylehelper.cxx stays, so documents that already contain these
styles keep working.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: Ib33d170d2da38a60c0739eda8fa79ce4f1fcf745
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8254
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit fee8a092ac3388c873d2b0763f7ce3d8cd032b76)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209431
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 10:32:29 +02:00
Tomaž Vajngerl 0753600cc2 sc: draw all pivot table output formatting in one class
The formatting of the pivot table output was spread across
ScDPOutput: cell styles and frames were applied inline while the
table content was written, and ScDPOutputImpl drew the block
frames.

Add sc::pivot::StyleOutput, which handles all the drawing. ScDPOutput
now only records the sections of the table (layout geometry, field
cells, member spans, subtotal and grand total rows and columns,
indents and expand or collapse buttons). The cell styles are applied
while the sections are recorded, at the same points where they were
applied before, so they always come before any direct formatting
(number formats, pivot table format attributes) reaches the cells.
The block frames, the indents and the expander buttons are then drawn
by apply() in one pass over the collected sections. The drawn output
stays the same as before, and a different look, like the OOXML pivot
table styles, can later be drawn from the same sections.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: Ia628de6badf511d299f36bf474194ecad17a9c56
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8253
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 9f5a36c822b170835c55143716be9eca28ac3e91)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209430
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 10:32:13 +02:00
Balazs Varga fb16de3e08 sc ooxml: decode _xHHHH_ escapes in xlsx table column names
The tableColumn "name" attribute is an ST_Xstring, so read it with
getXString (like uniqueName next to it) to decode escapes such as
_x000a_ — an Alt+Enter line break in the header. Read with getString it
kept the literal _x000a_, so a defined name referencing the column via a
structured reference (Table[Col]) no longer matched the real newline and
resolved to #NAME?, breaking a data validation list built on that name.
On export the OOXML serializer already escapes the newline (&#10;), so
the round-trip stays consistent.

Change-Id: I6c51e2259393fafc38f823fb40ce14d28673d8b1
Signed-off-by: Balazs Varga <balazs.varga@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9120
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
(cherry picked from commit f7816a048112157dd603ba9a98dc4f9bf379db97)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209428
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 10:22:37 +02:00
Caolán McNamara c0622dcad4 crashtesting: odt export duplicated a paragraph-anchored text frame
saving fdo66811-1.odt back to odt writes its one paragraph-anchored
text frame twice into content.xml. on a dbgutil build the save
asserts in XMLTextParagraphExport::RecordNodeIndex with:

xmloff/source/text/txtparae.cxx:1826: Assertion `it == maDocumentNodeOrder.end() || isInShapesTextFrame(xTextContent)' failed.

a problem since:

commit 98ae340307
Date:   Fri Apr 22 19:26:47 2022 +0200

    tdf#135978 sw_redlinehide: recreate fly frames anchored to subsequent nodes

which recreates the flys of nodes merged under a redline frame on the
assumption that each node's own frame was deleted. here the anchor
node survived a join with its fly frame still attached, so the export's
redline flag flip made AppendObj create a second SwFlyAtContentFrame
on the same anchor frame, and the UNO layer reported the text frame
twice.

so check for an already attached fly before creating another one.
SwFlyFrameFormat::MakeFrames already does this before it creates a
fly, so factor its check out into FindFlyFrameOfFormat and call that
from both places.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8fb148288844ee44c0318b8c760130ee2da488da
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9280
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit f095944cb1dfc278e726859bcb792f84c67a6adb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209394
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 09:53:48 +02:00
Mike Kaganski 45d479de0b cool#16072 sw: do not let a footnote force a row to split
lcl_GetMaxRowHeight returned the current height of the page body. That
height is smaller when the page has footnotes. SwTabFrame::Split
compares a row that must not split with it. When the row does not fit,
Split treats the row as not fitting the whole page, and splits it so
that no text is hidden. So a row of 4150 twips was compared with 3950,
not with the 4535 that the body has when the page has no footnotes. It
was split, 25 twips short of fitting. SetForceRowSplitAllowed is never
reset, so the row stayed splittable and keep-together was ignored from
then on.

Measure the body as if the page had no footnotes: the print height of
the page, without the header and the footer. The footnotes give that
space back when the row needs it. A footnote of an earlier row stays on
the page that the row leaves. A footnote of the row itself moves with
the row.

This is not enough on its own, because the row can now stay on a page
that is too small for it. Split does not give the first row of a table
to a follow: that would leave the table with no rows, and MakeAll uses
Lower() right after it without a check. So the row stayed, and the text
that did not fit was drawn below the table border, or was not drawn at
all. Split now says what to do about it, and MakeAll does it. Which of
the two ways it is depends on the footnote that took the space.

A footnote of content on an earlier page cannot move, so the table has
to: SwFootnoteRescue::MoveTable. The move needs bMoveAlways, because a
table at the top of a page has no frame before it, and that normally
stops the move. The page still has that footnote, so it is not left
blank; and the next page has no such footnote, so the table does not
move again.

A footnote of the row itself can move, and then the row can stay:
SwFootnoteRescue::MoveOwnFootnote. MakeAll asks the page to put the
footnotes below the table. What has no room left there goes to the next
page, and the body gets that space back. So the row keeps the page, like
in Word. MakeAll asks only once, so a footnote that cannot move does not
make a loop.

This improves on commit 229964ac93
(tdf#163285: consider page body frame height to allow the split,
2024-10-05), which made the rule of commit
b271cc4685 (tdf#123116 sw layout: allow
rows larger than page to split anyway, 2020-03-12) use the body height.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Id3177c20df7ba1d9e10d607d98980849f32a843f
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8954
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 99ad6a1867dc06b9acc386c85373db746e531829)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209429
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-08-21 09:44:21 +02:00
Xisco Fauli 0c91381485 loplugin:unusedmethods
Change-Id: I17586b49f970be17c5f6d2823d4a973521b2ed62
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209407
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-08-21 09:31:35 +02:00
Ilmari Lauhakangas d60b45a581 tdf#160170 Don't use Times New Roman font in test .fodt
The test was failing for a mentee and myself apparently due to missing
the font.

Change-Id: Icc08a641887df5b5700f0fd1aeeeafc62f3f16af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209408
Tested-by: René Engelhard <rene@debian.org>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: René Engelhard <rene@debian.org>
Tested-by: Jenkins
2026-08-21 09:10:15 +02:00