520958 Commits
Author SHA1 Message Date
Michael Weghorn 3281774c95 cui: Resave calloutpage.ui with glade 3.40
This UI file is used for the "Callout" tab page
that can be triggered like this:

* start Draw
* make sure the "Text" toolbar is enabled in
  "View" -> "Toolbars" -> "Text"
* in that "Text" toolbar, select the "Callouts" shape
  and insert it into the document
* right-click on the newly inserted shape to open the context menu
* activate the "Position and Size" menu entry
* switch to the "Callout" tab

Change-Id: I93118b94d5e7f63322df88ff1e6057cdc9b10ecc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211877
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:47:45 +02:00
Michael Weghorn a6aede6c5f cui: Add missing weld::ComboBox include in labdlg.hxx
Without this, Qt Creator shows this error:

    labdlg.hxx:60:27: No member named 'ComboBox' in namespace 'weld' (fix available)

Change-Id: Ica26b748976c0f034c490c92a16b1d393191529e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211876
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:47:34 +02:00
Michael Weghorn 0b69ad0583 cui: Drop SvxCaptionTabPage::m_aBmpCapTypes only used in ctor
There's no need to store the images in an array. Just
create the images when inserting them into the ValueSet instead.

Change-Id: I44506a80e461c7e3abfa2b8e059bd71757f1a731
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211875
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:47:24 +02:00
Michael Weghorn 4893aa3f22 cui: Merge SvxCaptionTabPage::FillValueSet into ctor
Merge the logic into the only caller, the
SvxCaptionTabPage ctor, which already directly inserts
items into the ValueSet as well.

Change-Id: Iab3264c8f4679eea9e6d3538e64c81704fbcb026
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211874
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:47:04 +02:00
Michael Weghorn 0cda587b29 svx: Set slot ID for DefaultShapesPanel IconView item ID
Following

    Change-Id: I3cdb85a966693514521637f672255ba086b9eb19
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Oct 6 09:33:08 2026 +0200

        svx: Port shapes panel from ValueSet to weld::IconView

, stop storing the slot IDs/UNO commands corresponding to the
items in the icon views in DefaultShapesPanel in a map and
instead store them as the ID of the items directly in the
weld::IconView, which simplifies the logic a bit.

Change-Id: I97643abd64436cf106b88f835edf6e5c8fb5f7c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211857
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:46:30 +02:00
Michael Weghorn 969a6481a4 svx: Port shapes panel from ValueSet to weld::IconView
Port the widgets to select shapes to insert in the
Draw/Impress "Shapes" sidebar panel from using a ValueSet
widget to using weld::IconView.

This helps to be more consistent with other platform/toolkit
widgets and reduces custom widget logic.

Adjust indices used to account for the fact that
weld::IconView indices are 0-based while the ValueSet ones
are 1-based.

The UI can be triggered like this:

* start Impress
* open the sidebar
* switch to the "Shapes" sidebar deck

Change-Id: I3cdb85a966693514521637f672255ba086b9eb19
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211856
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:46:20 +02:00
Michael Weghorn 30e7c4110b svx: Reduce scope of local variables
Change-Id: I5252cb01439e071211567e7c8e5cfc5ef1e67e5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211855
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:46:03 +02:00
Michael Weghorn f8055586e7 svx: Iterate over map elements once instead of twice
Instead of iterating over the DefaultShapesPanel::m_aShapesSetMap
elements twice, do so only once and just do everything that needs to be done
for each of the elements right away.

Change-Id: I0b774ccbed7e5110f57d0ce6cc6cf2382a6b923e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211854
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:45:45 +02:00
Michael Weghorn 2bfea7889c svx: Merge DefaultShapesPanel::{Initialize,populateShapes}
Merge DefaultShapesPanel::populateShapes into its only caller,
DefaultShapesPanel::Initialize.

This will also allow to merge the two for loops into one in an upcoming
commit.

Change-Id: I404d056424cc80bda76332543deee6ff287094ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211853
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:45:28 +02:00
Michael Weghorn 153b3d0aa3 svx: Use '#pragma once in DefaultShapesPanel.hxx
Change-Id: Idaff017b86c9a095f14b00df38febe1e2024cc01
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211852
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:45:08 +02:00
Michael Weghorn 28cc8883eb chart2, sc: Enforce UI rules
Commit the results of running

    for a in `git ls-files "*.ui"`; do bin/ui-rules-enforcer.py $a; done

Change-Id: I7a97f75773b9e5750dcce848d730960a8561916b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211850
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:44:57 +02:00
Jean-Pierre Ledure 2821d29a87 ScriptForge (FileSystem) Manage ZIP archives
The FileSystem service provides simple
methods to manage compressed zip archives.

As an example, .odf and .oxt files being
formatted as such archives, massive or
punctual changes of file contents
with smart scripts can be facilitated.

New methods:
- IsZipFile(filename)
    returns True when filename is a valid
    zip file
- FilesInZip(filename, pattern)
    returns a list of archive members,
    optionally filtered with a Like pattern,
    stored in filename
- ExtractFromZip(filename, destination, source)
    stores the source file(s) found in the
    given ZIP file into a destination folder
- CompressToZip(filename, foldername, rootfolder)
    stores the content of folder, including
    its subfolders, into a zip archive,
    optionally under a root folder

The implementation is based on the python
zipfile standard library.

The methods area available both for Basic and
Python user scripts. For Python scripts, the
user is also free to use the native zipfile
library instead.

The user documentation shouid be updated
according to this commit.

Change-Id: I506a8583dc3fa38c7e05094562ade33f84a24747
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211891
Tested-by: Jenkins
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
2026-10-07 14:26:54 +02:00
Justin Luth 72d2a706a3 tdf#173510 sc: prevent crash when table style deselected
This fixes a 26.8 regression from
commit 4fb31ea85f.

Format - AutoFormat Styles and Ctrl-click to de-select the style.

Change-Id: I94961ec11932d76fc945fbb11031f22174111459
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211929
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 13:20:15 +02:00
Caolán McNamara b1df3b5b7a crashtesting: hold the same document BasicManager only once
crash on converting forums/ods/forum-en-39357.ods to xls, and on
recalculating INDIRECT cells in 14 other documents, a debug build
asserts:

 soffice.bin: svl/source/notify/lstner.cxx:83: void SfxListener::StartListening(SfxBroadcaster&, DuplicateHandling): Assertion `!(bListeningAlready && eDuplicateHanding == DuplicateHandling::Unexpected) && "duplicate listener, try building with DBG_UTIL to find the other insert site."' failed.

 #21 SfxListener::StartListening(SfxBroadcaster&, DuplicateHandling) at svl/source/notify/lstner.cxx:83
 #22 SfxBasicManagerHolder::reset(BasicManager*) at sfx2/source/appl/appbaslib.cxx:70
 #23 SfxObjectShell::InitBasicManager_Impl() at sfx2/source/doc/objxtor.cxx:845
 #24 lcl_getBasicManagerForDocument(SfxObjectShell const&) at sfx2/source/doc/objxtor.cxx:656
 #25 SfxObjectShell::GetBasicManager() const at sfx2/source/doc/objxtor.cxx:690
 #26 SfxObjectShell::GetBasic() const at sfx2/source/doc/objxtor.cxx:799
 #27 ScCompiler::ParseMacro(rtl::OUString const&, bool) at sc/source/core/tool/compiler.cxx:3830
 #28 ScCompiler::NextNewToken(bool) at sc/source/core/tool/compiler.cxx:5137
 #29 ScCompiler::CompileString(rtl::OUString const&) at sc/source/core/tool/compiler.cxx:5293
 #30 XclExpChSourceLink::ConvertDataSequence(...) at sc/source/filter/excel/xechart.cxx:901

and the first StartListening of the pair was:

 SfxBasicManagerHolder::reset(BasicManager*) at sfx2/source/appl/appbaslib.cxx:71
 SfxObjectShell::InitBasicManager_Impl() at sfx2/source/doc/objxtor.cxx:845
 lcl_getBasicManagerForDocument(SfxObjectShell const&) at sfx2/source/doc/objxtor.cxx:657
 SfxObjectShell::GetBasicManager() const at sfx2/source/doc/objxtor.cxx:690
 ScServiceProvider::MakeInstance(ScServiceProvider::Type, ScDocShell*) at sc/source/ui/unoobj/servuno.cxx:590
 ScModelObj::createInstance(rtl::OUString const&) at sc/source/ui/unoobj/docuno.cxx:4085
 basic::SfxScriptLibraryContainer::importLibraryElement(...)

Creating the BasicManager of a VBA mode document loads its VBA
document modules, and they create the VBA globals, which asks for
the document's BasicManager again. That nested InitBasicManager_Impl
gets the BasicManager under construction from the repository and
passes it to the holder, then the outer one passes the same one
again, so the holder starts listening to it twice.

That recursion is old, but crashtesting only reaches it since:

commit c8da2d3a99b3a318545f1947f57c929ac9b9a82d
Date:   Sat Sep 26 20:23:11 2026 +0000

    load the Basic project of a VBA mode Calc document after import
    Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13614

Previously the import loaded the Basic project at once and the first
request for the BasicManager came from inside that load. Now with
macros not allowed the project stays unloaded, so the first request
comes later, from a formula, and the load runs inside it.

so make SfxBasicManagerHolder::reset do nothing when it is given the
BasicManager it already holds

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5db2184ae0124879e47310d90b5371e1e2fb0235
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/14516
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit a095496e0d649882531fd8e211ec4179333adee0)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211941
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-07 12:46:22 +02:00
Michael Meeks e1b35f0bb1 sc: forward declare ScDrawView in tabview.hxx.
tabview.hxx included drawview.hxx for a std::unique_ptr<ScDrawView> member
and an accessor that returns the raw pointer. Neither needs the complete
type, and the destructor of ScTabView is already out of line. The include
dragged svx/fmview.hxx, svx/view3d.hxx, svx/svdview.hxx and the rest of the
svx view class chain into the 200 translation units that include the view
shell headers.

tabvwsh.hxx and tabview.hxx now include the small headers they used through
that chain, and the files that call into the draw view include drawview.hxx
themselves.

clang -ftime-trace says around 2% of the module build time saved here.

Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: I198b19e74f6ad56090b987880a063dc9ee677cda
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/12683
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit a7fd69666ea5fb4d26dfad0d286f6c1f3bcd3144)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211884
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-07 12:18:06 +02:00
ApurvR20 8ceb3ebcc6 tdf#74702 Replace instance of OUTDEV_WINDOW in ndole
Change-Id: I9d4a9ebf886614be3e446678b08aa915caa75d86
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211895
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-10-07 09:42:01 +02:00
Aron Budea 80fa879dec oox: omit default attributes/elements in theme XMLs in OOXML
For fonts: charset, pitchFamily.
Various rectangles: fillRect, fillToRect, srcRect, tileRect

Change-Id: I6dbd914ca8d9f8a2760bfecc6e294d465d52c32f
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13779
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 2b4ed81074195c85d4fc179e22ca7d2e2e6da8f1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211692
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-07 08:50:12 +02:00
Neil Roberts 48535514d4 Add a compiler plugin to detect &*smart_pointer
Adds a compiler plugin to detect cases of dereferencing a smart
pointer (such as unique_ptr or UnoCursorPointer) and then immediately
taking the address of the reference. In that case it is better to just
call get() on the pointer. This is particularly important if the pointer
can be null because in that case the initial dereference results in
undefined behaviour.

Change-Id: Ib1cca00c9180572f446721b90f83aa7fddb88c7d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211756
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 08:42:08 +02:00
Neil Roberts 1b6f6d39e3 SWTableAutoFormat: Use unique_ptr::get() instead of &*
Using &* can be problematic if the pointer is null. In this case I don’t
think it matters, but using unique_ptr::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: If4626be07c6adcc14c595360748470ffb67b9e6b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211753
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 08:41:41 +02:00
Neil Roberts 95218dded0 TableProperties: Use shared_ptr::get() instead of &*mpTableStyle
Using &* can be problematic if the pointer is null. In this case the
pointer is explicitly checked for null first so it doesn’t matter, but
using shared_ptr::get() is probably easier to understand anyway. This
also paves the way for a later compiler plugin to check for this.

Change-Id: If087962548c6a7e06311eab9175f5108b50ca549
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211752
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 08:41:30 +02:00
Neil Roberts 13fb6e87c7 ScAutoFormatData: Use unique_ptr::get() instead of &*iter
Using &* can be problematic if the pointer is null. In this case I don’t
think it matters, but using unique_ptr::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I6b399d57cdf580d40721789bf3d6e7607c56fd6e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211751
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 08:41:18 +02:00
Neil Roberts 711c6c0c5b ScDPSaveDimension: Use unique_ptr::get() instead of &*iter
Using &* can be problematic if the pointer is null. In this case I
don’t think it matters, but using unique_ptr::get() is probably
easier to understand anyway. This also paves the way for a later
compiler plugin to check for this.

Change-Id: I064def383ccf4b1ff263a70cd0c7775ff6fbbc8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211750
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 08:40:59 +02:00
Neil Roberts d926f62338 lokdocview: Use m_pTileBuffer.get instead of &*m_pTileBuffer on unique_ptr
Using &* can be problematic if the pointer is null. In this case it
probably doesn’t matter, but using unique_ptr::get() is probably easier
to understand anyway. This also paves the way for a later compiler
plugin to check for this.

Change-Id: If0ece4548b44080acf6db7f8c0ac37922d1a197c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211749
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 08:40:46 +02:00
Neil Roberts 0ac807366d redlndlg: Use unique_ptr::get() instead of &*ptr
Using &* to get the pointer out of a unique_ptr can be problematic if
the pointer is null. In this case that probably can’t happen, but either
way using get() makes the code easier to understand. This also paves the
way for a compiler plugin to detect this in a later patch.

Change-Id: Ib5291002581565e227dd6ca30570ecee63ef7cba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211748
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 08:40:25 +02:00
Caolán McNamara f666a74220 ofz#500542909 svl: don't broadcast an unchanged SetHidden or SetFollow
During import, hidden is set on every page style. Each time, every sheet
using that style is repaginated, which lays out the header and footer
again.

In the fuzzed document those 44 repaginations took 48.75s of its 49s,
and now 1.8s.

SetFollow gets the same check for consistency.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ibdacc93203873d2c6498bf4444d5cc64e929aa83
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/14217
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit d84523bd599f0fabc46ce4f82a6907f938aef55e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211811
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-07 08:40:24 +02:00
Justin Luth 78e93a21ec tdf#173510 sw: update preview when convert table style is de-selected
This fixes a 26.8 regression from
commit 4fb31ea85f.

Change-Id: I947edd9ecc1f5c0e23e864dbf904b5652f79af50
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211928
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 04:11:19 +02:00
Justin Luth 8ebbdee2d2 tdf#173510 sw: do not default to a table style when converting to table
This fixes a 26.8 regression from
commit 4fb31ea85f.

Over the years we keep battling people who want to add borders
to tables by default. This last time was even worse
since it applies an entire table style,
and table styles simply have never worked well.

So do NOT default to infuriating results.

Change-Id: I804ddbf14b8d4b609793bbb4bd1fa7be3f905358
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211927
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
2026-10-07 04:10:37 +02:00
Justin Luth 327a555d56 tdf#173510 svx: update preview when table style is de-selected
This fixes a 26.8 regression from
commit 4fb31ea85f

Change-Id: Ifbd749eccbf6a5bb5f292100d0d16c6eb9246109
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211926
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 04:09:57 +02:00
Justin Luth 197863f377 tdf#173510 sw: allow AutoFormat styles to remove table style
You can remove a table style by Ctrl-clicking on the selected one.
(Probably nobody will find this - it probably needs a help tip.)

This was kind-of working before 26.8 (when chosing 'None')
but not as 'nice'.

Then at least it STOPPED applying the style when new changes are made.

I assume that a lot of the work that when into table styles
in 26.8 made it so that with this patch's change,
the existing format is cleared to nothing as the style is removed.

Clearing the existing seems like a good thing to me.

Change-Id: I174b3e8a408995500598937bbb548250c80bc40f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211925
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 04:09:06 +02:00
Justin Luth a3be6f8c43 tdf#173510 sw: prevent another crash when table style deselected
This fixes a 26.8 regression from
commit 513bfbd476

With the table style deselected (via Ctrl-click),
pressing the OK button caused LibreOffice to crash.

Change-Id: If79d0c0bbd8c1b3f269ebb0b712f39a00b1f4fab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211924
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 04:08:27 +02:00
Justin Luth f74731de65 tdf#173510 svx: prevent a third crash when table style deselected
This fixes a 26.8 regression from
commit 4fb31ea85f.

It looks like it was a mistake to not include it here in the first place,
but doubly so when a table style is deselected (via Ctrl-click).
In that case, if the user pressed the edit button,
LibreOffice would crash because of an attempted -1 index access.

Change-Id: I98038dad3693fba26d17022bec75bd201340c1cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211923
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 04:07:44 +02:00
Justin Luth c08511c560 tdf#173510 svx: prevent another crash when table style deselected
This fixes a regression from
commit 4fb31ea85f

When you de-select a table style in Table - AutoFormat Styles,
then the checkboxes below were left enabled despite a -1 index,
so the rename and renew buttons would crash.

Change-Id: I3c9601476f874116e43387ee40e934932a44b311
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211922
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 04:07:13 +02:00
Justin Luth dc7f772380 tdf#173510 svx: prevent crash when table style deselected
This fixes a 26.8 regression from
commit 4fb31ea85f.

When Table - AutoFormat styles has the style de-selected (via a Ctrl-click),
then SelFormatHdl would call UpdateChecks and crash
when GetData tried to access an index of -1.

Change-Id: I2302436d19ef99584cdb7c4e41738894756e9e8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211921
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
2026-10-07 04:03:01 +02:00
Justin Luth 90a6b78435 tdf#173510 sw: do not default to a table style when inserting one
This fixes a 26.8 regression from
commit 4fb31ea85f.

Over the years we keep battling people who want to add borders
to tables by default. This last time was even worse
since it applies an entire table style,
and table styles simply have never worked well.

So do NOT default to infuriating results.

Note that this depends on the prior patch
to prevent LO from crashing...

Change-Id: I639286ac1f66883f3dd3f41a3d027a75e9ac1d97
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211918
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 01:24:10 +02:00
Justin Luth 7390c517c7 tdf#173510 sw: prevent crash when table style deselected
This fixes a 26.8 regression that can cause LO to crash,
from commit 2f16debb36.

A -1 is possible!
Hold down the Ctrl key to deselect the selected table style.
Since GetData requires a valid index, the -1 crashes the lookup.

The assert was added by Caolan just to silence warnings.
It OUGHT to be possible to have a -1,
so we desperately need to handle it.

One side effect of the -1 is that the preview window
needs to be updated. So that change is included in this patch.
It basically ends up being a partial revert of 2f16debb36.

P.S. I don't know how m_xTAutoFormat would already have a value,
but that has been like that since introduction,
so I decided not to fiddle with it.
But surely you cannot run the OKHdl more than once...

Change-Id: Ieae175072c17b20e79a139b434eae2fed09ca655
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211917
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
2026-10-07 01:23:26 +02:00
Andreas Heinisch 9329964052 tdf#108295 - Set the initial focus explicitly to the first input field
Change-Id: Icc16abfb305c457ac08323d8b56366c376e80e41
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211893
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-10-06 22:49:35 +02:00
Xisco Fauli c64f9804ac expat: upgrade to 2.9.0
With this new version, the build started to fail with
error: ‘XML_Size XML_GetCurrentColumnNumber(XML_Parser)’ is deprecated: please use XML_GetCurrentColumnNumber64 instead [-Werror=deprecated-declarations]
so we need to check the expat version in case the system expat
is older than 2.9

Also add 0001-fix-XML_GE-is-not-defined-evaluates-to-0-Werror-unde.patch
to fix
error: "XML_GE" is not defined, evaluates to 0 [-Werror=undef]
1087 | # if XML_GE == 1
| ^~~~~~
cc1plus: all warnings being treated as errors

Change-Id: If4f1d652941b7766ed94b65a6eaa018f37c89387
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211867
Tested-by: Jenkins
Tested-by: René Engelhard <rene@debian.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-06 22:29:58 +02:00
Xisco Fauli 4257ff7382 harfbuzz: upgrade to 14.6.0
Downloaded from https://github.com/harfbuzz/harfbuzz/releases/download/14.6.0/harfbuzz-14.6.0.tar.xz

Change-Id: Ifc87857cd35503e432326869cae6b1c2b7a9d3b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211896
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-06 21:19:12 +02:00
Xisco Fauli 4b870e7fcf dbaccess: port test from java to c++
I would like to turn this into an easyhack but first I want
to revert
commit 42190cd153
Author: Noel Grandin <noel.grandin@collabora.co.uk>
Date:   Mon Mar 31 12:38:35 2025 +0200

    Revert "Move SingleSelectQueryComposer.java tests to C++"

    This reverts commit d1ec7e9077.

    To avoid deadlocks on jenkins.

and see where CI deadlocks

Change-Id: I99a4b0ac035421cd255c51f69946b52d6ae6635f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211888
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-06 21:18:49 +02:00
Mike Kaganski a36c7459d1 Fix unit test testPieTextArea
CppunitTest_oox_shape failed in the gerrit_linux_gcc_main and
gerrit_linux_clang_dbgutil_main builds like

    oox/qa/unit/shape.cxx:1170:testPieTextArea::TestBody
    double equality assertion failed
    - Expected: 6673
    - Actual  : 6691
    - Delta   : 10

The test from 2ac8858b10699c897dd530c8b1434bd9604a4aff (tdf#149918 fix
pie in presetShapeDefinitions.xml, 2026-10-06) checked the BoundRect of
the shape, which includes the ink of its text; text layout changes merged
meanwhile probably moved that ink. Check the text frame that the preset
defines instead; it does not depend on fonts or line metrics.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Ica16e4457cc150e9115dfc9994abd3f801778621
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/14447
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 0bcc06cdc592bf7c9828b694b00acb7fed07eccf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211889
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-06 21:18:29 +02:00
Christian Lohmaier 7922a1233c Update git submodules
* Update translations from branch 'master'
  to eb0ac524bb996151fdbc4e78ec1f28effbc0c5b9
  - update translations for master
    
    and force-fix errors using pocheck
    
    Change-Id: If8145fd30a2efc5506f32661c464cbd1603c154a
2026-10-06 19:36:49 +02:00
Michael Weghorn 016b2c1135 qt: Don't require to pass QtFrame to QtGraphicsBase::ImplGetResolution
Both callers in subclasses pass the own frame. Use it
directly instead of requiring that callers pass it explicitly.

Change-Id: I5e40e86a0f6b4e76838234aacc32de71aad8ef22
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211746
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-10-06 16:50:13 +02:00
Michael Weghorn 1caec31b97 qt: Move QtFrame* member down to QtGraphicsBase base class
All of the 3 QtGraphicsBase subclasses
(QtGraphicsBackend, QtGraphics, QtSvpGraphics)
have their own QtFrame* member.

Deduplicate by moving it to the shared QtGraphicsBase
base class and adding a protected getter.

This will also allow having more QtFrame-related
logic directly in the base class in the future.
(An upcoming commit will get rid of the need to
pass the frame to QtGraphicsBase::ImplGetResolution
and it might e.g. also help to centralize new logic for
QtGraphics and QtSvpGraphics suggested to be added in pending
Gerrit changes [1] and [2].)

[1] https://gerrit.libreoffice.org/c/core/+/210650/6
[2] https://gerrit.libreoffice.org/c/core/+/210651/8

Change-Id: Ie6775b7dae0f1c8a68169ddbd746d3244b01e200
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211745
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-10-06 16:50:08 +02:00
Aron Budea 52277daba8 cool#16279 sd: inherited autofit in PPTX lost on import
When an empty PPTX presentation was opened and saved,
its Title and Content layout/master slide lost its
autofit setting.

Original slide master had <a:normAutofit/> element
in its placeholders, which turned into <a:noAutofit/>.

This happened, because on import the inherited property
got overwritten by the default no autofit.

Change-Id: If9842d4c53eb283b9497b46198aaea4911413bc9
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/14276
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit afe4932986453513ea1a50b1143de3827f39c0ed)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211865
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-06 16:26:14 +02:00
Andreas Heinisch a6c7e25105 tdf#125846 - Avoid deleting fly formats one by one
Avoid deleting fly formats one by one while the document is destroyed
since DeleteAndDestroyAll removes all fly formats at once in
SwDoc::~SwDoc afterwards.

Change-Id: Ie62ead75a3ba1cdfa47d072c329e8d9fec9387ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211864
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2026-10-06 16:13:28 +02:00
Olivier Hallot a60d879f81 Update git submodules
* Update helpcontent2 from branch 'master'
  to 5cb7c905920ce835f1a171c73e42b510eae6d63d
  - tdf#152689 Set Like operator as a VBA operator
    
    + Some refactor
    + Added "VBA" for StrConv
    + The Like operator works even without "Option VBASupport 1". However, the implementation was carried to match VBA, and restricted the patterns to VBA compatible.
    
    Change-Id: I1cbe5d9a67a27da561eb8a64b5dc6103bd036fe3
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/211892
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
    Tested-by: Jenkins
2026-10-06 16:03:54 +02:00
Olivier Hallot 9609c61799 Update git submodules
* Update helpcontent2 from branch 'master'
  to ce0d999b0d1163a3cb4acbb58cfe50ab7555342d
  - tdf#152689 Add Like operator to Contents in Basic
    
    Change-Id: I79c70d405054099eb072f6c288757af142e15569
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/211890
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
    Tested-by: Jenkins
2026-10-06 14:56:01 +02:00
Regina Henschel 5044a9a571 tdf#149918 fix pie in presetShapeDefinitions.xml
The preset definition pie has exchanged values for top and right of
text area rectangle. This will be fixed at ISO, see
https://github.com/sc34wg4/OOXMLSchemas/commit/48a982f78a37e18f4e76791d4f25eeb4877f3300
It is not known yet, when the next version of the standard will be
released. However, I see no reason why we not already use the correct
values.
The scripts in oox/source/drawingml/customshapes/ do not work for me.
Thus I have changed the values manually.

Signed-off-by: Regina Henschel <rb.henschel@t-online.de>
Change-Id: I01297f18ec61133626d8a53042049788cac0e451
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/12814
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 2ac8858b10699c897dd530c8b1434bd9604a4aff)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211861
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-06 14:35:43 +02:00
Caolán McNamara 958f1409e5 note a document event from HTML import like the other HTML events
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I73da657a72b0ac7cb6f58d2cd766a3ab292bf8b1
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13667
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/14076
(cherry picked from commit d5ed5aeaa64aa89329b6350ad254d88c101a8fdc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211799
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-06 12:17:50 +02:00
Neil Roberts 6804c10b45 SwXCellRange: Use UnoCursorPointer::get() instead of &*
Using &* can be problematic if the pointer is null. In this case I don’t
think it matters, but using UnoCursorPointer::get() is probably easier
to understand anyway. This also paves the way for a later compiler
plugin to check for this.

Change-Id: I01f77acc36cd1f96c6b438b9d6db005d0b08416a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211755
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-06 10:02:46 +02:00