Commit Graph
520175 Commits
Author SHA1 Message Date
Xisco Fauli f09f6ce641 cppu: drop obsolete check. Minimum GCC version is 13
Since
commit 16dd61ab4d
Author: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Date:   Sat Mar 21 08:40:09 2026 +0200

    Bump minimum GCC version to 13

Change-Id: I6f37996fc03b191eee78f3057323cb8d795e255f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210555
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-09 09:31:06 +02:00
Xisco Fauli 0514849637 oox: drop obsolete check. Minimum GCC version is 13
Since
commit 16dd61ab4d
Author: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Date:   Sat Mar 21 08:40:09 2026 +0200

    Bump minimum GCC version to 13

Change-Id: I8ac797a49acde27bc5f39af80e479bc5d218fd69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210554
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-09 09:30:51 +02:00
Andrea Gelmini b4db35eeb2 Fix typos
Change-Id: I1ab57e8e234c6bb25627f16c61d2e0e867b7ea04
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210177
Tested-by: Jenkins
Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2026-09-08 22:48:42 +02:00
Vissarion Fisikopoulos 1ba114d561 Rephrasing STR_QRY_FORMAT_WARNING_2CHOICES string text
Change-Id: I4074ad27012bd207d0c09633cc232cd5179572fd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210553
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-09-08 19:15:23 +02:00
Aya Jamal e2f7535f6b tdf#103680: Rendering stacks using OpenType math constants
Change-Id: I5efe4b12f753b33a425af7a4164adfe2214c2eb1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210473
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
2026-09-08 18:45:03 +02:00
Caolán McNamara 6b783a7cc7 ofz#557289178 the top text append might not be a SwXText
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Iae36ce22ac78d7d69dba9d70285cc07affcb03ae
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/11522
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit aeda82ce2db65f0ed6f59fc4826eab8653ef4a6d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210541
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-08 16:17:04 +02:00
Caolán McNamara 6c859d0acd crashtesting: don't thread a formula that uses ocSpill
see on loading forums/xlsx/forum-mso-en4-748529.xlsx and doing a
hard recalculation, which aborts with:

 soffice.bin: sc/inc/formulacell.hxx:514: void ScFormulaCell::MaybeInterpret():
 Assertion `!rDocument.IsThreadedGroupCalcInProgress()' failed.

 #4  ScFormulaCell::MaybeInterpret at sc/inc/formulacell.hxx:514
 #5  ScFormulaCell::IsEmpty at sc/source/core/data/formulacell.cxx:3153
 #6  FillMatrixHandler::operator() at sc/source/core/data/column2.cxx:2636
 #7  sc::ParseBlock at sc/inc/mtvfunctions.hxx:66
 #8  ScColumn::FillMatrix at sc/source/core/data/column2.cxx:2708
 #9  ScTable::FillMatrix at sc/source/core/data/table1.cxx:2700
 #10 ScDocument::FillMatrix at sc/source/core/data/documen8.cxx:400
 #11 ScInterpreter::CreateMatrixFromDoubleRef at sc/source/core/tool/interpr5.cxx:386
 #12 ScInterpreter::ScSpilledRange at sc/source/core/tool/interpr1.cxx:1703
 #13 ScInterpreter::DispatchOpCode at sc/source/core/tool/interpr4.cxx:3868
 #14 ScInterpreter::Interpret at sc/source/core/tool/interpr4.cxx:4414
 #15 ScFormulaCell::InterpretTail at sc/source/core/data/formulacell.cxx:2209
 #16 ScColumn::CalculateInThread at sc/source/core/data/column2.cxx:3270
 #17 ScTable::CalculateInColumnInThread at sc/source/core/data/table1.cxx:2740
 #18 ScDocument::CalculateInColumnInThread at sc/source/core/data/documen8.cxx:421
 #19 Executor::doWork at sc/source/core/data/formulacell.cxx:5463

ScSpilledRange calculates cells itself. It calls MaybeInterpret on the
master cell of the dynamic array, and CreateMatrixFromDoubleRef then
covers the whole spill range, so FillMatrix asks every cell in that
range whether it is empty and IsEmpty calculates it. A worker thread
inside a threaded group calculation must not calculate a cell.

The dependency evaluator can't cover it either, only the operand's own
cell is named by a reference token and how far the spill reaches is
known only once that cell has been calculated

an issue since:

commit 9b97b0fc91bce4b8726ea210347e8ea84270e148
Date:   Mon Jul 6 13:09:39 2026 +0000

    sc: add the # postfix operator for spilled-range references

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Id58e88d1bd927576e4723dd23bc119673feed108
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/11285
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 89af05e8a5e8ce4ae337e2f0048f670940573930)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210542
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-08 16:16:39 +02:00
Caolán McNamara fe9db2c8e1 ofz#557542656 negation of -2147483648 cannot be represented
drawinglayer/source/tools/emfphelperdata.cxx:451:83: runtime error: negation of -2147483648 cannot be represented in type 'sal_Int32' (aka 'int'); cast to an unsigned type to negate this value to itself
     #0 0x7b71c0dc8ec7 in emfplushelper::EmfPlusHelperData::mappingChanged() drawinglayer/source/tools/emfphelperdata.cxx:451:83
     #1 0x7b71c0de6a2d in emfplushelper::EmfPlusHelperData::EmfPlusHelperData(SvMemoryStream&, wmfemfhelper::TargetHolders&, wmfemfhelper::PropertyHolders&) drawinglayer/source/tools/emfphelperdata.cxx:1503:9
     #2 0x7b71c0dc0059 in emfplushelper::EmfPlusHelper::EmfPlusHelper(SvMemoryStream&, wmfemfhelper::TargetHolders&, wmfemfhelper::PropertyHolders&) drawinglayer/source/tools/emfplushelper.cxx:29:17
     #3 0x7b71c0f31dc6 in wmfemfhelper::implInterpretMetafile(GDIMetaFile const&, wmfemfhelper::TargetHolders&, wmfemfhelper::PropertyHolders&, drawinglayer::geometry::ViewInformation2D const&) drawinglayer/source/tools/wmfemfhelper.cxx:2923:37
     #4 0x7b71c0f19d51 in wmfemfhelper::interpretMetafile(GDIMetaFile const&, drawinglayer::geometry::ViewInformation2D const&) drawinglayer/source/tools/wmfemfhelper.cxx:2993:9
     #5 0x7b71c0a70d93 in drawinglayer::primitive2d::MetafilePrimitive2D::create2DDecomposition(drawinglayer::geometry::ViewInformation2D const&) const drawinglayer/source/primitive2d/metafileprimitive2d.cxx:42:42
     #6 0x7f71deb27e4f in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::get2DDecomposition(drawinglayer::primitive2d::Primitive2DDecompositionVisitor&, drawinglayer::geometry::ViewInformation2D const&) const drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx:90:41
     #7 0x7b71c0a727d5 in TestImportWMF drawinglayer/source/primitive2d/metafileprimitive2d.cxx:149:16

so negate the frame offsets as doubles

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I2cf478245f30f4573bfa5ccb2c6dcbe5c603e38b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/11528
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit f6f1f208a87c2a725e5c20c6a7453fa5679eca76)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210540
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-08 16:16:21 +02:00
Dan Williams a7dbde8b02 vcl/qt: implement margins for widgets and layouts
Change-Id: Icbe7423754905f1b22be88eb5234625c2cec9b93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210226
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-08 13:43:05 +02:00
Dan Williams 54604e9b1d vcl/qt: honor row-spacing/column-spacing for QGridLayout
Use the GtkBuilder internal spacing properties.

Change-Id: Ibb26505e343801cca2dc5f728a91821983f5aa4d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206478
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-08 13:42:48 +02:00
Dan Williams e4e60f2769 vcl: standardize Reset dialog button response code
Qt plugin automatically orders buttons for each platform based on
the button's role, which we derive from the Gtk .ui file's
action-widget response code. But to do that conversion from response
code to Qt button role, we need a standard response.

Without a standard response, the button has no role, and gets ordered
to the right of OK/Cancel buttons on Mac. With the correct role, it
is correctly placed far-left along with the Help button.

Change-Id: I16d3126d4999649e7aa6e72ec5e7b1a25f48c2a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210223
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
2026-09-08 13:42:17 +02:00
Dan Williams da86a85994 vcl/qt: set MessageBox/Dialog button role for correct platform button order
Button response IDs are parsed late in the process of building a widget layout
from .ui files because they have their own section at the end. They show up
via QtBuilder::set_response() long after the button has been added to its
QDialogButtonBox. There appears to be no API to set a button's response after
it's already been added, so we need to re-add the button when we finally know
its response ID. The button box will then remove and re-add the button in
the right platform-specific order based on the response ID.

Pull out the button box adding logic to a separate function so we can do
the same thing from the two places it's required.

Change-Id: I29527eabcf68105b5e8c6fbffd4ca3822b7a5acb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206476
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-09-08 13:41:56 +02:00
Xisco Fauli 11ccf42309 libxml2: upgrade to 2.15.4
Downloaded from https://download.gnome.org/sources/libxml2/2.15/libxml2-2.15.4.tar.xz

Change-Id: I99abcbb27e61a0ae544a1136577453ed0cc0750c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210525
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-07 18:39:35 +02:00
Andreas Heinisch 52fe6ff648 tdf#97354 - Keep formula bar content visible while a ref dialog is open
Still clear the formula bar content when the view itself is no longer
active.

Change-Id: I2aab4c320c342676fc547b8879fc2e6986d88ce8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208862
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-09-07 11:30:08 +02:00
Julien Nabet e808025d6f tdf#146404: Fix number Format Code when reopen ods/fods
As Eike indicated in https://bugs.documentfoundation.org/show_bug.cgi?id=146404#c4
COLOR format codes are preserved in ods/fods format.
The pb was the missing map back.
Indeed, we had the mapping for [COLOR<something>] => Color value (eg: "ffaa16")
but not the reverse mapping Color value => [COLOR<something>]

Eike had provided the right code pointer in xmlnumfi.cxx.
First, I thought using PaletteManager but this one is in svx and svx shouldn't be used in xmloff
(dependency pb).
Then I used ChatGpt (GPT-5.6 Luna) and it pointed the right process.
It just consisted to use a similar callback system (DECL_LINK, IMPL_LINK, LINK) of GetUserDefinedColor.

In addition, by testing all this, I noticed that maList in XColorList::GetIndexOfColor was empty.
So I added the Load call in case mbListDirty is true.

Change-Id: I0ef6b5901f2e4c757e88994412dbf79a13100ffd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210518
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-09-07 10:17:29 +02:00
Julien Nabet 0df8960f56 tdf#173364: fix Unable to edit database range for xlsx document
The pb appears with 0d7be893f5:
Table Style: introduce insert/delete Table... command available from

with ods pData->GetTableStyleInfo() is nullptr so buttons like "Modify"
but also "Delete" or all the "Options" part, are enabled (sensitive=true)
with xlsx pData->GetTableStyleInfo() is not null and these same buttons are disabled.

I don't know if the return of GetTableStyleInfo is ok for both cases but I don't know why
we should test this to know if these buttons should be enabled or not.

To be homogeneous, I also did the same for m_xAssignFrame.

Change-Id: Ib2295f26b53163a9612159c1564227d9b2b8ca9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210506
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-07 10:16:20 +02:00
Julien Nabet 296b49f581 Related tdf#150928: replace character set by encoding (sc/part 3+connectivity)
Change-Id: I78d3c989be9e02e39d646b3c1eb672e3f37bd43c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209380
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-07 10:15:23 +02:00
Samuel Mehrbrodt 9fc9e5bc9e tdf#173381 PDF export: Make sure that link contents are always set
Use name, link text or the link itself - depending on what is available.

Change-Id: Iea6654e2aae22d39c031b2cb953c34a5a1ce42ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210458
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@collabora.com>
2026-09-07 08:07:57 +02:00
Andreas Heinisch 766e4da2bb tdf#122473 - Import alignment and axis-based pivot area formats
Change-Id: I2b90187d8e6e9788cc37320dff9035f2042b30f8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210016
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2026-09-07 07:58:38 +02:00
ApurvR20 f4ce2515f8 tdf#153109 Replace ranged loop by ranges::any_of
Change-Id: I3223b8d86cde66070342602606de71170cacbe64
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210519
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-09-07 07:31:09 +02:00
Tomaž Vajngerl 1d475cdae0 Keep a shape's color and its theme reference in step
The default drawing style names a theme color now, and a PPTX saved
to ODF and back came out with every shape green. A shape that really
did name a theme color lost the reference and came back plain.

A color item holds the color and the theme reference together.
Setting a plain color started from the item the shape inherits from
its style and overwrote the color alone, so the inherited reference
won. Clear the reference, which is what an explicit color means.

The ODF export repeats each shape's fill on a paragraph style,
applied after the graphic style, and the paragraph properties had no
complex color. Carry it there too.

A style's graphic properties took a complex color only when it was
the character one, matched by element name. Match on the context id,
which the fill and stroke colors share.

Add a round trip test through ODF and PPTX with a plain shape, a
themed one, and a themed one with a luminance modulation.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: Ia9550222d18a243287240e4184666d78d0abdd22
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10060
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 07cf37b104983f765d3e1005f677e0058df12026)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210510
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-06 21:22:35 +02:00
Julien Nabet 4339f9dcbc Update git submodules
* Update helpcontent2 from branch 'master'
  to 099d2dbd383b6fc748d9aa9ca05ac9f2e9aaaaa2
  - tdf#173430: Update description for the "Ctrl+Minus key" and Ctrl+Plus key" shortcuts
    
    Change-Id: Id2c17c79eb4a6d3461a0765fd58a1f00e78a3328
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/210522
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-06 20:58:56 +02:00
Andrea Gelmini 031895cbd2 Fix typos in code and comments
Change-Id: Icaf6bb17102d2506f0955a6e76f9aaa8c3aa8908
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210511
Tested-by: Jenkins
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-06 00:06:31 +02:00
Caolán McNamara 5c7c41ef9e valgrind: ZCodec::InitDecompress uninitialised values on a short gzip header
Conditional jump or move depends on uninitialised value(s)
   at ZCodec::InitDecompress(SvStream&) (zcodec.cxx:353)
   by ZCodec::AttemptDecompression(SvStream&, SvStream&) (zcodec.cxx:384)
   by PlainTextFilterDetect::detect(...) (filterdetect.cxx:184)
   by filter::config::TypeDetection::impl_askDetectService(...) (typedetection.cxx:1139)
   by filter::config::TypeDetection::impl_detectTypeFlatAndDeep(...) (typedetection.cxx:1044)
   by filter::config::TypeDetection::queryTypeByDescriptor(...) (typedetection.cxx:439)
   by framework::LoadEnv::impl_detectTypeAndFilter() (loadenv.cxx:771)

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I952005ee74189a46d5faf39c8e7fef3ffda2082b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9153
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit a2cf813f1298301d2b95a58e77fe21714beafa32)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209314
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-05 12:46:12 +02:00
Caolán McNamara 4e55dfcf6d crashtesting: keep the spell-check repaint range within the paragraph text
reproduce by loading ooo59043-1.odt and exporting it to the binary doc
format, which toggles the tracked-change display.

that save-time show and hide joins and splits the text nodes, and can
leave the spell wrong list with an invalid end past the now shorter
text.

the idle autospell then maps that end and asserts, here with nIndex 15
on a 12 char node:

    soffice.bin: sw/source/core/text/txtfrm.cxx:1344:
    Assertion `nIndex <= pNode->Len()' failed.

    #4  sw::MapModelToView (nIndex=15) at txtfrm.cxx:1344
    #5  SwTextFrame::MapModelToView (nIndex=15) at txtfrm.cxx:1385
    #6  lcl_CalculateRepaintRect (nChgStart=0, nChgEnd=15) at txtedt.cxx
    #7  SwTextFrame::AutoSpell_ at txtedt.cxx:1519
    #8  SwLayIdle::DoIdleJob_ (ONLINE_SPELLING) at layact.cxx:2171
    #9  SwLayIdle::DoIdleJob at layact.cxx:2312
    #10 SwLayIdle::SwLayIdle at layact.cxx:2573
    #11 SwViewShell::LayoutIdle at viewsh.cxx:927
    #12 sw::DocumentTimerManager::DoIdleJobs at DocumentTimerManager.cxx:179

AutoSpell_ already tolerates the over-long end, set with std::max
against the text length a few lines up, and the word scanner stops at
the real end.

so clamp the repaint range the same way before it is mapped.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5ad086753f8b3fc0f838a45a7291cd62a4d4a343
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6699
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 1920f81f2df779c9787256c9ad93903640817419)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210508
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 12:46:06 +02:00
Mike Kaganski 32ab4a61cc Simplify SwPosition comparison operators
Drop inequality, that is automatically deduced; and use less-than
to define others.

Change-Id: Ib979cbe74ec28c1fde0337276d4f602a1fe907b4
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10674
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 9f8156beb5eb02ef7d7b00a3effbd6631fc58dfb)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210507
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 12:45:59 +02:00
Michael Weghorn 720a9455a6 a11y: Get UnoControl accessible without implementing XAccessible
By now, almost all a11y implementations implement both,
the XAccessible and XAccessibleContext interfaces themselves,
and they do so via the OAccessible base class.

One remaining case that only implements the XAccessible interface
directly is UnoControl. XAccessible::getAccessibleContext
is used from within AccessibleControlShape::Init to get the
accessible context. That accessible context however
is an OAccessible and implements both, the XAccessible
and XAccessibleContext interfaces again.

Stop requiring that UnoControl implements XAccessible
by instead adding a dedicated new method UnoControl::getAccessible
to directly get the OAccessible without relying on
the XAccessible interface being implemented by UnoControl.

In AccessibleControlShape::Init, cast to UnoControl
instead of querying for the XAccessible interface
and call the new method directly.

Stop implementing the XAccessible interface in
UnoControl as it is no longer needed now.

This aligns the UnoControl a11y logic more with how
a11y is implemented elsewhere across the code base.

Sample steps to trigger the modified code
when using the gtk3 vcl plugin on Linux:

* start the Orca screen reader
* start Writer
* insert a few push button controls using
  "Form" -> "Push Button" and then clicking into
  the document and dragging to insert
* disable design mode using "Form" -> "Design Mode"
* focus one of the controls by clicking on it
* press the Tab key to move focus between the controls

No differences in behavior were observed when
doing this with or without this change in place.

Side note: Announcement of the controls when they
receive focus didn't work (reliably) when opening an
existing document containing form controls instead of
inserting them into a new one, but that is preexisting
and unrelated to this commit.

Also adjust test AccessibleFixedTextTest::testFixedText
of the CppunitTest_toolkit_a11y test suite
accordingly that was assuming that it can
query the XAccessible interface directly
from the UNO control.

Change-Id: I8cc3902a8de725eda3d810920f1da2d390c06f73
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210464
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-05 10:43:42 +02:00
Michael Weghorn e8030cf3a6 a11y, sfx2 tests: Don't rely on UnoControl implementing XAccessible
The UndoManager Java UNO test is currently making use of the
XAccessibleAction interface in order to press a button programatically.

In order to retrieve the accessible, it was querying the
UnoControl (via its UNO interfaces) for the XAccessible
interface, then getting the associated XAccessibleContext.

This relies on the implementation detail that UnoControl
implements the XAccessible interface, which will no longer
be the case after upcoming commit

    Change-Id: I8cc3902a8de725eda3d810920f1da2d390c06f73
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Sep 3 15:55:32 2026 +0200

        a11y: Get UnoControl accessible without implementing XAccessible

Therefore, stop relying on this implementation detail.

Ideally, accessibility implementation details shouldn't be used
at all. But for now, in a first step and in order to not have to rework
more logic now, switch to retrieving the XAccessible for/from the window
peer instead, using the mechanism introduced in

    commit d1a25112bb
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jun 18 17:49:48 2025 +0200

        java a11y tests: Don't rely on XWindow being XAccessible

Change-Id: I4817bd7efa8a6ed57a514b3e4fecf3d6545fbc13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210487
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-05 10:43:34 +02:00
DrRobotto 319ac1ac8f cid#1700598 - Guard the element probe against empty arrays
Change-Id: I7c887abae0aa4c830aac54ce3e9cee0d890757b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210333
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Tested-by: Jenkins
2026-09-05 08:53:02 +02:00
DrRobotto d3d6804807 tdf#168193 - For autofilter look up row label instead of scanning all members
Change-Id: I1001e51b088f7cc405ed4b3d2c05c80a23aeaa63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210450
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-09-05 08:50:22 +02:00
Noel Grandin 8ce702c278 simplify impl_addVbEvents_nolck_nothrow
no need to use a loop construct here

Change-Id: I590e0716d81879ffe52bb62c3ae7eea0550e0c3c
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1838
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit d49dfcbc653cde558bce9adf8e7ddf738d727091)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210488
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-05 00:10:50 +02:00
Dennis Francis 0bbeeeaf54 chart2: odf import/export of correlation circle chart
ODF has no name for this chart type, so the file says two things at once, the
way a histogram already does: chart:class names the scatter chart, which is the
nearest a reader that knows nothing of correlation circles can make of it, and
coext:class beside it names the type itself. A reader that knows the coext name
gets the chart back as it was saved.

The series need no new shape in the file. The feature column is the range of
the series and the two dimension columns are a domain each, which is where a
bubble chart already keeps its x and y values, so both the reading and the
writing of them follows the bubble path rather than a new logic.

The schema the tests validate against lists the values coext:class may take, so
the new one is added there beside the histogram.

The test document is one block of five columns: three features and then the two
dimensions, the shape the wizard asks for. The test checks after a round trip
that the chart type came back, that the file carries both class names, and that
every series still holds its feature column beside the two dimension columns.

Change-Id: Iac73ff357c7490b4f38a4390c63948cf148d8585
Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8106
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 4e59ea1c83e61b8dc2647f9a915884f9d461165d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210498
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 00:10:37 +02:00
Noel Grandin 1b276f9265 merge the outliner ParagraphData information into the regular EditTextObject
as part of the process of merging the Outliner code into the normal EditEngine paths.

So instead of keeping a bunch of information "on the side" and then having to merge information
from multiple sources, it all lives where it logically belongs.

Also take the chance to rename the depth/getdepth/setdepth
fields and methods to NumberingDepth, which makes the purpose
more obvious.

Change-Id: I314673ee1b9efa14f178ac34a122995a554cd788
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10551
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 284bbe0af12b96844976f30bb35ade3a327ea76d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210503
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 00:09:20 +02:00
Noel Grandin ac037dfe6b remove some manual bounds checking from editeng
which only serves to obfuscate logic errors, the debug
stl library will do this for us.

Change-Id: I184c7bc2ca65e663c464e6392108da5cbd83253d
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10547
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit c94cad08817882699a4ff8a04bb1d9abbcd4e795)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210502
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 00:09:14 +02:00
Noel Grandin c9e799015c mbIsEditDoc is dead
ever since
  commit 110a25fdc2
  Author: Noel Grandin <noel.grandin@collabora.co.uk>
  Date:   Wed Jul 18 14:49:58 2018 +0200
  loplugin:unusedfields

Change-Id: I8406712984a6d9938d2b1951e9ac783ee8c10f44
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10450
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 1e9e993313bc0b5093c65e707681827ddef6d9b6)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210501
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 00:09:05 +02:00
Dan Williams 3e5e13abcf vcl/qt: honor GtkLabel font-weight, font-style, and underline properties
Change-Id: Ie6a060ff2bd7248584583cdeae44db75602fbbb5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206483
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-09-04 20:42:31 +02:00
Dan Williams 86e934c603 vcl/qt: don't re-add widgets to a layout they're already part of
If the parent widget already has a layout, then creating a new
widget and passing the parent in the widget's constructor will
add the widget to the layout. If the widget is later added
to the layout again, it will be removed from the layout and
re-added. This is unecessary.

Change-Id: I64e27080a1546e126dfc8ee57d3e1e558574d6a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206477
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-04 20:41:50 +02:00
Dan Williams 62ace1c1d6 vcl/qt: honor xalign/yalign property for labels
Change-Id: I0ebf54817cb523c873b03c4b07545c7107508e57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206482
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
2026-09-04 20:40:30 +02:00
Dan Williams 38df30595f vcl/qt: implement alignment for widgets and layouts
Change-Id: I49a145bfbe1ef9b972e8853349b211165aea3686
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206475
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-09-04 20:39:50 +02:00
Noel Grandin 6a9d955a54 map->unordered_map in XMLShapeImportPageContextImpl
this map does not rely on ordering anywhere, and std::unordered_map
is faster and more memory-dense.

Change-Id: I8c5fc00b1d8d677a3023daba30fe5f73cf989344
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10125
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit b5f6ddd08f6e4e6a9efda70efd98db70adbe2aaa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210496
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-04 19:47:56 +02:00
Noel Grandin c877de09f1 std::map->std:unordered_map in XMLPropertyHandlerFactory
This map does not need ordering. std::unordered_map is faster
and more memory-dense.
Also avoid double-lookup in GetHdlCache()

Change-Id: I0aea9eabe660b110e24dbec9ee523d217e4183f8
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10124
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit c2a0e2bb613e9ecae177325217cc700d6f4eb73e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210495
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:47:50 +02:00
Noel Grandin ee065bc2f3 map->unordered_map in oox
this map does not need ordering and unordered_map is
both faster and more dense.

Change-Id: Ib8f45deaf6b89549ea80385039bb683df1b9140b
Signed-off-by: Noel Grandin <noelgrandin@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9930
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit ba832d776f118f3fdfa5a917b83dc89d16d4bf07)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210494
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:47:45 +02:00
Noel Grandin 2dd48c1130 map->unordered_map in oox
these maps do not need ordering, and unordered_map is both
faster and more memory dense.

Change-Id: If3bb393b186041b65dd7b4226ecdfd6af3c45aad
Signed-off-by: Noel Grandin <noelgrandin@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9929
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit b815bac54370e345c6a1254ce34a85deb24dfc3f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210493
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:47:40 +02:00
Noel Grandin 01df8b6ff0 map->unordered_map in lcl_fillNativeSymbols
no need to use an ordered map here, and an unordered map
is much faster.
Also avoid repeatedly indexing into the map.

Change-Id: Ia6b39800a9890ab0df3e8e73282d504e91e679ec
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9633
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 1e786f1a4b588ce289b90979231b3c5e55cab27d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210492
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:47:34 +02:00
Noel Grandin 75589a573e map->unordered_map in PropertySetMixin
no need to use an ordered map here, and an unordered map
is much faster.
Note that I leave the property name map alone, because
the ordering of that shows up in the output of some methods,
and some code is sensitive to non-ordered property names.

Change-Id: I34f9c516b6e5a981f789615fe986cd026c2ac8dd
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9632
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 08443a9446cb1cfe1eae18955598f1a23a7a9aad)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210491
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:47:26 +02:00
Noel Grandin 63a9abb2ab map->unordered_map in ConfigurationWrapper::getPropertyValue
no need to use an ordered map here, and an unordered map
is much faster.

Change-Id: Ia4b6fa7174e2d8c62cec80a2ea65e12c0a837ec4
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9631
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 8003011a7b16bf4f7e3826cba5600b2cea18d1f8)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210490
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:47:21 +02:00
Stephan Bergmann 2dc002cab1 Fix UBSan dynamic-type-mismatch
...at

> engine/sc/source/ui/unoobj/chart2uno.cxx:1622:20: runtime error: downcast of address 0x7c6579dde660 which does not point to an object of type 'ScDoubleRefToken'
> 0x7c6579dde660: note: object is of type 'ScExternalDoubleRefToken'
>  00 00 00 00  b0 11 4e 1b f5 7b 00 00  00 00 13 00 01 00 00 00  00 00 be be be be be be  80 16 8d 79
>               ^~~~~~~~~~~~~~~~~~~~~~~
>               vptr for 'ScExternalDoubleRefToken'
>  #0 in (anonymous namespace)::InsertTabNumber::operator()(boost::intrusive_ptr<formula::FormulaToken> const&) const at engine/sc/source/ui/unoobj/chart2uno.cxx:1622:20
>  #1 in __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<formula::FormulaToken>*, std::__cxx1998::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>, std::random_access_iterator_tag> std::__for_each<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<formula::FormulaToken>*, std::__cxx1998::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>, std::random_access_iterator_tag>, (anonymous namespace)::InsertTabNumber>(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<formula::FormulaToken>*, std::__cxx1998::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<formula::FormulaToken>*, std::__cxx1998::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>, std::random_access_iterator_tag>, (anonymous namespace)::InsertTabNumber&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_algo.h:159:6
>  #2 in (anonymous namespace)::InsertTabNumber std::for_each<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<formula::FormulaToken>*, std::__cxx1998::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>, std::random_access_iterator_tag>, (anonymous namespace)::InsertTabNumber>(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<formula::FormulaToken>*, std::__cxx1998::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>, std::random_access_iterator_tag>, __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<boost::intrusive_ptr<formula::FormulaToken>*, std::__cxx1998::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken>, std::allocator<boost::intrusive_ptr<formula::FormulaToken>>>, std::random_access_iterator_tag>, (anonymous namespace)::InsertTabNumber) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_algo.h:3846:7
>  #3 in ScChart2DataProvider::detectArguments(com::sun::star::uno::Reference<com::sun::star::chart2::data::XDataSource> const&) at engine/sc/source/ui/unoobj/chart2uno.cxx:1961:16
>  #4 in non-virtual thunk to ScChart2DataProvider::detectArguments(com::sun::star::uno::Reference<com::sun::star::chart2::data::XDataSource> const&) at engine/sc/source/ui/unoobj/chart2uno.cxx
>  #5 in oox::drawingml::ChartExport::getSplitCategoriesList(rtl::OUString const&) at engine/oox/source/export/chartexport.cxx:723:106
>  #6 in oox::drawingml::ChartExport::exportSeriesCategory(com::sun::star::uno::Reference<com::sun::star::chart2::data::XDataSequence> const&, int) at engine/oox/source/export/chartexport.cxx:4498:89
>  #7 in oox::drawingml::ChartExport::exportSeries_chart(com::sun::star::uno::Reference<com::sun::star::chart2::XChartType> const&, cpo::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::chart2::XDataSeries>> const&, bool&) at engine/oox/source/export/chartexport.cxx:4048:21
>  #8 in oox::drawingml::ChartExport::exportAllSeries(com::sun::star::uno::Reference<com::sun::star::chart2::XChartType> const&, bool&) at engine/oox/source/export/chartexport.cxx:3881:5
>  #9 in oox::drawingml::ChartExport::exportPieChart(com::sun::star::uno::Reference<com::sun::star::chart2::XChartType> const&) at engine/oox/source/export/chartexport.cxx:3687:5
>  #10 in oox::drawingml::ChartExport::exportPlotArea(com::sun::star::uno::Reference<com::sun::star::chart::XChartDocument> const&, bool) at engine/oox/source/export/chartexport.cxx:2932:33
>  #11 in oox::drawingml::ChartExport::exportChart(com::sun::star::uno::Reference<com::sun::star::chart::XChartDocument> const&, bool) at engine/oox/source/export/chartexport.cxx:2302:5
>  #12 in oox::drawingml::ChartExport::exportChartSpace(com::sun::star::uno::Reference<com::sun::star::chart::XChartDocument> const&, bool, bool) at engine/oox/source/export/chartexport.cxx:1570:5
>  #13 in oox::drawingml::ChartExport::ExportContent_(bool) at engine/oox/source/export/chartexport.cxx:1480:9
>  #14 in oox::drawingml::ChartExport::ExportContent() at engine/oox/source/export/chartexport.cxx:1457:5
>  #15 in oox::drawingml::ChartExport::WriteChartObj(com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const&, int, int) at engine/oox/source/export/chartexport.cxx:1273:5
>  #16 in XclExpChartObj::SaveXml(XclExpXmlStream&) at engine/sc/source/filter/excel/xeescher.cxx:1897:22
>  #17 in (anonymous namespace)::SaveDrawingMLObjects(XclExpObjList&, XclExpXmlStream&) at engine/sc/source/filter/xcl97/xcl97rec.cxx:304:16
>  #18 in XclExpObjList::SaveXml(XclExpXmlStream&) at engine/sc/source/filter/xcl97/xcl97rec.cxx:414:5
>  #19 in XclExpRecordList<XclExpRecordBase>::SaveXml(XclExpXmlStream&) at engine/sc/source/filter/inc/xerecord.hxx:386:21
>  #20 in ExcTable::WriteXml(XclExpXmlStream&) at engine/sc/source/filter/excel/excdoc.cxx:717:14
>  #21 in ExcDocument::WriteXml(XclExpXmlStream&) at engine/sc/source/filter/excel/excdoc.cxx:918:44
>  #22 in XclExpXmlStream::exportDocument() at engine/sc/source/filter/excel/xestream.cxx:1163:18
>  #23 in oox::core::FilterBase::filter(cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/oox/source/core/filterbase.cxx:500:83
>  #24 in oox::xls::ExcelFilter::filter(cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/sc/source/filter/oox/excelfilter.cxx:200:27
>  #25 in SfxObjectShell::ExportTo(SfxMedium&) at engine/sfx2/source/doc/objstor.cxx:2743:25
>  #26 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) at engine/sfx2/source/doc/objstor.cxx:1853:19
>  #27 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/sfx2/source/doc/objstor.cxx:3263:39
>  #28 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/sfx2/source/doc/objstor.cxx:3051:20
>  #29 in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t>>, SfxItemSet&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/sfx2/source/doc/objserv.cxx:329:19
>  #30 in SfxBaseModel::impl_store(rtl::OUString const&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) at engine/sfx2/source/doc/sfxbasemodel.cxx:3247:42
>  #31 in SfxBaseModel::storeToURL(rtl::OUString const&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/sfx2/source/doc/sfxbasemodel.cxx:1830:13
>  #32 in UnoApiTest::save(TestFilter, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&, char const*) at engine/test/source/unoapi_test.cxx:386:16
>  #33 in testCool14390_ChartExternalRef::TestBody() at engine/sc/qa/unit/subsequent_export_test4.cxx:881:5

apparently caused by 003c0007c13e443fe4e520d1b70586266abf7811 "reduce
Sc*Ref*Token virtual calls".  Now using the helper that was introduced there.

Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: I3e1c82e8069cb03af29e8dc260017fc3e867f72b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/11014
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 3797f2792490a1c114ce0a80db2d544bce08670b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210500
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:47:07 +02:00
Stephan Bergmann 787d22487b Use std::swap
...to avoid a false libc++ -Werror,-Wunused-but-set-variable as seen with
LLVM 24 trunk libc++ since
<https://github.com/llvm/llvm-project/commit/97f332f8d1274f74e02b2445a7c7317a4b458cb2>
"[libc++] Diagnose variables of container types" (see
<https://github.com/llvm/llvm-project/issues/215545> "Over-eager
-Wunused-but-set-variable for libc++ containers used only for side effect")

Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: I9996e63600a6711991b1c71c36af234bf4388d08
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8989
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit ccbbd16488a00cf618b834395528b40a67c48252)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210497
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 19:46:42 +02:00
Michael Weghorn 6ffaa7e28c tdf#130857 qt weld: Support Pivot table "Data Field" dlg
This means that native Qt widgets are used for this 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 e.g. be triggered following the steps
described in tdf#173243:

* open attachment 208203 from tdf#173243
* use "Data" -> "Pivot Table" -> "Insert or Edit..."
  and confirm "Current Selection" to trigger the
  "Pivot Table Layout" dialog
* drag "Date" to row fields, "Value" to data fields.
* drag another "Value" to data fields and double-click it

Change-Id: If442498741a2f22a8960bdd7acb7314e329f3f8d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210486
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-04 19:11:25 +02:00
Michael Weghorn 8f7fd752bc sc: Resave datafielddialog.ui with glade 3.40
The dialog can e.g. be triggered following the steps
described in tdf#173243:

* open attachment 208203 from tdf#173243
* use "Data" -> "Pivot Table" -> "Insert or Edit..."
  and confirm "Current Selection" to trigger the
  "Pivot Table Layout" dialog
* drag "Date" to row fields, "Value" to data fields.
* drag another "Value" to data fields and double-click it

Change-Id: Id13a2cbca2d407e40bf0885ee82650aa0a366e17
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210485
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-04 19:11:19 +02:00