512725 Commits

Author SHA1 Message Date
c0b14ab9aa tdf#146619 Use more forward declarations in include/vcl/[A-Z]*
Found after running bin/find-unneeded-includes --headersfwd include/vcl/[A-Z]*

This shaves off about 100M input, not bad for such a small amount
of files checked

This time --headersfwd skips files that contain #if defs,
in hope of not breaking builds that are not checked by CI

(...except for include/vcl/BitmapTools.hxx - this was cleaned accidentally,
due to a bug in the bin/find-unneeded-includes script that is fixed
by the previous commit 930ff2b830
- but let's keep this anyway, it seems fine)

Change-Id: Ia8e49d94f6adb3cdbedbc40ffa56dbf846c9b6e4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196235
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
Tested-by: Jenkins
2026-01-05 11:10:28 +01:00
8b7d0c8a93 svx: prefix members of SvxRelativeField
See tdf#94879 for motivation.

Change-Id: I5607196a2a0390d92963f8386bd44d61622fbc0e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196529
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2026-01-05 10:22:08 +01:00
d2dc364ca3 tdf#169843 math: OOXML set letter not interpreted correctly
problem:
OOXML has special property to define set names
m:scr with value "double-struck" means text should be
interpreted as set names and double-struck letters should be used

Change-Id: I8acefb369694ae901fc4df2505a85d0691a2cb16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196199
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit f325e0de34)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196305
Tested-by: Jenkins
2026-01-05 10:05:28 +01:00
f97b7742d7 jsdialog: allow treelist lazy loading
mark entries visible and update jsdialogs when
treelists are scrolled and new entries are visible

Change-Id: I0c54cd2ae5473b6148f7d20c0b083066e28450e0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195318
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 777fff6a80)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196306
Tested-by: Jenkins
2026-01-05 10:01:49 +01:00
030d1a13a1 -Werror=unused-but-set-variable
...after c184cd9848 "tdf#168594 tdf#119931 a11y
special chars: Use IconView for recent/favorites"

Change-Id: I79d63bc80548419b1170b2a2cd25a99f08341907
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196528
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
2026-01-05 09:41:01 +01:00
446883bf61 jsdialog: enable cross-reference dialogs
- disable name reassignment ued for uitests in LOK
- it is not supported and fails on asertion
- EditFieldDialog had wrong order of items (buttons on top)

Change-Id: I111918b808901cfa7b4020c7c352d969ce76d032
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196356
(cherry picked from commit 3532b81f36)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196527
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Tested-by: Jenkins
2026-01-05 09:40:53 +01:00
5d445cc75a avoid a possible empty aria node
if there was no description, only a name, but we end up not using it
so only fetch the name for the case that we will use it.

Change-Id: I1075bcc3cd054fbf512b240ffe09e17c12a0d868
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195852
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196525
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2026-01-05 09:29:09 +01:00
b10672ec9e lok: a11y: fix the accessible description property
The accessible description is useful for setting the
image alt attribute on the client side.

Change-Id: I86f4e8b6486d89c446019339699ab030dccb6c0f
Signed-off-by: Henry Castro <hcastro@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195725
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196524
Tested-by: Jenkins
2026-01-05 09:29:02 +01:00
e52374c5f8 add the names of the writer dialog .ui files that are missing from coverage
Change-Id: I1f54dc2197ced0d941df3581bfe6b1db2e357274
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195451
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196523
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2026-01-05 09:28:53 +01:00
4b4065ac96 vcl: introduce some OutputDevice mapping tests specifically for fn5()
Change-Id: I6b5327dd9cdc584baa4df323b781e4ebe6135b34
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196220
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2026-01-05 06:19:21 +01:00
f86fe0bb07 Update git submodules
* Update helpcontent2 from branch 'master'
  to ea6da5edc4ca811439cda50a022592a9ce1245f1
  - Add icon to donation button in Help pages.
    
    Change-Id: I3f565f9245252c4ca417dff9b49df272b4733648
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/196526
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-01-05 00:29:01 +01:00
8a76ef1a3a tdf#169813 - Reset default dash option during GDIMetaFileImport
Change-Id: Ibb85a649594c8edbce1b624bed1a6c7942a3d183
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196519
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-01-04 20:06:46 +01:00
1bb896d8b3 Update git submodules
* Update helpcontent2 from branch 'master'
  to b9c56ad672ef100b9bb6db3a1e3cf4d5c9face8e
  - Move baseline grid display page to Writer folder
    
    baseline grid is Writer-exclusive
    
    Remove some unused code
    
    Change-Id: Ib800d5ecbdf79f045d18e0dccae71ad3490fc808
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/196521
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-01-04 16:25:46 +01:00
4760b3d376 tdf#130857 qt weld: Support "Insert OLE Object" dialog
This means that native Qt widgets are used for that dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Writer
* "Insert" -> "OLE Object" -> "OLE Object..."

Change-Id: I646bbe0e62e0da500630bae19e469bc24ecd53c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196461
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:05:26 +01:00
a41fcd306b weld: Pass/Return vector in ComboBox::{g,s}et_mru_entries
The MRU entries are logically a list/vector, so
use a vector of strings for those in the weld::ComboBox
API instead of a serialized string.

Instead of (de)serializing to/from string in each
of the weld::ComboBox implementations, let the
caller take care of that.

Also adjust the underlying vcl widgets used
by SalInstanceComboBoxWithEdit accordingly.

At this point in time, FontNameBox (use for the
font combobox in the Writer formatting toolbar)
is the only user of the API.
No change in behavior expected or seen in a quick
test using that combobox. (After selecting entries
in that combobox, they show up in the MRU list at
the top as expected and are restored when exiting
and restarting Writer.)

For GtkInstanceComboBox, GtkInstanceComboBox::get_mru_entries
was seen returning a vector with an empty entry initially.
Explicitly filter out empty strings to avoid that.
(It was not a problem before, because an empty string
was interpreted as "no entries", while a vector with
a single entry consisting of an empty string is no more.)

Change-Id: I8422e1abaaabaa500cdffaba1fae97638bd4d5f0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196460
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:05:17 +01:00
e712ef765d tdf#130857 qt weld: Implement QtInstanceComboBox::{g,s}et_entry_font
Implement these QtInstanceComboBox methods by
by creating a QtInstanceEntry for the combobox's
entry/QLineEdit and calling the corresponding
weld::Entry methods.

Change-Id: Ib6ffe878c18a4a90c8ad227aae3957a646ef7479
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196459
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:05:08 +01:00
6f7ff25797 tdf#130857 qt weld: Implement combobox clipboard logic
Implement clipboard-related methods in
QtInstanceComboBox by creating a QtInstanceEntry
for the combobox's entry/QLineEdit and calling the corresponding
weld::Entry methods.

Change-Id: I0ed2c5180e36ab85ad7414a2069100490e05a62c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196458
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-04 15:05:00 +01:00
e16e437d16 tdf#130857 qt weld: Introduce QtInstanceTextWidget
Move the duplicate logic to set the font (color) from
QtInstanceEntry and QtInstanceTextView to a new
shared base class QtInstanceTextWidget.

Change-Id: I817aa8342b6126c8dcdd1cf2a6f0b137faf12db1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196457
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-04 15:04:50 +01:00
19f1dac153 tdf#130857 weld: Implement TextWidget::paste_clipboard in base
Add an implementation of TextWidget::paste_clipboard
right in the abstract base class, as it provides
all relevant API to do that.

Drop the QtInstanceEntry and QtInstanceTextView
overrides that would so far only trigger an assert.

For now, leave the GTK and vcl
implementations/overrides in place.

Change-Id: Ia41cad18204781ee7982e06bb2b51afdeeb5fbd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196455
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:04:40 +01:00
8b03089f4f tdf#130857 weld: Implement TextWidget::cut_clipboard in base
Add an implementation of TextWidget::cut_clipboard
right in the abstract base class, as it provides
all relevant API to do that.

Drop the QtInstanceEntry and QtInstanceTextView
overrides that would so far only trigger an assert.

For now, leave the GTK and vcl
implementations/overrides in place.

While it's probably not relevant in practice, those
might be more efficient than operating on the whole text
of the widget to extract the relevant substring to copy/cut.

Change-Id: I9b4f70daa3f3fa7af2fb16cfc0d840d9da6551a1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196454
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:04:31 +01:00
8e03af5d8c tdf#130857 weld: Implement TextWidget::copy_clipboard in base
Add an implementation of TextWidget::copy_clipboard
right in the abstract base class, as it provides
all relevant API to do that.

Drop the QtInstanceEntry and QtInstanceTextView
overrides that would so far only assert.

For now, leave the GTK and vcl
implementations/overrides in place.

While it's probably not relevant in practice, those
might be more efficient than operating on the whole text
of the widget to extract the relevant substring to copy.

Change-Id: I9333ce659cecc5155f4bcf424ad1989919623142
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196453
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:04:21 +01:00
c9a294c39d vcl: clang-format vcl::unohelper::TextDataObject code
This in particular gets rid of an extra indentation
level.

Change-Id: I69c8a7bd52f3e2c9d6c0ef1a82a36f8129d7134e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196452
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:04:11 +01:00
8f0638814d tdf#130857 weld: Block signals in Entry::replace_selection
So far, weld::TextView::replace_selection was
blocking signals, by not being virtual itself
but calling a virtual helper method
weld::TextView::do_replace_selection and
blocking signals while doing so, while
weld::Entry didn't do that.

The weld::TextView behavior is consistent
with how signals are handled elsewhere
(only emitted on user-triggered changes,
not programmatic ones).
Therefore, align the weld::Entry behavior
with the weld::TextView one, and move the
logic to the common base class, weld::TextWidget.

It seems unlikely that any existing code using
weld::Entry would rely on signals being emitted,
but if that turns out to be the case (i.e. behavior
regresses with this commit), that code should
probably be adjusted as necessary.

This also prepares for implementing
clipboard-related methods directly in
the weld::TextWidget base class in an upcoming
commit.

Change-Id: I566c70bd98bbb92430107b1d40f9ee338fdbd749
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196451
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:04:00 +01:00
b8461991d5 tdf#130857 weld: Move some Entry and TextView logic to new TextWidget base
weld::Entry and weld::TextView have quite some logic
that is the same for both classes.

Introduce weld::TextWidget as new abstract base class
for both classes and move some logic there, in order to
deduplicate that and ensure the API for both classes
stays consistent (as now, both are changed at the
same time when the signature for any common method is
changed).

weld::Entry::get_saved_value didn't have a
weld::TextView equivalent before, so this is
implicitly added with this commit.

This refactoring also prepares for implementing
clipboard-related methods directly in
the weld::TextWidget base class in an upcoming
commit.

Change-Id: I68cbea4c9bb1438976f7473bd752e07175ee91dc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196450
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:03:50 +01:00
ffc8326e99 weld: Move weld::Entry to own header/source
Move the class out of weld.hxx into its own header and source
file, in order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I27033905fe8be1c3646c8cf08799c9bf53eeb471
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196448
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:03:39 +01:00
7fb6442c82 weld: Move weld::FormattedSpinButton to own header
Move the class out of weld.hxx into its own header file,
in order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

This also prepare for moving weld::Entry (which is
a weld::FormattedSpinButton base class) to its own header.

Change-Id: Iceb05e4055a22d483be9e0052199f738a7406097
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196447
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-04 15:03:26 +01:00
184bc7f88a weld: Move static SpinButton methods to SpinButton.cxx
Now that

    Change-Id: I6555d2343ec9b01d7915cd52508c0db4c8704509
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Sat Jan 3 11:48:36 2026 +0100

        weld: Move weld::SpinButton to own header/source

introduced a source file for weld::SpinButton method
implementations, move these 2 static methods there, too.

Change-Id: Ib37bc7af03df32e4566a7c3ab3c4c3d0db15806b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196446
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-04 15:03:17 +01:00
01e513fccf weld: Move weld::SpinButton to own header/source
Move the class out of weld.hxx into its own header and source
file, in order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I6555d2343ec9b01d7915cd52508c0db4c8704509
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196445
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-04 15:03:06 +01:00
d7e4c02cfb tdf#169813 - Reset default dash option during GDIMetaFileImport
Prevent default constructor dash settings from affecting non-dashed
line segements.

Change-Id: I082f03a2a0fc92f8f319e6e82e496c6ee72386b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196264
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-01-04 11:52:48 +01:00
a359f14593 Fix typo
Change-Id: I37e77564141afae93522dff29a188aa9cde9446b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196407
Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
Tested-by: Jenkins
2026-01-04 10:19:05 +01:00
7ddf75c171 Fix typo
Change-Id: Iffb54d05c801c67a4e33ae86086e10f12086b07d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196406
Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
Tested-by: Jenkins
2026-01-04 10:18:55 +01:00
12904bdf8f Fix typo
Change-Id: I02c7a422dea067658e3cfcba6b363b32c0d197aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196449
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2026-01-04 10:08:40 +01:00
189b453f0d tdf#146619 Run IWYU again on include/vcl
Change-Id: Ifc2e059e7ea3f47a795a24505643ef52d2350023
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196233
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
2026-01-03 17:32:04 +01:00
e47f1192fe ofz#473050752 Integer-overflow
Change-Id: I1b6ea0fcd434e91e63ce84ccbc46bc96f713216c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196444
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2026-01-03 15:55:47 +01:00
e57189f9c1 bin/find-unneeded-includes: improve headersfwd mode
- give warning if a header is skipped because it contains #if defs
- give an option to still check those (together with --noexclude)

Change-Id: I9e878b213300a53b6236325f2bafb280f8b0290f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196396
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
Tested-by: Jenkins
2026-01-03 14:26:42 +01:00
1db7d671f3 weld: Move weld::TextView to own header/source
Move the class out of weld.hxx into its own header and source
file, in order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I05a3ae87147fedfa39f4acd8c3f744fd88a83e5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196442
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-03 12:10:26 +01:00
389bbaad1d crashtesting: UaF in SwTextFormatter::InsertPortion
for soffice --headless --convert-to pdf tdf103059-2.odt

==2656459==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c994604b938 at pc 0x7b2929cd73cd bp 0x7ffc818cc110 sp 0x7ffc818cc108
READ of size 8 at 0x7c994604b938 thread T0
    #0 0x7b2929cd73cc in SwTextFormatter::NewFlyCntPortion(SwTextFormatInfo&, SwTextAttr*) const core-asan/sw/source/core/text/itrform2.cxx:3220
    #1 0x7b2929e02267 in SwTextFormatter::NewExtraPortion(SwTextFormatInfo&) core-asan/sw/source/core/text/txtfld.cxx:285
    #2 0x7b2929cccd9d in SwTextFormatter::NewPortion(SwTextFormatInfo&, std::optional<o3tl::strong_int<int, Tag_TextFrameIndex> >) core-asan/sw/source/core/text/itrform2.cxx:1886
    #3 0x7b2929cbf0a3 in SwTextFormatter::BuildPortions(SwTextFormatInfo&) core-asan/sw/source/core/text/itrform2.cxx:440
    #4 0x7b2929ccec48 in SwTextFormatter::FormatLine(o3tl::strong_int<int, Tag_TextFrameIndex>) core-asan/sw/source/core/text/itrform2.cxx:2102
    #5 0x7b2929c10fac in SwTextFrame::FormatLine(SwTextFormatter&, bool) core-asan/sw/source/core/text/frmform.cxx:1458
    #6 0x7b2929c14223 in SwTextFrame::Format_(SwTextFormatter&, SwTextFormatInfo&, bool) core-asan/sw/source/core/text/frmform.cxx:1822
    #7 0x7b2929e4755c in SwTestFormat::SwTestFormat(SwTextFrame*, SwFrame const*, long) core-asan/sw/source/core/text/txtfrm.cxx:3453
    #8 0x7b2929e47e1d in SwTextFrame::TestFormat(SwFrame const*, long&, bool&) core-asan/sw/source/core/text/txtfrm.cxx:3483
    #9 0x7b29297645a7 in SwContentFrame::WouldFit_(long, SwLayoutFrame*, bool, bool) core-asan/sw/source/core/layout/calcmove.cxx:2192
    #10 0x7b2929756a65 in SwContentFrame::ShouldBwdMoved(SwLayoutFrame*, bool&) core-asan/sw/source/core/layout/calcmove.cxx:199
    #11 0x7b292979f8bd in SwFlowFrame::MoveBwd(bool&) core-asan/sw/source/core/layout/flowfrm.cxx:2669
    #12 0x7b2929761592 in SwContentFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:1654
    #13 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    #14 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    #15 0x7b29298c2bd0 in lcl_FormatContentOfLayoutFrame core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:688
    #16 0x7b29298c2b26 in lcl_FormatContentOfLayoutFrame core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:684
    #17 0x7b29298c2b26 in lcl_FormatContentOfLayoutFrame core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:684
    #18 0x7b29298c33a4 in SwObjectFormatterTextFrame::FormatAnchorFrameAndItsPrevs(SwTextFrame&) core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:774
    #19 0x7b29297c06dd in SwFlyAtContentFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/flycnt.cxx:440
    #20 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    #21 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    #22 0x7b29297bc028 in SwFlyFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/fly.cxx:3436
    #23 0x7b292984693b in SwLayAction::FormatLayoutFly(SwFlyFrame*) core-asan/sw/source/core/layout/layact.cxx:1553
    #24 0x7b29298ba5f3 in SwObjectFormatter::FormatObj_(SwAnchoredObject&) core-asan/sw/source/core/layout/objectformatter.cxx:287
    #25 0x7b29298c05fb in SwObjectFormatterTextFrame::DoFormatObj(SwAnchoredObject&, bool) core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:132
    #26 0x7b29298ba207 in SwObjectFormatter::FormatObj(SwAnchoredObject&, SwFrame*, SwPageFrame const*, SwLayAction*) core-asan/sw/source/core/layout/objectformatter.cxx:191
    #27 0x7b29297b0cc5 in CalcContent(SwLayoutFrame*, bool) core-asan/sw/source/core/layout/fly.cxx:1852
    #28 0x7b2929a2c3f0 in SwLayoutFrame::FormatWidthCols(SwBorderAttrs const&, long, long) core-asan/sw/source/core/layout/wsfrm.cxx:4024
    #29 0x7b292998a2b2 in SwSectionFrame::Format(OutputDevice*, SwBorderAttrs const*) core-asan/sw/source/core/layout/sectfrm.cxx:1563
    #30 0x7b292975d1b7 in SwLayoutFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:1073
    #31 0x7b292998618a in SwSectionFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/sectfrm.cxx:932
    #32 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    #33 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    #34 0x7b2929844913 in SwLayAction::FormatLayout(OutputDevice*, SwLayoutFrame*, bool) core-asan/sw/source/core/layout/layact.cxx:1315
    #35 0x7b292984617e in SwLayAction::FormatLayout(OutputDevice*, SwLayoutFrame*, bool) core-asan/sw/source/core/layout/layact.cxx:1511
    #36 0x7b292984617e in SwLayAction::FormatLayout(OutputDevice*, SwLayoutFrame*, bool) core-asan/sw/source/core/layout/layact.cxx:1511
    #37 0x7b292983f951 in SwLayAction::InternalAction(OutputDevice*) core-asan/sw/source/core/layout/layact.cxx:629
    #38 0x7b292983d4b7 in SwLayAction::Action(OutputDevice*) core-asan/sw/source/core/layout/layact.cxx:404
    #39 0x7b292a7e2aad in SwViewShell::CalcLayout() core-asan/sw/source/core/view/viewsh.cxx:1248
    #40 0x7b2929504fd1 in SwEditShell::CalcLayout() core-asan/sw/source/core/edit/edws.cxx:89
    #41 0x7b292b84944f in SwXTextDocument::getRendererCount(com::sun::uno::Any const&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) core-asan/sw/source/uibase/uno/unotxdoc.cxx:2766
    #42 0x7b2918f8118b in PDFExport::Export(rtl::OUString const&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) (core-asan/instdir/program/../program/libpdffilterlo.so+0x16a18b) (BuildId: 3e1e7d533e1cda134f16230425f07ece7cda2894)
    #43 0x7b2918fb7781 in PDFFilter::implExport(com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) (core-asan/instdir/program/../program/libpdffilterlo.so+0x1a0781) (BuildId: 3e1e7d533e1cda134f16230425f07ece7cda2894)
    #44 0x7b2918fb8c26 in PDFFilter::filter(com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) (core-asan/instdir/program/../program/libpdffilterlo.so+0x1a1c26) (BuildId: 3e1e7d533e1cda134f16230425f07ece7cda2894)
    #45 0x7f2966849fa0 in SfxObjectShell::ExportTo(SfxMedium&) (core-asan/instdir/program/libsfxlo.so+0x2649fa0) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    #46 0x7f296683c239 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) (core-asan/instdir/program/libsfxlo.so+0x263c239) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    #47 0x7f2966851353 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x2651353) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    #48 0x7f296684e6e2 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x264e6e2) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    #49 0x7f29667f24ab in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t> >, SfxItemSet&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x25f24ab) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    #50 0x7f29669353f9 in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&, bool) (core-asan/instdir/program/libsfxlo.so+0x27353f9) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    #51 0x7f29669237ad in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x27237ad) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    #52 0x7f296e59ea3d in desktop::DispatchWatcher::executeDispatchRequests(std::__debug::vector<desktop::DispatchWatcher::DispatchRequest, std::allocator<desktop::DispatchWatcher::DispatchRequest> > const&, bool, desktop::DispatchRequestFlags*) (core-asan/instdir/program/libsofficeapp.so+0x39ea3d) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #53 0x7f296e5d9fae in desktop::RequestHandler::ExecuteCmdLineRequests(desktop::ProcessDocumentsRequest&, bool) (core-asan/instdir/program/libsofficeapp.so+0x3d9fae) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #54 0x7f296e503193 in desktop::Desktop::OpenClients() (core-asan/instdir/program/libsofficeapp.so+0x303193) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #55 0x7f296e50005c in desktop::Desktop::OpenClients_Impl(void*) (core-asan/instdir/program/libsofficeapp.so+0x30005c) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #56 0x7f296e4ffc16 in desktop::Desktop::LinkStubOpenClients_Impl(void*, void*) (core-asan/instdir/program/libsofficeapp.so+0x2ffc16) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #57 0x7f29552e3410 in Link<void*, void>::Call(void*) const (core-asan/instdir/program/libvcllo.so+0x42e3410) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #58 0x7f29552db964 in ImplHandleUserEvent(ImplSVEvent*) (core-asan/instdir/program/libvcllo.so+0x42db964) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #59 0x7f29552e0e3b in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) (core-asan/instdir/program/libvcllo.so+0x42e0e3b) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #60 0x7f2956b44430 in SalFrame::CallCallback(SalEvent, void const*) const (core-asan/instdir/program/libvcllo.so+0x5b44430) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #61 0x7f2956b8d114 in SvpSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) (core-asan/instdir/program/libvcllo.so+0x5b8d114) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #62 0x7f2955efea9f in SalUserEventList::DispatchUserEvents(bool)::{lambda()#1}::operator()() const (core-asan/instdir/program/libvcllo.so+0x4efea9f) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #63 0x7f2955eff104 in SalUserEventList::DispatchUserEvents(bool) (core-asan/instdir/program/libvcllo.so+0x4eff104) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #64 0x7f2956b8e540 in SvpSalInstance::ImplYield(bool, bool) (core-asan/instdir/program/libvcllo.so+0x5b8e540) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #65 0x7f2956b8edd2 in SvpSalInstance::DoYield(bool, bool) (core-asan/instdir/program/libvcllo.so+0x5b8edd2) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #66 0x7f2956096112 in ImplYield(bool, bool) (core-asan/instdir/program/libvcllo.so+0x5096112) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #67 0x7f2956097f83 in Application::Yield() (core-asan/instdir/program/libvcllo.so+0x5097f83) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #68 0x7f29560953b0 in Application::Execute() (core-asan/instdir/program/libvcllo.so+0x50953b0) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #69 0x7f296e4fc9e9 in desktop::Desktop::Main() (core-asan/instdir/program/libsofficeapp.so+0x2fc9e9) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #70 0x7f29560eb3c7 in ImplSVMain() (core-asan/instdir/program/libvcllo.so+0x50eb3c7) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #71 0x7f29560eb590 in SVMain() (core-asan/instdir/program/libvcllo.so+0x50eb590) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #72 0x7f296e5ee383 in soffice_main (core-asan/instdir/program/libsofficeapp.so+0x3ee383) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #73 0x000000201cc6 in sal_main (core-asan/instdir/program/soffice.bin+0x201cc6) (BuildId: 1edea05beb4bcc822dadbcc6f2b2a28fa5ad215b)
    #74 0x000000201cac in main (core-asan/instdir/program/soffice.bin+0x201cac) (BuildId: 1edea05beb4bcc822dadbcc6f2b2a28fa5ad215b)
    #75 0x7f296e011574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #76 0x7f296e011627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #77 0x000000201b64 in _start (core-asan/instdir/program/soffice.bin+0x201b64) (BuildId: 1edea05beb4bcc822dadbcc6f2b2a28fa5ad215b)

0x7c994604b938 is located 56 bytes inside of 696-byte region [0x7c994604b900,0x7c994604bbb8)
freed by thread T0 here:
    #0 0x7f296eae899b in operator delete(void*, unsigned long) (/lib64/libasan.so.8+0xe899b) (BuildId: 0adabddcb77130fc2ea3840d060eb4e8a9ae0c85)
    #1 0x7b2929df5401 in std::__new_allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/15/bits/new_allocator.h:172
    #2 0x7b2929df4edb in std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/15/bits/allocator.h:215
    #3 0x7b2929df4edb in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >&, std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/15/bits/alloc_traits.h:649
    #4 0x7b2929df4edb in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >::~__allocated_ptr() /usr/include/c++/15/bits/allocated_ptr.h:74
    #5 0x7b2929df5647 in std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_destroy() /usr/include/c++/15/bits/shared_ptr_base.h:625
    #6 0x7b29283b09bd in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/15/bits/shared_ptr_base.h:346
    #7 0x7b29283b4dd1 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/15/bits/shared_ptr_base.h:1069
    #8 0x7b2929c05619 in std::__shared_ptr<SwParaPortion, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/15/bits/shared_ptr_base.h:1531
    #9 0x7b2929df424e in std::__shared_ptr<SwParaPortion, (__gnu_cxx::_Lock_policy)2>::reset() /usr/include/c++/15/bits/shared_ptr_base.h:1649
    #10 0x7b2929df3f4f in SwTextFrame::ClearPara() core-asan/sw/source/core/text/txtcache.cxx:41
    #11 0x7b2929e2d129 in SwTextFrame::Init() core-asan/sw/source/core/text/txtfrm.cxx:754
    #12 0x7b2929e45d75 in SwTextFrame::Prepare(PrepareHint, void const*, bool) core-asan/sw/source/core/text/txtfrm.cxx:3358
    #13 0x7b29297e0987 in SwFlyInContentFrame::NotifyBackground(SwPageFrame*, SwRect const&, PrepareHint) core-asan/sw/source/core/layout/flyincnt.cxx:230
    #14 0x7b2929805046 in Notify(SwFlyFrame*, SwPageFrame*, SwRect const&, SwRect const*) core-asan/sw/source/core/layout/frmtool.cxx:3301
    #15 0x7b29297f0a5a in SwFlyNotify::ImplDestroy() core-asan/sw/source/core/layout/frmtool.cxx:696
    #16 0x7b29297f1083 in SwFlyNotify::~SwFlyNotify() core-asan/sw/source/core/layout/frmtool.cxx:798
    #17 0x7b29297e11f0 in SwFlyInContentFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/flyincnt.cxx:316
    #18 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    #19 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    #20 0x7b29297bc028 in SwFlyFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/fly.cxx:3436
    #21 0x7b29297e09cf in SwFlyInContentFrame::GetRelPos() const core-asan/sw/source/core/layout/flyincnt.cxx:235
    #22 0x7b2929cd7309 in SwTextFormatter::NewFlyCntPortion(SwTextFormatInfo&, SwTextAttr*) const core-asan/sw/source/core/text/itrform2.cxx:3213
    #23 0x7b2929e02267 in SwTextFormatter::NewExtraPortion(SwTextFormatInfo&) core-asan/sw/source/core/text/txtfld.cxx:285
    #24 0x7b2929cccd9d in SwTextFormatter::NewPortion(SwTextFormatInfo&, std::optional<o3tl::strong_int<int, Tag_TextFrameIndex> >) core-asan/sw/source/core/text/itrform2.cxx:1886
    #25 0x7b2929cbf0a3 in SwTextFormatter::BuildPortions(SwTextFormatInfo&) core-asan/sw/source/core/text/itrform2.cxx:440
    #26 0x7b2929ccec48 in SwTextFormatter::FormatLine(o3tl::strong_int<int, Tag_TextFrameIndex>) core-asan/sw/source/core/text/itrform2.cxx:2102
    #27 0x7b2929c10fac in SwTextFrame::FormatLine(SwTextFormatter&, bool) core-asan/sw/source/core/text/frmform.cxx:1458
    #28 0x7b2929c14223 in SwTextFrame::Format_(SwTextFormatter&, SwTextFormatInfo&, bool) core-asan/sw/source/core/text/frmform.cxx:1822
    #29 0x7b2929e4755c in SwTestFormat::SwTestFormat(SwTextFrame*, SwFrame const*, long) core-asan/sw/source/core/text/txtfrm.cxx:3453
    #30 0x7b2929e47e1d in SwTextFrame::TestFormat(SwFrame const*, long&, bool&) core-asan/sw/source/core/text/txtfrm.cxx:3483
    #31 0x7b29297645a7 in SwContentFrame::WouldFit_(long, SwLayoutFrame*, bool, bool) core-asan/sw/source/core/layout/calcmove.cxx:2192

Change-Id: I291348ddbaaf0e9e8255e2fca5842dc2d2bfe733
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196426
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2026-01-03 12:03:09 +01:00
19924e5542 crashtesting: assert on loading docx converted from forum-mso-de-134677.doc
#21 0x00007f64a908b9ca in SwDoc::GetTOXBaseAttrSet(SwTOXBase const&) (rTOXBase=...) at core/sw/source/core/doc/doctxm.cxx:496
 #22 0x00007f64a95deabc in SwXDocumentIndex::getPropertyValue(rtl::OUString const&) (this=0x7f648c268590, rPropertyName="TextColumns") at core/sw/source/core/unocore/unoidx.cxx:1198
 #23 0x00007f6498d3fb5d in writerfilter::dmapper::DomainMapper_Impl::handleIndex(tools::SvRef<writerfilter::dmapper::FieldContext> const&, rtl::OUString const&) (this=this@entry=0x7f648c00ede0, pContext=..., sTOCServiceName="com.sun.star.text.DocumentIndex") at core/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx:7833

Change-Id: I81e9eee18b7acd5d8eddeaf16c6c0800deec7300
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196434
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2026-01-03 12:03:00 +01:00
96b5653ed9 Update git submodules
* Update helpcontent2 from branch 'master'
  to 604d1ecdd8f36fbf5d0283da1da5ca436e608543
  - TDF#170144 Fix example for SUMIF()
    
    Change-Id: I7d831a6924e43975ec00dc536b6c658b1c745134
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/196443
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
    Tested-by: Jenkins
2026-01-03 10:53:34 +01:00
daf8765218 weld: Move weld::Assistant to own header/source
Move the class out of weld.hxx into its own header and source
file, in order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I43279e6479c9a0b5c9521dadf6e634e22bf39442
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196438
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-03 08:12:36 +01:00
7024423136 weld: Return weld::Assistant from AssistantController::getDialog
Return the more specific subclass instead of just weld::Dialog.

Change-Id: Ib1a949a87e7d314cd020a9bc3072c6b7dbe94a03
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196437
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-03 08:12:27 +01:00
9362510a2b weld: Move weld::AssistantController to own header/source
Move the class to its own header and source file.

This prepares for an upcoming commit to return a weld::Assistant*
from weld::AssistantController::getDialog without having to
include weld.hxx (or an upcoming Assistant.hxx) in DialogController.hxx.

Change-Id: I4f9467cdf8d4e136fca7628cfd5e0975b4855d66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196436
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-03 08:12:19 +01:00
b44a20cdb7 weld: Move weld::ComboBox to own header/source
Move the class out of weld.hxx into its own header and source
file, in order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ib2fe4a6b5e34ad8ae2194ba85249ca25ed16e9d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196435
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-03 08:12:10 +01:00
6742a74e1f weld: Return std::unique_ptr in weld::TreeView::get_dest_row_at_pos
This is similar to

    commit 82edaf048b
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Sun Dec 21 01:36:30 2025 +0100

        weld: Return std::unique_ptr in weld::ItemView::get_selected

, but now for weld::TreeView::get_dest_row_at_pos.

See the above-mentioned commit for more background.

Change-Id: I53834d637e558e9ee3be341f653dbaed73082ebe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196405
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-03 08:11:58 +01:00
4887919802 basctl: Return std::unique_ptr in SbTreeListBox::ImpFindEntry
Instead of having an out param and a bool return value,
return a std::unique_ptr and create the weld::TreeIter
inside of the method implementation instead of having
to do so in the caller.

This is similar to

    commit 82edaf048b
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Sun Dec 21 01:36:30 2025 +0100

        weld: Return std::unique_ptr in weld::ItemView::get_selected

that simplified weld::ItemView API.

Change-Id: I7ede7f51f76b35fdeec45c3373a19a3808429b38
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196391
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-03 08:11:46 +01:00
71e6e0f320 basctl: Replace MacroChooser::m_xBasicBoxIter with local var
By now, this class member is only used in one method.
Use a local variable instead.

Change-Id: Ic2f096aaef9c34d7f697b6ca0a204780db69a28d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196390
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-03 08:11:38 +01:00
af9d93ecb4 weld: Return std::unique_ptr in weld::ItemView::get_cursor
This is similar to

    commit 82edaf048b
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Sun Dec 21 01:36:30 2025 +0100

        weld: Return std::unique_ptr in weld::ItemView::get_selected

, but now for weld::ItemView::get_cursor.

See the above-mentioned commit for more background.

Change-Id: I6a8d8daa3dd3326c2716c0c0b4e4cb424f73ecb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196389
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-03 08:11:27 +01:00
363b9bfd97 Move ThumbnailView::mxContextMenu to TemplateLocalView
It is only used by that subclass (and subclasses of that
subclass), so there's no need to have it in the
ThumbnailView base class.

Change-Id: Iafb2578ca90e9ccd50b5393621a34f56de6e55da
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196385
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-01-03 08:11:17 +01:00
789a25399f sfx2: Drop unused menu for recent files view in start center
For RecentDocsView, the base class member
ThumbnailView::mxContextMenu is set but unused.

Drop the menu altogether and have a default param
in the ThumbnailView ctor for the menu instead to
not have to explicitly pass a null one.

Change-Id: I46528a662aaf7dc738eb97a7aa81aa32fc04ae79
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196384
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-03 08:11:08 +01:00
0a0548872c Use "p" prefix for TemplateDlgLocalView pointer member
Adhere to naming conventions to make more obvious
this is a pointer.

Change-Id: I0ee2be3e19b222845bb3ab3c0f164ebd82ab3755
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196383
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-01-03 08:11:00 +01:00